--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
+ <storageModule moduleId="org.eclipse.cdt.core.settings">
+ <cconfiguration id="org.tizen.nativecore.config.sbi.gcc45.app.debug.794401490">
+ <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="org.tizen.nativecore.config.sbi.gcc45.app.debug.794401490" moduleId="org.eclipse.cdt.core.settings" name="Debug">
+ <externalSettings/>
+ <extensions>
+ <extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
+ <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.tizen.nativecore.NativeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.MakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ </extensions>
+ </storageModule>
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">
+ <configuration artifactName="videos" buildArtefactType="org.tizen.nativecore.buildArtefactType.app" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.tizen.nativecore.buildArtefactType.app,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug" description="" errorParsers="org.eclipse.cdt.core.MakeErrorParser;org.eclipse.cdt.core.GCCErrorParser;" id="org.tizen.nativecore.config.sbi.gcc45.app.debug.794401490" name="Debug" parent="org.tizen.nativecore.config.sbi.gcc45.app.debug">
+ <folderInfo id="org.tizen.nativecore.config.sbi.gcc45.app.debug.794401490." name="/" resourcePath="">
+ <toolChain id="org.tizen.nativecore.toolchain.sbi.gcc45.app.debug.1778140973" name="Tizen Native Toolchain" superClass="org.tizen.nativecore.toolchain.sbi.gcc45.app.debug">
+ <targetPlatform binaryParser="org.eclipse.cdt.core.ELF" id="org.tizen.nativeide.target.sbi.gnu.platform.base.813105786" osList="linux,win32" superClass="org.tizen.nativeide.target.sbi.gnu.platform.base"/>
+ <builder autoBuildTarget="all" buildPath="${workspace_loc:/EmptyApplicationVideo}/Debug" enableAutoBuild="true" id="org.tizen.nativecore.target.sbi.gnu.builder.1589695672" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Tizen Application Builder" superClass="org.tizen.nativecore.target.sbi.gnu.builder">
+ <outputEntries>
+ <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="outputPath" name="Debug"/>
+ <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="outputPath" name="Release"/>
+ </outputEntries>
+ </builder>
+ <tool command="i586-linux-gnueabi-ar" id="org.tizen.nativecore.tool.sbi.gnu.archiver.1480851794" name="Archiver" superClass="org.tizen.nativecore.tool.sbi.gnu.archiver"/>
+ <tool command="clang++" id="org.tizen.nativecore.tool.sbi.gnu.cpp.compiler.1013008205" name="C++ Compiler" superClass="org.tizen.nativecore.tool.sbi.gnu.cpp.compiler">
+ <option id="gnu.cpp.compiler.option.optimization.level.1309989376" name="Optimization Level" superClass="gnu.cpp.compiler.option.optimization.level" value="gnu.cpp.compiler.optimization.level.none" valueType="enumerated"/>
+ <option defaultValue="gnu.cpp.compiler.debugging.level.max" id="sbi.gnu.cpp.compiler.option.debugging.level.core.1317284915" name="Debug level" superClass="sbi.gnu.cpp.compiler.option.debugging.level.core" valueType="enumerated"/>
+ <option id="sbi.gnu.cpp.compiler.option.487202842" name="Tizen-Target" superClass="sbi.gnu.cpp.compiler.option" valueType="userObjs">
+ <listOptionValue builtIn="false" value="mobile-4.0-emulator.core_llvm40.i386"/>
+ </option>
+ <option id="sbi.gnu.cpp.compiler.option.frameworks_inc.core.1474561102" name="Tizen-Frameworks-Include-Path" superClass="sbi.gnu.cpp.compiler.option.frameworks_inc.core" valueType="includePath">
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/libxml2""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/appcore-agent""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/appfw""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/asp/""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/attach-panel""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/badge""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/base""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/cairo""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/calendar-service2""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/cbhm""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/chromium-ewk""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ckm""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/contacts-svc""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/content""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/context-service""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/csr""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dali""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dali-toolkit""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dbus-1.0""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/device""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dlog""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-buffer-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-con-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-evas-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-file-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-imf-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-imf-evas-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-input-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-input-evas-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-ipc-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ector-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/e_dbus-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/edje-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eet-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/efl-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/efl-extension""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/efreet-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eina-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eina-1/eina""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eio-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eldbus-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/elementary-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/embryo-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/emile-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eo-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eom""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ethumb-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ethumb-client-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/evas-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/feedback""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/fontconfig""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/freetype2""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/geofence""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/gio-unix-2.0""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/glib-2.0""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/harfbuzz""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/iotcon""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/json-glib-1.0""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/location""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/maps""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/media""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/media-content""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/messaging""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/metadata-editor""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/minicontrol""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/minizip""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/network""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/notification""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/nsd/""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/phonenumber-utils""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/privacy-privilege-manager/""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/SDL2""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/sensor""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/service-adaptor""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/shortcut""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/storage""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/system""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/tef""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/telephony""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/tzsh""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ui""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ui-viewmgr""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/vulkan""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/web""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/widget_service""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/widget_viewer_dali""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/widget_viewer_evas""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/wifi-direct""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/yaca""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/lib/dbus-1.0/include""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/lib/glib-2.0/include""/>
+ </option>
+ <option id="sbi.gnu.cpp.compiler.option.frameworks_cflags.core.1332733846" name="Tizen-Frameworks-Other-Cflags" superClass="sbi.gnu.cpp.compiler.option.frameworks_cflags.core" valueType="stringList">
+ <listOptionValue builtIn="false" value="${TC_COMPILER_MISC}"/>
+ <listOptionValue builtIn="false" value="${RS_COMPILER_MISC}"/>
+ <listOptionValue builtIn="false" value=" -fPIE"/>
+ <listOptionValue builtIn="false" value="--sysroot="${SBI_SYSROOT}""/>
+ </option>
+ <option id="gnu.cpp.compiler.option.include.paths.2014382998" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" valueType="includePath">
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/include}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/vp-main/include/serviceParser}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/playview/src/widget/include}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/playview/src/include}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/common/include}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/common/src/include}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/include/feature}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/include/widget}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/vp-main/include}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/include/view}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/core/include}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/playview/src/view/include}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/playview/src/feature/include}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/playview/src/core/include}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/playview/src/common/include}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/playview/include}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/video-downloader/include}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/include/viewMgr}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/include/common}""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/libxml2""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/appcore-agent""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/appfw""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/attach-panel""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/badge""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/base""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/cairo""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/calendar-service2""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/chromium-ewk""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ckm""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/contacts-svc""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/content""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/context-service""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dali""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dali-toolkit""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dbus-1.0""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/device""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dlog""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-buffer-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-con-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-evas-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-file-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-imf-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-imf-evas-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-input-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-input-evas-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-ipc-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ector-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/e_dbus-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/edje-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eet-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/efl-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/efl-extension""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/efreet-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eina-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eina-1/eina""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eio-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eldbus-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/elementary-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/embryo-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/emile-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eo-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eom""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ethumb-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ethumb-client-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/evas-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/feedback""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/fontconfig""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/freetype2""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/geofence""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/gio-unix-2.0""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/glib-2.0""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/harfbuzz""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/iotcon""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/json-glib-1.0""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/location""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/maps""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/media""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/media-content""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/messaging""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/metadata-editor""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/minicontrol""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/minizip""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/network""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/notification""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/nsd/""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/phonenumber-utils""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/sensor""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/service-adaptor""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/shortcut""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/storage""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/system""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/telephony""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ui""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/web""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/widget_service""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/widget_viewer_evas""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/wifi-direct""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/lib/dbus-1.0/include""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/lib/glib-2.0/include""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/asp/""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/cbhm""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/csr""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/privacy-privilege-manager/""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/SDL2""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/tef""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/tzsh""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ui-viewmgr""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/vulkan""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/widget_viewer_dali""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/yaca""/>
+ </option>
+ <option id="sbi.gnu.cpp.compiler.option.frameworks.core.1556939955" name="Tizen-Frameworks" superClass="sbi.gnu.cpp.compiler.option.frameworks.core" valueType="userObjs">
+ <listOptionValue builtIn="false" value="Native_API"/>
+ </option>
+ <option id="gnu.cpp.compiler.option.dialect.std.2017577179" name="Language standard" superClass="gnu.cpp.compiler.option.dialect.std" value="gnu.cpp.compiler.dialect.default" valueType="enumerated"/>
+ <option id="gnu.cpp.compiler.option.include.files.993445185" name="Include files (-include)" superClass="gnu.cpp.compiler.option.include.files"/>
+ <option id="gnu.cpp.compiler.option.preprocessor.def.1351108041" name="Defined symbols (-D)" superClass="gnu.cpp.compiler.option.preprocessor.def" valueType="definedSymbols">
+ <listOptionValue builtIn="false" value="url_download_h"/>
+ </option>
+ <inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.1660931316" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
+ </tool>
+ <tool command="clang" id="org.tizen.nativecore.tool.sbi.gnu.c.compiler.1434631769" name="C Compiler" superClass="org.tizen.nativecore.tool.sbi.gnu.c.compiler">
+ <option defaultValue="gnu.c.optimization.level.none" id="gnu.c.compiler.option.optimization.level.1874308382" name="Optimization Level" superClass="gnu.c.compiler.option.optimization.level" valueType="enumerated"/>
+ <option defaultValue="gnu.c.debugging.level.max" id="sbi.gnu.c.compiler.option.debugging.level.core.1538117391" name="Debug level" superClass="sbi.gnu.c.compiler.option.debugging.level.core" valueType="enumerated"/>
+ <option id="sbi.gnu.c.compiler.option.770559758" name="Tizen-Target" superClass="sbi.gnu.c.compiler.option" valueType="userObjs">
+ <listOptionValue builtIn="false" value="mobile-4.0-emulator.core_llvm40.i386"/>
+ </option>
+ <option id="sbi.gnu.c.compiler.option.frameworks_inc.core.1785748868" name="Tizen-Frameworks-Include-Path" superClass="sbi.gnu.c.compiler.option.frameworks_inc.core" valueType="includePath">
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/libxml2""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/appcore-agent""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/appfw""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/asp/""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/attach-panel""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/badge""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/base""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/cairo""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/calendar-service2""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/cbhm""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/chromium-ewk""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ckm""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/contacts-svc""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/content""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/context-service""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/csr""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dali""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dali-toolkit""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dbus-1.0""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/device""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dlog""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-buffer-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-con-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-evas-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-file-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-imf-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-imf-evas-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-input-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-input-evas-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-ipc-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ector-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/e_dbus-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/edje-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eet-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/efl-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/efl-extension""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/efreet-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eina-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eina-1/eina""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eio-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eldbus-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/elementary-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/embryo-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/emile-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eo-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eom""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ethumb-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ethumb-client-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/evas-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/feedback""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/fontconfig""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/freetype2""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/geofence""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/gio-unix-2.0""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/glib-2.0""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/harfbuzz""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/iotcon""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/json-glib-1.0""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/location""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/maps""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/media""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/media-content""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/messaging""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/metadata-editor""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/minicontrol""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/minizip""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/network""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/notification""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/nsd/""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/phonenumber-utils""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/privacy-privilege-manager/""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/SDL2""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/sensor""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/service-adaptor""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/shortcut""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/storage""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/system""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/tef""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/telephony""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/tzsh""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ui""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ui-viewmgr""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/vulkan""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/web""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/widget_service""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/widget_viewer_dali""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/widget_viewer_evas""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/wifi-direct""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/yaca""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/lib/dbus-1.0/include""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/lib/glib-2.0/include""/>
+ </option>
+ <option id="sbi.gnu.c.compiler.option.frameworks_cflags.core.1996540157" name="Tizen-Frameworks-Other-Cflags" superClass="sbi.gnu.c.compiler.option.frameworks_cflags.core" valueType="stringList">
+ <listOptionValue builtIn="false" value="${TC_COMPILER_MISC}"/>
+ <listOptionValue builtIn="false" value="${RS_COMPILER_MISC}"/>
+ <listOptionValue builtIn="false" value=" -fPIE"/>
+ <listOptionValue builtIn="false" value="--sysroot="${SBI_SYSROOT}""/>
+ </option>
+ <option id="gnu.c.compiler.option.include.paths.1636425230" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" valueType="includePath">
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/include}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/vp-main/include}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/playview/src/common/include}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/common/include}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/include/feature}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/include/widget}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/include/view}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/core/include}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/common/src/include}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/playview/include}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/video-downloader/include}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/vp-main/include/serviceParser}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/playview/src/widget/include}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/playview/src/view/include}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/playview/src/feature/include}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/playview/src/core/include}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/include/viewMgr}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/playview/src/include}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/include/common}""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/libxml2""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/appcore-agent""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/appfw""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/attach-panel""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/badge""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/base""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/cairo""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/calendar-service2""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/chromium-ewk""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ckm""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/contacts-svc""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/content""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/context-service""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dali""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dali-toolkit""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dbus-1.0""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/device""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dlog""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-buffer-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-con-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-evas-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-file-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-imf-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-imf-evas-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-input-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-input-evas-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-ipc-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ector-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/e_dbus-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/edje-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eet-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/efl-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/efl-extension""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/efreet-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eina-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eina-1/eina""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eio-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eldbus-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/elementary-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/embryo-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/emile-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eo-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eom""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ethumb-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ethumb-client-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/evas-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/feedback""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/fontconfig""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/freetype2""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/geofence""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/gio-unix-2.0""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/glib-2.0""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/harfbuzz""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/iotcon""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/json-glib-1.0""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/location""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/maps""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/media""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/media-content""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/messaging""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/metadata-editor""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/minicontrol""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/minizip""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/network""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/notification""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/nsd/""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/phonenumber-utils""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/sensor""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/service-adaptor""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/shortcut""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/storage""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/system""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/telephony""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ui""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/web""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/widget_service""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/widget_viewer_evas""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/wifi-direct""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/lib/dbus-1.0/include""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/lib/glib-2.0/include""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/asp/""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/cbhm""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/csr""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/privacy-privilege-manager/""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/SDL2""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/tef""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/tzsh""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ui-viewmgr""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/vulkan""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/widget_viewer_dali""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/yaca""/>
+ </option>
+ <option id="sbi.gnu.c.compiler.option.frameworks.core.714320022" name="Tizen-Frameworks" superClass="sbi.gnu.c.compiler.option.frameworks.core" valueType="userObjs">
+ <listOptionValue builtIn="false" value="Native_API"/>
+ </option>
+ <option id="gnu.c.compiler.option.dialect.std.103221605" name="Language standard" superClass="gnu.c.compiler.option.dialect.std" value="gnu.c.compiler.dialect.default" valueType="enumerated"/>
+ <option id="gnu.c.compiler.option.preprocessor.def.symbols.1152268101" name="Defined symbols (-D)" superClass="gnu.c.compiler.option.preprocessor.def.symbols" valueType="definedSymbols">
+ <listOptionValue builtIn="false" value="VS_FEATURE_THUMBNAIL_VIEW"/>
+ <listOptionValue builtIn="false" value="VS_FEATURE_FOLDER_VIEW"/>
+ <listOptionValue builtIn="false" value="SUBTITLE_K_FEATURE"/>
+ <listOptionValue builtIn="false" value="ENABLE_LANDSCAPE"/>
+ <listOptionValue builtIn="false" value="USE_SWITCH"/>
+ <listOptionValue builtIn="false" value="ENABLE_PERSONAL"/>
+ <listOptionValue builtIn="false" value="ENABLE_SUBTITLE"/>
+ <listOptionValue builtIn="false" value="ENABLE_VOLUME_BRIGHTNESS_POPUP"/>
+ </option>
+ <inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.359547178" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
+ </tool>
+ <tool id="org.tizen.nativeide.tool.sbi.gnu.c.linker.base.1037564894" name="C Linker" superClass="org.tizen.nativeide.tool.sbi.gnu.c.linker.base"/>
+ <tool command="clang++" id="org.tizen.nativecore.tool.sbi.gnu.cpp.linker.1807433761" name="C++ Linker" superClass="org.tizen.nativecore.tool.sbi.gnu.cpp.linker">
+ <option id="sbi.gnu.cpp.linker.option.frameworks_lflags.core.1164531992" name="Tizen-Frameworks-Other-Lflags" superClass="sbi.gnu.cpp.linker.option.frameworks_lflags.core" valueType="stringList">
+ <listOptionValue builtIn="false" value="${TC_LINKER_MISC}"/>
+ <listOptionValue builtIn="false" value="${RS_LINKER_MISC}"/>
+ <listOptionValue builtIn="false" value="-pie -lpthread "/>
+ <listOptionValue builtIn="false" value="-Xlinker -rpath="/home/developer/sdk_tools/lib""/>
+ <listOptionValue builtIn="false" value="--sysroot="${SBI_SYSROOT}""/>
+ <listOptionValue builtIn="false" value="-Xlinker --version-script="${PROJ_PATH}/.exportMap""/>
+ <listOptionValue builtIn="false" value="-L"${SBI_SYSROOT}/usr/lib""/>
+ <listOptionValue builtIn="false" value="$(RS_LIBRARIES)"/>
+ </option>
+ <option id="gnu.cpp.link.option.paths.2072655144" name="Library search path (-L)" superClass="gnu.cpp.link.option.paths"/>
+ <inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.2015421244" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
+ <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
+ <additionalInput kind="additionalinput" paths="$(LIBS)"/>
+ </inputType>
+ </tool>
+ <tool command="i386-linux-gnueabi-as" id="org.tizen.nativeapp.tool.sbi.gnu.assembler.base.839822999" name="Assembler" superClass="org.tizen.nativeapp.tool.sbi.gnu.assembler.base">
+ <option id="gnu.both.asm.option.include.paths.227858747" name="Include paths (-I)" superClass="gnu.both.asm.option.include.paths" valueType="includePath">
+ <listOptionValue builtIn="false" value=""${workspace_loc:/video-player/include}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/video-player/common/include}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/video-player/core/include}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/video-player/core/src/include}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/video-player/playview/include}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/video-player/video-downloader/include}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/video-player/include/common}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/video-player/include/feature}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/video-player/include/view}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/video-player/include/viewMgr}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/video-player/include/widget}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/video-player/playview/src/common/include}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/video-player/playview/src/common}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/video-player/playview/src/core/include}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/video-player/playview/src/feature/include}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/video-player/playview/src/include}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/video-player/playview/src/view/include}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/video-player/playview/src/widget/include}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/video-player/vp-main/include/serviceParser}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/video-player/vp-main/include}""/>
+ </option>
+ <inputType id="cdt.managedbuild.tool.gnu.assembler.input.1846929239" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
+ </tool>
+ <tool id="org.tizen.nativecore.tool.fnmapgen.387349296" name="C FN-Map Generator" superClass="org.tizen.nativecore.tool.fnmapgen"/>
+ <tool id="org.tizen.nativecore.tool.fnmapgen.cpp.40844714" name="C++ FN-Map Generator" superClass="org.tizen.nativecore.tool.fnmapgen.cpp"/>
+ <tool id="org.tizen.nativecore.tool.ast.1943887539" name="C Static Analyzer" superClass="org.tizen.nativecore.tool.ast"/>
+ <tool id="org.tizen.nativecore.tool.ast.cpp.249629794" name="C++ Static Analyzer" superClass="org.tizen.nativecore.tool.ast.cpp"/>
+ <tool id="org.tizen.nativecore.tool.sbi.gnu.archiver.mergelib.971472936" name="Archive Generator" superClass="org.tizen.nativecore.tool.sbi.gnu.archiver.mergelib"/>
+ <tool id="org.tizen.nativecore.tool.sbi.po.compiler.1826931387" name="PO Resource Compiler" superClass="org.tizen.nativecore.tool.sbi.po.compiler"/>
+ <tool id="org.tizen.nativecore.tool.sbi.edc.compiler.563649007" name="EDC Resource Compiler" superClass="org.tizen.nativecore.tool.sbi.edc.compiler">
+ <option id="sbi.gnu.edc.compiler.option.misc.id.2105364854" name="Image Path (-id)" superClass="sbi.gnu.edc.compiler.option.misc.id" valueType="stringList">
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/edje/images""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/playview/res/edje/images}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/res/images}""/>
+ </option>
+ <option id="sbi.gnu.edc.compiler.option.misc.sd.1432106389" name="Sound Path (-sd)" superClass="sbi.gnu.edc.compiler.option.misc.sd" valueType="stringList">
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/res/edje}""/>
+ </option>
+ </tool>
+ </toolChain>
+ </folderInfo>
+ <fileInfo id="org.tizen.nativecore.config.sbi.gcc45.app.debug.794401490.1595288513" name="mp-video-streaming-ctrl.h" rcbsApplicability="disable" resourcePath="include/common/mp-video-streaming-ctrl.h" toolsToInvoke="">
+ <tool customBuildStep="true" id="org.eclipse.cdt.managedbuilder.ui.rcbs.1702264556" name="Resource Custom Build Step">
+ <inputType id="org.eclipse.cdt.managedbuilder.ui.rcbs.inputtype.945557823" name="Resource Custom Build Step Input Type">
+ <additionalInput kind="additionalinputdependency" paths=""/>
+ </inputType>
+ <outputType id="org.eclipse.cdt.managedbuilder.ui.rcbs.outputtype.1560228292" name="Resource Custom Build Step Output Type"/>
+ </tool>
+ </fileInfo>
+ <fileInfo id="org.tizen.nativecore.config.sbi.gcc45.app.debug.794401490.732771816" name="mp-video-url-downloader-ctrl.h" rcbsApplicability="disable" resourcePath="include/feature/mp-video-url-downloader-ctrl.h" toolsToInvoke="">
+ <tool customBuildStep="true" id="org.eclipse.cdt.managedbuilder.ui.rcbs.702841711" name="Resource Custom Build Step">
+ <inputType id="org.eclipse.cdt.managedbuilder.ui.rcbs.inputtype.28487357" name="Resource Custom Build Step Input Type">
+ <additionalInput kind="additionalinputdependency" paths=""/>
+ </inputType>
+ <outputType id="org.eclipse.cdt.managedbuilder.ui.rcbs.outputtype.374771922" name="Resource Custom Build Step Output Type"/>
+ </tool>
+ </fileInfo>
+ <sourceEntries>
+ <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="common"/>
+ <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="core"/>
+ <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="feature"/>
+ <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="include"/>
+ <entry excluding="res/edje/pv-macro.edc|res/edje/custom/pv-custom-button.edc|res/edje/custom/pv-custom-layout.edc|res/edje/custom/pv-custom-define.edc|res/edje/custom/pv-custom-image.edc|res/edje/custom/pv-custom-naviframe.edc|res/edje/pv-image.edc|res/edje/custom/pv-custom-gengrid-item.edc|res/edje/custom/pv-custom-genlist-item.edc|res/edje/custom/pv-custom-colorselector.edc|src/view/vp-play-multi-view.c" flags="VALUE_WORKSPACE_PATH" kind="sourcePath" name="playview"/>
+ <entry excluding="edje/vp_font.edc|edje/edje_image_macro.edc|edje/vp-detail-popup.edc|edje/vp-layout.edc|edje/vp-toolbar.edc|edje/vp-scroller-custom.edc|edje/vp-gengrid-custom.edc|edje/vp-button-white.edc|edje/vp-custom-genlist-miltiline.edc|edje/vp-nocontents.edc|edje/vp-numberinfo.edc|edje/vp-check.edc|edje/vp-ctxpopup.edc|edje/image_res.edc|edje/vp-entry-popup.edc|edje/vp-genlist-custom.edc|edje/vp-progressbar-list.edc|edje/vp-controlbar.edc|edje/vp-gengrid.edc" flags="VALUE_WORKSPACE_PATH" kind="sourcePath" name="res"/>
+ <entry flags="VALUE_WORKSPACE_PATH" kind="sourcePath" name="shared"/>
+ <entry excluding="common/mp-video-streaming-ctrl.c|feature/mp-video-url-downloader-ctrl.c" flags="VALUE_WORKSPACE_PATH" kind="sourcePath" name="src"/>
+ <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="video-downloader"/>
+ </sourceEntries>
+ </configuration>
+ </storageModule>
+ <storageModule moduleId="org.eclipse.cdt.core.externalSettings">
+ <externalSettings containerId="vp-main;" factoryId="org.eclipse.cdt.core.cfg.export.settings.sipplier"/>
+ </storageModule>
+ </cconfiguration>
+ <cconfiguration id="org.tizen.nativecore.config.sbi.gcc45.app.release.757821425">
+ <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="org.tizen.nativecore.config.sbi.gcc45.app.release.757821425" moduleId="org.eclipse.cdt.core.settings" name="Release">
+ <externalSettings/>
+ <extensions>
+ <extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
+ <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.tizen.nativecore.NativeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.MakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ </extensions>
+ </storageModule>
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">
+ <configuration artifactName="org.example.emptyapplicationvideo" buildArtefactType="org.tizen.nativecore.buildArtefactType.app" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.tizen.nativecore.buildArtefactType.app,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release" description="" errorParsers="org.eclipse.cdt.core.MakeErrorParser;org.eclipse.cdt.core.GCCErrorParser;" id="org.tizen.nativecore.config.sbi.gcc45.app.release.757821425" name="Release" parent="org.tizen.nativecore.config.sbi.gcc45.app.release">
+ <folderInfo id="org.tizen.nativecore.config.sbi.gcc45.app.release.757821425." name="/" resourcePath="">
+ <toolChain id="org.tizen.nativecore.toolchain.sbi.gcc45.app.release.46315082" name="Tizen Native Toolchain" superClass="org.tizen.nativecore.toolchain.sbi.gcc45.app.release">
+ <targetPlatform binaryParser="org.eclipse.cdt.core.ELF" id="org.tizen.nativeide.target.sbi.gnu.platform.base.1193724915" osList="linux,win32" superClass="org.tizen.nativeide.target.sbi.gnu.platform.base"/>
+ <builder buildPath="${workspace_loc:/EmptyApplicationVideo}/Release" id="org.tizen.nativecore.target.sbi.gnu.builder.1664120366" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Tizen Application Builder" superClass="org.tizen.nativecore.target.sbi.gnu.builder"/>
+ <tool id="org.tizen.nativecore.tool.sbi.gnu.archiver.354389508" name="Archiver" superClass="org.tizen.nativecore.tool.sbi.gnu.archiver"/>
+ <tool command="clang++" id="org.tizen.nativecore.tool.sbi.gnu.cpp.compiler.164121027" name="C++ Compiler" superClass="org.tizen.nativecore.tool.sbi.gnu.cpp.compiler">
+ <option id="gnu.cpp.compiler.option.optimization.level.139843150" name="Optimization Level" superClass="gnu.cpp.compiler.option.optimization.level" value="gnu.cpp.compiler.optimization.level.most" valueType="enumerated"/>
+ <option defaultValue="gnu.cpp.compiler.debugging.level.default" id="sbi.gnu.cpp.compiler.option.debugging.level.core.642011071" name="Debug level" superClass="sbi.gnu.cpp.compiler.option.debugging.level.core" valueType="enumerated"/>
+ <option id="sbi.gnu.cpp.compiler.option.1305952034" name="Tizen-Target" superClass="sbi.gnu.cpp.compiler.option" valueType="userObjs">
+ <listOptionValue builtIn="false" value="mobile-4.0-emulator.core_llvm40.i386"/>
+ </option>
+ <option id="sbi.gnu.cpp.compiler.option.frameworks_inc.core.1890280358" name="Tizen-Frameworks-Include-Path" superClass="sbi.gnu.cpp.compiler.option.frameworks_inc.core" valueType="includePath">
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/libxml2""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/appcore-agent""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/appfw""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/asp/""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/attach-panel""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/badge""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/base""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/cairo""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/calendar-service2""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/cbhm""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/chromium-ewk""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ckm""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/contacts-svc""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/content""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/context-service""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/csr""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dali""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dali-toolkit""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dbus-1.0""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/device""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dlog""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-buffer-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-con-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-evas-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-file-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-imf-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-imf-evas-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-input-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-input-evas-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-ipc-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ector-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/e_dbus-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/edje-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eet-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/efl-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/efl-extension""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/efreet-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eina-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eina-1/eina""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eio-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eldbus-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/elementary-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/embryo-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/emile-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eo-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eom""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ethumb-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ethumb-client-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/evas-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/feedback""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/fontconfig""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/freetype2""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/geofence""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/gio-unix-2.0""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/glib-2.0""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/harfbuzz""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/iotcon""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/json-glib-1.0""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/location""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/maps""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/media""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/media-content""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/messaging""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/metadata-editor""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/minicontrol""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/minizip""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/network""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/notification""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/nsd/""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/phonenumber-utils""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/privacy-privilege-manager/""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/SDL2""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/sensor""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/service-adaptor""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/shortcut""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/storage""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/system""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/tef""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/telephony""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/tzsh""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ui""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ui-viewmgr""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/vulkan""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/web""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/widget_service""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/widget_viewer_dali""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/widget_viewer_evas""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/wifi-direct""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/yaca""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/lib/dbus-1.0/include""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/lib/glib-2.0/include""/>
+ </option>
+ <option id="sbi.gnu.cpp.compiler.option.frameworks_cflags.core.1656086786" name="Tizen-Frameworks-Other-Cflags" superClass="sbi.gnu.cpp.compiler.option.frameworks_cflags.core" valueType="stringList">
+ <listOptionValue builtIn="false" value="${TC_COMPILER_MISC}"/>
+ <listOptionValue builtIn="false" value="${RS_COMPILER_MISC}"/>
+ <listOptionValue builtIn="false" value=" -fPIE"/>
+ <listOptionValue builtIn="false" value="--sysroot="${SBI_SYSROOT}""/>
+ </option>
+ <option id="gnu.cpp.compiler.option.include.paths.894511737" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" valueType="includePath">
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/inc}""/>
+ </option>
+ <option id="sbi.gnu.cpp.compiler.option.frameworks.core.854425362" name="Tizen-Frameworks" superClass="sbi.gnu.cpp.compiler.option.frameworks.core" valueType="userObjs">
+ <listOptionValue builtIn="false" value="Native_API"/>
+ </option>
+ <inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.238294449" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
+ </tool>
+ <tool command="clang" id="org.tizen.nativecore.tool.sbi.gnu.c.compiler.561453928" name="C Compiler" superClass="org.tizen.nativecore.tool.sbi.gnu.c.compiler">
+ <option defaultValue="gnu.c.optimization.level.most" id="gnu.c.compiler.option.optimization.level.1535734061" name="Optimization Level" superClass="gnu.c.compiler.option.optimization.level" valueType="enumerated"/>
+ <option defaultValue="gnu.c.debugging.level.default" id="sbi.gnu.c.compiler.option.debugging.level.core.1840224540" name="Debug level" superClass="sbi.gnu.c.compiler.option.debugging.level.core" valueType="enumerated"/>
+ <option id="sbi.gnu.c.compiler.option.823821768" name="Tizen-Target" superClass="sbi.gnu.c.compiler.option" valueType="userObjs">
+ <listOptionValue builtIn="false" value="mobile-4.0-emulator.core_llvm40.i386"/>
+ </option>
+ <option id="sbi.gnu.c.compiler.option.frameworks_inc.core.1052678929" name="Tizen-Frameworks-Include-Path" superClass="sbi.gnu.c.compiler.option.frameworks_inc.core" valueType="includePath">
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/libxml2""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/appcore-agent""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/appfw""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/asp/""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/attach-panel""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/badge""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/base""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/cairo""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/calendar-service2""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/cbhm""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/chromium-ewk""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ckm""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/contacts-svc""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/content""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/context-service""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/csr""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dali""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dali-toolkit""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dbus-1.0""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/device""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dlog""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-buffer-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-con-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-evas-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-file-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-imf-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-imf-evas-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-input-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-input-evas-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-ipc-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ector-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/e_dbus-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/edje-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eet-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/efl-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/efl-extension""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/efreet-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eina-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eina-1/eina""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eio-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eldbus-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/elementary-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/embryo-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/emile-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eo-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eom""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ethumb-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ethumb-client-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/evas-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/feedback""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/fontconfig""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/freetype2""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/geofence""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/gio-unix-2.0""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/glib-2.0""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/harfbuzz""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/iotcon""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/json-glib-1.0""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/location""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/maps""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/media""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/media-content""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/messaging""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/metadata-editor""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/minicontrol""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/minizip""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/network""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/notification""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/nsd/""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/phonenumber-utils""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/privacy-privilege-manager/""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/SDL2""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/sensor""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/service-adaptor""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/shortcut""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/storage""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/system""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/tef""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/telephony""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/tzsh""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ui""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ui-viewmgr""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/vulkan""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/web""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/widget_service""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/widget_viewer_dali""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/widget_viewer_evas""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/wifi-direct""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/yaca""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/lib/dbus-1.0/include""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/lib/glib-2.0/include""/>
+ </option>
+ <option id="sbi.gnu.c.compiler.option.frameworks_cflags.core.491286643" name="Tizen-Frameworks-Other-Cflags" superClass="sbi.gnu.c.compiler.option.frameworks_cflags.core" valueType="stringList">
+ <listOptionValue builtIn="false" value="${TC_COMPILER_MISC}"/>
+ <listOptionValue builtIn="false" value="${RS_COMPILER_MISC}"/>
+ <listOptionValue builtIn="false" value=" -fPIE"/>
+ <listOptionValue builtIn="false" value="--sysroot="${SBI_SYSROOT}""/>
+ </option>
+ <option id="gnu.c.compiler.option.include.paths.428573644" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" valueType="includePath">
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/inc}""/>
+ </option>
+ <option id="sbi.gnu.c.compiler.option.frameworks.core.157224826" name="Tizen-Frameworks" superClass="sbi.gnu.c.compiler.option.frameworks.core" valueType="userObjs">
+ <listOptionValue builtIn="false" value="Native_API"/>
+ </option>
+ <inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.167183975" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
+ </tool>
+ <tool id="org.tizen.nativeide.tool.sbi.gnu.c.linker.base.1420646843" name="C Linker" superClass="org.tizen.nativeide.tool.sbi.gnu.c.linker.base"/>
+ <tool command="clang++" id="org.tizen.nativecore.tool.sbi.gnu.cpp.linker.990799314" name="C++ Linker" superClass="org.tizen.nativecore.tool.sbi.gnu.cpp.linker">
+ <option id="sbi.gnu.cpp.linker.option.frameworks_lflags.core.63760920" name="Tizen-Frameworks-Other-Lflags" superClass="sbi.gnu.cpp.linker.option.frameworks_lflags.core" valueType="stringList">
+ <listOptionValue builtIn="false" value="${TC_LINKER_MISC}"/>
+ <listOptionValue builtIn="false" value="${RS_LINKER_MISC}"/>
+ <listOptionValue builtIn="false" value="-pie -lpthread "/>
+ <listOptionValue builtIn="false" value="-Xlinker -rpath="/home/developer/sdk_tools/lib""/>
+ <listOptionValue builtIn="false" value="--sysroot="${SBI_SYSROOT}""/>
+ <listOptionValue builtIn="false" value="-Xlinker --version-script="${PROJ_PATH}/.exportMap""/>
+ <listOptionValue builtIn="false" value="-L"${SBI_SYSROOT}/usr/lib""/>
+ <listOptionValue builtIn="false" value="$(RS_LIBRARIES)"/>
+ </option>
+ <option id="gnu.cpp.link.option.paths.1206011120" name="Library search path (-L)" superClass="gnu.cpp.link.option.paths" valueType="libPaths">
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/lib}""/>
+ </option>
+ <inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.1445765393" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
+ <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
+ <additionalInput kind="additionalinput" paths="$(LIBS)"/>
+ </inputType>
+ </tool>
+ <tool command="i386-linux-gnueabi-as" id="org.tizen.nativeapp.tool.sbi.gnu.assembler.base.833158527" name="Assembler" superClass="org.tizen.nativeapp.tool.sbi.gnu.assembler.base">
+ <inputType id="cdt.managedbuild.tool.gnu.assembler.input.1975545154" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
+ </tool>
+ <tool id="org.tizen.nativecore.tool.fnmapgen.384277850" name="C FN-Map Generator" superClass="org.tizen.nativecore.tool.fnmapgen"/>
+ <tool id="org.tizen.nativecore.tool.fnmapgen.cpp.233146425" name="C++ FN-Map Generator" superClass="org.tizen.nativecore.tool.fnmapgen.cpp"/>
+ <tool id="org.tizen.nativecore.tool.ast.1494595660" name="C Static Analyzer" superClass="org.tizen.nativecore.tool.ast"/>
+ <tool id="org.tizen.nativecore.tool.ast.cpp.1333559599" name="C++ Static Analyzer" superClass="org.tizen.nativecore.tool.ast.cpp"/>
+ <tool id="org.tizen.nativecore.tool.sbi.gnu.archiver.mergelib.324673152" name="Archive Generator" superClass="org.tizen.nativecore.tool.sbi.gnu.archiver.mergelib"/>
+ <tool id="org.tizen.nativecore.tool.sbi.po.compiler.543398286" name="PO Resource Compiler" superClass="org.tizen.nativecore.tool.sbi.po.compiler"/>
+ <tool id="org.tizen.nativecore.tool.sbi.edc.compiler.1059753382" name="EDC Resource Compiler" superClass="org.tizen.nativecore.tool.sbi.edc.compiler"/>
+ </toolChain>
+ </folderInfo>
+ <sourceEntries>
+ <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
+ </sourceEntries>
+ </configuration>
+ </storageModule>
+ <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+ </cconfiguration>
+ </storageModule>
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">
+ <project id="EmptyApplicationVideo.org.tizen.nativecore.target.sbi.gcc45.app.1170262511" name="Tizen Native Application" projectType="org.tizen.nativecore.target.sbi.gcc45.app"/>
+ </storageModule>
+ <storageModule moduleId="scannerConfiguration">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
+ <scannerConfigBuildInfo instanceId="org.tizen.nativecore.config.sbi.gcc45.app.debug.794401490">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="org.tizen.nativecore.config.sbi.gcc45.app.release.757821425">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
+ </scannerConfigBuildInfo>
+ </storageModule>
+ <storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
+ <storageModule moduleId="refreshScope" versionNumber="2">
+ <configuration configurationName="Release">
+ <resource resourceType="PROJECT" workspacePath="/EmptyApplicationVideo"/>
+ </configuration>
+ <configuration configurationName="Debug">
+ <resource resourceType="PROJECT" workspacePath="/EmptyApplicationVideo"/>
+ </configuration>
+ </storageModule>
+</cproject>
--- /dev/null
+{
+ global: main;
+ local: *;
+};
--- /dev/null
+/Debug
+/SA_Report
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>video-player</name>
+ <comment></comment>
+ <projects>
+ <project>vp-main</project>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
+ <triggers>full,incremental,</triggers>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.cdt.core.cnature</nature>
+ <nature>org.eclipse.cdt.core.ccnature</nature>
+ <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
+ <nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
+ </natures>
+ <filteredResources>
+ <filter>
+ <id>1454059523477</id>
+ <name></name>
+ <type>26</type>
+ <matcher>
+ <id>org.eclipse.ui.ide.multiFilter</id>
+ <arguments>1.0-projectRelativePath-matches-false-false-*/.tpk</arguments>
+ </matcher>
+ </filter>
+ <filter>
+ <id>1454059523500</id>
+ <name></name>
+ <type>6</type>
+ <matcher>
+ <id>org.eclipse.ui.ide.multiFilter</id>
+ <arguments>1.0-name-matches-false-false-project_def.prop</arguments>
+ </matcher>
+ </filter>
+ </filteredResources>
+</projectDescription>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<tproject xmlns="http://www.tizen.org/tproject">
+ <platforms>
+ <platform>
+ <name>mobile-4.0</name>
+ </platform>
+ </platforms>
+ <package>
+ <blacklist/>
+ <resFallback autoGen="true"/>
+ <subProjects>
+ <tizenProject project="vp-main"/>
+ </subProjects>
+ </package>
+</tproject>
--- /dev/null
+# Appendix\r
--- /dev/null
+# Add inputs and outputs from these tool invocations to the build variables
+
+
+OS_NAME := $(shell $(UNAME))
+
+
+#ifeq ($(origin BUILD_CONFIG), undefined)
+BUILD_CONFIG ?= Debug
+#endif
+
+#ifeq ($(origin ARCH), undefined)
+ARCH ?= i386
+#endif
+
+#ifeq ($(origin PROJPATH), undefined)
+PROJPATH ?= .
+#endif
+
+
+#ifeq ($(origin PROJ_PATH), undefined)
+PROJ_PATH ?= $(PROJPATH)
+#endif
+
+#ifeq ($(strip $(OUTPUT_DIR)),)
+#OUTPUT_DIR ?= $(PROJ_PATH)/$(BUILD_CONFIG)
+#endif
+
+#ifeq ($(strip $(BUILD_ARCH)),)
+BUILD_ARCH ?= $(ARCH)
+#endif
+
+#ifeq ($(strip $(ENVENTOR_PATH)),)
+ENVENTOR_PATH ?= $(SDK_TOOLPATH)/enventor
+#endif
--- /dev/null
+# C/C++ build script
+
+
+_FUNC_EXT2O = $(patsubst %.$(3),$(1)/%.o,$(2))
+_FUNC_C2O = $(call _FUNC_EXT2O,$(1),$(2),c)
+_FUNC_CPP2O = $(call _FUNC_EXT2O,$(1),$(2),cpp)
+
+
+# parameter :
+# $(1) - C/C++ soruce file
+# $(2) - output path
+# $(3) - .ext
+# $(4) - unique id
+CONVERT_ESC_EXT_TO_O = $(addprefix $(2)/,$(notdir $(patsubst %.$(3),%-$(4).o,$(1))))
+
+#CONVERT_ESC_C_TO_O = $(call CONVERT_ESC_EXT_TO_O,$(1),$(2),c)
+#CONVERT_ESC_CPP_TO_O = $(call CONVERT_ESC_EXT_TO_O,$(1),$(2),cpp)
+
+
+# parameter :
+# $(1) - encoded one C/C++ soruce file
+# $(2) - output path
+# $(3) - ext title (C/C++)
+# $(4) - ext (c/cpp)
+# $(5) - compiler ($(CC)/$(CXX))
+# $(6) - build opt
+# $(7) - build opt file
+# output :
+# $(8) - output files list
+define C_BUILD_PROC_RAW
+$(call CONVERT_ESC_EXT_TO_O,$(1),$(2),$(4),$(8)) : $(call DECODE_4MAKE,$(1)) $(7)
+ @echo ' Building file: $$<'
+ @echo ' Invoking: $(3) Compiler'
+ $$(call MAKEDIRS,$$(@D))
+ $(5) -c "$$<" -o "$$@" $(6) -Wp,@$(7)
+ @echo ' Finished building: $$<'
+$(9) += $(call CONVERT_ESC_EXT_TO_O,$(1),$(2),$(4),$(8))
+endef
+
+
+# parameter :
+# $(1) - output paths
+# $(2) - src paths
+# $(3) - inc paths
+# $(4) - inc files
+# $(5) - Defs
+# $(6) - UnDefs
+# $(7) - compiler opt
+# $(8) - compiler opt file
+# $(9) - ext title (C/C++)
+# $(10) - ext (c/cpp)
+# $(11) - compiler ($(CC)/$(CXX))
+# output :
+# $(12) - OBJS
+# return :
+# none
+define C_PROC_RAW
+
+_OUTPUT_DIR := $$(strip $(1))#
+_SRCS := $(2)#
+_INCS := $(3)#
+_INC_FILES := $(4)#
+_DEFS := $(5)#
+_UNDEFS := $(6)#
+
+_OPT := $(7)
+_OPT_FILE := $(8)
+
+_EXT_TITLE := $(9)
+_EXT := $(10)
+_COMPILER := $(11)
+
+#_OUTPUT_FILES := $(12)
+
+_ENC_SRCS := $$(call ENCODE_4MAKE,$$(_SRCS))
+_ENC_SRCS := $$(filter %.$$(_EXT),$$(_ENC_SRCS))
+
+ifneq ($$(strip $$(_SRCS)),)
+
+_NORMAL_SRCS := $$(filter-out %*.$$(_EXT),$$(_ENC_SRCS))
+_WIDLCARD_SRCS := $$(filter %*.$$(_EXT),$$(_ENC_SRCS))
+
+_ALL_SRCS := $$(call DECODE_4MAKE,$$(_NORMAL_SRCS)) \
+ $$(foreach var,$$(_WIDLCARD_SRCS),$$(call FIND_FILES_4MAKE,$$(call DECODE_4MAKE,$$(var))))
+
+ifneq ($$(strip $$(_ALL_SRCS)),)
+
+_ENC_SRCS := $$(call ENCODE_4MAKE,$$(_ALL_SRCS))
+
+_CDEFS := $$(CDEFS)
+_CDEFS += $$(addprefix -D,$$(_DEFS))
+_CDEFS += $$(addprefix -U,$$(_UNDEFS))
+
+_ENC_C_INCS := $$(call ENCODE_4MAKE,$$(_INCS))
+_ENC_C_INCS := $$(addprefix -I,$$(_ENC_C_INCS))
+
+_ENC_INC_FILES := $$(call ENCODE_4MAKE,$$(_INC_FILES))
+_ENC_INC_FILES += $$(addprefix -include,$$(_ENC_INC_FILES))
+
+_C_INCS := $$(call DECODE_4MAKE,$$(_ENC_C_INCS) $$(_ENC_C_INC_FILES))
+
+_DEFS := $$(_CDEFS) $$(_C_INCS) -I"pch" $$(_OPT)
+
+_UNIQUE_ID = $$(firstword $$(shell echo $$(var) | $$(CKSUM)))
+
+$$(foreach var,$$(_ENC_SRCS),$$(eval $$(call C_BUILD_PROC_RAW,$$(var),$$(_OUTPUT_DIR),$$(_EXT_TITLE),$$(_EXT),$$(_COMPILER),$$(_DEFS),$$(_OPT_FILE),$$(_UNIQUE_ID),$(12))))
+
+endif # (_(strip _(_ALL_SRCS)),)
+
+endif # (_(strip _(_SRCS)),)
+
+
+endef
--- /dev/null
+# EDC build script
+
+
+FUNC_EDC2EDJ = $(patsubst %.edc,$(2)/%.edj,$(1))
+
+# parameter :
+# $(1) - C/C++ soruce file
+# $(2) - output path
+CONVERT_ESC_EDC_TO_EDJ = $(call CONVERT_4MAKE_TO_OUT,$(call FUNC_EDC2EDJ,$(1),$(2)))
+
+
+# parameter :
+# $(1) - encoded one C/C++ soruce file
+# $(2) - output path
+# $(3) - build opt
+# output :
+# $(4) - output files list
+define EDJ_BUILD_PROC_RAW
+$(call CONVERT_ESC_EDC_TO_EDJ,$(1),$(2)) : $(call DECODE_4MAKE,$(1))
+ @echo ' Building file: $$<'
+ @echo ' Invoking: EDC Resource Compiler'
+ $$(call MAKEDIRS,$$(@D))
+ $$(EDJE_CC) $(3) "$$<" "$$@"
+ @echo ' Finished building: $$<'
+$(4) += $(call CONVERT_ESC_EDC_TO_EDJ,$(1),$(2))
+endef
+
+
+# parameter :
+# $(1) - output paths
+# $(2) - src paths
+# $(3) - image inc paths
+# $(4) - sound inc paths
+# $(5) - font inc paths
+# output :
+# $(6) - OBJS
+# return :
+# none
+define EDJ_PROC_RAW
+
+_OUTPUT_DIR := $$(strip $(1))#
+_SRCS := $(2)#
+_IMAGE_DIRS := $(3)#
+_SOUND_DIRS := $(4)#
+_FONT_DIRS := $(5)#
+
+ifneq ($$(strip $$(_SRCS)),)
+
+_ENC_SRCS := $$(call ENCODE_4MAKE,$$(_SRCS))
+
+_NORMAL_SRCS := $$(filter-out %*.edc,$$(_ENC_SRCS))
+_WIDLCARD_SRCS := $$(filter %*.edc,$$(_ENC_SRCS))
+
+_ALL_SRCS := $$(call DECODE_4MAKE,$$(_NORMAL_SRCS)) \
+ $$(foreach var,$$(_WIDLCARD_SRCS),$$(call FIND_FILES_4MAKE,$$(call DECODE_4MAKE,$$(var))))
+
+ifneq ($$(strip $$(_ALL_SRCS)),)
+
+_ENC_SRCS := $$(call ENCODE_4MAKE,$$(_ALL_SRCS))
+
+_COMPILER_FLAGS := -id "$$(ENVENTOR_SHARED_RES_PATH)/images"
+_COMPILER_FLAGS += -sd "$$(ENVENTOR_SHARED_RES_PATH)/sounds"
+_COMPILER_FLAGS += -fd "$$(ENVENTOR_SHARED_RES_PATH)/fonts"
+
+ifneq ($$(strip $$(_IMAGE_DIRS)),)
+_COMPILER_FLAGS += $$(addprefix -id ,$$(_IMAGE_DIRS))
+endif
+ifneq ($$(strip $$(_SOUND_DIRS)),)
+_COMPILER_FLAGS += $$(addprefix -sd ,$$(_SOUND_DIRS))
+endif
+ifneq ($$(strip $$(_FONT_DIRS)),)
+_COMPILER_FLAGS += $$(addprefix -fd ,$$(_FONT_DIRS))
+endif
+
+$$(foreach var,$$(_ENC_SRCS),$$(eval $$(call EDJ_BUILD_PROC_RAW,$$(var),$$(_OUTPUT_DIR),$$(_COMPILER_FLAGS),$(6))))
+
+endif # (_(strip _(_ALL_SRCS)),)
+
+endif # (_(strip _(_SRCS)),)
+
+endef
--- /dev/null
+# PO build script
+
+
+_FUNC_PO2MO = $(patsubst %.po,$(2)/res/locale/%/LC_MESSAGES/$(3).mo,$(notdir $(1)))
+
+
+# parameter :
+# $(1) - C/C++ soruce file
+# $(2) - output path
+# $(3) - app name
+CONVERT_ESC_PO_TO_MO = $(call CONVERT_4MAKE_TO_OUT,$(call _FUNC_PO2MO,$(1),$(2),$(3)))
+
+
+# parameter :
+# $(1) - encoded one C/C++ soruce file
+# $(2) - output path
+# $(3) - app name
+# output :
+# $(4) - output files list
+define MO_BUILD_PROC_RAW
+$(call CONVERT_ESC_PO_TO_MO,$(1),$(2),$(3)) : $(call DECODE_4MAKE,$(1))
+ @echo ' Building file: $$<'
+ @echo ' Invoking: msgfmt String Formatter'
+ $$(call MAKEDIRS,$$(@D))
+ $$(MSGFMT) -o "$$@" "$$<"
+ @echo ' Finished building: $$<'
+$(4) += $(call CONVERT_ESC_PO_TO_MO,$(1),$(2),$(3))
+endef
+
+
+# parameter :
+# $(1) - output dir
+# $(2) - src paths
+# $(3) - app name
+# output :
+# $(4) - OBJS
+
+define MO_PROC_RAW
+
+_OUTPUT_DIR := $(1)
+_SRCS := $(2)
+_APPNAME := $(3)
+
+ifneq ($$(strip $$(_SRCS)),)
+
+_ENC_SRCS := $$(call ENCODE_4MAKE,$$(_SRCS))
+
+_NORMAL_SRCS := $$(filter-out %*.po,$$(_ENC_SRCS))
+_WIDLCARD_SRCS := $$(filter %*.po,$$(_ENC_SRCS))
+
+_ALL_SRCS := $$(call DECODE_4MAKE,$$(_NORMAL_SRCS)) \
+ $$(foreach var,$$(_WIDLCARD_SRCS),$$(call FIND_FILES_4MAKE,$$(call DECODE_4MAKE,$$(var))))
+
+ifneq ($$(strip $$(_ALL_SRCS)),)
+
+_ENC_SRCS := $$(call ENCODE_4MAKE,$$(_ALL_SRCS))
+
+$$(foreach var,$$(_ENC_SRCS),$$(eval $$(call MO_BUILD_PROC_RAW,$$(var),$$(_OUTPUT_DIR),$$(_APPNAME),$(4))))
+
+endif # (_(strip _(_ALL_SRCS)),)
+
+endif # (_(strip _(_SRCS)),)
+
+endef
--- /dev/null
+
+DEBUG_OP = -g3
+CPP_DEBUG_OP =
+
+OPTIMIZATION_OP = -O0
+CPP_OPTIMIZATION_OP =
+
+COMPILE_FLAGS = $(DEBUG_OP) $(OPTIMIZATION_OP) -Wall -c -fmessage-length=0 -fPIC
+
+CPP_COMPILE_FLAGS = $(CPP_DEBUG_OP) $(CPP_OPTIMIZATION_OP)
+
+LINK_FLAGS = -shared -Wl,--no-undefined
+
+AR_FLAGS =
+
+EDC_COMPILE_FLAGS =
\ No newline at end of file
--- /dev/null
+
+BSLASH := \\#
+NULL_CHAR := #
+SPACE := \ #
+COLON := :#
+DOTDOT := ..#
+SPACE_ESC := &sp;#
+COLON_ESC := &co;#
+SPACE_OUT := ~sp~#
+COLON_OUT := ~co~#
+DOTDOT_OUT := ~dtdt~#
+
+BSLASH2SLASH = $(subst $(BSLASH),/,$(1))
+
+REMOVE_TAIL = $(patsubst %/,%,$(1))
+
+#LOWER_CASE = $(shell echo translit($(1),[A-Z],[a-z])|$(M4))
+LOWER_CASE = $(shell echo $(1)|$(TR) [A-Z] [a-z])
+
+#ifneq ($(findstring Windows,$(OS)),)
+# ...
+#endif
+
+FIND_FILES = $(shell $(FIND) $(1)/$(2) | $(SED) 's/^$(subst /,$(BSLASH)/,$(1))$(BSLASH)///')
+FIND_FILES_ESC = $(shell $(FIND) $(1)/$(2) | $(SED) 's/^$(subst /,$(BSLASH)/,$(1))$(BSLASH)///' -e 's/:/$(BSLASH)&co;/g' -e 's/$(BSLASH) /$(BSLASH)&sp;/g')
+FIND_FILES_4MAKE = $(shell $(FIND) $(1)/$(2) | $(SED) 's/^$(subst /,$(BSLASH)/,$(1))$(BSLASH)///')
+
+FIND_FILES_ABS = $(shell $(FIND) $(1))
+FIND_FILES_ABS_4MAKE = $(shell $(FIND) $(1) -e 's/$(BSLASH) /$(BSLASH)&sp;/g')
+FIND_FILES_ABS_ESC = $(shell $(FIND) $(1) -e 's/:/$(BSLASH)&co;/g' -e 's/$(BSLASH) /$(BSLASH)&sp;/g')
+
+FIND_FILES_4MAKE = $(shell $(FIND) $(1) | $(SED) 's/ /\\\ /g')
+
+#ENCODE_ESC = $(shell echo $(1) | $(SED) -e 's/:/$(BSLASH)&co;/g' -e 's/$(BSLASH) /$(BSLASH)&sp;/g')
+#DECODE_ESC = $(shell echo $(1) | $(SED) -e 's/$(BSLASH)&co;/:/g' -e 's/$(BSLASH)&sp;/$(BSLASH) / g')
+ENCODE_ESC = $(subst $(SPACE),$(SPACE_ESC),$(subst $(COLON),$(COLON_ESC),$(1)))
+DECODE_ESC = $(subst $(COLON_ESC),$(COLON),$(subst $(SPACE_ESC),$(SPACE),$(1)))
+ENCODE_4MAKE = $(subst $(SPACE),$(SPACE_ESC),$(1))
+DECODE_4MAKE = $(subst $(SPACE_ESC),$(SPACE),$(1))
+
+CONVERT_TO_OUT = $(subst $(DOTDOT),$(DOTDOT_OUT),$(subst $(COLON),$(COLON_OUT),$(subst $(SPACE),$(SPACE_OUT),$(1))))
+CONVERT_ESC_TO_OUT = $(subst $(DOTDOT),$(DOTDOT_OUT),$(subst $(COLON_ESC),$(COLON_OUT),$(subst $(SPACE_ESC),$(SPACE_OUT),$(1))))
+CONVERT_4MAKE_TO_OUT = $(subst $(DOTDOT),$(DOTDOT_OUT),$(subst $(COLON),$(COLON_OUT),$(subst $(SPACE_ESC),$(SPACE_OUT),$(1))))
+
+PROC_NO_EXIST = $(if $(wildcard $(1)),,$(call $(2),$(1)))
+define MAKEDIRS0
+ @echo ' Building directory: $(1)'
+ @$(MKDIR) $(MKDIR_OP) $(subst $(BSLASH),/,$(1))
+endef
+MAKEDIRS = $(call PROC_NO_EXIST,$(1),MAKEDIRS0)
--- /dev/null
+#
+# Usege : make -f <proj_root>/Build/makefile -C <proj_root>
+#
+
+BUILD_SCRIPT_VERSION := 1.1.0
+
+.PHONY : app_version app_build app_clean build_version
+
+
+all : app_build
+
+clean : app_clean
+
+version : build_version
+
+#PROJ_ROOT = .
+BUILD_ROOT := $(PROJ_PATH)/Build#
+
+ifeq ($(MAKE_NAME),mingw32-make)
+ifneq ($(SHELL),)
+OPTIONS += --eval="SHELL=$(SHELL)"
+endif
+endif
+
+app_build :
+ @echo $(MAKE) -f "$(BUILD_ROOT)/makefile.mk"
+ @$(MAKE_BIN) -f "$(BUILD_ROOT)/makefile.mk" -C "$(PROJ_PATH)" $(OPTIONS)
+
+app_clean :
+ @$(MAKE) -f "$(BUILD_ROOT)/makefile.mk" -C "$(PROJ_PATH)" $(OPTIONS) clean
+
+build_version :
+ @echo makefile : $(BUILD_SCRIPT_VERSION)
+ @$(MAKE) -f "$(BUILD_ROOT)/makefile.mk" -C "$(PROJ_PATH)" $(OPTIONS) version
--- /dev/null
+#
+# Usege : make -f <proj_root>/Build/makefile -C <proj_root>
+#
+
+BUILD_SCRIPT_VERSION := 1.2.3
+
+.PHONY : app_version app_clean build_version
+
+
+all : app_build
+
+clean : app_clean
+
+version : build_version
+
+
+#PROJ_ROOT := $(call BSLASH2SLASH,$(PROJ_PATH))
+PROJ_ROOT := .
+BUILD_ROOT := $(PROJ_ROOT)/Build
+
+include $(BUILD_ROOT)/basedef.mk
+
+include $(PROJ_ROOT)/project_def.prop
+-include $(PROJ_ROOT)/build_def.prop
+
+include $(BUILD_ROOT)/funcs.mk
+
+-include $(BUILD_ROOT)/tooldef.mk
+-include $(BUILD_ROOT)/flags.mk
+-include $(BUILD_ROOT)/platform.mk
+
+
+APPTYPE := $(type)
+
+OUTPUT_DIR := $(PROJ_ROOT)/$(BUILD_CONFIG)
+OBJ_OUTPUT := $(OUTPUT_DIR)/objs
+
+LOWER_APPNAME := $(call LOWER_CASE,$(APPNAME))
+APPID2 := $(subst $(basename $(APPID)).,,$(APPID))
+
+ifeq ($(strip $(APPTYPE)),app)
+APPFILE := $(OUTPUT_DIR)/$(LOWER_APPNAME)
+endif
+ifeq ($(strip $(APPTYPE)),staticLib)
+APPFILE := $(OUTPUT_DIR)/lib$(LOWER_APPNAME).a
+endif
+ifeq ($(strip $(APPTYPE)),sharedLib)
+APPFILE := $(OUTPUT_DIR)/lib$(LOWER_APPNAME).so
+endif
+
+ifneq ($(strip $(PLATFORM_INCS)),)
+PLATFORM_INCS_FILE := $(OBJ_OUTPUT)/platform_incs_file.inc
+endif
+
+include $(BUILD_ROOT)/build_c.mk
+
+
+ifeq ($(strip $(APPTYPE)),app)
+EXT_OP := -fPIE
+endif
+ifeq ($(strip $(APPTYPE)),staticLib)
+EXT_OP := -fPIE
+endif
+ifeq ($(strip $(APPTYPE)),sharedLib)
+EXT_OP := -fPIC
+endif
+
+C_OPT := $(COMPILE_FLAGS) $(TC_COMPILER_MISC) $(RS_COMPILER_MISC) $(EXT_OP) --sysroot="$(SYSROOT)" -Werror-implicit-function-declaration $(M_OPT) $(USER_C_OPTS)
+CPP_OPT := $(CPP_COMPILE_FLAGS) $(TC_COMPILER_MISC) $(RS_COMPILER_MISC) $(EXT_OP) --sysroot="$(SYSROOT)" -Werror-implicit-function-declaration $(M_OPT) $(USER_CPP_OPTS)
+C_OPT_FILE := $(PLATFORM_INCS_FILE)
+
+OBJS := #
+
+# Global C/C++
+ifeq ($(strip $(USER_ROOT)),)
+USER_ROOT := $(PROJ_ROOT)
+endif
+$(eval $(call C_PROC_RAW,$(OBJ_OUTPUT),$(USER_SRCS),$(USER_INC_DIRS),$(USER_INC_FILES),$(USER_DEFS),$(USER_UNDEFS),$(C_OPT),$(C_OPT_FILE),C,c,$(CC),OBJS))
+$(foreach ext,cpp cxx cc c++ C,$(eval $(call C_PROC_RAW,$(OBJ_OUTPUT),$(USER_SRCS),$(USER_INC_DIRS),$(USER_CPP_INC_FILES),$(USER_CPP_DEFS),$(USER_CPP_UNDEFS),$(CPP_OPT),$(C_OPT_FILE),C++,$(ext),$(CXX),OBJS)))
+
+# Individual C/C++
+ifneq ($(strip $(USER_EXT_C_KEYS)),)
+$(foreach var,$(USER_EXT_C_KEYS),$(eval $(call C_PROC_RAW,$(OBJ_OUTPUT),$(USER_EXT_$(var)_SRCS),$(USER_EXT_$(var)_INC_DIRS),$(USER_EXT_$(var)_INC_FILES),$(USER_EXT_$(var)_DEFS),$(USER_EXT_$(var)_UNDEFS),$(C_OPT),$(C_OPT_FILE),C,c,$(CC),OBJS)))
+$(foreach ext,cpp cxx cc c++ C,$(foreach var,$(USER_EXT_C_KEYS),$(eval $(call C_PROC_RAW,$(OBJ_OUTPUT),$(USER_EXT_$(var)_SRCS),$(USER_EXT_$(var)_INC_DIRS),$(USER_EXT_$(var)_CPP_INC_FILES),$(USER_EXT_$(var)_CPP_DEFS),$(USER_EXT_$(var)_CPP_UNDEFS),$(CPP_OPT),$(C_OPT_FILE),C++,$(ext),$(CXX),OBJS))))
+endif
+
+
+ifneq ($(strip $(USER_LIB_DIRS)),)
+_ENC_USER_LIB_DIRS := $(call ENCODE_4MAKE,$(USER_LIB_DIRS))
+_ENC_USER_LIB_DIRS := $(addprefix -L,$(_ENC_USER_LIB_DIRS))
+LIBPATHS := $(call DECODE_4MAKE,$(_ENC_USER_LIB_DIRS))
+endif
+
+LIBS += $(addprefix -l,$(USER_LIBS))
+
+UOBJS += $(USER_OBJS)
+
+M_OPT = -MMD -MP -MF"$(@:%.o=%.d)"
+
+DEPS := $(OBJS:.o=.d)
+
+ifneq ($(strip $(DEPS)),)
+-include $(PROJ_ROOT)/Build/$(DEPS)
+endif
+
+
+ifeq ($(strip $(APPTYPE)),app)
+$(APPFILE) : $(OBJS) $(UOBJS)
+ @echo ' Building target: $@'
+ @echo ' Invoking: C/C++ Linker'
+ $(call MAKEDIRS,$(@D))
+ $(CXX) -o $(APPFILE) $(OBJS) $(UOBJS) $(LIBPATHS) -Xlinker --as-needed $(LIBS) $(LINK_FLAGS) $(TC_LINKER_MISC) $(RS_LINKER_MISC) -pie -lpthread --sysroot="$(SYSROOT)" -Xlinker --version-script="$(PROJ_ROOT)/.exportMap" $(RS_LIB_PATHS) $(RS_LIBRARIES) -Xlinker -rpath="/opt/usr/apps/$(APPID)/lib" -Werror-implicit-function-declaration $(USER_LINK_OPTS)
+ @echo ' Finished building target: $@'
+endif
+ifeq ($(strip $(APPTYPE)),staticLib)
+$(APPFILE) : $(OBJS) $(UOBJS)
+ @echo ' Building target: $@'
+ @echo ' Invoking: Archive utility'
+ $(call MAKEDIRS,$(@D))
+ $(AR) -r $(APPFILE) $(OBJS) $(UOBJS) $(AR_FLAGS) $(USER_LINK_OPTS)
+ @echo ' Finished building target: $@'
+endif
+ifeq ($(strip $(APPTYPE)),sharedLib)
+$(APPFILE) : $(OBJS) $(UOBJS)
+ @echo ' Building target: $@'
+ @echo ' Invoking: C/C++ Linker'
+ $(call MAKEDIRS,$(@D))
+ $(CXX) -o $(APPFILE) $(OBJS) $(UOBJS) $(LIBPATHS) -Xlinker --as-needed $(LIBS) $(LINK_FLAGS) $(TC_LINKER_MISC) $(RS_LINKER_MISC) -shared -lpthread --sysroot="$(SYSROOT)" $(RS_LIB_PATHS) $(RS_LIBRARIES) $(USER_LINK_OPTS)
+ @echo ' Finished building target: $@'
+endif
+
+
+$(OBJ_OUTPUT) :
+ $(call MAKEDIRS,$@)
+
+$(OUTPUT_DIR) :
+ $(call MAKEDIRS,$@)
+
+
+ifneq ($(strip $(PLATFORM_INCS)),)
+$(PLATFORM_INCS_FILE) : $(OBJ_OUTPUT)
+ @echo ' Building inc file: $@'
+ifneq ($(findstring Windows,$(OS)),)
+ifneq ($(findstring 3.82,$(MAKE_VERSION)),)
+ $(file > $@,$(PLATFORM_INCS))
+else
+ @echo $(PLATFORM_INCS) > $@
+endif
+else
+ @echo $(PLATFORM_INCS) > $@
+endif
+endif
+
+
+include $(BUILD_ROOT)/build_edc.mk
+
+#ifeq ($(strip $(ENVENTOR_SHARED_RES_PATH)),)
+ENVENTOR_SHARED_RES_PATH ?= $(ENVENTOR_PATH)/share/enventor
+#endif
+
+EDJ_FILES :=
+
+# Global EDCs
+ifneq ($(strip $(USER_EDCS)),)
+$(eval $(call EDJ_PROC_RAW,$(OUTPUT_DIR),$(USER_EDCS),$(USER_EDCS_IMAGE_DIRS),$(USER_EDCS_SOUND_DIRS),$(USER_EDCS_FONT_DIRS),EDJ_FILES))
+endif
+
+# Individual EDCs
+ifneq ($(strip $(USER_EXT_EDC_KEYS)),)
+$(foreach var,$(USER_EXT_EDC_KEYS),$(eval $(call EDJ_PROC_RAW,$(OUTPUT_DIR),$(USER_EXT_$(var)_EDCS),$(USER_EXT_$(var)_EDCS_IMAGE_DIRS),$(USER_EXT_$(var)_EDCS_SOUND_DIRS),$(USER_EXT_$(var)_EDCS_FONT_DIRS),EDJ_FILES)))
+endif
+
+
+include $(BUILD_ROOT)/build_po.mk
+
+MO_FILES :=
+
+# Global POs
+ifneq ($(strip $(USER_POS)),)
+$(eval $(call MO_PROC_RAW,$(OUTPUT_DIR),$(USER_POS),$(APPID2),MO_FILES))
+endif
+
+
+secondary-outputs : $(EDJ_FILES) $(MO_FILES)
+
+-include appendix.mk
+
+app_build : $(OUTPUT_DIR) $(APPFILE) secondary-outputs
+ @echo ========= done =========
+
+
+app_clean :
+ rm -f $(APPFILE)
+ rm -rf $(OUTPUT_DIR)
+
+build_version :
+ @echo makefile.mk : $(BUILD_SCRIPT_VERSION)
--- /dev/null
+# Add inputs and outputs from these tool invocations to the build variables
+
+SYSROOT = $(SBI_SYSROOT)
+
+USR_INCS := $(addprefix -I $(SYSROOT),$(PLATFORM_INCS_EX))
+
+ifeq ($(strip $(PLATFORM_LIB_PATHS)),)
+RS_LIB_PATHS := "$(SYSROOT)/usr/lib"
+else
+RS_LIB_PATHS := $(addprefix -L$(SYSROOT),$(PLATFORM_LIB_PATHS))
+endif
+
+RS_LIBRARIES := $(addprefix -l,$(RS_LIBRARIES_EX))
+
+PLATFORM_INCS = $(USR_INCS) -I"$(SDK_PATH)/library"
--- /dev/null
+# Add inputs and outputs from these tool invocations to the build variables
+
+ifneq ($(strip $(SHELL_BIN)),)
+SHELL = $(SHELL_BIN)
+else
+SHELL = sh
+endif
+
+ifneq ($(strip $(MKDIR_BIN)),)
+MKDIR = $(MKDIR_BIN)
+MKDIR_OP = -p
+else
+MKDIR = mkdir
+MKDIR_OP = -p
+endif
+
+ifneq ($(strip $(UNAME_BIN)),)
+UNAME = $(UNAME_BIN)
+else
+UNAME = uname
+endif
+
+ifneq ($(strip $(M4_BIN)),)
+M4 = $(M4_BIN)
+else
+M4 = m4
+endif
+
+ifneq ($(strip $(TR_BIN)),)
+TR = $(TR_BIN)
+else
+TR = tr
+endif
+
+ifneq ($(strip $(FIND_BIN)),)
+FIND = $(FIND_BIN)
+else
+FIND = find
+endif
+
+ifneq ($(strip $(SED_BIN)),)
+SED = $(SED_BIN)
+else
+SED = sed
+endif
+
+ifneq ($(strip $(GREP_BIN)),)
+GREP = $(GREP_BIN)
+else
+GREP = grep
+endif
+
+ifneq ($(strip $(EDJE_CC_BIN)),)
+EDJE_CC = $(EDJE_CC_BIN)
+else
+EDJE_CC = edje_cc
+endif
+
+ifneq ($(strip $(MSGFMT_BIN)),)
+MSGFMT = $(MSGFMT_BIN)
+else
+MSGFMT = msgfmt
+endif
+
+ifneq ($(strip $(CKSUM_BIN)),)
+CKSUM = $(CKSUM_BIN)
+else
+CKSUM = cksum
+endif
+
--- /dev/null
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+PROJECT(videos C CXX)
+
+EXEC_PROGRAM(uname ARGS -m OUTPUT_VARIABLE CMAKE_SYSTEM_VERSION)
+
+SET(SRCS
+src/video-player.c
+
+src/common/mp-util-media-service.c
+src/common/mp-video-info-ctrl.c
+src/common/mp-util.c
+src/common/mp-drm-ctrl.c
+src/common/mp-util-config.c
+src/common/mp-util-preference.c
+src/common/mp-video-util-db-controller.c
+src/common/mp-rotate-ctrl.c
+
+src/feature/mp-launching-video-displayer.c
+src/feature/mp-util-move.c
+
+src/widget/mp-external-ug.c
+src/widget/mp-video-list-option-ctrl.c
+src/widget/mp-video-view-popup-ctrl.c
+src/widget/mp-video-list-sort-ctrl.c
+src/widget/mp-util-widget-ctrl.c
+src/widget/mp-video-rename-ctrl.c
+src/widget/mp-video-list-view-as-ctrl.c
+src/widget/mp-video-list-auto-play-ctrl.c
+src/widget/mp-footer-toolbar.c
+src/widget/mp-video-nocontent-layout.c
+
+src/view/mp-library-view-mgr.c
+src/view/mp-video-list-view-main.c
+src/view/mp-video-list-view-common.c
+src/view/mp-video-list-view-normal.c
+src/view/mp-video-list-view-select.c
+src/view/mp-video-list-view-folder.c
+src/view/mp-video-list-view-item-of-folder.c
+src/view/mp-video-list-view-thumbnail.c
+src/view/mp-video-list-share-via-view.c
+src/view/mp-video-list-folder-share-via-view.c
+src/view/mp-video-list-remove-ctrl.c
+src/view/mp-video-search-view.c
+src/view/mp-video-detail-view.c
+src/view/mp-video-list-remove-view.c
+src/view/mp-video-list-personal-view.c
+src/view/mp-video-list-personal-ctrl.c
+src/viewMgr/videos-view-mgr.c
+)
+
+INCLUDE_DIRECTORIES(
+ ${CMAKE_SOURCE_DIR}/include
+ ${CMAKE_SOURCE_DIR}/include/common
+ ${CMAKE_SOURCE_DIR}/include/feature
+ ${CMAKE_SOURCE_DIR}/include/viewMgr
+ ${CMAKE_SOURCE_DIR}/include/widget
+ ${CMAKE_SOURCE_DIR}/include/view
+ ${CMAKE_SOURCE_DIR}/core/include
+ ${CMAKE_SOURCE_DIR}/videocam/include
+ ${CMAKE_SOURCE_DIR}/videocam/include
+
+ ${CMAKE_SOURCE_DIR}/video-downloader/include
+
+## [ MEDIA SERVICE] ###############################
+ ${CMAKE_SOURCE_DIR}/common/include
+ ${CMAKE_SOURCE_DIR}/core/include
+
+## [ Play View] ###############################
+ ${CMAKE_SOURCE_DIR}/playview/include
+)
+
+INCLUDE(FindPkgConfig)
+pkg_check_modules(pkgs REQUIRED
+ elementary
+ capi-appfw-application
+ capi-system-system-settings
+ libxml-2.0
+ evas
+ edje
+ efreet-mime
+ capi-appfw-preference
+ capi-media-image-util
+ capi-media-metadata-extractor
+ capi-network-wifi-direct
+ capi-content-media-content
+ capi-web-url-download
+ capi-content-mime-type
+ capi-system-media-key
+ shortcut
+ storage
+ capi-system-sensor
+ notification
+ capi-system-runtime-info
+ capi-network-connection
+ appcore-efl
+ tapi
+ libcore-context-manager
+ capi-base-utils-i18n
+ efl-extension
+ capi-telephony
+ capi-appfw-preference
+ libtzplatform-config
+)
+
+FOREACH(flag ${pkgs_CFLAGS})
+ SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
+ENDFOREACH(flag)
+
+SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -DMACHINE_$ENV{MACHINE}")
+
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fPIC -fvisibility=hidden")
+
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fdata-sections -ffunction-sections -Wl,--gc-sections")
+SET(CMAKE_C_FLAGS_DEBUG "-O0 -Wall -g -fpie")
+SET(CMAKE_C_FLAGS_RELEASE "-O2 -Wall -g -fpie")
+SET(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -Xassembler -W -fPIC")
+SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -pie -Wl,-z,noexecstack")
+
+
+#SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
+#SET(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fPIC -fvisibility=hidden")
+#SET(CMAKE_C_FLAGS_DEBUG "-O0 -g -fpie")
+#SET(CMAKE_C_FLAGS_RELEASE "-O2 -fpie")
+
+
+ADD_DEFINITIONS("-DPREFIX=\"${CMAKE_INSTALL_PREFIX}\"")
+ADD_DEFINITIONS("-DFACTORYFS=\"$ENV{FACTORYFS}\"")
+ADD_DEFINITIONS("-D_LARGEFILE64_SOURCE")
+#ADD_DEFINITIONS("-D_FILE_OFFSET_BITS=\"\"64")
+
+IF(ENABLE_HW_BACK_KEY)
+ADD_DEFINITIONS("-D_ENABLE_HW_BACK_KEY")
+ENDIF(ENABLE_HW_BACK_KEY)
+
+
+SET(PREFIX ${CMAKE_INSTALL_PREFIX})
+SET(BINDIR "${PREFIX}/bin")
+SET(RESDIR "${PREFIX}/res")
+SET(LOCALEDIR "${RESDIR}/locale")
+SET(ICONDIR "${RESDIR}/icons/default/small")
+SET(EDJDIR "${RESDIR}/edje")
+SET(SHAREDRESDIR "${PREFIX}/shared/res")
+SET(SLP_LD_PATH_FLAGS -L${CMAKE_CURRENT_SOURCE_DIR}/src/ext)
+
+ADD_DEFINITIONS("-DPREFIX=\"${PREFIX}\"")
+ADD_DEFINITIONS("-DRESDIR=\"${RESDIR}\"")
+ADD_DEFINITIONS("-DLOCALEDIR=\"${LOCALEDIR}\"")
+ADD_DEFINITIONS("-DICONDIR=\"${ICONDIR}\"")
+ADD_DEFINITIONS("-DEDJDIR=\"${EDJDIR}\"")
+ADD_DEFINITIONS("-D_FILE_OFFSET_BITS=64")
+ADD_DEFINITIONS("-DUSE_SWITCH")
+#ADD_DEFINITIONS("-DUSE_DOWNLOAD_CODEC")
+ADD_DEFINITIONS("-DENABLE_LANDSCAPE")
+ADD_DEFINITIONS("-DENABLE_PERSONAL")
+ADD_DEFINITIONS("-DENABLE_SUBTITLE")
+ADD_DEFINITIONS("-DENABLE_NOTICE_POPUP")
+ADD_DEFINITIONS("-D_USE_OPENGL_BACKEND")
+ADD_DEFINITIONS("-DENABLE_EMBEDED_PROGRESS")
+ADD_DEFINITIONS("-DENABLE_S_BEAM")
+
+### Define Features ###
+
+## Videos ##
+
+# Video list view #
+#ADD_DEFINITIONS("-DVS_FEATURE_LIST_VIEW")
+ADD_DEFINITIONS("-DVS_FEATURE_THUMBNAIL_VIEW")
+ADD_DEFINITIONS("-DVS_FEATURE_FOLDER_VIEW")
+
+# DRM FEATURE #
+#ADD_DEFINITIONS("-DENABLE_DRM_FEATURE");
+
+IF("${ARCH}" STREQUAL "arm")
+ ADD_DEFINITIONS("-DTARGET")
+ENDIF("${ARCH}" STREQUAL "arm")
+
+SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -pie")
+SET(CMAKE_LDFLAGS "-Wl,-zdefs" )
+
+ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS})
+TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS} ${gles_pkg_LDFLAGS} common playview core video-downloader -ldl)
+
+ADD_CUSTOM_TARGET(vp_font.edj COMMAND edje_cc -no-save -id ${CMAKE_SOURCE_DIR}/res/images
+${CMAKE_SOURCE_DIR}/res/edje/vp_font.edc
+${CMAKE_BINARY_DIR}/res/edje/vp_font.edj DEPENDS
+${CMAKE_SOURCE_DIR}/res/edje/vp_font.edc)
+
+ADD_CUSTOM_TARGET(image_res.edj COMMAND edje_cc -no-save -id ${CMAKE_SOURCE_DIR}/res/images
+${CMAKE_SOURCE_DIR}/res/edje/image_res.edc
+${CMAKE_BINARY_DIR}/res/edje/image_res.edj DEPENDS
+${CMAKE_SOURCE_DIR}/res/edje/image_res.edc)
+
+ADD_CUSTOM_TARGET(panel.edj COMMAND edje_cc -no-save -id ${CMAKE_SOURCE_DIR}/res/images
+${CMAKE_SOURCE_DIR}/res/edje/panel.edc
+${CMAKE_BINARY_DIR}/res/edje/panel.edj DEPENDS
+${CMAKE_SOURCE_DIR}/res/edje/panel.edc)
+
+ADD_CUSTOM_TARGET(vp-custom-winset-style.edj COMMAND edje_cc -no-save -id ${CMAKE_SOURCE_DIR}/res/images -sd ${CMAKE_SOURCE_DIR}/res/edje
+${CMAKE_SOURCE_DIR}/res/edje/vp-custom-winset-style.edc
+${CMAKE_BINARY_DIR}/res/edje/vp-custom-winset-style.edj DEPENDS
+${CMAKE_SOURCE_DIR}/res/edje/vp-custom-winset-style.edc)
+
+ADD_CUSTOM_TARGET(popup_progressbar.edj COMMAND edje_cc -no-save -id ${CMAKE_SOURCE_DIR}/res/images
+${CMAKE_SOURCE_DIR}/res/edje/popup_progressbar.edc
+${CMAKE_BINARY_DIR}/res/edje/popup_progressbar.edj DEPENDS
+${CMAKE_SOURCE_DIR}/res/edje/popup_progressbar.edc)
+
+ADD_CUSTOM_TARGET(landscape_thumbnail.edj COMMAND edje_cc -no-save -id ${CMAKE_SOURCE_DIR}/res/images
+${CMAKE_SOURCE_DIR}/res/edje/landscape_thumbnail.edc
+${CMAKE_BINARY_DIR}/res/edje/landscape_thumbnail.edj DEPENDS
+${CMAKE_SOURCE_DIR}/res/edje/landscape_thumbnail.edc)
+
+ADD_CUSTOM_TARGET(vp-speedbox-popup.edj COMMAND edje_cc -no-save -id ${CMAKE_SOURCE_DIR}/res/images
+${CMAKE_SOURCE_DIR}/res/edje/vp-speedbox-popup.edc
+${CMAKE_BINARY_DIR}/res/edje/vp-speedbox-popup.edj DEPENDS
+${CMAKE_SOURCE_DIR}/res/edje/vp-speedbox-popup.edc)
+
+ADD_CUSTOM_TARGET(vp-remove-list-internal.edj COMMAND edje_cc -no-save -id ${CMAKE_SOURCE_DIR}/res/images
+${CMAKE_SOURCE_DIR}/res/edje/vp-remove-list-internal.edc
+${CMAKE_BINARY_DIR}/res/edje/vp-remove-list-internal.edj DEPENDS
+${CMAKE_SOURCE_DIR}/res/edje/vp-remove-list-internal.edc)
+
+ADD_CUSTOM_TARGET(vp-main-listview-internal.edj COMMAND edje_cc -no-save -id ${CMAKE_SOURCE_DIR}/res/images
+${CMAKE_SOURCE_DIR}/res/edje/vp-main-listview-internal.edc
+${CMAKE_BINARY_DIR}/res/edje/vp-main-listview-internal.edj DEPENDS
+${CMAKE_SOURCE_DIR}/res/edje/vp-main-listview-internal.edc)
+
+ADD_CUSTOM_TARGET(vp-genlist-no-item.edj COMMAND edje_cc -no-save -id ${CMAKE_SOURCE_DIR}/res/images
+${CMAKE_SOURCE_DIR}/res/edje/vp-genlist-no-item.edc
+${CMAKE_BINARY_DIR}/res/edje/vp-genlist-no-item.edj DEPENDS
+${CMAKE_SOURCE_DIR}/res/edje/vp-genlist-no-item.edc)
+
+ADD_CUSTOM_TARGET(vp-device-list-internal.edj COMMAND edje_cc -no-save -id ${CMAKE_SOURCE_DIR}/res/images
+${CMAKE_SOURCE_DIR}/res/edje/vp-device-list-internal.edc
+${CMAKE_BINARY_DIR}/res/edje/vp-device-list-internal.edj DEPENDS
+${CMAKE_SOURCE_DIR}/res/edje/vp-device-list-internal.edc)
+
+ADD_CUSTOM_TARGET(vp-main-listview-preview.edj COMMAND edje_cc -no-save -id ${CMAKE_SOURCE_DIR}/res/images -sd ${CMAKE_SOURCE_DIR}/res/edje
+${CMAKE_SOURCE_DIR}/res/edje/vp-main-listview-preview.edc
+${CMAKE_BINARY_DIR}/res/edje/vp-main-listview-preview.edj DEPENDS
+${CMAKE_SOURCE_DIR}/res/edje/vp-main-listview-preview.edc)
+
+ADD_CUSTOM_TARGET(vp-search-view-internal.edj COMMAND edje_cc -no-save -id ${CMAKE_SOURCE_DIR}/res/images
+${CMAKE_SOURCE_DIR}/res/edje/vp-search-view-internal.edc
+${CMAKE_BINARY_DIR}/res/edje/vp-search-view-internal.edj DEPENDS
+${CMAKE_SOURCE_DIR}/res/edje/vp-search-view-internal.edc)
+
+ADD_CUSTOM_TARGET(vp-images.edj COMMAND edje_cc -no-save -id ${CMAKE_SOURCE_DIR}/res/images
+${CMAKE_SOURCE_DIR}/res/edje/vp-images.edc
+${CMAKE_BINARY_DIR}/res/edje/vp-images.edj DEPENDS
+${CMAKE_SOURCE_DIR}/res/edje/vp-images.edc)
+
+ADD_CUSTOM_TARGET(vp-motion-popup.edj COMMAND edje_cc -no-save -id ${CMAKE_SOURCE_DIR}/res/images
+${CMAKE_SOURCE_DIR}/res/edje/vp-motion-popup.edc
+${CMAKE_BINARY_DIR}/res/edje/vp-motion-popup.edj DEPENDS
+${CMAKE_SOURCE_DIR}/res/edje/vp-motion-popup.edc)
+
+ADD_CUSTOM_TARGET(vp-ctxpopup-option.edj COMMAND edje_cc -no-save -id ${CMAKE_SOURCE_DIR}/res/images
+${CMAKE_SOURCE_DIR}/res/edje/vp-ctxpopup-option.edc
+${CMAKE_BINARY_DIR}/res/edje/vp-ctxpopup-option.edj DEPENDS
+${CMAKE_SOURCE_DIR}/res/edje/vp-ctxpopup-option.edc)
+
+ADD_CUSTOM_TARGET(vp-thumbnail-view.edj COMMAND edje_cc -no-save -id ${CMAKE_SOURCE_DIR}/res/images -sd ${CMAKE_SOURCE_DIR}/res/edje
+${CMAKE_SOURCE_DIR}/res/edje/vp-thumbnail-view.edc
+${CMAKE_BINARY_DIR}/res/edje/vp-thumbnail-view.edj DEPENDS
+${CMAKE_SOURCE_DIR}/res/edje/vp-thumbnail-view.edc)
+
+ADD_CUSTOM_TARGET(vp-main-layout.edj COMMAND edje_cc -no-save -id ${CMAKE_SOURCE_DIR}/res/images
+${CMAKE_SOURCE_DIR}/res/edje/vp-main-layout.edc
+${CMAKE_BINARY_DIR}/res/edje/vp-main-layout.edj DEPENDS
+${CMAKE_SOURCE_DIR}/res/edje/vp-main-layout.edc)
+
+ADD_CUSTOM_TARGET(vp-naviframe.edj COMMAND edje_cc -no-save -id ${CMAKE_SOURCE_DIR}/res/images
+${CMAKE_SOURCE_DIR}/res/edje/vp-naviframe.edc
+${CMAKE_BINARY_DIR}/res/edje/vp-naviframe.edj DEPENDS
+${CMAKE_SOURCE_DIR}/res/edje/vp-naviframe.edc)
+
+ADD_DEPENDENCIES(${PROJECT_NAME} vp_font.edj)
+ADD_DEPENDENCIES(${PROJECT_NAME} image_res.edj)
+ADD_DEPENDENCIES(${PROJECT_NAME} panel.edj)
+ADD_DEPENDENCIES(${PROJECT_NAME} vp-custom-winset-style.edj)
+ADD_DEPENDENCIES(${PROJECT_NAME} popup_progressbar.edj)
+ADD_DEPENDENCIES(${PROJECT_NAME} landscape_thumbnail.edj)
+ADD_DEPENDENCIES(${PROJECT_NAME} vp-speedbox-popup.edj)
+ADD_DEPENDENCIES(${PROJECT_NAME} vp-remove-list-internal.edj)
+ADD_DEPENDENCIES(${PROJECT_NAME} vp-main-listview-internal.edj)
+ADD_DEPENDENCIES(${PROJECT_NAME} vp-genlist-no-item.edj)
+ADD_DEPENDENCIES(${PROJECT_NAME} vp-device-list-internal.edj)
+ADD_DEPENDENCIES(${PROJECT_NAME} vp-main-listview-preview.edj)
+ADD_DEPENDENCIES(${PROJECT_NAME} vp-search-view-internal.edj)
+ADD_DEPENDENCIES(${PROJECT_NAME} vp-images.edj)
+ADD_DEPENDENCIES(${PROJECT_NAME} vp-motion-popup.edj)
+ADD_DEPENDENCIES(${PROJECT_NAME} vp-ctxpopup-option.edj)
+ADD_DEPENDENCIES(${PROJECT_NAME} vp-thumbnail-view.edj)
+ADD_DEPENDENCIES(${PROJECT_NAME} vp-main-layout.edj)
+ADD_DEPENDENCIES(${PROJECT_NAME} vp-naviframe.edj)
+
+######################################
+# install desktop file & icon, edje #
+######################################
+
+INSTALL(TARGETS ${PROJECT_NAME} DESTINATION bin)
+INSTALL(FILES ${CMAKE_BINARY_DIR}/res/edje/vp_font.edj DESTINATION ${EDJDIR})
+INSTALL(FILES ${CMAKE_BINARY_DIR}/res/edje/image_res.edj DESTINATION ${EDJDIR})
+INSTALL(FILES ${CMAKE_BINARY_DIR}/res/edje/panel.edj DESTINATION ${EDJDIR})
+INSTALL(FILES ${CMAKE_BINARY_DIR}/res/edje/vp-custom-winset-style.edj DESTINATION ${EDJDIR})
+INSTALL(FILES ${CMAKE_BINARY_DIR}/res/edje/popup_progressbar.edj DESTINATION ${EDJDIR})
+INSTALL(FILES ${CMAKE_BINARY_DIR}/res/edje/landscape_thumbnail.edj DESTINATION ${EDJDIR})
+INSTALL(FILES ${CMAKE_BINARY_DIR}/res/edje/vp-speedbox-popup.edj DESTINATION ${EDJDIR})
+INSTALL(FILES ${CMAKE_BINARY_DIR}/res/edje/vp-remove-list-internal.edj DESTINATION ${EDJDIR})
+INSTALL(FILES ${CMAKE_BINARY_DIR}/res/edje/vp-main-listview-internal.edj DESTINATION ${EDJDIR})
+INSTALL(FILES ${CMAKE_BINARY_DIR}/res/edje/vp-genlist-no-item.edj DESTINATION ${EDJDIR})
+INSTALL(FILES ${CMAKE_BINARY_DIR}/res/edje/vp-device-list-internal.edj DESTINATION ${EDJDIR})
+INSTALL(FILES ${CMAKE_BINARY_DIR}/res/edje/vp-main-listview-preview.edj DESTINATION ${EDJDIR})
+INSTALL(FILES ${CMAKE_BINARY_DIR}/res/edje/vp-search-view-internal.edj DESTINATION ${EDJDIR})
+INSTALL(FILES ${CMAKE_BINARY_DIR}/res/edje/vp-images.edj DESTINATION ${EDJDIR})
+INSTALL(FILES ${CMAKE_BINARY_DIR}/res/edje/vp-motion-popup.edj DESTINATION ${EDJDIR})
+INSTALL(FILES ${CMAKE_BINARY_DIR}/res/edje/vp-ctxpopup-option.edj DESTINATION ${EDJDIR})
+INSTALL(FILES ${CMAKE_BINARY_DIR}/res/edje/vp-thumbnail-view.edj DESTINATION ${EDJDIR})
+INSTALL(FILES ${CMAKE_BINARY_DIR}/res/edje/vp-main-layout.edj DESTINATION ${EDJDIR})
+INSTALL(FILES ${CMAKE_BINARY_DIR}/res/edje/vp-naviframe.edj DESTINATION ${EDJDIR})
+
+INSTALL(FILES ${CMAKE_SOURCE_DIR}/org.tizen.videos.xml DESTINATION ${CMAKE_APP_SHARE_PACKAGES_DIR})
+INSTALL(FILES ${CMAKE_SOURCE_DIR}/res/shared/res/video.edc DESTINATION ${SHAREDRESDIR})
+
+INSTALL(FILES ${CMAKE_SOURCE_DIR}/res/images/org.tizen.videos.png DESTINATION ${CMAKE_DESKTOP_ICON_DIR})
+INSTALL(FILES ${CMAKE_SOURCE_DIR}/res/images/core_theme_bg_01.png DESTINATION ${RESDIR}/images)
+
+#video-downloader
+ADD_SUBDIRECTORY(video-downloader)
+
+ADD_SUBDIRECTORY(res/po)
+ADD_SUBDIRECTORY(common)
+ADD_SUBDIRECTORY(core)
+ADD_SUBDIRECTORY(playview)
+
+#chapter-svc
+#ADD_SUBDIRECTORY(chapter-svc)
+
+#video-player
+ADD_SUBDIRECTORY(vp-main)
--- /dev/null
+Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
\ No newline at end of file
--- /dev/null
+Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+Except as noted, this software is licensed under Apache License, Version 2.
+Please, see the LICENSE file for Apache License terms and conditions.
\ No newline at end of file
--- /dev/null
+vp-main
+./
--- /dev/null
+
+# Add pre/post build process
+PREBUILD_DESC =
+PREBUILD_COMMAND =
+POSTBUILD_DESC =
+POSTBUILD_COMMAND =
--- /dev/null
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+PROJECT(common C)
+
+SET(PREFIX ${CMAKE_INSTALL_PREFIX})
+SET(VERSION 0.1.0)
+
+SET(SRCS
+ src/vp-db-util.c
+ src/vp-preview-db.c
+ src/vp-thumb-db.c
+ src/vp-chapter-db.c
+ src/vp-media-content-util.c
+ src/vp-util.c
+ src/vp-file-util.c
+ src/vp-pinch-zoom.c
+)
+
+INCLUDE_DIRECTORIES(
+ include
+ src
+ src/include
+ src/uuid
+)
+
+INCLUDE(FindPkgConfig)
+pkg_check_modules(${PROJECT_NAME}_pkgs REQUIRED
+ elementary
+ ecore
+ ecore-evas
+ edje
+ eina
+ evas
+ dlog
+ sqlite3
+ capi-content-media-content
+ storage
+)
+
+FOREACH(flag ${${PROJECT_NAME}_pkgs_CFLAGS})
+ SET(EXTRA_CXXFLAGS "${EXTRA_CXXFLAGS} ${flag}")
+ENDFOREACH(flag)
+
+SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CXXFLAGS} -Wall")
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CMAKE_CXX_FLAGS}")
+
+ADD_DEFINITIONS("-DPREFIX=\"${CMAKE_INSTALL_PREFIX}\"")
+
+ADD_LIBRARY(${PROJECT_NAME} STATIC ${SRCS})
+
+SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES SOVERSION ${VERSION} )
+SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/lib)
+
+TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${${PROJECT_NAME}_pkgs_LDFLAGS})
+
+
+#install resouce files.
+# Lack of a trailing slash means install this directory, trailing slash means
+# install everything in this directory.
+
+# Install image files.
+
+INSTALL(TARGETS ${PROJECT_NAME} DESTINATION lib)
+
+
+
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#pragma once
+
+
+#include <stdbool.h>
+#include <glib.h>
+
+typedef void *vp_chapter_db_h;
+
+
+typedef struct _ChapterDBItem {
+ int nIdx;
+ char *szChapterPath;
+ int nFileSize;
+} ChapterDBItem;
+
+#ifdef _cplusplus
+extern "C" {
+#endif
+
+
+ vp_chapter_db_h vp_chapter_db_create();
+ void vp_chapter_db_destroy(vp_chapter_db_h hChapterDB);
+ bool vp_chapter_db_set_media_id(vp_chapter_db_h hChapterDB,
+ const char *szMediaID);
+ bool vp_chapter_db_set_media_url(vp_chapter_db_h hChapterDB,
+ const char *szMediaURL);
+ bool vp_chapter_db_get_items(vp_chapter_db_h hChapterDB,
+ GList ** pChapterList);
+ bool vp_chapter_db_get_all_items_media_id(vp_chapter_db_h hChapterDB,
+ GList ** pChapterList);
+ bool vp_chapter_db_insert(vp_chapter_db_h hChapterDB,
+ const char *szChapterPath, int nIdx);
+ bool vp_chapter_db_delete(vp_chapter_db_h hChapterDB);
+ bool vp_chapter_db_item_count(vp_chapter_db_h hChapterDB, int *nCount);
+ bool vp_chapter_db_item_free(ChapterDBItem * pItem);
+
+
+#ifdef _cplusplus
+}
+#endif
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#pragma once
+
+#include <dlog.h>
+#include <assert.h>
+#include <stdio.h>
+#include <unistd.h>
+#include <linux/unistd.h>
+#include <stdbool.h>
+
+#ifdef _cplusplus
+extern "C" {
+#endif
+
+
+#ifdef LOG_TAG
+#undef LOG_TAG
+#endif
+
+
+#define LOG_TAG "VIDEO_PLAYER"
+
+#ifndef _USE_DLOG_
+#define _USE_DLOG_
+#endif
+
+/* anci c color type */
+#define FONT_COLOR_RESET "\033[0m"
+#define FONT_COLOR_RED "\033[31m"
+#define FONT_COLOR_GREEN "\033[32m"
+#define FONT_COLOR_YELLOW "\033[33m"
+#define FONT_COLOR_BLUE "\033[34m"
+#define FONT_COLOR_PURPLE "\033[35m"
+#define FONT_COLOR_CYAN "\033[36m"
+#define FONT_COLOR_GRAY "\033[37m"
+
+#ifdef _USE_LOG_FILE_
+ FILE *g_log_fp;
+#endif // _USE_LOG_FILE_
+
+#ifdef _USE_LOG_FILE_
+
+
+#elif defined _USE_DLOG_
+
+#define vp_dbg_tid(fmt, arg...) dlog_print(DLOG_DEBUG, LOG_TAG, "[%s : %05d %lu]" fmt "\n", __func__, __LINE__, syscall(__NR_gettid), ##arg)
+#define vp_dbg(fmt, arg...) dlog_print(DLOG_DEBUG, LOG_TAG, "[%s : %05d]" fmt "\n", __func__, __LINE__, ##arg)
+#define vp_dbgW(fmt, arg...) dlog_print(DLOG_INFO, LOG_TAG, "[%s : %05d]" fmt "\n", __func__, __LINE__, ##arg)
+#define vp_dbgE(fmt, arg...) dlog_print(DLOG_ERROR, LOG_TAG, "[%s : %05d]" fmt "\n", __func__, __LINE__, ##arg)
+
+#define vp_sdbg(fmt, arg...) dlog_print(DLOG_DEBUG, LOG_TAG, "[%s : %05d]" fmt "\n", __func__, __LINE__, ##arg)
+#define vp_sdbg_tid(fmt, arg...) dlog_print(DLOG_INFO, LOG_TAG, "[%s : %05d %lu]" fmt "\n", __func__, __LINE__, syscall(__NR_gettid), ##arg)
+#define vp_sdbgE(fmt, arg...) dlog_print(DLOG_ERROR, LOG_TAG, "[%s : %05d]" fmt "\n", __func__, __LINE__, ##arg)
+
+
+#elif defined _USE_LOG_CONSOLE_
+
+
+#else
+
+#define vp_dbg(fmt, arg...)
+#define vp_dbgW(fmt, arg...)
+#define vp_dbgE(fmt, arg...)
+#endif
+
+
+#define vp_retm_if(expr, fmt, arg...) do { \
+ if (expr) { \
+ vp_dbgE(fmt, ##arg); \
+ vp_dbgE("(%s) -> %s() return", #expr, __FUNCTION__); \
+ return; \
+ } \
+} while (0)
+
+#define vp_retvm_if(expr, val, fmt, arg...) do { \
+ if (expr) { \
+ vp_dbgE(fmt, ##arg); \
+ vp_dbgE("(%s) -> %s() return", #expr, __FUNCTION__); \
+ return (val); \
+ } \
+} while (0)
+
+#define CHECK_EXCEP(expr) do { \
+ if (!(expr)) { \
+ vp_dbgE("Critical ERROR ########################################## Check below item.");\
+ goto EXCEPTION;\
+ } \
+} while (0)
+
+#define VP_CHECK_VAL(expr, val) vp_retvm_if(!(expr), val, "Invalid parameter, return ERROR code!")
+#define VP_CHECK_NULL(expr) vp_retvm_if(!(expr), NULL, "Invalid parameter, return NULL!")
+#define VP_CHECK_FALSE(expr) vp_retvm_if(!(expr), false, "Invalid parameter, return FALSE!")
+#define VP_CHECK_CANCEL(expr) vp_retvm_if(!(expr), ECORE_CALLBACK_CANCEL, "Invalid parameter, return ECORE_CALLBACK_CANCEL!")
+#define VP_CHECK(expr) vp_retm_if(!(expr), "Invalid parameter, return!")
+
+#define VP_START_FUNC() dlog_print(DLOG_DEBUG, "*********************** [Func: %s] enter!! ********************* \n", __func__)
+#define VP_END_FUNC() dlog_print(DLOG_DEBUG, "*********************** [Func: %s] leave!! ********************* \n", __func__)
+
+#ifdef _cplusplus
+}
+#endif
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __VP_FILE_UTIL_H__
+#define __VP_FILE_UTIL_H__
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/stat.h>
+#include <dirent.h>
+#include <Elementary.h>
+
+const char *vp_file_get(const char path[]);
+char *vp_dir_get(const char path[]);
+int vp_file_exists(const char *path);
+Eina_Bool vp_is_dir(const char *path);
+int vp_is_dir_empty(const char *path);
+int vp_mkdir(const char *dir);
+int vp_mkpath(const char *path);
+char *vp_strip_ext(const char *path);
+int vp_file_unlink(const char *filename);
+int vp_file_size(const char *filename);
+int vp_file_rmdir(const char *filename);
+Eina_List *vp_file_ls(const char *dir);
+int vp_file_recursive_rm(const char *dir);
+int vp_file_cp(const char *src, const char *dst);
+int vp_file_mv(const char *src, const char *dst);
+
+#endif //__VP_FILE_UTIL_H__
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#pragma once
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <limits.h>
+#include <errno.h>
+#include <assert.h>
+
+#ifndef TRUE
+#define TRUE 1
+#endif
+
+#ifndef FALSE
+#define FALSE 0
+#endif
+
+#define _EDJ(o) elm_layout_edje_get(o)
+#define VP_SCALE elm_config_scale_get()
+
+#define VP_MAX_HEAP_SIZE 5*1024*1024 /*Malloc more than this will not be allowd */
+
+#define VP_ASSERT(scalar_exp) \
+ assert(scalar_exp); \
+
+
+#define VP_CALLOC(ptr, no_elements, type) \
+ do { \
+ if ((int)(no_elements) <= 0) { \
+ ptr = NULL; \
+ } \
+ else if (VP_MAX_HEAP_SIZE < no_elements * sizeof(type)) { \
+ assert(0); \
+ } \
+ else {\
+ ptr = (type *) calloc(no_elements , sizeof(type)); \
+ VP_ASSERT(ptr); \
+ } \
+ } while (0);
+
+#define VP_SNPRINTF(dest, size, format, arg...) \
+ do { \
+ if (dest != NULL && format != NULL) { \
+ snprintf(dest, size, format, ##arg); \
+ } \
+ } while (0);
+
+ /* If the same pointer is passed to free twice, known as a double free.
+ To avoid this, set pointers to NULL after passing them to free:
+ free(NULL) is safe (it does nothing). */
+
+#define VP_FREE(ptr) \
+ do { \
+ if (ptr != NULL) {\
+ free(ptr); \
+ ptr = NULL; \
+ } \
+ } while (0);
+
+#define VP_STRNCPY(dest, src, size) \
+ do { \
+ if (src != NULL && dest != NULL && size > 0) {\
+ strncpy(dest, src, size); \
+ } \
+ } while (0);
+ /*
+ * string wrappers
+ */
+#define VP_STRDUP(destptr, sourceptr)\
+ do {\
+ if (sourceptr == NULL)\
+ destptr = NULL; \
+ else \
+ destptr = strdup(sourceptr); \
+ } while (0);
+
+
+
+#define VP_EVAS_DEL(evas_obj) \
+ do { \
+ if (evas_obj != NULL) {\
+ evas_object_del(evas_obj); \
+ evas_obj = NULL; \
+ } \
+ } while (0);
+
+#define VP_EVAS_TIMER_DEL(evas_obj) \
+ do { \
+ if (evas_obj != NULL) {\
+ ecore_timer_del(evas_obj); \
+ evas_obj = NULL; \
+ } \
+ } while (0);
+
+#define VP_EVAS_IDLER_DEL(evas_obj) \
+ do { \
+ if (evas_obj != NULL) {\
+ ecore_idler_del(evas_obj); \
+ evas_obj = NULL; \
+ } \
+ } while (0);
+
+
+#define VP_EVAS_EVENT_HANDLER_DEL(evas_obj) \
+ do { \
+ if (evas_obj != NULL) {\
+ ecore_event_handler_del(evas_obj); \
+ evas_obj = NULL; \
+ } \
+ } while (0);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#pragma once
+
+#include <stdbool.h>
+
+bool vp_media_content_util_get_video_id(const char *szFilePath,
+ char **szVideoID);
+bool vp_media_content_util_get_first_video(char **szFilePath);
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <app.h>
+#include <glib.h>
+#include <unistd.h>
+#include <stdbool.h>
+#include <Ecore_Evas.h>
+#include <Elementary.h>
+
+#include "mp-util-media-service.h"
+#include "mp-video-log.h"
+#include "mp-util.h"
+#include "mp-video-list-view-thumbnail.h"
+
+typedef struct _vp_gesture_t vp_gesture_s;
+typedef struct _vp_pinch_event_t vp_pinch_event_s;
+typedef enum _vp_pinch_plan_t vp_pinch_plan_e;
+typedef Eina_Bool(*vp_gesture_cb) (Evas_Object * gesture, void *data);
+
+struct _vp_gesture_t {
+ st_VideoListViewMainViewWidget *ad;
+ Evas_Object *parent;
+ Evas_Object *gesture;
+ vp_gesture_cb zoom_in_cb;
+ vp_gesture_cb zoom_out_cb;
+ void *zoom_in_data;
+ void *zoom_out_data;
+
+ int dis_old;
+ int pinch_dis_old;
+ Eina_List *s_event_elist;
+ Ecore_Job *pinch_job;
+ int next_plan;
+};
+
+struct _vp_pinch_event_t {
+ int device;
+
+ struct vp_prev {
+ Evas_Coord x;
+ Evas_Coord y;
+ } prev;
+
+ Evas_Coord x;
+ Evas_Coord y;
+ Evas_Coord w;
+ Evas_Coord h;
+ Evas_Object *object;
+ Ecore_Timer *hold_timer;
+ int ts; /* Time stamp to calculate whether scrolling or moving */
+ int v; /* Velocity */
+ int pinch_dis;
+ Evas_Object *pinch_obj; /* Object between thumb and index */
+ Evas_Object *test; /* To see dis center */
+};
+
+enum _vp_pinch_plan_t {
+ VP_PINCH_PLAN_NONE,
+ VP_PINCH_PLAN_OUT,
+ VP_PINCH_PLAN_IN,
+ VP_PINCH_PLAN_MAX
+};
+
+typedef enum _vp_zoom_mode {
+ VP_ZOOM_NONE,
+ VP_ZOOM_IN_DEFAULT,
+ VP_ZOOM_IN_MAX,
+} vp_zoom_mode;
+
+#define VP_IF_DEL_TIMER(timer) \
+ do { \
+ if (timer != NULL) { \
+ ecore_timer_del(timer); \
+ timer = NULL; \
+ } \
+ } while (0)
+
+#define VP_FREE(ptr) \
+ do { \
+ free(ptr); \
+ ptr = NULL; \
+ } while (0)
+
+#define VP_IF_DEL_JOB(job) \
+ do { \
+ if (job != NULL) { \
+ ecore_job_del(job); \
+ job = NULL; \
+ } \
+ } while (0)
+
+#define VP_PINCH_TOUCH_HOLD_RANGE 80
+#define VP_PINCH_TOUCH_FACTOR 4
+#define VP_PINCH_HOLD_TIME_DELAY 0.35f
+#define VP_GESTURE_KEY_DATA "gesture_data"
+
+int _vp_gesture_set_zoom_in_cb(Evas_Object * gesture, vp_gesture_cb cb,
+ void *data);
+int _vp_gesture_set_zoom_out_cb(Evas_Object * gesture, vp_gesture_cb cb,
+ void *data);
+int _vp_pinch_add_event(void *data, Evas_Object * layout);
+Eina_Bool __vp_pinch_zoom_out_cb(Evas_Object * gesture, void *data);
+Eina_Bool __vp_pinch_zoom_in_cb(Evas_Object * gesture, void *data);
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#pragma once
+
+
+#include <stdbool.h>
+#include <glib.h>
+
+typedef void *vp_preview_db_h;
+
+
+#ifdef _cplusplus
+extern "C" {
+#endif
+
+ vp_preview_db_h vp_preview_db_create();
+ void vp_preview_db_destroy(vp_preview_db_h hPreviewDB);
+ bool vp_preview_db_set_media_id(vp_preview_db_h hPreviewDB,
+ const char *szMediaURL);
+ bool vp_preview_db_set_media_url(vp_preview_db_h hPreviewDB,
+ const char *szMediaURL);
+ bool vp_preview_db_get_file_path(vp_preview_db_h hPreviewDB,
+ char **szFilePath);
+ bool vp_preview_db_get_file_size(vp_preview_db_h hPreviewDB,
+ int *nFileSize);
+ bool vp_preview_db_item_count(vp_preview_db_h hPreviewDB, int *nCount);
+ bool vp_preview_db_get_all_items_media_id(vp_preview_db_h hPreviewDB,
+ GList ** pPreviewList);
+ bool vp_preview_db_insert(vp_preview_db_h hPreviewDB,
+ const char *szPreviewPath);
+ bool vp_preview_db_delete(vp_preview_db_h hPreviewDB);
+
+
+#ifdef _cplusplus
+}
+#endif
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#pragma once
+
+
+#include <stdbool.h>
+#include <glib.h>
+
+typedef void *vp_thumb_db_h;
+
+
+typedef struct _ThumbDBItem {
+ int nIdx;
+ char *szThumbPath;
+ int nFileSize;
+} ThumbDBItem;
+
+#ifdef _cplusplus
+extern "C" {
+#endif
+
+
+ vp_thumb_db_h vp_thumb_db_create();
+ void vp_thumb_db_destroy(vp_thumb_db_h hThumbDB);
+ bool vp_thumb_db_set_media_id(vp_thumb_db_h hThumbDB,
+ const char *szMediaID);
+ bool vp_thumb_db_set_media_url(vp_thumb_db_h hThumbDB,
+ const char *szMediaURL);
+ bool vp_thumb_db_get_items(vp_thumb_db_h hThumbDB,
+ GList ** pThumbList);
+ bool vp_thumb_db_get_all_items_media_id(vp_thumb_db_h hThumbDB,
+ GList ** pThumbList);
+ bool vp_thumb_db_insert(vp_thumb_db_h hThumbDB,
+ const char *szThumbPath, int nIdx);
+ bool vp_thumb_db_delete(vp_thumb_db_h hThumbDB);
+ bool vp_thumb_db_item_count(vp_thumb_db_h hThumbDB, int *nCount);
+ bool vp_thumb_db_item_free(ThumbDBItem * pItem);
+
+
+#ifdef _cplusplus
+}
+#endif
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+#include <image_util_type.h>
+
+char *vp_util_convert_file_location(const char *szFileLocation);
+int vp_util_image_rotate(unsigned char *dest, int *dest_width,
+ int *dest_height,
+ const image_util_rotation_e dest_rotation,
+ const unsigned char *src, const int src_w,
+ const int src_h,
+ const image_util_colorspace_e colorspace);
+int vp_util_image_resize(unsigned char *dest, const int *dest_width,
+ const int *dest_height, const unsigned char *src,
+ const int src_w, const int src_h,
+ const image_util_colorspace_e colorspace);
+void vp_util_lock_cpu();
+void vp_util_release_cpu();
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#pragma once
+
+#include <Ecore.h>
+#include <Elementary.h>
+#include <media_content.h>
+
+
+#include "vp-debug.h"
+#include "vp-macro.h"
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#pragma once
+
+#include <sqlite3.h>
+#include <stdbool.h>
+
+bool vp_db_util_connect();
+void vp_db_util_disconnect();
+bool vp_db_util_is_connect();
+bool vp_db_util_query_prepare(char *szQuery, sqlite3_stmt ** stmt);
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "vp-db-common.h"
+#include "vp-db-util.h"
+
+#include "vp-media-content-util.h"
+
+#include "vp-chapter-db.h"
+#include "vp-file-util.h"
+
+#define CHAPTER_DB_INSERT_QUERY "INSERT INTO video_chapter (chapter_idx, file_path, file_size, media_id) VALUES ( %d, '%q', %d, '%q')"
+#define CHAPTER_DB_DELETE_QUERY "DELETE FROM video_chapter where media_id = '%q'"
+#define CHAPTER_DB_SELECT_QUERY "select chapter_uuid, chapter_idx, file_path, file_size, media_id from video_chapter where media_id = '%q'"
+#define CHAPTER_DB_COUNT_QUERY "select count(*) from video_chapter where media_id = '%q'"
+#define CHAPTER_DB_ALL_ITEM_QUERY "select DISTINCT(media_id) from video_chapter"
+
+typedef struct _ChapterDB {
+ char *szMediaURL;
+ char *szMediaID;
+ char *szFilePath;
+ int nFileSize;
+ int nTotalCount;
+} ChapterDB;
+
+
+static void _vp_chapter_db_destory_handle(ChapterDB * pChapterDB);
+
+
+/* callback functions */
+
+/* internal functions */
+/**
+ *
+ * @param pChapterDB
+ */
+static void _vp_chapter_db_destory_handle(ChapterDB * pChapterDB)
+{
+ if (pChapterDB == NULL) {
+ vp_dbgE("pChapterDB is NULL");
+ return;
+ }
+
+ VP_FREE(pChapterDB->szMediaURL);
+ VP_FREE(pChapterDB->szMediaID);
+ VP_FREE(pChapterDB->szFilePath);
+
+ VP_FREE(pChapterDB);
+}
+
+/**
+ *
+ * @param szMediaID
+ * @param nCount
+ * @return
+ */
+static bool _vp_chapter_db_get_count(char *szMediaID, int *nCount)
+{
+ if (szMediaID == NULL) {
+ vp_dbgE("szMediaID is NULL");
+ return FALSE;
+ }
+ char *szSql = sqlite3_mprintf(CHAPTER_DB_COUNT_QUERY, szMediaID);
+ sqlite3_stmt *stmt = NULL;
+
+ if (!vp_db_util_query_prepare(szSql, &stmt)) {
+ if (szSql) {
+ sqlite3_free(szSql);
+ szSql = NULL;
+ }
+ return FALSE;
+ }
+
+ int nRet = 0;
+ nRet = sqlite3_step(stmt);
+ if (nRet == SQLITE_ROW) {
+ *nCount = (int) sqlite3_column_int(stmt, 0);
+ vp_dbgW("Get Chapter Count : %d", *nCount);
+ }
+
+ //if (stmt) { // SVACE issue, pointer dereferenced compared to NULL
+ sqlite3_finalize(stmt);
+ stmt = NULL;
+ //}
+
+ if (szSql) {
+ sqlite3_free(szSql);
+ szSql = NULL;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param szMediaID
+ * @return
+ */
+static bool _vp_chapter_db_delete_items(char *szMediaID)
+{
+ if (szMediaID == NULL) {
+ vp_dbgE("szMediaID is NULL");
+ return FALSE;
+ }
+
+ char *szSql = sqlite3_mprintf(CHAPTER_DB_SELECT_QUERY, szMediaID);
+ sqlite3_stmt *stmt = NULL;
+
+ if (!vp_db_util_query_prepare(szSql, &stmt)) {
+ if (szSql) {
+ sqlite3_free(szSql);
+ szSql = NULL;
+ }
+ return FALSE;
+ }
+
+ int nRet = 0;
+ nRet = sqlite3_step(stmt);
+ while (nRet == SQLITE_ROW) {
+ char *szFileName = (char *) sqlite3_column_text(stmt, 2);
+
+ if (vp_file_exists(szFileName)) {
+ vp_file_unlink(szFileName);
+ }
+
+ nRet = sqlite3_step(stmt);
+ }
+
+ //if (stmt) { // SVACE issue, pointer dereferenced compared to NULL
+ sqlite3_finalize(stmt);
+ stmt = NULL;
+ //}
+
+ if (szSql) {
+ sqlite3_free(szSql);
+ szSql = NULL;
+ }
+
+ return TRUE;
+}
+
+
+
+/* external functions */
+/**
+ *
+ * @return
+ */
+vp_chapter_db_h vp_chapter_db_create()
+{
+ ChapterDB *pChapterDB = calloc(1, sizeof(ChapterDB));
+
+ if (pChapterDB == NULL) {
+ vp_dbgE("pChapterDB alloc is fail");
+ return NULL;
+ }
+
+ if (!vp_db_util_connect()) {
+ vp_dbgE("Database connect is fail");
+ _vp_chapter_db_destory_handle(pChapterDB);
+ return NULL;
+ }
+
+ return (vp_chapter_db_h) pChapterDB;
+}
+
+/**
+ *
+ * @param hChapterDB
+ */
+void vp_chapter_db_destroy(vp_chapter_db_h hChapterDB)
+{
+ if (hChapterDB == NULL) {
+ vp_dbgE("hChapterDB is NULL");
+ return;
+ }
+
+ vp_db_util_disconnect();
+
+ ChapterDB *pChapterDB = (ChapterDB *) hChapterDB;
+
+ _vp_chapter_db_destory_handle(pChapterDB);
+}
+
+/**
+ *
+ * @param hChapterDB
+ * @param szMediaID
+ * @return
+ */
+bool vp_chapter_db_set_media_id(vp_chapter_db_h hChapterDB,
+ const char *szMediaID)
+{
+ if (hChapterDB == NULL) {
+ vp_dbgE("hChapterDB is NULL");
+ return FALSE;
+ }
+
+ if (szMediaID == NULL) {
+ vp_dbgE("szMediaID is NULL");
+ return FALSE;
+ }
+
+ ChapterDB *pChapterDB = (ChapterDB *) hChapterDB;
+
+ VP_FREE(pChapterDB->szMediaID);
+
+ VP_STRDUP(pChapterDB->szMediaID, szMediaID);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param hChapterDB
+ * @param szMediaURL
+ * @return
+ */
+bool vp_chapter_db_set_media_url(vp_chapter_db_h hChapterDB,
+ const char *szMediaURL)
+{
+ if (hChapterDB == NULL) {
+ vp_dbgE("hChapterDB is NULL");
+ return FALSE;
+ }
+
+ if (szMediaURL == NULL) {
+ vp_dbgE("szMediaURL is NULL");
+ return FALSE;
+ }
+
+ ChapterDB *pChapterDB = (ChapterDB *) hChapterDB;
+
+ VP_FREE(pChapterDB->szMediaURL);
+ VP_FREE(pChapterDB->szMediaID);
+
+ VP_STRDUP(pChapterDB->szMediaURL, szMediaURL);
+
+ if (!vp_media_content_util_get_video_id
+ (szMediaURL, &(pChapterDB->szMediaID))) {
+ vp_dbgE("vp_media_content_util_get_video_id is fail");
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param hChapterDB
+ * @param pChapterList
+ * @return
+ */
+bool vp_chapter_db_get_items(vp_chapter_db_h hChapterDB,
+ GList ** pChapterList)
+{
+ if (hChapterDB == NULL) {
+ vp_dbgE("hChapterDB is NULL");
+ return FALSE;
+ }
+
+ ChapterDB *pChapterDB = (ChapterDB *) hChapterDB;
+
+ if (pChapterDB->szMediaID == NULL) {
+ vp_dbgE("szMediaID is NULL");
+ return FALSE;
+ }
+
+ char *szSql =
+ sqlite3_mprintf(CHAPTER_DB_SELECT_QUERY, pChapterDB->szMediaID);
+ sqlite3_stmt *stmt = NULL;
+
+ if (!vp_db_util_query_prepare(szSql, &stmt)) {
+ if (szSql) {
+ sqlite3_free(szSql);
+ szSql = NULL;
+ }
+ return FALSE;
+ }
+
+ int nRet = 0;
+ nRet = sqlite3_step(stmt);
+ while (nRet == SQLITE_ROW) {
+ /* chapter_uuid, chapter_idx, file_path, file_size, media_id */
+ ChapterDBItem *pItem = calloc(1, sizeof(ChapterDBItem));
+ if (!pItem) {
+ vp_dbgE("allocation failed");
+ return FALSE;
+ }
+ vp_sdbg("UUID : %d", (int) sqlite3_column_int(stmt, 0));
+ vp_sdbg("CHAPTER_IDX : %d", (int) sqlite3_column_int(stmt, 1));
+ vp_sdbg("FILE_PATH : %s", (char *) sqlite3_column_text(stmt, 2));
+ vp_sdbg("FILE_SIZE : %d", (int) sqlite3_column_int(stmt, 3));
+ vp_sdbg("MEDIA_ID : %s", (char *) sqlite3_column_text(stmt, 4));
+
+ pItem->nIdx = (int) sqlite3_column_int(stmt, 1);
+ VP_STRDUP(pItem->szChapterPath,
+ (char *) sqlite3_column_text(stmt, 2));
+ pItem->nFileSize = (int) sqlite3_column_int(stmt, 3);
+
+ *pChapterList = g_list_append(*pChapterList, pItem);
+
+ nRet = sqlite3_step(stmt);
+ }
+
+ //if (stmt) { // SVACE issue, pointer dereferenced compared to NULL
+ sqlite3_finalize(stmt);
+ stmt = NULL;
+ //}
+
+ if (szSql) {
+ sqlite3_free(szSql);
+ szSql = NULL;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param hChapterDB
+ * @param pChapterList
+ * @return
+ */
+bool vp_chapter_db_get_all_items_media_id(vp_chapter_db_h hChapterDB,
+ GList ** pChapterList)
+{
+ if (hChapterDB == NULL) {
+ vp_dbgE("hChapterDB is NULL");
+ return FALSE;
+ }
+
+ char *szSql = sqlite3_mprintf(CHAPTER_DB_ALL_ITEM_QUERY);
+ sqlite3_stmt *stmt = NULL;
+
+ if (!vp_db_util_query_prepare(szSql, &stmt)) {
+ if (szSql) {
+ sqlite3_free(szSql);
+ szSql = NULL;
+ }
+ return FALSE;
+ }
+
+ int nRet = 0;
+ nRet = sqlite3_step(stmt);
+ while (nRet == SQLITE_ROW) {
+ char *szMediaID = NULL;
+
+ VP_STRDUP(szMediaID, (char *) sqlite3_column_text(stmt, 0));
+
+ *pChapterList = g_list_append(*pChapterList, szMediaID);
+
+ nRet = sqlite3_step(stmt);
+ }
+
+ //if (stmt) { // SVACE issue, pointer dereferenced compared to NULL
+ sqlite3_finalize(stmt);
+ stmt = NULL;
+ //}
+
+ if (szSql) {
+ sqlite3_free(szSql);
+ szSql = NULL;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param hChapterDB
+ * @param szChapterPath
+ * @param nIdx
+ * @return
+ */
+bool vp_chapter_db_insert(vp_chapter_db_h hChapterDB,
+ const char *szChapterPath, int nIdx)
+{
+ if (hChapterDB == NULL) {
+ vp_dbgE("hChapterDB is NULL");
+ return FALSE;
+ }
+
+ if (szChapterPath == NULL) {
+ vp_dbgE("szChapterPath is NULL");
+ return FALSE;
+ }
+
+ ChapterDB *pChapterDB = (ChapterDB *) hChapterDB;
+
+ if (pChapterDB->szMediaID == NULL) {
+ vp_dbgE("szMediaID is NULL");
+ return FALSE;
+ }
+
+
+ long long nSize = vp_file_size(szChapterPath);
+
+ char *szSql =
+ sqlite3_mprintf(CHAPTER_DB_INSERT_QUERY, nIdx, szChapterPath,
+ (int) nSize, pChapterDB->szMediaID);
+ vp_sdbg("%s", szSql);
+
+ sqlite3_stmt *stmt = NULL;
+
+ if (!vp_db_util_query_prepare(szSql, &stmt)) {
+ if (szSql) {
+ sqlite3_free(szSql);
+ szSql = NULL;
+ }
+ return FALSE;
+ }
+
+ sqlite3_step(stmt);
+
+ //if (stmt) { // SVACE issue, pointer dereferenced compared to NULL
+ sqlite3_reset(stmt);
+ sqlite3_clear_bindings(stmt);
+ sqlite3_finalize(stmt);
+ stmt = NULL;
+ //}
+
+ if (szSql) {
+ sqlite3_free(szSql);
+ szSql = NULL;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param hChapterDB
+ * @return
+ */
+bool vp_chapter_db_delete(vp_chapter_db_h hChapterDB)
+{
+ if (hChapterDB == NULL) {
+ vp_dbgE("hChapterDB is NULL");
+ return FALSE;
+ }
+
+ ChapterDB *pChapterDB = (ChapterDB *) hChapterDB;
+
+ if (pChapterDB->szMediaID == NULL) {
+ vp_dbgE("szMediaID is NULL");
+ return FALSE;
+ }
+
+ _vp_chapter_db_delete_items(pChapterDB->szMediaID);
+
+ char *szSql =
+ sqlite3_mprintf(CHAPTER_DB_DELETE_QUERY, pChapterDB->szMediaID);
+ vp_sdbg("%s", szSql);
+
+ sqlite3_stmt *stmt = NULL;
+
+ if (!vp_db_util_query_prepare(szSql, &stmt)) {
+ if (szSql) {
+ sqlite3_free(szSql);
+ szSql = NULL;
+ }
+ return FALSE;
+ }
+
+ sqlite3_step(stmt);
+
+ //if (stmt) { // SVACE issue, pointer dereferenced compared to NULL
+ sqlite3_reset(stmt);
+ sqlite3_clear_bindings(stmt);
+ sqlite3_finalize(stmt);
+ stmt = NULL;
+ //}
+
+ if (szSql) {
+ sqlite3_free(szSql);
+ szSql = NULL;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param hChapterDB
+ * @param nCount
+ * @return
+ */
+bool vp_chapter_db_item_count(vp_chapter_db_h hChapterDB, int *nCount)
+{
+ if (hChapterDB == NULL) {
+ vp_dbgE("hChapterDB is NULL");
+ return FALSE;
+ }
+
+ ChapterDB *pChapterDB = (ChapterDB *) hChapterDB;
+
+ return _vp_chapter_db_get_count(pChapterDB->szMediaID, nCount);
+}
+
+/**
+ *
+ * @param pItem
+ * @return
+ */
+bool vp_chapter_db_item_free(ChapterDBItem * pItem)
+{
+ if (pItem == NULL) {
+ vp_dbgE("ChapterDBItem is NULL");
+ return FALSE;
+ }
+
+ VP_FREE(pItem->szChapterPath);
+ VP_FREE(pItem);
+
+ return TRUE;
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "vp-db-common.h"
+#include "vp-db-util.h"
+#include "app_common.h"
+
+static sqlite3 *g_sqlite3_handle = NULL;
+static int g_nRefCount = 0;
+
+/* callback functions */
+/**
+ *
+ * @param pData
+ * @param count
+ * @return
+ */
+static int __vp_db_util_busy_handler(void *pData, int count)
+{
+ usleep(50000);
+
+ vp_dbgW("__vp_db_util_busy_handler called : %d", count);
+
+ return 100 - count;
+}
+
+/* internal functions */
+/**
+ *
+ * @return
+ */
+static sqlite3 *_vp_db_util_connect_db()
+{
+ sqlite3 *pSqlite = NULL;
+ int ret = SQLITE_OK;
+
+ char *app_path = app_get_data_path();
+ if (!app_path) {
+ vp_dbgE("cannot retrieve app install path");
+ return NULL;
+ }
+ char db_path[1024] = { 0, };
+ snprintf(db_path, 1024, "%s%s", app_path, ".video-thumb.db");
+
+ /*Connect DB */
+ ret = sqlite3_open(db_path, &pSqlite);
+ if (SQLITE_OK != ret) {
+ vp_dbgE("sqlite3_open fail [0x%x] : %s", ret,
+ sqlite3_errmsg(pSqlite));
+ return NULL;
+ }
+
+ ret = sqlite3_busy_handler(pSqlite, __vp_db_util_busy_handler, NULL);
+ if (SQLITE_OK != ret) {
+ vp_dbgE("sqlite3_busy_handler fail [0x%x]", ret);
+ sqlite3_close(pSqlite);
+ return NULL;
+ }
+
+ return pSqlite;
+}
+
+/**
+ *
+ * @param db_handle
+ */
+static void _vp_db_util_disconnect_db(sqlite3 * db_handle)
+{
+ if (db_handle == NULL) {
+ vp_dbgE("db_handle is NULL");
+ return;
+ }
+ int ret = SQLITE_OK;
+ ret = sqlite3_close(db_handle);
+ if (SQLITE_OK != ret) {
+ vp_dbgE("sqlite3_close fail [0x%x]", ret);
+ db_handle = NULL;
+ }
+}
+
+
+/* external functions */
+
+/**
+ *
+ * @return
+ */
+bool vp_db_util_connect()
+{
+ if (g_sqlite3_handle) {
+ vp_dbgW("database is already connect");
+ g_nRefCount++;
+ return TRUE;
+ }
+
+ g_sqlite3_handle = _vp_db_util_connect_db();
+ if (g_sqlite3_handle == NULL) {
+ vp_dbgE("database connect is fail");
+ return FALSE;
+ }
+
+ g_nRefCount++;
+
+ return TRUE;
+}
+
+/**
+ *
+ */
+void vp_db_util_disconnect()
+{
+ g_nRefCount--;
+
+ if (g_nRefCount < 0) {
+ g_nRefCount = 0;
+ }
+
+ if (g_nRefCount == 0) {
+ if (g_sqlite3_handle == NULL) {
+ vp_dbgW("database is already disconnect");
+ return;
+ }
+ _vp_db_util_disconnect_db(g_sqlite3_handle);
+
+ g_sqlite3_handle = NULL;
+ }
+
+ return;
+
+}
+
+/**
+ *
+ * @param szQuery
+ * @param stmt
+ * @return
+ */
+bool vp_db_util_query_prepare(char *szQuery, sqlite3_stmt ** stmt)
+{
+ if (g_sqlite3_handle == NULL) {
+ vp_dbgE("database is not connect");
+ return FALSE;
+ }
+
+ int err = -1;
+
+ sqlite3 *handle = g_sqlite3_handle;
+ vp_dbg("SQL = %s\n", szQuery);
+
+ err = sqlite3_prepare_v2(handle, szQuery, -1, stmt, NULL);
+ if (SQLITE_OK != err) {
+ vp_dbgE("Query fails [0x%x]: query_string[%s] ", err, szQuery);
+ return FALSE;
+ }
+
+ vp_dbg("query success\n");
+
+ return TRUE;
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "vp-file-util.h"
+
+#define PATH_MAX_SIZE 256
+#define BUF_MAX 16384
+static mode_t default_mode =
+ S_IRUSR | S_IWUSR | S_IXUSR | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH;
+
+/**
+ *
+ * @param path
+ * @return
+ */
+const char *vp_file_get(const char path[])
+{
+ char *file = NULL;
+ struct stat info = { 0, };
+ if (stat(path, &info) == 0) {
+ if ((file = strrchr(path, '/'))) {
+ file++;
+ }
+ } else {
+ file = (char *) path;
+ }
+ return file;
+}
+
+/**
+ *
+ * @param path
+ * @return
+ */
+char *vp_dir_get(const char path[])
+{
+ char *p = NULL;
+ char buf[PATH_MAX] = { 0, };
+ struct stat info = { 0, };
+
+ if (stat(path, &info) == 0) {
+ strncpy(buf, path, PATH_MAX);
+ buf[PATH_MAX - 1] = 0;
+ p = dirname(buf);
+ return strdup(p);
+ } else {
+ return "";
+ }
+}
+
+/**
+ *
+ * @param path
+ * @return
+ */
+int vp_file_exists(const char *path)
+{
+ struct stat info = { 0, };
+
+ if (stat(path, &info) == 0) {
+ return 1;
+ } else {
+ return 0;
+ }
+}
+
+/**
+ *
+ * @param path
+ * @return
+ */
+Eina_Bool vp_is_dir(const char *path)
+{
+ struct stat info = { 0, };
+
+ if (stat(path, &info) == 0) {
+ if (S_ISDIR(info.st_mode)) {
+ return 1;
+ }
+ }
+
+ return 0;
+}
+
+/**
+ *
+ * @param path
+ * @return
+ */
+int vp_is_dir_empty(const char *path)
+{
+ struct stat info = { 0, };
+ struct dirent *dp = NULL;
+ DIR *dirp = NULL;
+ struct dirent ent_struct;
+
+ dirp = opendir(path);
+ if (!dirp) {
+ return -1;
+ }
+
+ while ((readdir_r(dirp, &ent_struct, &dp) == 0) && dp) {
+ if (stat(dp->d_name, &info) == 0 && (strcmp(dp->d_name, "."))
+ && (strcmp(dp->d_name, ".."))) {
+ closedir(dirp);
+ return 0;
+ }
+ }
+ closedir(dirp);
+ return 1;
+}
+
+/**
+ *
+ * @param dir
+ * @return
+ */
+int vp_mkdir(const char *dir)
+{
+ if (mkdir(dir, default_mode) < 0) {
+ return 0;
+ } else {
+ return 1;
+ }
+}
+
+/**
+ *
+ * @param path
+ * @return
+ */
+static int vp_mkpath_if_not_exists(const char *path)
+{
+ struct stat st = { 0, };
+ if (stat(path, &st) < 0) {
+ return vp_mkdir(path);
+ } else if (!S_ISDIR(st.st_mode)) {
+ return 0;
+ } else {
+ return 1;
+ }
+}
+
+/**
+ *
+ * @param path
+ * @return
+ */
+int vp_mkpath(const char *path)
+{
+ char ss[PATH_MAX] = { 0, };
+ unsigned int i = 0;
+
+ if (vp_is_dir(path)) {
+ return 1;
+ }
+
+ for (i = 0; path[i] != '\0'; ss[i] = path[i], i++) {
+ if (i == sizeof(ss) - 1) {
+ return 0;
+ }
+
+ if ((path[i] == '/') && (i > 0)) {
+ ss[i] = '\0';
+ if (!vp_mkpath_if_not_exists(ss)) {
+ return 0;
+ }
+ }
+ }
+ ss[i] = '\0';
+
+ return vp_mkpath_if_not_exists(ss);
+}
+
+/**
+ *
+ * @param path
+ * @return
+ */
+char *vp_strip_ext(const char *path)
+{
+ char *p = NULL;
+ char *file = NULL;
+
+ p = strrchr(path, '.');
+ if (!p) {
+ file = strdup(path);
+ } else if (p != path) {
+ file = malloc(((p - path) + 1) * sizeof(char));
+ if (file) {
+ memcpy(file, path, (p - path));
+ file[p - path] = 0;
+ }
+ }
+
+ return file;
+}
+
+/**
+ *
+ * @param filename
+ * @return
+ */
+int vp_file_unlink(const char *filename)
+{
+ int status = unlink(filename);
+ if (status < 0) {
+ return 0;
+ } else {
+ return 1;
+ }
+}
+
+/**
+ *
+ * @param filename
+ * @return
+ */
+int vp_file_size(const char *filename)
+{
+ struct stat info = { 0, };
+ if (stat(filename, &info) == 0) {
+ if (!S_ISDIR(info.st_mode)) {
+ return info.st_size;
+ }
+ }
+
+ return 0;
+}
+
+/**
+ *
+ * @param filename
+ * @return
+ */
+int vp_file_rmdir(const char *filename)
+{
+ int status = rmdir(filename);
+ if (status < 0) {
+ return 0;
+ } else {
+ return 1;
+ }
+}
+
+/**
+ *
+ * @param dir
+ * @return
+ */
+Eina_List *vp_file_ls(const char *dir)
+{
+ char *f;
+ DIR *dirp = NULL;
+ struct dirent *dp = NULL;
+ Eina_List *list = NULL;
+ struct dirent ent_struct;
+
+ dirp = opendir(dir);
+ if (!dirp) {
+ return NULL;
+ }
+
+ while ((readdir_r(dirp, &ent_struct, &dp) == 0) && dp) {
+ if ((strcmp(dp->d_name, ".")) && (strcmp(dp->d_name, ".."))) {
+ f = strdup(dp->d_name);
+ list = eina_list_append(list, f);
+ }
+ }
+ closedir(dirp);
+
+ list =
+ eina_list_sort(list, eina_list_count(list),
+ EINA_COMPARE_CB(strcoll));
+
+ return list;
+}
+
+/**
+ *
+ * @param dir
+ * @return
+ */
+int vp_file_recursive_rm(const char *dir)
+{
+ char buf[PATH_MAX_SIZE] = { 0, };
+ struct dirent *dp = NULL;
+ DIR *dirp = NULL;
+ struct dirent ent_struct;
+
+ if (readlink(dir, buf, sizeof(buf)) > 0) {
+ return vp_file_unlink(dir);
+ }
+
+ int ret = vp_is_dir(dir);
+ if (ret) {
+ ret = 1;
+ dirp = opendir(dir);
+ if (dirp) {
+ while ((readdir_r(dirp, &ent_struct, &dp) == 0) && dp) {
+ if ((strcmp(dp->d_name, "."))
+ && (strcmp(dp->d_name, ".."))) {
+ if (!vp_file_recursive_rm(dp->d_name)) {
+ ret = 0;
+ }
+ }
+ }
+ closedir(dirp);
+ }
+
+ if (!vp_file_rmdir(dir)) {
+ ret = 0;
+ }
+
+ return ret;
+ } else {
+ return vp_file_unlink(dir);
+ }
+}
+
+/**
+ *
+ * @param src
+ * @param dst
+ * @return
+ */
+int vp_file_cp(const char *src, const char *dst)
+{
+ FILE *f1 = NULL;
+ FILE *f2 = NULL;
+ char buf[BUF_MAX] = { 0, }; //TODO: How about moving buf to heap instead of stack
+ char realpath1[PATH_MAX_SIZE] = { 0, };
+ char realpath2[PATH_MAX_SIZE] = { 0, };
+ size_t num;
+ int ret = 1;
+
+ if (!realpath(src, realpath1)) {
+ return 0;
+ }
+
+ if (realpath(dst, realpath2) && !strcmp(realpath1, realpath2)) {
+ return 0;
+ }
+
+ f1 = fopen(src, "rb");
+ if (!f1) {
+ return 0;
+ }
+
+ f2 = fopen(dst, "wb");
+ if (!f2) {
+ fclose(f1);
+ return 0;
+ }
+
+ while ((num = fread(buf, 1, sizeof(buf), f1)) > 0) {
+ if (fwrite(buf, 1, num, f2) != num) {
+ ret = 0;
+ }
+ }
+
+ fclose(f1);
+ fclose(f2);
+
+ return ret;
+}
+
+/**
+ *
+ * @param src
+ * @param dst
+ * @return
+ */
+int vp_file_mv(const char *src, const char *dst)
+{
+ struct stat info = { 0, };
+ if (stat(dst, &info) == 0) {
+ return 0;
+ }
+
+ if (rename(src, dst)) {
+ memset(&info, 0x00, sizeof(struct stat));
+ if (stat(src, &info) == 0) {
+ if (S_ISREG(info.st_mode)) {
+ vp_file_cp(src, dst);
+ chmod(dst, info.st_mode);
+ unlink(src);
+ return 1;
+ }
+ }
+ return 0;
+ }
+ return 1;
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "vp-db-common.h"
+
+
+
+/* callback functions */
+
+/**
+ *
+ * @param pMediaHandle
+ * @param pUserData
+ * @return
+ */
+static bool __vp_media_content_info_cb(media_info_h pMediaHandle,
+ void *pUserData)
+{
+ media_info_h *pAssignItem = (media_info_h *) pUserData;
+
+ if (pMediaHandle != NULL) {
+ int nRet = MEDIA_CONTENT_ERROR_NONE;
+
+ nRet = media_info_clone(pAssignItem, pMediaHandle);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ vp_dbgE("media_info_clone is fail : 0x%x", nRet);
+ return FALSE;
+ }
+
+ char *szTmpStr = NULL;
+ nRet = media_info_get_display_name(*pAssignItem, &szTmpStr);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ vp_dbgE("media_info_get_display_name is fail : 0x%x", nRet);
+ return FALSE;
+ }
+
+ vp_dbg("Display name : %s", szTmpStr);
+ VP_FREE(szTmpStr);
+ } else {
+ vp_dbgE("pMeidaHandle is NULL");
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/* internal functions */
+
+
+/* external functions */
+
+/**
+ *
+ * @param szFilePath
+ * @param szVideoID
+ * @return
+ */
+bool vp_media_content_util_get_video_id(const char *szFilePath,
+ char **szVideoID)
+{
+ if (szFilePath == NULL) {
+ vp_dbgE("szFilePath is NULL");
+ return FALSE;
+ }
+
+ media_info_h pMediaHandle = NULL;
+ filter_h pFilterHandle = NULL;
+ char *szMediaID = NULL;
+
+ int nRet = MEDIA_CONTENT_ERROR_NONE;
+
+ char szTmpStr[4096] = { 0, };
+ snprintf(szTmpStr, 4096, "MEDIA_PATH = \"%s\"", szFilePath);
+
+ nRet = media_filter_create(&pFilterHandle);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ vp_dbgE("media_filter_create is fail : 0x%x", nRet);
+ goto Execption;
+ }
+
+ if (pFilterHandle == NULL) {
+ vp_dbgE("Filter handle is NULL");
+ goto Execption;
+ }
+
+ nRet =
+ media_filter_set_condition(pFilterHandle, szTmpStr,
+ MEDIA_CONTENT_COLLATE_DEFAULT);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ vp_dbgE("media_filter_set_condition is fail : 0x%x", nRet);
+ goto Execption;
+ }
+
+ nRet =
+ media_info_foreach_media_from_db(pFilterHandle,
+ __vp_media_content_info_cb,
+ &pMediaHandle);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ vp_dbgE("media_filter_set_condition is fail : 0x%x", nRet);
+ goto Execption;
+ }
+
+ if (pMediaHandle == NULL) {
+ vp_dbgE("media info handle is NULL");
+ goto Execption;
+ }
+
+ nRet = media_info_get_media_id(pMediaHandle, &szMediaID);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ vp_dbgE("media_info_get_media_id is fail : 0x%x", nRet);
+ goto Execption;
+ }
+
+ VP_STRDUP(*szVideoID, szMediaID);
+ VP_FREE(szMediaID);
+
+ nRet = media_filter_destroy(pFilterHandle);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ vp_dbgE("media_filter_destroy is fail : 0x%x", nRet);
+ goto Execption;
+ }
+
+ nRet = media_info_destroy(pMediaHandle);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ vp_dbgE("media_info_destroy is fail : 0x%x", nRet);
+ goto Execption;
+ }
+
+ return TRUE;
+
+ Execption:
+ VP_FREE(szMediaID);
+
+ if (pFilterHandle) {
+ media_filter_destroy(pFilterHandle);
+ pFilterHandle = NULL;
+ }
+
+ if (pMediaHandle) {
+ media_info_destroy(pMediaHandle);
+ pMediaHandle = NULL;
+ }
+ return FALSE;
+}
+
+/**
+ *
+ * @param szFilePath
+ * @return
+ */
+bool vp_media_content_util_get_first_video(char **szFilePath)
+{
+ media_info_h pMediaHandle = NULL;
+ filter_h pFilterHandle = NULL;
+ char *szMediaID = NULL;
+
+ int nRet = MEDIA_CONTENT_ERROR_NONE;
+
+ nRet = media_content_connect();
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ vp_dbgE("media_content_connect is fail : 0x%x", nRet);
+ return FALSE;
+ }
+
+ char szTmpStr[4096] = { 0, };
+ snprintf(szTmpStr, 4096, "MEDIA_TYPE = 1");
+
+ nRet = media_filter_create(&pFilterHandle);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ vp_dbgE("media_filter_create is fail : 0x%x", nRet);
+ goto Execption;
+ }
+
+ if (pFilterHandle == NULL) {
+ vp_dbgE("Filter handle is NULL");
+ goto Execption;
+ }
+
+ nRet =
+ media_filter_set_condition(pFilterHandle, szTmpStr,
+ MEDIA_CONTENT_COLLATE_DEFAULT);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ vp_dbgE("media_filter_set_condition is fail : 0x%x", nRet);
+ goto Execption;
+ }
+
+ nRet =
+ media_filter_set_order(pFilterHandle, MEDIA_CONTENT_ORDER_DESC,
+ MEDIA_MODIFIED_TIME,
+ MEDIA_CONTENT_COLLATE_NOCASE);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ vp_dbgE("media_filter_set_order is fail : 0x%x", nRet);
+ goto Execption;
+ }
+
+ nRet = media_filter_set_offset(pFilterHandle, 0, 1);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ vp_dbgE("media_filter_set_offset is fail : 0x%x", nRet);
+ goto Execption;
+ }
+
+ nRet =
+ media_info_foreach_media_from_db(pFilterHandle,
+ __vp_media_content_info_cb,
+ &pMediaHandle);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ vp_dbgE("media_info_foreach_media_from_db is fail : 0x%x", nRet);
+ goto Execption;
+ }
+
+ if (pMediaHandle == NULL) {
+ vp_dbgE("media info handle is NULL");
+ goto Execption;
+ }
+
+ nRet = media_info_get_file_path(pMediaHandle, szFilePath);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ vp_dbgE("media_info_get_media_id is fail : 0x%x", nRet);
+ goto Execption;
+ }
+
+
+ nRet = media_filter_destroy(pFilterHandle);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ vp_dbgE("media_filter_destroy is fail : 0x%x", nRet);
+ goto Execption;
+ }
+
+ nRet = media_info_destroy(pMediaHandle);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ vp_dbgE("media_info_destroy is fail : 0x%x", nRet);
+ goto Execption;
+ }
+ nRet = media_content_disconnect();
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ vp_dbgE("media_content_connect is fail : 0x%x", nRet);
+ goto Execption;
+ }
+
+ return TRUE;
+
+ Execption:
+ VP_FREE(szMediaID);
+
+ if (pFilterHandle) {
+ media_filter_destroy(pFilterHandle);
+ pFilterHandle = NULL;
+ }
+
+ if (pMediaHandle) {
+ media_info_destroy(pMediaHandle);
+ pMediaHandle = NULL;
+ }
+ return FALSE;
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "vp-play-log.h"
+#include "vp-pinch-zoom.h"
+
+/**
+ *
+ * @param data
+ * @param object
+ * @param device
+ * @return
+ */
+static vp_pinch_event_s *__vp_gesture_create_event_obj(void *data,
+ Evas_Object *
+ object, int device)
+{
+ vp_gesture_s *gesture_d = (vp_gesture_s *) data;
+ vp_pinch_event_s *ev = NULL;
+ ev = calloc(1, sizeof(vp_pinch_event_s));
+ if (ev == NULL) {
+ VideoLogDebug("Cannot allocate event_t");
+ return NULL;
+ }
+
+ ev->object = object;
+ ev->device = device;
+ evas_object_geometry_get(object, &ev->x, &ev->y, &ev->w, &ev->h);
+
+ gesture_d->s_event_elist =
+ eina_list_append(gesture_d->s_event_elist, ev);
+ return ev;
+}
+
+/**
+ *
+ * @param data
+ * @param ev
+ * @return
+ */
+static int __vp_gesture_destroy_event_obj(void *data,
+ vp_pinch_event_s * ev)
+{
+ vp_gesture_s *gesture_d = (vp_gesture_s *) data;
+ ev->pinch_obj = NULL;
+ ev->pinch_dis = 0;
+ gesture_d->s_event_elist =
+ eina_list_remove(gesture_d->s_event_elist, ev);
+ VP_IF_DEL_TIMER(ev->hold_timer);
+
+ VP_FREE(ev);
+ return 0;
+}
+
+/**
+ *
+ * @param data
+ * @param device
+ * @return
+ */
+static vp_pinch_event_s *__vp_gesture_get_event_obj(void *data, int device)
+{
+ vp_gesture_s *gesture_d = (vp_gesture_s *) data;
+ Eina_List *l = NULL;
+ vp_pinch_event_s *ev = NULL;
+
+ EINA_LIST_FOREACH(gesture_d->s_event_elist, l, ev) {
+ if (ev && ev->device == device) {
+ break;
+ }
+ ev = NULL;
+ }
+
+ return ev;
+}
+
+/**
+ *
+ * @param x1
+ * @param y1
+ * @param x2
+ * @param y2
+ * @return
+ */
+static int __vp_gesture_get_distance(Evas_Coord x1, Evas_Coord y1,
+ Evas_Coord x2, Evas_Coord y2)
+{
+ int dis, dx, dy;
+
+ dx = x1 - x2;
+ dy = y1 - y2;
+
+ dis = (int) sqrt(dx * dx + dy * dy);
+ return dis;
+}
+
+/**
+ *
+ * @param data
+ * @return
+ */
+static Eina_Bool __vp_gesture_hold_timer_cb(void *data)
+{
+ vp_pinch_event_s *ev0 = (vp_pinch_event_s *) data;
+ VP_IF_DEL_TIMER(ev0->hold_timer);
+ return ECORE_CALLBACK_CANCEL;
+}
+
+/**
+ *
+ * @param data
+ * @return
+ */
+static int __vp_gesture_get_multi_device(void *data)
+{
+ vp_gesture_s *gesture_d = (vp_gesture_s *) data;
+ Eina_List *l = NULL;
+ vp_pinch_event_s *ev = NULL;
+
+ EINA_LIST_FOREACH(gesture_d->s_event_elist, l, ev) {
+ if (ev && ev->device != 0) {
+ return ev->device;
+ }
+ }
+ return 0;
+}
+
+/**
+ *
+ * @param data
+ * @param e
+ * @param evas_obj
+ * @param ei
+ */
+static void __vp_gesture_mouse_down_event(void *data, Evas * e,
+ Evas_Object * evas_obj, void *ei)
+{
+ Evas_Event_Mouse_Down *ev = (Evas_Event_Mouse_Down *) ei;
+ vp_pinch_event_s *ev0;
+ ev0 = __vp_gesture_get_event_obj(data, 0);
+ if (ev0) {
+ return;
+ }
+
+ ev0 = __vp_gesture_create_event_obj(data, evas_obj, 0);
+ if (!ev0) {
+ return;
+ }
+
+ ev0->hold_timer = NULL;
+ ev0->prev.x = ev->output.x;
+ ev0->prev.y = ev->output.y;
+}
+
+/**
+ *
+ * @param data
+ * @param evas
+ * @param obj
+ * @param ei
+ */
+static void __vp_gesture_multi_down_event(void *data, Evas * evas,
+ Evas_Object * obj, void *ei)
+{
+ vp_pinch_event_s *ev;
+ Evas_Event_Multi_Down *down = (Evas_Event_Multi_Down *) ei;
+ ev = __vp_gesture_get_event_obj(data, down->device);
+ if (ev) {
+ return;
+ }
+
+ ev = __vp_gesture_create_event_obj(data, obj, down->device);
+ if (!ev) {
+ return;
+ }
+
+ ev->hold_timer = NULL;
+ ev->prev.x = down->output.x;
+ ev->prev.y = down->output.y;
+}
+
+/**
+ *
+ * @param data
+ * @param e
+ * @param obj
+ * @param ei
+ */
+static void __vp_gesture_mouse_up_event(void *data, Evas * e,
+ Evas_Object * obj, void *ei)
+{
+ int mdevice;
+ vp_pinch_event_s *ev0;
+ vp_pinch_event_s *ev = NULL;
+
+ ev0 = __vp_gesture_get_event_obj(data, 0);
+ if (ev0 == NULL) {
+ VideoLogDebug("Cannot get event0");
+ return;
+ }
+
+ mdevice = __vp_gesture_get_multi_device(data);
+ if (mdevice == 0) {
+ } else {
+ ev = __vp_gesture_get_event_obj(data, mdevice);
+ if (ev == NULL) {
+ return;
+ }
+
+ VP_IF_DEL_TIMER(ev->hold_timer);
+ ev->hold_timer =
+ ecore_timer_add(VP_PINCH_HOLD_TIME_DELAY,
+ __vp_gesture_hold_timer_cb, ev);
+ }
+
+ __vp_gesture_destroy_event_obj(data, ev0);
+}
+
+/**
+ *
+ * @param data
+ * @param evas
+ * @param obj
+ * @param ei
+ */
+static void __vp_gesture_multi_up_event(void *data, Evas * evas,
+ Evas_Object * obj, void *ei)
+{
+ vp_gesture_s *gesture_d = (vp_gesture_s *) data;
+ Evas_Event_Multi_Up *up = (Evas_Event_Multi_Up *) ei;
+ vp_pinch_event_s *ev0 = NULL;
+ vp_pinch_event_s *ev = NULL;
+ ev = __vp_gesture_get_event_obj(data, up->device);
+ if (ev == NULL) {
+ return;
+ }
+
+ gesture_d->dis_old = 0;
+ gesture_d->pinch_dis_old = 0;
+ ev0 = __vp_gesture_get_event_obj(data, 0);
+ if (ev0) {
+ VP_IF_DEL_TIMER(ev0->hold_timer);
+ ev0->hold_timer =
+ ecore_timer_add(VP_PINCH_HOLD_TIME_DELAY,
+ __vp_gesture_hold_timer_cb, ev0);
+ } else {
+ /* up when device 0 is off */
+ }
+ __vp_gesture_destroy_event_obj(data, ev);
+}
+
+/**
+ *
+ * @param data
+ * @param e
+ * @param obj
+ * @param ei
+ */
+static void __vp_gesture_mouse_move_event(void *data, Evas * e,
+ Evas_Object * obj, void *ei)
+{
+ Evas_Event_Mouse_Move *ev = (Evas_Event_Mouse_Move *) ei;
+ vp_pinch_event_s *ev0;
+ ev0 = __vp_gesture_get_event_obj(data, 0);
+ if (ev0 == NULL) {
+ return;
+ }
+ ev0->prev.x = ev->cur.output.x;
+ ev0->prev.y = ev->cur.output.y;
+
+ __vp_gesture_get_multi_device(data);
+}
+
+/**
+ *
+ * @param data
+ */
+static void __vp_gesture_zoom_out_job_cb(void *data)
+{
+ vp_gesture_s *gesture_d = (vp_gesture_s *) data;
+ if (gesture_d->next_plan != VP_PINCH_PLAN_OUT) {
+ VideoLogWarning("State is wrong[plan:%d]!", gesture_d->next_plan);
+ VP_IF_DEL_JOB(gesture_d->pinch_job);
+ return;
+ }
+
+ if (gesture_d->zoom_out_cb)
+ gesture_d->zoom_out_cb(gesture_d->gesture,
+ gesture_d->zoom_out_data);
+
+ VP_IF_DEL_JOB(gesture_d->pinch_job);
+}
+
+/**
+ *
+ * @param data
+ */
+static void __vp_gesture_zoom_in_job_cb(void *data)
+{
+ vp_gesture_s *gesture_d = (vp_gesture_s *) data;
+ if (gesture_d->next_plan != VP_PINCH_PLAN_IN) {
+ VideoLogWarning("State is wrong[plan:%d]!", gesture_d->next_plan);
+ VP_IF_DEL_JOB(gesture_d->pinch_job);
+ return;
+ }
+
+ if (gesture_d->zoom_in_cb)
+ gesture_d->zoom_in_cb(gesture_d->gesture, gesture_d->zoom_in_data);
+
+
+ VP_IF_DEL_JOB(gesture_d->pinch_job);
+}
+
+/**
+ *
+ * @param data
+ * @param evas
+ * @param obj
+ * @param ei
+ */
+static void __vp_gesture_multi_move_event(void *data, Evas * evas,
+ Evas_Object * obj, void *ei)
+{
+ vp_gesture_s *gesture_d = (vp_gesture_s *) data;
+ Evas_Event_Multi_Move *move = (Evas_Event_Multi_Move *) ei;
+ int dis_new;
+ vp_pinch_event_s *ev0;
+ vp_pinch_event_s *ev;
+ ev = __vp_gesture_get_event_obj(data, move->device);
+ if (ev == NULL) {
+ return;
+ }
+ ev->prev.x = move->cur.output.x;
+ ev->prev.y = move->cur.output.y;
+
+ ev0 = __vp_gesture_get_event_obj(data, 0);
+ if (ev0 == NULL) {
+ return;
+ }
+
+ dis_new = __vp_gesture_get_distance(ev0->prev.x, ev0->prev.y,
+ ev->prev.x, ev->prev.y);
+
+ int dis_old = gesture_d->dis_old;
+ if (dis_old != 0) {
+ if (dis_old - dis_new > 0
+ && ev->pinch_dis > VP_PINCH_TOUCH_HOLD_RANGE) {
+ if (gesture_d->pinch_dis_old
+ && ev->pinch_dis <
+ (gesture_d->pinch_dis_old * VP_PINCH_TOUCH_FACTOR)) {
+ ev->pinch_dis += (dis_old - dis_new);
+ gesture_d->dis_old = dis_new;
+ return;
+ }
+
+ gesture_d->next_plan = VP_PINCH_PLAN_OUT; /* plan to zoom-out */
+ if (!gesture_d->pinch_job) {
+ gesture_d->pinch_job =
+ ecore_job_add(__vp_gesture_zoom_out_job_cb, data);
+ } else {
+ VideoLogInfo("Added job pinch zoom out");
+ }
+
+ gesture_d->pinch_dis_old = ev->pinch_dis;
+ ev->pinch_dis = 0;
+ } else if (dis_old - dis_new < 0
+ && ev->pinch_dis < -VP_PINCH_TOUCH_HOLD_RANGE) {
+ if (gesture_d->pinch_dis_old
+ && ev->pinch_dis >
+ (gesture_d->pinch_dis_old * VP_PINCH_TOUCH_FACTOR)) {
+ ev->pinch_dis += (dis_old - dis_new);
+ gesture_d->dis_old = dis_new;
+ return;
+ }
+
+ gesture_d->next_plan = VP_PINCH_PLAN_IN; /* plan to zoom-in */
+ if (!gesture_d->pinch_job) {
+ VideoLogInfo("Add job pinch zoom in");
+ gesture_d->pinch_job =
+ ecore_job_add(__vp_gesture_zoom_in_job_cb, data);
+ } else {
+ VideoLogWarning("Added job pinch zoom in");
+ }
+
+ gesture_d->pinch_dis_old = ev->pinch_dis;
+ ev->pinch_dis = 0;
+ }
+ ev->pinch_dis += (dis_old - dis_new);
+ }
+ VideoLogInfo("dis_new: %d, dis_old: %d, pinch_dis %d", dis_new,
+ dis_old, ev->pinch_dis);
+
+ /* Reset dis_old value */
+ gesture_d->dis_old = dis_new;
+}
+
+/**
+ *
+ * @param data
+ * @param e
+ * @param obj
+ * @param ei
+ */
+static void __vp_gesture_del_cb(void *data, Evas * e, Evas_Object * obj,
+ void *ei)
+{
+ VideoLogWarning("Delete gesture ---");
+ if (data) {
+ vp_gesture_s *gesture_d = (vp_gesture_s *) data;
+ VP_IF_DEL_JOB(gesture_d->pinch_job);
+ evas_object_data_del(gesture_d->gesture, VP_GESTURE_KEY_DATA);
+ VP_FREE(gesture_d);
+ }
+ VideoLogWarning("Delete gesture +++");
+}
+
+/**
+ *
+ * @param data
+ * @param parent
+ * @return
+ */
+Evas_Object *_vp_gesture_add(void *data, Evas_Object * parent)
+{
+ if (data == NULL || parent == NULL) {
+ VideoLogInfo("Error input parameters");
+ return NULL;
+ }
+
+ Evas_Object *gesture = NULL;
+
+ gesture = evas_object_rectangle_add(evas_object_evas_get(parent));
+ evas_object_color_set(gesture, 0, 0, 0, 0);
+
+ vp_gesture_s *gesture_d =
+ (vp_gesture_s *) calloc(1, sizeof(vp_gesture_s));
+ if (gesture_d == NULL) {
+ evas_object_del(gesture);
+ return NULL;
+ }
+
+ gesture_d->ad = data;
+ gesture_d->parent = parent;
+ gesture_d->gesture = gesture;
+
+ evas_object_event_callback_add(gesture, EVAS_CALLBACK_MOUSE_DOWN,
+ __vp_gesture_mouse_down_event,
+ gesture_d);
+ evas_object_event_callback_add(gesture, EVAS_CALLBACK_MOUSE_UP,
+ __vp_gesture_mouse_up_event, gesture_d);
+ evas_object_event_callback_add(gesture, EVAS_CALLBACK_MOUSE_MOVE,
+ __vp_gesture_mouse_move_event,
+ gesture_d);
+ evas_object_event_callback_add(gesture, EVAS_CALLBACK_MULTI_DOWN,
+ __vp_gesture_multi_down_event,
+ gesture_d);
+ evas_object_event_callback_add(gesture, EVAS_CALLBACK_MULTI_UP,
+ __vp_gesture_multi_up_event, gesture_d);
+ evas_object_event_callback_add(gesture, EVAS_CALLBACK_MULTI_MOVE,
+ __vp_gesture_multi_move_event,
+ gesture_d);
+
+ evas_object_data_set(gesture, VP_GESTURE_KEY_DATA, (void *) gesture_d);
+ evas_object_event_callback_add(gesture, EVAS_CALLBACK_DEL,
+ __vp_gesture_del_cb, gesture_d);
+ return gesture;
+}
+
+/**
+ *
+ * @param gesture
+ * @param cb
+ * @param data
+ * @return
+ */
+int _vp_gesture_set_zoom_in_cb(Evas_Object * gesture, vp_gesture_cb cb,
+ void *data)
+{
+ if (gesture == NULL || data == NULL) {
+ VideoLogInfo("Event Object is NULL");
+ return 0;
+ }
+
+ vp_gesture_s *gesture_d = NULL;
+
+ gesture_d =
+ (vp_gesture_s *) evas_object_data_get(gesture,
+ VP_GESTURE_KEY_DATA);
+ if (gesture_d) {
+ gesture_d->zoom_in_cb = cb;
+ gesture_d->zoom_in_data = data;
+ }
+ return 0;
+}
+
+/**
+ *
+ * @param gesture
+ * @param cb
+ * @param data
+ * @return
+ */
+int _vp_gesture_set_zoom_out_cb(Evas_Object * gesture, vp_gesture_cb cb,
+ void *data)
+{
+ if (gesture == NULL || data == NULL) {
+ VideoLogInfo("Event Object is NULL");
+ return 0;
+ }
+
+ vp_gesture_s *gesture_d = NULL;
+
+ gesture_d =
+ (vp_gesture_s *) evas_object_data_get(gesture,
+ VP_GESTURE_KEY_DATA);
+
+ if (gesture_d != NULL) {
+ gesture_d->zoom_out_cb = cb;
+ gesture_d->zoom_out_data = data;
+ }
+
+ return 0;
+}
+
+/**
+ *
+ * @param gesture
+ * @param data
+ * @return
+ */
+Eina_Bool __vp_pinch_zoom_out_cb(Evas_Object * gesture, void *data)
+{
+ if (gesture == NULL || data == NULL) {
+ VideoLogInfo("Event Object is NULL");
+ return EINA_FALSE;
+ }
+
+ st_VideoListViewMainViewWidget *ad =
+ (st_VideoListViewMainViewWidget *) data;
+ VideoLogInfo("%d", ad->zoom_level);
+ if (ad->zoom_level > VP_ZOOM_IN_DEFAULT) {
+ ad->zoom_level--;
+ if (_grid_view_zoom_out(data, NULL) == 0) {
+ ad->zoom_level = VP_ZOOM_IN_DEFAULT;
+ }
+ }
+
+ return ECORE_CALLBACK_CANCEL;
+}
+
+/**
+ *
+ * @param gesture
+ * @param data
+ * @return
+ */
+Eina_Bool __vp_pinch_zoom_in_cb(Evas_Object * gesture, void *data)
+{
+ if (gesture == NULL || data == NULL) {
+ VideoLogInfo("Event Object is NULL");
+ return EINA_FALSE;
+ }
+
+ st_VideoListViewMainViewWidget *ad =
+ (st_VideoListViewMainViewWidget *) data;
+
+ if ((ad->zoom_level >= VP_ZOOM_IN_DEFAULT) &&
+ (ad->zoom_level < VP_ZOOM_IN_MAX)) {
+ ad->zoom_level++;
+ if (_grid_view_zoom_in(data, NULL) == 0) {
+ ad->zoom_level = VP_ZOOM_IN_MAX;
+ }
+ }
+
+ return ECORE_CALLBACK_CANCEL;
+}
+
+/**
+ *
+ * @param data
+ * @param layout
+ * @return
+ */
+int _vp_pinch_add_event(void *data, Evas_Object * layout)
+{
+ if (data == NULL || layout == NULL) {
+ VideoLogError("Error input parameters");
+ return 0;
+ }
+
+ st_VideoListViewMainViewWidget *ad =
+ (st_VideoListViewMainViewWidget *) data;
+
+ /* Set initialize level */
+ ad->zoom_level = VP_ZOOM_IN_DEFAULT;
+
+ Evas_Object *gesture = _vp_gesture_add(data, layout);
+ _vp_gesture_set_zoom_in_cb(gesture, __vp_pinch_zoom_in_cb, data);
+ _vp_gesture_set_zoom_out_cb(gesture, __vp_pinch_zoom_out_cb, data);
+ elm_object_part_content_set(layout, "gesture", gesture);
+ ad->gesture = gesture;
+ return 0;
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "vp-db-common.h"
+#include "vp-db-util.h"
+
+#include "vp-preview-db.h"
+#include "vp-media-content-util.h"
+#include "vp-file-util.h"
+
+#define PREVIEW_DB_INSERT_QUERY "INSERT INTO video_preview (file_path, file_size, media_id) VALUES ( '%q', %d, '%q')"
+#define PREVIEW_DB_DELETE_QUERY "DELETE FROM video_preview where media_id = '%q'"
+#define PREVIEW_DB_SELECT_QUERY "select preview_uuid, file_path, file_size, last_hit_date, media_id from video_preview where media_id = '%q'"
+#define PREVIEW_DB_LAST_HIT_QUERY "select preview_uuid, file_path, file_size, last_hit_date, media_id from video_preview order by last_hit_date DESC"
+#define PREVIEW_DB_COUNT_QUERY "select count(*) from video_preview where media_id = '%q'"
+#define PREVIEW_DB_ALL_ITEM_QUERY "select DISTINCT(media_id) from video_preview"
+
+typedef struct _PreviewDB {
+ char *szMediaURL;
+ char *szMediaID;
+ char *szFilePath;
+ int nFileSize;
+} PreviewDB;
+
+
+static void _vp_preview_db_destory_handle(PreviewDB * pPreviewDB);
+
+
+/* callback functions */
+
+/* internal functions */
+
+/**
+ *
+ * @param pPreviewDB
+ */
+static void _vp_preview_db_destory_handle(PreviewDB * pPreviewDB)
+{
+ if (pPreviewDB == NULL) {
+ vp_dbgE("pPreviewDB is NULL");
+ return;
+ }
+
+ VP_FREE(pPreviewDB->szMediaURL);
+ VP_FREE(pPreviewDB->szMediaID);
+ VP_FREE(pPreviewDB->szFilePath);
+
+ VP_FREE(pPreviewDB);
+}
+
+/**
+ *
+ * @param szMediaID
+ * @param nCount
+ * @return
+ */
+static bool _vp_preview_db_get_count(char *szMediaID, int *nCount)
+{
+ if (szMediaID == NULL) {
+ vp_dbgE("szMediaID is NULL");
+ return FALSE;
+ }
+
+ char *szSql = sqlite3_mprintf(PREVIEW_DB_COUNT_QUERY, szMediaID);
+ sqlite3_stmt *stmt = NULL;
+
+ if (!vp_db_util_query_prepare(szSql, &stmt)) {
+ if (szSql) {
+ sqlite3_free(szSql);
+ szSql = NULL;
+ }
+ return FALSE;
+ }
+
+ int nRet = 0;
+ nRet = sqlite3_step(stmt);
+ if (nRet == SQLITE_ROW) {
+ *nCount = (int) sqlite3_column_int(stmt, 0);
+ vp_dbgW("Get Chapter Count : %d", *nCount);
+ }
+
+ //if (stmt) { // SVACE issue, pointer dereferenced compared to NULL
+ sqlite3_finalize(stmt);
+ stmt = NULL;
+ //}
+
+ if (szSql) {
+ sqlite3_free(szSql);
+ szSql = NULL;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param szMeidaID
+ * @return
+ */
+static bool _vp_preview_db_delete_item(char *szMeidaID)
+{
+ if (szMeidaID == NULL) {
+ vp_dbgE("szMeidaID is NULL");
+ return FALSE;
+ }
+
+ char *szSql = sqlite3_mprintf(PREVIEW_DB_SELECT_QUERY, szMeidaID);
+ sqlite3_stmt *stmt = NULL;
+
+ if (!vp_db_util_query_prepare(szSql, &stmt)) {
+ if (szSql) {
+ sqlite3_free(szSql);
+ szSql = NULL;
+ }
+ return FALSE;
+ }
+
+ int nRet = 0;
+ nRet = sqlite3_step(stmt);
+ if (nRet == SQLITE_ROW) {
+
+ char *szFileName = (char *) sqlite3_column_text(stmt, 1);
+ if (vp_file_exists(szFileName)) {
+ vp_file_unlink(szFileName);
+ }
+
+ }
+
+ //if (stmt) { // SVACE issue, pointer dereferenced compared to NULL
+ sqlite3_finalize(stmt);
+ stmt = NULL;
+ //}
+
+ if (szSql) {
+ sqlite3_free(szSql);
+ szSql = NULL;
+ }
+
+ return TRUE;
+}
+
+
+
+/* external functions */
+
+/**
+ *
+ * @return
+ */
+vp_preview_db_h vp_preview_db_create()
+{
+ PreviewDB *pPreviewDB = calloc(1, sizeof(PreviewDB));
+
+ if (pPreviewDB == NULL) {
+ vp_dbgE("pPreviewDB alloc is fail");
+ return NULL;
+ }
+
+ if (!vp_db_util_connect()) {
+ vp_dbgE("Database connect is fail");
+ _vp_preview_db_destory_handle(pPreviewDB);
+ return NULL;
+ }
+
+ return (vp_preview_db_h) pPreviewDB;
+}
+
+/**
+ *
+ * @param hPreviewDB
+ */
+void vp_preview_db_destroy(vp_preview_db_h hPreviewDB)
+{
+ if (hPreviewDB == NULL) {
+ vp_dbgE("hPreviewDB is NULL");
+ return;
+ }
+
+ vp_db_util_disconnect();
+
+ PreviewDB *pPreviewDB = (PreviewDB *) hPreviewDB;
+
+ _vp_preview_db_destory_handle(pPreviewDB);
+}
+
+/**
+ *
+ * @param hPreviewDB
+ * @param szMediaID
+ * @return
+ */
+bool vp_preview_db_set_media_id(vp_preview_db_h hPreviewDB,
+ const char *szMediaID)
+{
+ if (hPreviewDB == NULL) {
+ vp_dbgE("hPreviewDB is NULL");
+ return FALSE;
+ }
+
+ if (szMediaID == NULL) {
+ vp_dbgE("szMediaID is NULL");
+ return FALSE;
+ }
+
+ PreviewDB *pPreviewDB = (PreviewDB *) hPreviewDB;
+
+ VP_FREE(pPreviewDB->szMediaID);
+
+ VP_STRDUP(pPreviewDB->szMediaID, szMediaID);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param hPreviewDB
+ * @param szMediaURL
+ * @return
+ */
+bool vp_preview_db_set_media_url(vp_preview_db_h hPreviewDB,
+ const char *szMediaURL)
+{
+ if (hPreviewDB == NULL) {
+ vp_dbgE("hPreviewDB is NULL");
+ return FALSE;
+ }
+
+ if (szMediaURL == NULL) {
+ vp_dbgE("szMediaURL is NULL");
+ return FALSE;
+ }
+
+ PreviewDB *pPreviewDB = (PreviewDB *) hPreviewDB;
+
+ VP_FREE(pPreviewDB->szMediaURL);
+ VP_FREE(pPreviewDB->szMediaID);
+
+ VP_STRDUP(pPreviewDB->szMediaURL, szMediaURL);
+
+ if (!vp_media_content_util_get_video_id
+ (szMediaURL, &(pPreviewDB->szMediaID))) {
+ vp_dbgE("vp_media_content_util_get_video_id is fail");
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param hPreviewDB
+ * @param szFilePath
+ * @return
+ */
+bool vp_preview_db_get_file_path(vp_preview_db_h hPreviewDB,
+ char **szFilePath)
+{
+ if (hPreviewDB == NULL) {
+ vp_dbgE("hPreviewDB is NULL");
+ return FALSE;
+ }
+
+ PreviewDB *pPreviewDB = (PreviewDB *) hPreviewDB;
+
+ if (pPreviewDB->szMediaID == NULL) {
+ vp_dbgE("szMediaID is NULL");
+ return FALSE;
+ }
+
+ char *szSql =
+ sqlite3_mprintf(PREVIEW_DB_SELECT_QUERY, pPreviewDB->szMediaID);
+ sqlite3_stmt *stmt = NULL;
+
+ if (!vp_db_util_query_prepare(szSql, &stmt)) {
+ if (szSql) {
+ sqlite3_free(szSql);
+ szSql = NULL;
+ }
+ return FALSE;
+ }
+
+ int nRet = 0;
+ nRet = sqlite3_step(stmt);
+ if (nRet == SQLITE_ROW) {
+ /* preview_uuid, file_path, file_size, media_id */
+ vp_sdbg("UUID : %d", (int) sqlite3_column_int(stmt, 0));
+ vp_sdbg("FILE_PATH : %s", (char *) sqlite3_column_text(stmt, 1));
+ vp_sdbg("FILE_SIZE : %d", (int) sqlite3_column_int(stmt, 2));
+ vp_sdbg("LAST_DATE : %d", (int) sqlite3_column_int(stmt, 3));
+ vp_sdbg("MEDIA_ID : %s", (char *) sqlite3_column_text(stmt, 4));
+
+ VP_STRDUP(*szFilePath, (char *) sqlite3_column_text(stmt, 1));
+ }
+
+ //if (stmt) { // SVACE issue, pointer dereferenced compared to NULL
+ sqlite3_finalize(stmt);
+ stmt = NULL;
+ //}
+
+ if (szSql) {
+ sqlite3_free(szSql);
+ szSql = NULL;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param hPreviewDB
+ * @param nFileSize
+ * @return
+ */
+bool vp_preview_db_get_file_size(vp_preview_db_h hPreviewDB,
+ int *nFileSize)
+{
+ if (hPreviewDB == NULL) {
+ vp_dbgE("hPreviewDB is NULL");
+ return FALSE;
+ }
+
+ PreviewDB *pPreviewDB = (PreviewDB *) hPreviewDB;
+
+ if (pPreviewDB->szMediaID == NULL) {
+ vp_dbgE("szMediaID is NULL");
+ return FALSE;
+ }
+
+ char *szSql =
+ sqlite3_mprintf(PREVIEW_DB_SELECT_QUERY, pPreviewDB->szMediaID);
+ sqlite3_stmt *stmt = NULL;
+
+ if (!vp_db_util_query_prepare(szSql, &stmt)) {
+ if (szSql) {
+ sqlite3_free(szSql);
+ szSql = NULL;
+ }
+ return FALSE;
+ }
+
+ int nRet = 0;
+ nRet = sqlite3_step(stmt);
+ if (nRet == SQLITE_ROW) {
+ /* preview_uuid, file_path, file_size, media_id */
+ vp_sdbg("UUID : %d", (int) sqlite3_column_int(stmt, 0));
+ vp_sdbg("FILE_PATH : %s", (char *) sqlite3_column_text(stmt, 1));
+ vp_sdbg("FILE_SIZE : %d", (int) sqlite3_column_int(stmt, 2));
+ vp_sdbg("LAST_DATE : %d", (int) sqlite3_column_int(stmt, 3));
+ vp_sdbg("MEDIA_ID : %s", (char *) sqlite3_column_text(stmt, 4));
+
+
+ *nFileSize = (int) sqlite3_column_int(stmt, 2);
+ }
+
+ //if (stmt) { // SVACE issue, pointer dereferenced compared to NULL
+ sqlite3_finalize(stmt);
+ stmt = NULL;
+ //}
+
+ if (szSql) {
+ sqlite3_free(szSql);
+ szSql = NULL;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param hPreviewDB
+ * @param nCount
+ * @return
+ */
+bool vp_preview_db_item_count(vp_preview_db_h hPreviewDB, int *nCount)
+{
+ if (hPreviewDB == NULL) {
+ vp_dbgE("hPreviewDB is NULL");
+ return FALSE;
+ }
+
+ PreviewDB *pPreviewDB = (PreviewDB *) hPreviewDB;
+
+ return _vp_preview_db_get_count(pPreviewDB->szMediaID, nCount);
+}
+
+/**
+ *
+ * @param hPreviewDB
+ * @param pPreviewList
+ * @return
+ */
+bool vp_preview_db_get_all_items_media_id(vp_preview_db_h hPreviewDB,
+ GList ** pPreviewList)
+{
+ if (hPreviewDB == NULL) {
+ vp_dbgE("hPreviewDB is NULL");
+ return FALSE;
+ }
+
+ char *szSql = sqlite3_mprintf(PREVIEW_DB_ALL_ITEM_QUERY);
+ sqlite3_stmt *stmt = NULL;
+
+ if (!vp_db_util_query_prepare(szSql, &stmt)) {
+ if (szSql) {
+ sqlite3_free(szSql);
+ szSql = NULL;
+ }
+ return FALSE;
+ }
+
+ int nRet = 0;
+ nRet = sqlite3_step(stmt);
+ while (nRet == SQLITE_ROW) {
+ char *szMediaID = NULL;
+
+ VP_STRDUP(szMediaID, (char *) sqlite3_column_text(stmt, 0));
+
+ *pPreviewList = g_list_append(*pPreviewList, szMediaID);
+
+ nRet = sqlite3_step(stmt);
+ }
+
+ //if (stmt) { // SVACE issue, pointer dereferenced compared to NULL
+ sqlite3_finalize(stmt);
+ stmt = NULL;
+ //}
+
+ if (szSql) {
+ sqlite3_free(szSql);
+ szSql = NULL;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param hPreviewDB
+ * @param szPreviewPath
+ * @return
+ */
+bool vp_preview_db_insert(vp_preview_db_h hPreviewDB,
+ const char *szPreviewPath)
+{
+ if (hPreviewDB == NULL) {
+ vp_dbgE("hPreviewDB is NULL");
+ return FALSE;
+ }
+
+ if (szPreviewPath == NULL) {
+ vp_dbgE("szMediaID is NULL");
+ return NULL;
+ }
+
+ PreviewDB *pPreviewDB = (PreviewDB *) hPreviewDB;
+
+ if (pPreviewDB->szMediaID == NULL) {
+ vp_dbgE("szMediaID is NULL");
+ return FALSE;
+ }
+
+ long long nSize = vp_file_size(szPreviewPath);
+
+ char *szSql = sqlite3_mprintf(PREVIEW_DB_INSERT_QUERY, szPreviewPath,
+ (int) nSize, pPreviewDB->szMediaID);
+ vp_sdbg("%s", szSql);
+
+ sqlite3_stmt *stmt = NULL;
+
+ if (!vp_db_util_query_prepare(szSql, &stmt)) {
+ if (szSql) {
+ sqlite3_free(szSql);
+ szSql = NULL;
+ }
+ return FALSE;
+ }
+
+ sqlite3_step(stmt);
+
+ //if (stmt) { // SVACE issue, pointer dereferenced compared to NULL
+ sqlite3_reset(stmt);
+ sqlite3_clear_bindings(stmt);
+ sqlite3_finalize(stmt);
+ stmt = NULL;
+ //}
+
+ if (szSql) {
+ sqlite3_free(szSql);
+ szSql = NULL;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param hPreviewDB
+ * @return
+ */
+bool vp_preview_db_delete(vp_preview_db_h hPreviewDB)
+{
+ if (hPreviewDB == NULL) {
+ vp_dbgE("hPreviewDB is NULL");
+ return FALSE;
+ }
+
+ PreviewDB *pPreviewDB = (PreviewDB *) hPreviewDB;
+
+ if (pPreviewDB->szMediaID == NULL) {
+ vp_dbgE("szMediaID is NULL");
+ return FALSE;
+ }
+
+ _vp_preview_db_delete_item(pPreviewDB->szMediaID);
+
+ char *szSql =
+ sqlite3_mprintf(PREVIEW_DB_DELETE_QUERY, pPreviewDB->szMediaID);
+ vp_sdbg("%s", szSql);
+
+ sqlite3_stmt *stmt = NULL;
+
+ if (!vp_db_util_query_prepare(szSql, &stmt)) {
+ if (szSql) {
+ sqlite3_free(szSql);
+ szSql = NULL;
+ }
+ return FALSE;
+ }
+
+ sqlite3_step(stmt);
+
+ //if (stmt) { // SVACE issue, pointer dereferenced compared to NULL
+ sqlite3_reset(stmt);
+ sqlite3_clear_bindings(stmt);
+ sqlite3_finalize(stmt);
+ stmt = NULL;
+ //}
+
+ if (szSql) {
+ sqlite3_free(szSql);
+ szSql = NULL;
+ }
+
+ return TRUE;
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "vp-db-common.h"
+#include "vp-db-util.h"
+#include "vp-file-util.h"
+
+#include "vp-media-content-util.h"
+
+#include "vp-thumb-db.h"
+
+
+#define THUMB_DB_INSERT_QUERY "INSERT INTO video_thumb (thumb_idx, file_path, file_size, media_id) VALUES ( %d, '%q', %d, '%q')"
+#define THUMB_DB_DELETE_QUERY "DELETE FROM video_thumb where media_id = '%q'"
+#define THUMB_DB_SELECT_QUERY "select thumb_uuid, thumb_idx, file_path, file_size, media_id from video_thumb where media_id = '%q'"
+#define THUMB_DB_COUNT_QUERY "select count(*) from video_thumb where media_id = '%q'"
+#define THUMB_DB_ALL_ITEM_QUERY "select DISTINCT(media_id) from video_thumb"
+
+
+
+typedef struct _ThumbDB {
+ char *szMediaURL;
+ char *szMediaID;
+ char *szFilePath;
+ int nFileSize;
+ int nTotalCount;
+} ThumbDB;
+
+
+static void _vp_thumb_db_destory_handle(ThumbDB * pThumbDB);
+
+
+/* callback functions */
+
+/* internal functions */
+
+/**
+ *
+ * @param pThumbDB
+ */
+static void _vp_thumb_db_destory_handle(ThumbDB * pThumbDB)
+{
+ if (pThumbDB == NULL) {
+ vp_dbgE("pThumbDB is NULL");
+ return;
+ }
+
+ VP_FREE(pThumbDB->szMediaURL);
+ VP_FREE(pThumbDB->szMediaID);
+ VP_FREE(pThumbDB->szFilePath);
+
+ VP_FREE(pThumbDB);
+}
+
+/**
+ *
+ * @param szMediaID
+ * @param nCount
+ * @return
+ */
+static bool _vp_thumb_db_get_count(char *szMediaID, int *nCount)
+{
+ if (szMediaID == NULL) {
+ vp_dbgE("szMediaID is NULL");
+ return FALSE;
+ }
+ char *szSql = sqlite3_mprintf(THUMB_DB_COUNT_QUERY, szMediaID);
+ sqlite3_stmt *stmt = NULL;
+
+ if (!vp_db_util_query_prepare(szSql, &stmt)) {
+ if (szSql) {
+ sqlite3_free(szSql);
+ szSql = NULL;
+ }
+ return FALSE;
+ }
+
+ int nRet = 0;
+ nRet = sqlite3_step(stmt);
+ if (nRet == SQLITE_ROW) {
+ *nCount = (int) sqlite3_column_int(stmt, 0);
+ vp_dbgW("Get Thumb Count : %d", *nCount);
+ }
+
+ //if (stmt) { // SVACE issue, pointer dereferenced compared to NULL
+ sqlite3_finalize(stmt);
+ stmt = NULL;
+ //}
+
+ if (szSql) {
+ sqlite3_free(szSql);
+ szSql = NULL;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param szMediaID
+ * @return
+ */
+static bool _vp_thumb_db_delete_items(char *szMediaID)
+{
+ if (szMediaID == NULL) {
+ vp_dbgE("szMediaID is NULL");
+ return FALSE;
+ }
+
+ char *szSql = sqlite3_mprintf(THUMB_DB_SELECT_QUERY, szMediaID);
+ sqlite3_stmt *stmt = NULL;
+
+ if (!vp_db_util_query_prepare(szSql, &stmt)) {
+ if (szSql) {
+ sqlite3_free(szSql);
+ szSql = NULL;
+ }
+ return FALSE;
+ }
+
+ int nRet = 0;
+ nRet = sqlite3_step(stmt);
+ while (nRet == SQLITE_ROW) {
+ char *szFileName = (char *) sqlite3_column_text(stmt, 2);
+
+ if (vp_file_exists(szFileName)) {
+ vp_file_unlink(szFileName);
+ }
+
+ nRet = sqlite3_step(stmt);
+ }
+
+ //if (stmt) { // SVACE issue, pointer dereferenced compared to NULL
+ sqlite3_finalize(stmt);
+ stmt = NULL;
+ //}
+
+ if (szSql) {
+ sqlite3_free(szSql);
+ szSql = NULL;
+ }
+
+ return TRUE;
+}
+
+
+
+/* external functions */
+/**
+ *
+ * @return
+ */
+vp_thumb_db_h vp_thumb_db_create()
+{
+ ThumbDB *pThumbDB = calloc(1, sizeof(ThumbDB));
+
+ if (pThumbDB == NULL) {
+ vp_dbgE("pThumbDB alloc is fail");
+ return NULL;
+ }
+ if (!vp_db_util_connect()) {
+ vp_dbgE("Database connect is fail");
+ _vp_thumb_db_destory_handle(pThumbDB);
+ return NULL;
+ }
+
+ return (vp_thumb_db_h) pThumbDB;
+}
+
+/**
+ *
+ * @param hThumbDB
+ */
+void vp_thumb_db_destroy(vp_thumb_db_h hThumbDB)
+{
+ if (hThumbDB == NULL) {
+ vp_dbgE("hThumbDB is NULL");
+ return;
+ }
+
+ vp_db_util_disconnect();
+
+ ThumbDB *pThumbDB = (ThumbDB *) hThumbDB;
+
+ _vp_thumb_db_destory_handle(pThumbDB);
+}
+
+/**
+ *
+ * @param hThumbDB
+ * @param szMediaID
+ * @return
+ */
+bool vp_thumb_db_set_media_id(vp_thumb_db_h hThumbDB,
+ const char *szMediaID)
+{
+ if (hThumbDB == NULL) {
+ vp_dbgE("hThumbDB is NULL");
+ return FALSE;
+ }
+
+ ThumbDB *pThumbDB = (ThumbDB *) hThumbDB;
+
+ if (szMediaID == NULL) {
+ vp_dbgE("szMediaID is NULL");
+ return FALSE;
+ }
+
+ VP_FREE(pThumbDB->szMediaID);
+
+ VP_STRDUP(pThumbDB->szMediaID, szMediaID);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param hThumbDB
+ * @param szMediaURL
+ * @return
+ */
+bool vp_thumb_db_set_media_url(vp_thumb_db_h hThumbDB,
+ const char *szMediaURL)
+{
+ if (hThumbDB == NULL) {
+ vp_dbgE("hThumbDB is NULL");
+ return FALSE;
+ }
+
+ if (szMediaURL == NULL) {
+ vp_dbgE("szMediaURL is NULL");
+ return FALSE;
+ }
+
+ ThumbDB *pThumbDB = (ThumbDB *) hThumbDB;
+
+ VP_FREE(pThumbDB->szMediaURL);
+ VP_FREE(pThumbDB->szMediaID);
+
+ VP_STRDUP(pThumbDB->szMediaURL, szMediaURL);
+
+ if (!vp_media_content_util_get_video_id
+ (szMediaURL, &(pThumbDB->szMediaID))) {
+ vp_dbgE("vp_media_content_util_get_video_id is fail");
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param hThumbDB
+ * @param pThumbList
+ * @return
+ */
+bool vp_thumb_db_get_items(vp_thumb_db_h hThumbDB, GList ** pThumbList)
+{
+ if (hThumbDB == NULL) {
+ vp_dbgE("hThumbDB is NULL");
+ return FALSE;
+ }
+
+ ThumbDB *pThumbDB = (ThumbDB *) hThumbDB;
+
+ if (pThumbDB->szMediaID == NULL) {
+ vp_dbgE("szMediaID is NULL");
+ return FALSE;
+ }
+
+ char *szSql =
+ sqlite3_mprintf(THUMB_DB_SELECT_QUERY, pThumbDB->szMediaID);
+ sqlite3_stmt *stmt = NULL;
+
+ if (!vp_db_util_query_prepare(szSql, &stmt)) {
+ if (szSql) {
+ sqlite3_free(szSql);
+ szSql = NULL;
+ }
+ return FALSE;
+ }
+
+ int nRet = 0;
+ nRet = sqlite3_step(stmt);
+ while (nRet == SQLITE_ROW) {
+ /* thumb_uuid, thumb_idx, file_path, file_size, media_id */
+ ThumbDBItem *pItem = calloc(1, sizeof(ThumbDBItem));
+ if (!pItem) {
+ vp_dbgE("allocation failed");
+ return FALSE;
+ }
+ vp_sdbg("UUID : %d", (int) sqlite3_column_int(stmt, 0));
+ vp_sdbg("THUMB_IDX : %d", (int) sqlite3_column_int(stmt, 1));
+ vp_sdbg("FILE_PATH : %s", (char *) sqlite3_column_text(stmt, 2));
+ vp_sdbg("FILE_SIZE : %d", (int) sqlite3_column_int(stmt, 3));
+ vp_sdbg("MEDIA_ID : %s", (char *) sqlite3_column_text(stmt, 4));
+
+ pItem->nIdx = (int) sqlite3_column_int(stmt, 1);
+ VP_STRDUP(pItem->szThumbPath,
+ (char *) sqlite3_column_text(stmt, 2));
+ pItem->nFileSize = (int) sqlite3_column_int(stmt, 3);
+
+ *pThumbList = g_list_append(*pThumbList, pItem);
+
+ nRet = sqlite3_step(stmt);
+ }
+
+ //if (stmt) { // SVACE issue, pointer dereferenced compared to NULL
+ sqlite3_finalize(stmt);
+ stmt = NULL;
+ //}
+
+ if (szSql) {
+ sqlite3_free(szSql);
+ szSql = NULL;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param hThumbDB
+ * @param pThumbList
+ * @return
+ */
+bool vp_thumb_db_get_all_items_media_id(vp_thumb_db_h hThumbDB,
+ GList ** pThumbList)
+{
+ if (hThumbDB == NULL) {
+ vp_dbgE("hThumbDB is NULL");
+ return FALSE;
+ }
+
+ char *szSql = sqlite3_mprintf(THUMB_DB_ALL_ITEM_QUERY);
+ sqlite3_stmt *stmt = NULL;
+
+ if (!vp_db_util_query_prepare(szSql, &stmt)) {
+ if (szSql) {
+ sqlite3_free(szSql);
+ szSql = NULL;
+ }
+ return FALSE;
+ }
+
+ int nRet = 0;
+ nRet = sqlite3_step(stmt);
+ while (nRet == SQLITE_ROW) {
+ char *szMediaID = NULL;
+ VP_STRDUP(szMediaID, (char *) sqlite3_column_text(stmt, 0));
+ *pThumbList = g_list_append(*pThumbList, szMediaID);
+
+ nRet = sqlite3_step(stmt);
+ }
+
+ //if (stmt) { // SVACE issue, pointer dereferenced compared to NULL
+ sqlite3_finalize(stmt);
+ stmt = NULL;
+ //}
+
+ if (szSql) {
+ sqlite3_free(szSql);
+ szSql = NULL;
+ }
+
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param hThumbDB
+ * @param szThumbPath
+ * @param nIdx
+ * @return
+ */
+bool vp_thumb_db_insert(vp_thumb_db_h hThumbDB, const char *szThumbPath,
+ int nIdx)
+{
+ if (hThumbDB == NULL) {
+ vp_dbgE("hThumbDB is NULL");
+ return FALSE;
+ }
+
+ if (szThumbPath == NULL) {
+ vp_dbgE("szThumbPath is NULL");
+ return NULL;
+ }
+
+ ThumbDB *pThumbDB = (ThumbDB *) hThumbDB;
+
+ if (pThumbDB->szMediaID == NULL) {
+ vp_dbgE("szMediaID is NULL");
+ return FALSE;
+ }
+
+ long long nSize = vp_file_size(szThumbPath);
+
+ char *szSql = sqlite3_mprintf(THUMB_DB_INSERT_QUERY, nIdx, szThumbPath,
+ (int) nSize, pThumbDB->szMediaID);
+ vp_sdbg("%s", szSql);
+
+ sqlite3_stmt *stmt = NULL;
+
+ if (!vp_db_util_query_prepare(szSql, &stmt)) {
+ if (szSql) {
+ sqlite3_free(szSql);
+ szSql = NULL;
+ }
+ return FALSE;
+ }
+
+ sqlite3_step(stmt);
+
+ //if (stmt) { // SVACE issue, pointer dereferenced compared to NULL
+ sqlite3_reset(stmt);
+ sqlite3_clear_bindings(stmt);
+ sqlite3_finalize(stmt);
+ stmt = NULL;
+ //}
+
+ if (szSql) {
+ sqlite3_free(szSql);
+ szSql = NULL;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param hThumbDB
+ * @return
+ */
+bool vp_thumb_db_delete(vp_thumb_db_h hThumbDB)
+{
+ if (hThumbDB == NULL) {
+ vp_dbgE("hThumbDB is NULL");
+ return FALSE;
+ }
+
+ ThumbDB *pThumbDB = (ThumbDB *) hThumbDB;
+
+ if (pThumbDB->szMediaID == NULL) {
+ vp_dbgE("szMediaID is NULL");
+ return FALSE;
+ }
+
+ _vp_thumb_db_delete_items(pThumbDB->szMediaID);
+
+ char *szSql =
+ sqlite3_mprintf(THUMB_DB_DELETE_QUERY, pThumbDB->szMediaID);
+ vp_sdbg("%s", szSql);
+
+ sqlite3_stmt *stmt = NULL;
+
+ if (!vp_db_util_query_prepare(szSql, &stmt)) {
+ if (szSql) {
+ sqlite3_free(szSql);
+ szSql = NULL;
+ }
+ return FALSE;
+ }
+
+ sqlite3_step(stmt);
+
+ //if (stmt) { // SVACE issue, pointer dereferenced compared to NULL
+ sqlite3_reset(stmt);
+ sqlite3_clear_bindings(stmt);
+ sqlite3_finalize(stmt);
+ stmt = NULL;
+ //}
+
+ if (szSql) {
+ sqlite3_free(szSql);
+ szSql = NULL;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param hThumbDB
+ * @param nCount
+ * @return
+ */
+bool vp_thumb_db_item_count(vp_thumb_db_h hThumbDB, int *nCount)
+{
+ if (hThumbDB == NULL) {
+ vp_dbgE("hThumbDB is NULL");
+ return FALSE;
+ }
+
+ ThumbDB *pThumbDB = (ThumbDB *) hThumbDB;
+
+ return _vp_thumb_db_get_count(pThumbDB->szMediaID, nCount);
+}
+
+/**
+ *
+ * @param pItem
+ * @return
+ */
+bool vp_thumb_db_item_free(ThumbDBItem * pItem)
+{
+ if (pItem == NULL) {
+ vp_dbgE("ThumbDBItem is NULL");
+ return FALSE;
+ }
+
+ VP_FREE(pItem->szThumbPath);
+ VP_FREE(pItem);
+
+ return TRUE;
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <glib.h>
+#include <device/power.h>
+#include <storage/storage.h>
+
+#include "vp-util.h"
+
+#define CLOUD_FOLDER "/opt/usr/media/.cloud"
+
+#define OTG_FOLDER "/opt/storage/usb"
+#define PERSONAL_PAGE_FOLDER "/opt/storage/PersonalStorage"
+#define PKGNAME "videos"
+
+#define VP_UTIL_LABEL_DEVICE_MEMORY __vp_util_get_string("IDS_VIDEO_SBODY_DEVICE_STORAGE")
+#define VP_UTIL_LABEL_SD_CARD __vp_util_get_string("IDS_ST_BODY_SD_CARD")
+#define VP_UTIL_LABEL_OTG __vp_util_get_string("IDS_VPL_TAB_EXTERNAL_STORAGE")
+#define VP_UTIL_LABEL_PERSONAL_PAGE __vp_util_get_string("IDS_GALLERY_BODY_PERSONAL_STORAGE")
+#define VP_UTIL_LABEL_UNKNOWN __vp_util_get_string("VIDEOS_VIEW_DROPBOX_NAME")
+#define VP_UTIL_LABEL_CLOUD __vp_util_get_string("IDS_CLOUD_BODY_DROPBOX_ABB")
+
+
+#define DIR_PATH_LEN_MAX 4096
+
+typedef enum __Vp_Storage Vp_Storage;
+enum __Vp_Storage {
+ VP_STORAGE_NONE,
+ VP_STORAGE_PHONE,
+ VP_STORAGE_CLOUD,
+ VP_STORAGE_MMC,
+ VP_STORAGE_OTG,
+ VP_STORAGE_PERSONAL_PAGE,
+ VP_STORAGE_MAX
+};
+
+static const int RGB_BPP = 3;
+static const int RGBA_BPP = 4;
+typedef unsigned char uchar;
+typedef struct _rgb888 {
+ uchar r;
+ uchar g;
+ uchar b;
+} rgb888;
+
+typedef struct _rgba8888 {
+ uchar r;
+ uchar g;
+ uchar b;
+ uchar a;
+} rgba8888;
+
+typedef struct _transform {
+ int index;
+ float coef;
+} transform;
+
+/**
+ *
+ * @param ID
+ * @return
+ */
+static char *__vp_util_get_string(const char *ID)
+{
+ char *str = dgettext("video-player", ID);
+ return str;
+}
+
+/**
+ *
+ * @param filepath
+ * @return
+ */
+static Vp_Storage __vp_util_get_storage_type(const char *filepath)
+{
+ if (!filepath) {
+ return VP_STORAGE_NONE;
+ }
+
+ char *PHONE_FOLDER = NULL;
+ char *MEMORY_FOLDER = NULL;
+ Vp_Storage store_type = VP_STORAGE_NONE;
+
+ storage_get_root_directory(STORAGE_TYPE_INTERNAL, &PHONE_FOLDER);
+ storage_get_root_directory(STORAGE_TYPE_EXTERNAL, &MEMORY_FOLDER);
+
+ if (g_str_has_prefix(filepath, CLOUD_FOLDER)) {
+ store_type = VP_STORAGE_CLOUD; /*store in cloud server */
+ } else if (g_str_has_prefix(filepath, PHONE_FOLDER)) {
+ store_type = VP_STORAGE_PHONE; /*store in phone */
+ } else if (g_str_has_prefix(filepath, MEMORY_FOLDER)) {
+ store_type = VP_STORAGE_MMC; /*store in MMC */
+ } else if (g_str_has_prefix(filepath, OTG_FOLDER)) {
+ store_type = VP_STORAGE_OTG; /*store in OTG */
+ } else if (g_str_has_prefix(filepath, PERSONAL_PAGE_FOLDER)) {
+ store_type = VP_STORAGE_PERSONAL_PAGE; /*store in persona page */
+ } else {
+ store_type = VP_STORAGE_NONE;
+ }
+
+ free(PHONE_FOLDER);
+ free(MEMORY_FOLDER);
+
+ return store_type;
+}
+
+/**
+ *
+ * @param full_path
+ * @return
+ */
+static char *__vp_util_get_logic_path(const char *full_path)
+{
+ if (!full_path) {
+ return NULL;
+ }
+
+ char *PHONE_FOLDER = NULL;
+ char *MEMORY_FOLDER = NULL;
+ Vp_Storage store_type = VP_STORAGE_NONE;
+ int root_len = 0;
+
+ storage_get_root_directory(STORAGE_TYPE_INTERNAL, &PHONE_FOLDER);
+ storage_get_root_directory(STORAGE_TYPE_EXTERNAL, &MEMORY_FOLDER);
+
+ store_type = __vp_util_get_storage_type(full_path);
+
+ switch (store_type) {
+ case VP_STORAGE_PHONE:
+ root_len = strlen(PHONE_FOLDER);
+ break;
+ case VP_STORAGE_MMC:
+ root_len = strlen(MEMORY_FOLDER);
+ break;
+ case VP_STORAGE_OTG:
+ root_len = strlen(OTG_FOLDER);
+ break;
+ case VP_STORAGE_PERSONAL_PAGE:
+ root_len = strlen(PERSONAL_PAGE_FOLDER);
+ break;
+ default:
+ free(PHONE_FOLDER);
+ free(MEMORY_FOLDER);
+ return NULL;
+ }
+
+ free(PHONE_FOLDER);
+ free(MEMORY_FOLDER);
+
+ /*size of path is DIR_PATH_LEN_MAX+1 */
+ char *logic_path = NULL;
+ logic_path = (char *) malloc(DIR_PATH_LEN_MAX + 1);
+ if (logic_path == NULL) {
+ return NULL;
+ }
+
+ memset(logic_path, 0, DIR_PATH_LEN_MAX + 1);
+
+ g_strlcpy(logic_path, full_path + root_len, DIR_PATH_LEN_MAX);
+
+ if (strlen(logic_path) == 0) {
+ g_strlcpy(logic_path, "/", DIR_PATH_LEN_MAX);
+ }
+
+ return logic_path;
+}
+
+/**
+ *
+ * @param szFileLocation
+ * @return
+ */
+char *vp_util_convert_file_location(const char *szFileLocation)
+{
+ if (!szFileLocation) {
+ return NULL;
+ }
+
+ Vp_Storage store_type = VP_STORAGE_NONE;
+ char *logic_path = NULL;
+ char *file_location = NULL;
+
+ store_type = __vp_util_get_storage_type(szFileLocation);
+
+ if (store_type == VP_STORAGE_CLOUD) {
+ file_location = g_strdup(VP_UTIL_LABEL_CLOUD);
+ return file_location;
+ }
+
+
+ logic_path = __vp_util_get_logic_path(szFileLocation);
+
+ if (!logic_path) {
+ return NULL;
+ }
+
+ if (store_type == VP_STORAGE_MMC) {
+ file_location =
+ g_strconcat(VP_UTIL_LABEL_SD_CARD, logic_path, NULL);
+ } else if (store_type == VP_STORAGE_PHONE) {
+ file_location =
+ g_strconcat(VP_UTIL_LABEL_DEVICE_MEMORY, logic_path, NULL);
+ } else if (store_type == VP_STORAGE_OTG) {
+ file_location = g_strconcat(VP_UTIL_LABEL_OTG, logic_path, NULL);
+ } else if (store_type == VP_STORAGE_PERSONAL_PAGE) {
+ file_location =
+ g_strconcat(VP_UTIL_LABEL_PERSONAL_PAGE, logic_path, NULL);
+ } else {
+ file_location = g_strdup(VP_UTIL_LABEL_UNKNOWN);
+ }
+
+ g_free(logic_path);
+ logic_path = NULL;
+
+ return file_location;
+}
+
+/**
+ *
+ * @param dest
+ * @param dest_width
+ * @param dest_height
+ * @param dest_rotation
+ * @param src
+ * @param src_w
+ * @param src_h
+ * @param colorspace
+ * @return
+ */
+int vp_util_image_rotate(unsigned char *dest, int *dest_width,
+ int *dest_height,
+ const image_util_rotation_e dest_rotation,
+ const unsigned char *src, const int src_w,
+ const int src_h,
+ const image_util_colorspace_e colorspace)
+{
+ if (!dest || !dest_width || !dest_height || !src) {
+ return IMAGE_UTIL_ERROR_INVALID_PARAMETER;
+ }
+
+ if (IMAGE_UTIL_COLORSPACE_RGB888 != colorspace || src_w <= 0
+ || src_h <= 0 || dest_rotation <= IMAGE_UTIL_ROTATION_NONE
+ || dest_rotation > IMAGE_UTIL_ROTATION_FLIP_VERT) {
+ return IMAGE_UTIL_ERROR_INVALID_PARAMETER;
+ }
+
+ const int dest_w =
+ (IMAGE_UTIL_ROTATION_180 == dest_rotation ? src_w : src_h);
+ const int dest_h =
+ (IMAGE_UTIL_ROTATION_180 == dest_rotation ? src_h : src_w);
+ const unsigned int src_stride = src_w * sizeof(rgb888);
+ const unsigned int dest_stride = dest_w * sizeof(rgb888);
+ int x = 0, y = 0;
+
+ switch (dest_rotation) {
+ case IMAGE_UTIL_ROTATION_90:{
+ const rgb888 *const src_col_0 =
+ (rgb888 *) (src + (src_h - 1) * src_stride);
+ for (y = 0; y < dest_h; y++) {
+ rgb888 *const dest_row =
+ (rgb888 *) (dest + y * dest_stride);
+ const rgb888 *const src_col = (src_col_0 + y);
+ for (x = 0; x < dest_w; x++) {
+ dest_row[x] =
+ *(rgb888 *) ((uchar *) src_col - x * src_stride);
+ }
+ }
+ }
+ break;
+
+ case IMAGE_UTIL_ROTATION_180:{
+ const rgb888 *const src_row_rev_0 =
+ (rgb888 *) (src + (src_h - 1) * src_stride +
+ (src_w - 1) * sizeof(rgb888));
+ for (y = 0; y < dest_h; y++) {
+ rgb888 *const dest_row =
+ (rgb888 *) (dest + y * dest_stride);
+ const rgb888 *const src_row_rev =
+ (rgb888 *) ((uchar *) src_row_rev_0 - y * src_stride);
+ for (x = 0; x < dest_w; x++) {
+ dest_row[x] = *(src_row_rev - x);
+ }
+ }
+ }
+ break;
+
+ case IMAGE_UTIL_ROTATION_270:{
+ const rgb888 *const src_col_rev_0 =
+ (rgb888 *) (src + (src_w - 1) * sizeof(rgb888));
+ for (y = 0; y < dest_h; y++) {
+ rgb888 *const dest_row =
+ (rgb888 *) (dest + y * dest_stride);
+ const rgb888 *const src_col_rev = (src_col_rev_0 - y);
+ for (x = 0; x < dest_w; x++) {
+ dest_row[x] =
+ *(rgb888 *) ((uchar *) src_col_rev +
+ x * src_stride);
+ }
+ }
+ }
+ break;
+
+ default:
+ return IMAGE_UTIL_ERROR_INVALID_PARAMETER;
+ }
+
+ *dest_width = dest_w;
+ *dest_height = dest_h;
+ return IMAGE_UTIL_ERROR_NONE;
+}
+
+/**
+ *
+ */
+void vp_util_lock_cpu()
+{
+ int ret = device_power_request_lock(POWER_LOCK_CPU, 0);
+ if (ret) {
+ return;
+ }
+}
+
+/**
+ *
+ */
+void vp_util_release_cpu()
+{
+ int ret = device_power_release_lock(POWER_LOCK_CPU);
+ if (ret) {
+ return;
+ }
+}
+
+int vp_util_image_resize(unsigned char *dest, const int *dest_width,
+ const int *dest_height, const unsigned char *src,
+ const int src_w, const int src_h,
+ const image_util_colorspace_e colorspace)
+{
+ if (!dest || !dest_width || !dest_height || !src) {
+ return IMAGE_UTIL_ERROR_INVALID_PARAMETER;
+ }
+
+ int dest_w = *dest_width;
+ int dest_h = *dest_height;
+
+ if ((IMAGE_UTIL_COLORSPACE_RGB888 != colorspace
+ && IMAGE_UTIL_COLORSPACE_RGBA8888 != colorspace)
+ || src_w <= 0 || src_h <= 0 || dest_w <= 0 || dest_h <= 0) {
+ return IMAGE_UTIL_ERROR_INVALID_PARAMETER;
+ }
+
+ const unsigned int bpp =
+ (IMAGE_UTIL_COLORSPACE_RGBA8888 ==
+ colorspace ? RGBA_BPP : RGB_BPP);
+ const unsigned int src_stride = bpp * src_w;
+ const unsigned int dest_stride = bpp * dest_w;
+ float coef = 0.0f;
+ float c1, c2, c3, c4;
+ c1 = c2 = c3 = c4 = 0.0f;
+ u_int32_t red, green, blue, alpha;
+ red = green = blue = alpha = 0;
+ int x = 0, y = 0;
+ const float coef_x = (float) (src_w) / (float) (dest_w);
+ const float coef_y = (float) (src_h) / (float) (dest_h);
+ const float add_x = 0.5f * coef_x - 0.5f;
+ const float add_y = 0.5f * coef_y - 0.5f;
+ transform *transform_x = NULL, *transform_y = NULL;
+ transform_x = calloc(dest_w, sizeof(transform));
+ if (!transform_x) {
+ return IMAGE_UTIL_ERROR_OUT_OF_MEMORY;
+ }
+ transform_y = calloc(dest_h, sizeof(transform));
+ if (!transform_y) {
+ free(transform_x);
+ return IMAGE_UTIL_ERROR_OUT_OF_MEMORY;
+ }
+
+ for (x = 0; x < dest_w; ++x) {
+ coef = x * coef_x + add_x;
+ transform_x[x].index = (int) coef;
+ transform_x[x].coef = 1 - coef + transform_x[x].index;
+ }
+ if (transform_x[0].index < 0) {
+ transform_x[0].index = 0;
+ transform_x[0].coef = 1.0f;
+ }
+ if (transform_x[dest_w - 1].index >= src_w - 2) {
+ transform_x[dest_w - 1].index = src_w - 2;
+ transform_x[dest_w - 1].coef = 0.0f;
+ }
+
+ for (y = 0; y < dest_h; ++y) {
+ coef = y * coef_y + add_y;
+ transform_y[y].index = (int) coef;
+ transform_y[y].coef = 1 - coef + transform_y[y].index;
+ }
+ if (transform_y[0].index < 0) {
+ transform_y[0].index = 0;
+ transform_y[0].coef = 1.0f;
+ }
+ if (transform_y[dest_h - 1].index >= src_h - 2) {
+ transform_y[dest_h - 1].index = src_h - 2;
+ transform_y[dest_h - 1].coef = 0.0f;
+ }
+
+ if (colorspace == IMAGE_UTIL_COLORSPACE_RGBA8888) {
+ for (y = 0; y < dest_h; ++y) {
+ const transform t_y = transform_y[y];
+ rgba8888 *const dest_row =
+ (rgba8888 *) (dest + y * dest_stride);
+ const rgba8888 *const src_row_1 =
+ (rgba8888 *) (src + t_y.index * src_stride);
+ const rgba8888 *const src_row_2 =
+ (rgba8888 *) (src + (t_y.index + 1) * src_stride);
+
+ for (x = 0; x < dest_w; ++x) {
+ const transform t_x = transform_x[x];
+ const rgba8888 pixel1 = src_row_1[t_x.index];
+ const rgba8888 pixel2 = src_row_1[t_x.index + 1];
+ const rgba8888 pixel3 = src_row_2[t_x.index];
+ const rgba8888 pixel4 = src_row_2[t_x.index + 1];
+ c1 = t_x.coef * t_y.coef;
+ c2 = (1 - t_x.coef) * t_y.coef;
+ c3 = t_x.coef * (1 - t_y.coef);
+ c4 = (1 - t_x.coef) * (1 - t_y.coef);
+ red = pixel1.r * c1 + pixel2.r * c2 + pixel3.r * c3
+ + pixel4.r * c4;
+ green = pixel1.g * c1 + pixel2.g * c2 + pixel3.g * c3
+ + pixel4.g * c4;
+ blue = pixel1.b * c1 + pixel2.b * c2 + pixel3.b * c3
+ + pixel4.b * c4;
+ alpha = pixel1.a * c1 + pixel2.a * c2 + pixel3.a * c3
+ + pixel4.a * c4;
+ dest_row[x].r = red;
+ dest_row[x].g = green;
+ dest_row[x].b = blue;
+ dest_row[x].a = alpha;
+ }
+ }
+ } else {
+ for (y = 0; y < dest_h; ++y) {
+ const transform t_y = transform_y[y];
+ rgb888 *const dest_row = (rgb888 *) (dest + y * dest_stride);
+ const rgb888 *const src_row_1 =
+ (rgb888 *) (src + t_y.index * src_stride);
+ const rgb888 *const src_row_2 =
+ (rgb888 *) (src + (t_y.index + 1) * src_stride);
+
+ for (x = 0; x < dest_w; ++x) {
+ const transform t_x = transform_x[x];
+ const rgb888 pixel1 = src_row_1[t_x.index];
+ const rgb888 pixel2 = src_row_1[t_x.index + 1];
+ const rgb888 pixel3 = src_row_2[t_x.index];
+ const rgb888 pixel4 = src_row_2[t_x.index + 1];
+ c1 = t_x.coef * t_y.coef;
+ c2 = (1 - t_x.coef) * t_y.coef;
+ c3 = t_x.coef * (1 - t_y.coef);
+ c4 = (1 - t_x.coef) * (1 - t_y.coef);
+ red = pixel1.r * c1 + pixel2.r * c2 + pixel3.r * c3
+ + pixel4.r * c4;
+ green = pixel1.g * c1 + pixel2.g * c2 + pixel3.g * c3
+ + pixel4.g * c4;
+ blue = pixel1.b * c1 + pixel2.b * c2 + pixel3.b * c3
+ + pixel4.b * c4;
+
+ dest_row[x].r = red;
+ dest_row[x].g = green;
+ dest_row[x].b = blue;
+ }
+ }
+ }
+
+ free(transform_x);
+ free(transform_y);
+
+ return IMAGE_UTIL_ERROR_NONE;
+}
--- /dev/null
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+PROJECT(core C)
+
+SET(PREFIX ${CMAKE_INSTALL_PREFIX})
+SET(VERSION 0.1.0)
+
+SET(SRCS
+ src/vp-drm.c
+)
+
+INCLUDE_DIRECTORIES(
+ ${CMAKE_SOURCE_DIR}/common/include
+ ${CMAKE_CURRENT_SOURCE_DIR}/include
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/include
+)
+
+INCLUDE(FindPkgConfig)
+pkg_check_modules(${PROJECT_NAME}_pkgs REQUIRED
+ elementary
+ ecore
+ ecore-evas
+ edje
+ eina
+ evas
+ dlog
+ capi-appfw-application
+ capi-system-system-settings
+)
+
+FOREACH(flag ${${PROJECT_NAME}_pkgs_CFLAGS})
+ SET(EXTRA_CXXFLAGS "${EXTRA_CXXFLAGS} ${flag}")
+ENDFOREACH(flag)
+
+SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CXXFLAGS} -Wall")
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CMAKE_CXX_FLAGS}")
+
+ADD_DEFINITIONS("-DPREFIX=\"${CMAKE_INSTALL_PREFIX}\"")
+
+ADD_LIBRARY(${PROJECT_NAME} STATIC ${SRCS})
+
+SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES SOVERSION ${VERSION} )
+SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/lib)
+
+TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${${PROJECT_NAME}_pkgs_LDFLAGS})
+
+
+#install resouce files.
+# Lack of a trailing slash means install this directory, trailing slash means
+# install everything in this directory.
+
+# Install image files.
+
+INSTALL(TARGETS ${PROJECT_NAME} DESTINATION lib)
+
+
+
+
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifdef ENABLE_DRM_FEATURE
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+
+typedef enum {
+ VP_DRM_CONSTRAINT_TYPE_RENTAL = 0,
+ VP_DRM_CONSTRAINT_TYPE_RENTAL_UNLIMITED,
+ VP_DRM_CONSTRAINT_TYPE_PURCHASE,
+ VP_DRM_CONSTRAINT_TYPE_BASE,
+ VP_DRM_CONSTRAINT_TYPE_EXPIRED,
+ VP_DRM_CONSTRAINT_TYPE_NOT_AUTHORIZED,
+ VP_DRM_CONSTRAINT_TYPE_INVALID_DRM_VERSION,
+ VP_DRM_CONSTRAINT_TYPE_UNKNOWN_TYPE,
+ VP_DRM_CONSTRAINT_TYPE_GENERAL_ERROR
+} vp_drm_constraint_status_t;
+
+
+typedef struct _vp_drm_constraint_info {
+ vp_drm_constraint_status_t status;
+ int constraints;
+
+ int original_count;
+ int remaining_count;
+ bool date_time_expired;
+ int remaining_interval_sec;
+ int remaining_timed_count;
+ int remaining_acc_sec;
+} vp_drm_constraint_info;
+
+typedef enum {
+ VP_DRM_CONSTRAINT_UNLIMITED = 0x0,
+ VP_DRM_CONSTRAINT_COUNT = 0x01,
+ VP_DRM_CONSTRAINT_DATE_TIME = 0x02,
+ VP_DRM_CONSTRAINT_INTERVAL = 0x04,
+ VP_DRM_CONSTRAINT_TIMED_COUNT = 0x08,
+ VP_DRM_CONSTRAINT_ACCUMLATED_TIME = 0x10,
+} vp_drm_constraint_type_t;
+
+
+bool vp_drm_is_drm_file(const char *szMediaURL, bool * bIsDRM);
+bool vp_drm_is_divx_drm_file(const char *szMediaURL, bool * bIsDivXDRM);
+bool vp_drm_is_playready_drm_file(const char *szMediaURL,
+ bool * bIsPlayReadyDRM);
+bool vp_drm_is_check_license(const char *szMediaURL, bool * bCheckLicense);
+bool vp_drm_is_check_forward_lock(const char *szMediaURL,
+ bool * bIsFowardLock);
+bool vp_drm_get_constarint_info(const char *szMediaURL,
+ vp_drm_constraint_info * pConstraintInfo);
+bool vp_drm_get_file_mime_type(const char *szMediaURL, char **szMime);
+bool vp_drm_get_store_item_license(char *pPath, char *pStoreAppId,
+ char *pUserId, char *pImei,
+ char *pOrderId, char *pMvId,
+ char *pServerId);
+
+#endif //ENABLE_DRM_FEATURE
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#pragma once
+
+#include <Ecore.h>
+#include <Elementary.h>
+
+#include "vp-debug.h"
+#include "vp-macro.h"
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifdef ENABLE_DRM_FEATURE
+
+#include <drm_client.h>
+#include <drm_client_types.h>
+
+#include "vp-debug.h"
+#include "vp-macro.h"
+
+
+#include "vp-drm.h"
+
+/* callback functions */
+
+
+/* internal functions */
+static void _vp_drm_print_error_code(drm_result_e nErr)
+{
+ switch (nErr) {
+ case DRM_RETURN_INVALID_ARG:
+ vp_dbgE("DRM_RETURN_INVALID_ARG Error");
+ break;
+ case DRM_RETURN_INSUFFICIENT_MEMORY:
+ vp_dbgE("DRM_RETURN_INSUFFICIENT_MEMORY Error");
+ break;
+ case DRM_RETURN_PARSING_ERROR:
+ vp_dbgE("DRM_RETURN_PARSING_ERROR Error");
+ break;
+ case DRM_RETURN_DB_ERROR:
+ vp_dbgE("DRM_RETURN_DB_ERROR Error");
+ break;
+ case DRM_RETURN_FILE_ERROR:
+ vp_dbgE("DRM_RETURN_FILE_ERROR Error");
+ break;
+ case DRM_RETURN_COMMUNICATION_ERROR:
+ vp_dbgE("DRM_RETURN_COMMUNICATION_ERROR Error");
+ break;
+ case DRM_RETURN_OPL_ERROR:
+ vp_dbgE("DRM_RETURN_OPL_ERROR Error");
+ break;
+ case DRM_RETURN_NO_LICENSE_ERROR:
+ vp_dbgE("DRM_RETURN_NO_LICENSE_ERROR Error");
+ break;
+ case DRM_RETURN_LICENSE_EXPIRED_ERROR:
+ vp_dbgE("DRM_RETURN_LICENSE_EXPIRED_ERROR Error");
+ break;
+ case DRM_RETURN_LICENCE_FUTURE_USE_ERROR:
+ vp_dbgE("DRM_RETURN_LICENCE_FUTURE_USE_ERROR Error");
+ break;
+ case DRM_RETURN_LICENSE_SUSPEND_ERROR:
+ vp_dbgE("DRM_RETURN_LICENSE_SUSPEND_ERROR Error");
+ break;
+ case DRM_RETURN_SERVER_CRASHED:
+ vp_dbgE("DRM_RETURN_SERVER_CRASHED Error");
+ break;
+ case DRM_RETURN_NO_SECURE_CLOCK_ERROR:
+ vp_dbgE("DRM_RETURN_NO_SECURE_CLOCK_ERROR Error");
+ break;
+ case DRM_RETURN_INTERNAL_ERROR:
+ vp_dbgE("DRM_RETURN_INTERNAL_ERROR Error");
+ break;
+ default:
+ vp_dbgE("Unknown Error");
+ break;
+ }
+
+}
+
+/* external functions */
+bool vp_drm_is_drm_file(const char *szMediaURL, bool * bIsDRM)
+{
+ if (!szMediaURL) {
+ vp_dbgE("szMediaURL is NULL");
+ return FALSE;
+ }
+
+ int nRet = DRM_RETURN_SUCCESS;
+ drm_bool_type_e is_drm = DRM_FALSE;
+
+ *bIsDRM = FALSE;
+
+ nRet = drm_is_drm_file(szMediaURL, &is_drm);
+ if (nRet != DRM_RETURN_SUCCESS) {
+ vp_dbgE("drm_is_drm_file is fail");
+ _vp_drm_print_error_code(nRet);
+ return FALSE;
+ }
+
+ if (is_drm == DRM_TRUE) {
+ *bIsDRM = TRUE;
+ }
+
+ return TRUE;
+}
+
+bool vp_drm_is_divx_drm_file(const char *szMediaURL, bool * bIsDivXDRM)
+{
+ if (!szMediaURL) {
+ vp_dbgE("szMediaURL is NULL");
+ return FALSE;
+ }
+
+ drm_file_type_e drm_type = DRM_TYPE_UNDEFINED;
+ drm_bool_type_e is_drm = DRM_FALSE;
+ int nRet = DRM_RETURN_SUCCESS;
+
+ nRet = drm_is_drm_file(szMediaURL, &is_drm);
+ if (nRet != DRM_RETURN_SUCCESS) {
+ vp_dbgE("drm_is_drm_file is fail");
+ _vp_drm_print_error_code(nRet);
+ return FALSE;
+ }
+
+ if (is_drm != DRM_TRUE) {
+ *bIsDivXDRM = FALSE;
+ return TRUE;
+ }
+
+ nRet = drm_get_file_type(szMediaURL, &drm_type);
+ if (nRet != DRM_RETURN_SUCCESS) {
+ vp_dbgE("drm_get_file_type is fail");
+ _vp_drm_print_error_code(nRet);
+ return FALSE;
+ }
+
+ if (drm_type == DRM_TYPE_DIVX) {
+ *bIsDivXDRM = TRUE;
+ vp_dbgW("%s file is DIVX", szMediaURL);
+ } else {
+ *bIsDivXDRM = FALSE;
+ vp_dbgW("%s file is %d type", szMediaURL, drm_type);
+ }
+
+ return TRUE;
+}
+
+bool vp_drm_is_playready_drm_file(const char *szMediaURL,
+ bool * bIsPlayReadyDRM)
+{
+ if (!szMediaURL) {
+ vp_dbgE("szMediaURL is NULL");
+ return FALSE;
+ }
+
+ drm_file_type_e drm_type = DRM_TYPE_UNDEFINED;
+ drm_bool_type_e is_drm = DRM_FALSE;
+ int nRet = DRM_RETURN_SUCCESS;
+
+ nRet = drm_is_drm_file(szMediaURL, &is_drm);
+ if (nRet != DRM_RETURN_SUCCESS) {
+ vp_dbgE("drm_is_drm_file is fail");
+ _vp_drm_print_error_code(nRet);
+ return FALSE;
+ }
+
+ if (is_drm != DRM_TRUE) {
+ *bIsPlayReadyDRM = FALSE;
+ return TRUE;
+ }
+
+ nRet = drm_get_file_type(szMediaURL, &drm_type);
+ if (nRet != DRM_RETURN_SUCCESS) {
+ vp_dbgE("drm_get_file_type is fail");
+ _vp_drm_print_error_code(nRet);
+ return FALSE;
+ }
+
+ if (drm_type == DRM_TYPE_PLAYREADY
+ || drm_type == DRM_TYPE_PLAYREADY_ENVELOPE) {
+ *bIsPlayReadyDRM = TRUE;
+ vp_dbgW("%s file is PlayReady", szMediaURL);
+ } else {
+ *bIsPlayReadyDRM = FALSE;
+ vp_dbgW("%s file is %d type", szMediaURL, drm_type);
+ }
+
+ return TRUE;
+}
+
+
+bool vp_drm_is_check_license(const char *szMediaURL, bool * bCheckLicense)
+{
+ if (!szMediaURL) {
+ vp_dbgE("szMediaURL is NULL");
+ return FALSE;
+ }
+
+ *bCheckLicense = TRUE;
+
+ drm_license_status_e nLicenseStatus = DRM_LICENSE_STATUS_UNDEFINED;
+ int nRet = drm_get_license_status(szMediaURL, DRM_PERMISSION_TYPE_PLAY,
+ &nLicenseStatus);
+ if (nRet != DRM_RETURN_SUCCESS) {
+ vp_dbgE("drm_get_license_status is fail");
+ _vp_drm_print_error_code(nRet);
+ return FALSE;
+ }
+
+ if (nLicenseStatus != DRM_LICENSE_STATUS_VALID) {
+ vp_dbgE("Invalid license status : %d", nLicenseStatus);
+ *bCheckLicense = FALSE;
+ }
+
+ return TRUE;
+}
+
+bool vp_drm_is_check_forward_lock(const char *szMediaURL,
+ bool * bIsFowardLock)
+{
+ if (!szMediaURL) {
+ vp_dbgE("szMediaURL is NULL");
+ return FALSE;
+ }
+
+ *bIsFowardLock = FALSE;
+
+ drm_bool_type_e is_drm = DRM_FALSE;
+ int nRet = DRM_RETURN_SUCCESS;
+ drm_file_type_e drm_type = DRM_TYPE_UNDEFINED;
+
+ nRet = drm_is_drm_file(szMediaURL, &is_drm);
+ if (nRet != DRM_RETURN_SUCCESS) {
+ vp_dbgW("drm_is_drm_file is fail");
+ _vp_drm_print_error_code(nRet);
+ return FALSE;
+ }
+
+ nRet = drm_get_file_type(szMediaURL, &drm_type);
+ if (nRet != DRM_RETURN_SUCCESS) {
+ vp_dbgE("drm_get_file_type is fail");
+ _vp_drm_print_error_code(nRet);
+ return FALSE;
+ }
+
+ if (drm_type != DRM_TYPE_OMA_V1 && drm_type != DRM_TYPE_OMA_V2) {
+ return FALSE;
+ }
+
+ drm_file_info_s st_DrmFileInfo;
+ memset(&st_DrmFileInfo, 0x0, sizeof(drm_file_info_s));
+
+ nRet = drm_get_file_info(szMediaURL, &st_DrmFileInfo);
+ if (nRet != DRM_RETURN_SUCCESS) {
+ vp_dbgE("drm_get_file_info is fail");
+ _vp_drm_print_error_code(nRet);
+ return FALSE;
+ }
+
+ if (st_DrmFileInfo.oma_info.method == DRM_METHOD_TYPE_FORWARD_LOCK) {
+ vp_dbgW
+ ("st_DrmFileInfo.oma_info.method == DRM_METHOD_TYPE_FORWARD_LOCK");
+ *bIsFowardLock = TRUE;
+ }
+
+ return TRUE;
+}
+
+bool vp_drm_get_constarint_info(const char *szMediaURL,
+ vp_drm_constraint_info * pConstraintInfo)
+{
+ if (!szMediaURL) {
+ vp_dbgE("szMediaURL is NULL");
+ return FALSE;
+ }
+
+ drm_constraint_info_s sDrmConstraintInfo;
+
+ memset(&sDrmConstraintInfo, 0, sizeof(drm_constraint_info_s));
+
+ int nRet =
+ drm_get_constraint_info(szMediaURL, DRM_PERMISSION_TYPE_PLAY,
+ &sDrmConstraintInfo);
+ if (nRet != DRM_RETURN_SUCCESS) {
+ vp_dbgE("drm_get_constraint_info is fail");
+ _vp_drm_print_error_code(nRet);
+ return FALSE;
+ }
+ switch (sDrmConstraintInfo.const_type.constraint_type) {
+ case DRM_CONSTRAINT_TYPE_RENTAL:
+ vp_dbgW("VP_DRM_CONSTRAINT_TYPE_RENTAL");
+ pConstraintInfo->status = VP_DRM_CONSTRAINT_TYPE_RENTAL;
+ break;
+ case DRM_CONSTRAINT_TYPE_RENTAL_UNLIMITED:
+ vp_dbgW("DRM_CONSTRAINT_TYPE_RENTAL_UNLIMITED");
+ pConstraintInfo->status = VP_DRM_CONSTRAINT_TYPE_RENTAL_UNLIMITED;
+ break;
+ case DRM_CONSTRAINT_TYPE_PURCHASE:
+ vp_dbgW("DRM_CONSTRAINT_TYPE_PURCHASE");
+ pConstraintInfo->status = VP_DRM_CONSTRAINT_TYPE_PURCHASE;
+ break;
+ case DRM_CONSTRAINT_TYPE_BASE:
+ vp_dbgW("DRM_CONSTRAINT_TYPE_BASE");
+ pConstraintInfo->status = VP_DRM_CONSTRAINT_TYPE_BASE;
+ break;
+ case DRM_CONSTRAINT_TYPE_EXPIRED:
+ vp_dbgW("DRM_CONSTRAINT_TYPE_EXPIRED");
+ pConstraintInfo->status = VP_DRM_CONSTRAINT_TYPE_EXPIRED;
+ break;
+ case DRM_CONSTRAINT_TYPE_NOT_AUTHORIZED:
+ vp_dbgW("DRM_CONSTRAINT_TYPE_NOT_AUTHORIZED");
+ pConstraintInfo->status = VP_DRM_CONSTRAINT_TYPE_NOT_AUTHORIZED;
+ break;
+ case DRM_CONSTRAINT_TYPE_INVALID_DRM_VERSION:
+ vp_dbgW("DRM_CONSTRAINT_TYPE_INVALID_DRM_VERSION");
+ pConstraintInfo->status =
+ VP_DRM_CONSTRAINT_TYPE_INVALID_DRM_VERSION;
+ break;
+ case DRM_CONSTRAINT_TYPE_UNKNOWN_TYPE:
+ vp_dbgW("DRM_CONSTRAINT_TYPE_UNKNOWN_TYPE");
+ pConstraintInfo->status = VP_DRM_CONSTRAINT_TYPE_UNKNOWN_TYPE;
+ break;
+ case DRM_CONSTRAINT_TYPE_GENERAL_ERROR:
+ vp_dbgW("DRM_CONSTRAINT_TYPE_GENERAL_ERROR");
+ pConstraintInfo->status = VP_DRM_CONSTRAINT_TYPE_GENERAL_ERROR;
+ break;
+ }
+
+ if (sDrmConstraintInfo.const_type.is_unlimited) {
+ vp_dbgW("UNLIMITED");
+ pConstraintInfo->constraints = VP_DRM_CONSTRAINT_UNLIMITED;
+ return TRUE;
+ }
+
+ if (sDrmConstraintInfo.const_type.is_count) {
+ vp_dbgW("DRM_COUNT [%d]", sDrmConstraintInfo.remaining_count);
+ pConstraintInfo->constraints |= VP_DRM_CONSTRAINT_COUNT;
+ pConstraintInfo->original_count =
+ sDrmConstraintInfo.original_count;
+ pConstraintInfo->remaining_count =
+ sDrmConstraintInfo.remaining_count;
+ }
+
+ if (sDrmConstraintInfo.const_type.is_datetime) {
+ vp_dbgW("DRM_DATETIME");
+ pConstraintInfo->constraints |= VP_DRM_CONSTRAINT_DATE_TIME;
+ vp_dbgW("%d.%d.%d %d:%d~%d.%d.%d %d:%d",
+ sDrmConstraintInfo.start_time.tm_mday,
+ sDrmConstraintInfo.start_time.tm_mon,
+ sDrmConstraintInfo.start_time.tm_year,
+ sDrmConstraintInfo.start_time.tm_hour,
+ sDrmConstraintInfo.start_time.tm_min,
+ sDrmConstraintInfo.end_time.tm_mday,
+ sDrmConstraintInfo.end_time.tm_mon,
+ sDrmConstraintInfo.end_time.tm_year,
+ sDrmConstraintInfo.end_time.tm_hour,
+ sDrmConstraintInfo.end_time.tm_min);
+
+ struct timeval tv;
+ gettimeofday(&tv, NULL);
+ struct tm *ptm = NULL;
+ ptm = localtime(&tv.tv_sec);
+ ptm->tm_mon += 1;
+ ptm->tm_year += 1900;
+
+ time_t local_t = mktime(ptm);
+ time_t start_t = mktime(&(sDrmConstraintInfo.start_time));
+ time_t end_t = mktime(&(sDrmConstraintInfo.end_time));
+
+
+ vp_dbgW("%d.%d.%d %d:%d",
+ ptm->tm_mday, ptm->tm_mon, ptm->tm_year,
+ ptm->tm_hour, ptm->tm_min);
+
+ if (local_t >= start_t && local_t <= end_t) {
+ pConstraintInfo->date_time_expired = FALSE;
+ } else {
+ pConstraintInfo->date_time_expired = TRUE;
+ }
+
+ }
+
+ if (sDrmConstraintInfo.const_type.is_interval) {
+ vp_dbgW("DRM_INTERVAL");
+ pConstraintInfo->constraints |= VP_DRM_CONSTRAINT_INTERVAL;
+ vp_dbgW("Remain... %d.%d.%d %d:%d",
+ sDrmConstraintInfo.interval_time.tm_mon,
+ sDrmConstraintInfo.interval_time.tm_mday,
+ sDrmConstraintInfo.interval_time.tm_year,
+ sDrmConstraintInfo.interval_time.tm_hour,
+ sDrmConstraintInfo.interval_time.tm_min);
+
+ pConstraintInfo->remaining_interval_sec =
+ sDrmConstraintInfo.interval_time.tm_sec +
+ sDrmConstraintInfo.interval_time.tm_min * 60 +
+ sDrmConstraintInfo.interval_time.tm_hour * 3600;
+ pConstraintInfo->remaining_interval_sec +=
+ (sDrmConstraintInfo.interval_time.tm_mday +
+ sDrmConstraintInfo.interval_time.tm_mon * 30 +
+ sDrmConstraintInfo.interval_time.tm_year * 365) * (3600 * 24);
+ }
+
+ if (sDrmConstraintInfo.const_type.is_timedcount) {
+ vp_dbgW("DRM_TIMED_COUNT");
+ vp_dbgW("%d left (%d sec)",
+ sDrmConstraintInfo.timed_remaining_count,
+ sDrmConstraintInfo.timed_count_timer);
+ pConstraintInfo->constraints |= VP_DRM_CONSTRAINT_TIMED_COUNT;
+ pConstraintInfo->remaining_timed_count =
+ sDrmConstraintInfo.timed_remaining_count;
+ }
+
+ if (sDrmConstraintInfo.const_type.is_accumulated) {
+ vp_dbgW("DRM_ACCUMULATED [%d]",
+ sDrmConstraintInfo.accumulated_remaining_seconds);
+ pConstraintInfo->constraints |= VP_DRM_CONSTRAINT_ACCUMLATED_TIME;
+ pConstraintInfo->remaining_acc_sec =
+ sDrmConstraintInfo.accumulated_remaining_seconds;
+ }
+
+ if (sDrmConstraintInfo.const_type.is_individual) {
+ vp_sdbg("DRM_INDIVISUAL_ID [%s]",
+ sDrmConstraintInfo.individual_id);
+ }
+
+ if (sDrmConstraintInfo.const_type.is_system) {
+ vp_sdbg("DRM_SYSTEM [ID:%s, type:%d]",
+ sDrmConstraintInfo.system_id,
+ sDrmConstraintInfo.system_identity_type);
+ }
+
+ return TRUE;
+}
+
+bool vp_drm_get_file_mime_type(const char *szMediaURL, char **szMime)
+{
+ if (!szMediaURL) {
+ vp_dbgE("[ERR]");
+ return FALSE;
+ }
+
+
+ drm_bool_type_e is_drm = DRM_FALSE;
+ int nRet = DRM_RETURN_SUCCESS;
+ drm_file_type_e drm_type = DRM_TYPE_UNDEFINED;
+
+ nRet = drm_is_drm_file(szMediaURL, &is_drm);
+ if (nRet != DRM_RETURN_SUCCESS) {
+ vp_dbgW("drm_is_drm_file is fail");
+ _vp_drm_print_error_code(nRet);
+ return FALSE;
+ }
+
+ nRet = drm_get_file_type(szMediaURL, &drm_type);
+ if (nRet != DRM_RETURN_SUCCESS) {
+ vp_dbgE("drm_get_file_type is fail");
+ _vp_drm_print_error_code(nRet);
+ return FALSE;
+ }
+
+ if (drm_type == DRM_TYPE_PLAYREADY
+ || drm_type == DRM_TYPE_PLAYREADY_ENVELOPE) {
+ vp_sdbg("contentType: video/vnd.ms-playready.media.pyv");
+ return FALSE;
+ } else if (drm_type == DRM_TYPE_OMA_V1 || drm_type == DRM_TYPE_OMA_V2) {
+ drm_content_info_s content_info;
+
+ int nRet = DRM_RETURN_SUCCESS;
+ memset(&content_info, 0, sizeof(drm_content_info_s));
+
+ nRet = drm_get_content_info(szMediaURL, &content_info);
+ if (nRet != DRM_RETURN_SUCCESS) {
+ vp_dbgE("drm_get_constraint_info is fail");
+ _vp_drm_print_error_code(nRet);
+ return FALSE;
+ }
+
+ vp_sdbg("contentType: %s", content_info.mime_type);
+ VP_STRDUP(*szMime, content_info.mime_type);
+ } else {
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+
+bool
+vp_drm_get_store_item_license(char *pPath, char *pStoreAppId,
+ char *pUserId, char *pImei, char *pOrderId,
+ char *pMvId, char *pServerId)
+{
+ int nRet = -1;
+
+ // for domain hardening, license aquisition
+ drm_initiator_info_s initiator_info = { "", 0, };
+ drm_web_server_resp_data_s ws_resp_data = { "", 0, };
+
+ if (!pPath) {
+ vp_dbgE("[ERR]");
+ return FALSE;
+ }
+
+ if (!pStoreAppId) {
+ vp_dbgE("[ERR]");
+ return FALSE;
+ }
+
+ if (!pUserId) {
+ vp_dbgE("[ERR]");
+ return FALSE;
+ }
+
+ if (!pImei) {
+ vp_dbgE("[ERR]");
+ return FALSE;
+ }
+
+ if (!pOrderId) {
+ vp_dbgE("[ERR]");
+ return FALSE;
+ }
+
+ if (!pMvId) {
+ vp_dbgE("[ERR]");
+ return FALSE;
+ }
+
+ if (!pServerId) {
+ vp_dbgE("[ERR]");
+ return FALSE;
+ }
+
+ vp_sdbg
+ ("pPath: [%s], pStoreAppId: [%s], pUserId: [%s], pImei: [%s], pOrderId: [%s], pMvId: [%s], pServerId: [%s]",
+ pPath, pStoreAppId, pUserId, pImei, pOrderId, pMvId, pServerId);
+
+ initiator_info.init_type = DRM_INITIATOR_TYPE_LICENSE_ACQ;
+ initiator_info.initiator_url_len = strlen(pPath);
+ snprintf(initiator_info.initiator_url, DRM_MAX_LEN_INITIATOR_URL,
+ "%s", pPath);
+ snprintf(initiator_info.custom_data.app_id, DRM_MAX_LEN_APP_ID + 1,
+ "%s", pStoreAppId);
+ snprintf(initiator_info.custom_data.user_guid,
+ DRM_MAX_LEN_USER_GUID + 1, "%s", pUserId);
+ snprintf(initiator_info.custom_data.device_id,
+ DRM_MAX_LEN_DEVICE_ID + 1, "%s", pImei);
+ snprintf(initiator_info.custom_data.order_id,
+ DRM_MAX_LEN_ORDER_ID + 1, "%s", pOrderId);
+ snprintf(initiator_info.custom_data.mv_id, DRM_MAX_LEN_MV_ID + 1,
+ "%s", pMvId);
+ snprintf(initiator_info.custom_data.svr_id, DRM_MAX_LEN_SVR_ID + 1,
+ "%s", pServerId);
+
+ nRet =
+ drm_process_request(DRM_REQUEST_TYPE_SUBMIT_INITIATOR_URL,
+ (void *) (&initiator_info),
+ (void *) (&ws_resp_data));
+
+ if (nRet == DRM_RETURN_SUCCESS) {
+ vp_dbg("Server Error Code = %d", ws_resp_data.result_code);
+ vp_sdbg("Content URL = %s", ws_resp_data.content_url);
+ } else {
+ vp_dbgE("drm_process_request failed!!!");
+ _vp_drm_print_error_code((drm_result_e) nRet);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+#endif
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#ifndef _MP_DRM_CTRL_H_
+#define _MP_DRM_CTRL_H_
+
+#define DRM_STR_LEN_MAX 2048
+#define DIVX_DRM_UNLIMIT_VALUE -999
+
+#define DIVX_DRM_AUTHORIZATION_ERROR_MSG "This phone is not authorized to play this DivX protected video."
+#define DIVX_DRM_RENTAL_EXPIRED_MSG "This DivX rental has used %d of %d views.<br>This DivX rental has expired."
+#define DIVX_DRM_RENTAL_CONTINUE_MSG "This DivX rental has used %d of %d views.<br>Continue?"
+
+
+typedef enum {
+ DRM_CONTENT_INFO_NULL = -1,
+ DRM_CONTENT_INFO_AUTHOR,
+ DRM_CONTENT_INFO_RIGHTS_URL,
+ DRM_CONTENT_INFO_DESCRIPTION,
+} MpVideoDrmContentInfoType;
+
+
+typedef enum {
+ MP_VIDEO_DRM_ERROR_NONE = 0,
+ MP_VIDEO_DRM_ERROR_INTERNAL,
+ MP_VIDEO_DRM_ERROR_TIME_BASED,
+ MP_VIDEO_DRM_ERROR_INTERVAL,
+ MP_VIDEO_DRM_ERROR_INTERVAL_FIRST_USE,
+ MP_VIDEO_DRM_ERROR_ACCUMULATED,
+ MP_VIDEO_DRM_ERROR_COUNT,
+ MP_VIDEO_DRM_ERROR_COUNT_SMALL,
+ MP_VIDEO_DRM_ERROR_TIME_COUNT_BASED,
+ MP_VIDEO_DRM_ERROR_TIME_INDIVIDULAL,
+ MP_VIDEO_DRM_ERROR_TIME_SYSTEM,
+ MP_VIDEO_DRM_ERROR_MAX,
+} MpVideoDrmErrorType;
+
+
+typedef struct {
+ int constraints;
+
+ int remaining_count;
+ bool date_time_expired;
+ int remaining_interval_sec;
+ int remaining_timed_count;
+ int remaining_acc_sec;
+} st_MpConstraintsInfo;
+
+typedef enum {
+ MP_DRM_CONSTRAINT_UNLIMITED = 0x0,
+ MP_DRM_CONSTRAINT_COUNT = 0x01,
+ MP_DRM_CONSTRAINT_DATE_TIME = 0x02,
+ MP_DRM_CONSTRAINT_INTERVAL = 0x04,
+ MP_DRM_CONSTRAINT_TIMED_COUNT = 0x08,
+ MP_DRM_CONSTRAINT_ACCUMLATED_TIME = 0x10,
+} MpDrmConstraintInfoType;
+
+bool mp_drm_is_drm_file(char *szPath);
+bool mp_drm_check_foward_lock(char *szPath);
+
+bool mp_drm_is_divx(char *szPath);
+bool mp_drm_check_divx_rental_expired(char *szPath, int *use_count,
+ int *total_count);
+void mp_drm_get_file_extension(char *szPath, char *szContentType,
+ int nContentTypeStrSize);
+
+#endif //_MP_DRM_CTRL_H_
+
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#ifndef _VIDEO_ROTATE_CTRL_
+#define _VIDEO_ROTATE_CTRL_
+
+#include <app.h>
+#include <stdbool.h>
+#include <Ecore_Evas.h>
+
+typedef enum {
+ VIDEOS_ROTATE_NONE = 0x00,
+ VIDEOS_ROTATE_90,
+ VIDEOS_ROTATE_180,
+ VIDEOS_ROTATE_270
+} VideosRotateStatus_t;
+
+
+void mp_rotate_ctrl_init(void);
+void mp_rotate_ctrl_destroy(void);
+VideosRotateStatus_t mp_rotate_ctrl_get_current_state(void);
+void mp_rotate_ctrl_set_state(int nAngle);
+bool mp_rotate_ctrl_check_landspace();
+bool mp_rotate_ctrl_check_landspace_by_win(Evas_Object * pWin);
+
+#endif
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef __VIDEO_MP_UTIL_CONFIG__
+#define __VIDEO_MP_UTIL_CONFIG__
+
+#include <stdbool.h>
+#include <Elementary.h>
+#include <app_preference.h>
+
+bool mp_util_config_set_multi_play_status(bool bMultiPlay);
+bool mp_util_config_get_multi_play_status(bool * bMultiPlay);
+
+bool mp_util_config_set_preview(char *szPreviewUrl);
+char *mp_util_config_get_preview(void);
+bool mp_util_config_preview_key_changed_cb(preference_changed_cb callback,
+ void *pUserData);
+bool mp_util_config_ignore_preview_key_changed_cb();
+
+#endif
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+
+#ifndef _MP_UTIL_DATABASE_
+#define _MP_UTIL_DATABASE_
+
+#define RECENTLY_PLAYED_VIDEO_ITEM_MAX 20
+
+typedef enum {
+ MP_MEDIA_VIDEO_FILE_TYPE = 0,
+ MP_MEDIA_CAMERA_FILE_TYPE,
+ MP_MEDIA_ALL_FILE_TYPE,
+ MP_MEDIA_FILE_TYPE_MAX,
+} MpMediaSvcVideoFileType;
+
+typedef enum {
+ MP_MEDIA_SORT_BY_NONE = 0,
+ MP_MEDIA_SORT_BY_RECENTLY_VIEWED,
+ MP_MEDIA_SORT_BY_RECENTLY_ADDED,
+ MP_MEDIA_SORT_BY_NAME,
+ MP_MEDIA_SORT_BY_SIZE,
+ MP_MEDIA_SORT_BY_TYPE,
+ MP_MEDIA_SORT_BY_MAX,
+} MpMediaSvcSortType;
+
+
+typedef enum {
+ MP_MEDIA_LIST_TYPE_FOLDER = 0,
+ MP_MEDIA_LIST_TYPE_ALL_FOLDER_GALLERY,
+ MP_MEDIA_LIST_TYPE_TAG_GALLERY,
+ MP_MEDIA_LIST_TYPE_FAVORITE,
+ MP_MEDIA_LIST_TYPE_MAX,
+} MpMediaSvcListType;
+
+typedef enum {
+ MP_MEDIA_TYPE_STORAGE_UNKNOWN = 0,
+ MP_MEDIA_TYPE_STORAGE_INTERNAL,
+ MP_MEDIA_TYPE_STORAGE_EXTERNAL,
+ MP_MEDIA_TYPE_STORAGE_DROPBOX,
+ MP_MEDIA_TYPE_STORAGE_MAX,
+} MpMediaStorageType;
+
+
+typedef void (*UpdateDatabaseCbFunc) (void *pUserData, float fTimer,
+ int UpdateStyle);
+
+void mp_util_svc_init_session(void);
+void mp_util_svc_finish_session(void);
+
+////////////////////////////////////////////////////////
+// Manage video item list
+
+// For gallery list
+bool mp_util_svc_extract_video_list_from_folder(char *szFolderPath, int nSortType, int nItemType); // For myfiles.
+bool mp_util_svc_extract_video_list_by_item_type(int nSortType, int nItemType); // For video list by item type. (All/Phone/Cloud)
+bool mp_util_svc_index_list_for_search_view(const char *keyword, void **index_list); // For only video type files of video search view
+
+void mp_util_svc_destory_video_list(void);
+bool mp_util_svc_destory_video_item_list(void);
+bool mp_util_svc_remove_item_by_list_index(int nVideoItemIndex);
+
+bool mp_util_svc_get_video_id_by_video_url(const char *szPath,
+ char **szVideoID);
+char *mp_util_svc_get_video_Thumbnail_by_video_url(const char *szMediaUri);
+void mp_util_svc_set_video_last_played_time_by_url(char *szMediaUri,
+ unsigned int nPosition);
+
+// For video list
+char *mp_util_svc_get_video_url(const int nVideoItemIndex);
+char *mp_util_svc_get_video_thumbnail(const int nVideoItemIndex);
+char *mp_util_svc_get_video_title(const int nVideoItemIndex);
+int mp_util_svc_get_video_duration_time(const int nVideoItemIndex);
+unsigned long long mp_util_svc_get_video_item_size(const int
+ nVideoItemIndex);
+
+int mp_util_svc_get_video_item_width(const int nVideoItemIndex);
+int mp_util_svc_get_video_item_height(const int nVideoItemIndex);
+char *mp_util_svc_get_video_item_modified_time(const int nVideoItemIndex);
+
+int mp_util_svc_get_video_list_size_for_checking_index(void);
+int mp_util_svc_get_number_of_video_item_by_type(void);
+char *mp_util_svc_get_video_id_by_index(const int nVideoItemIndex);
+MpMediaStorageType mp_util_svc_get_video_storage(const int
+ nVideoItemIndex);
+bool mp_util_svc_is_cloud_storage(const int nVideoItemIndex);
+bool mp_util_svc_remove_item_from_db_by_list_index(int nVideoItemIndex);
+
+// For folder list
+bool mp_util_svc_extract_video_folder_list_by_type(int nSortType,
+ int nItemType);
+
+bool mp_util_svc_destory_video_folder_list(void);
+int mp_util_svc_get_video_folder_size(void);
+char *mp_util_svc_get_video_folder_name(int nVideoFolderIndex);
+char *mp_util_svc_get_video_folder_url(int nVideoFolderIndex);
+MpMediaStorageType mp_util_svc_get_folder_storage(const int
+ nVideoFolderIndex);
+char *mp_util_svc_get_video_folder_id(int nVideoFolderIndex);
+char *mp_util_get_folder_thumbnail(int nVideoFolderIndex, int nSortType);
+
+void mp_util_svc_register_thumbnail_update_func(int nVideoItemIndex,
+ void *pUserCallbackFunc,
+ void *pUserData);
+void mp_util_svc_cancel_thumbnail_update(int nVideoItemIndex);
+void mp_util_svc_update_thumbnail_info(const int nVideoItemIndex);
+bool mp_util_svc_remove_folder_list_item_from_list(int nVideoItemIndex);
+
+
+///////////////////////////////////////////////////////
+// For livebox list
+bool mp_util_svc_destory_last_played_item_list(void);
+
+////////////////////////////////////////////////////////
+// Util
+bool mp_util_svc_set_update_db_cb_func(UpdateDatabaseCbFunc
+ pUpdateDbCbFunc);
+
+void mp_util_svc_unset_update_db_cb_func(void);
+
+char *mp_util_svc_get_duration_str_time(int nVideoItemIndex);
+bool mp_util_svc_filter_drm_video_item_list(void);
+bool mp_util_svc_scan_file(const char *szFilePath);
+
+/*need to free szTitle, output nWidth, nHeight, szTitle, nDuration, nPlayedTime*/
+bool mp_util_svc_get_video_detail_by_video_url(const char *szPath,
+ int *nWidth, int *nHeight,
+ char **szTitle,
+ unsigned int *nDuration,
+ unsigned int *nPlayedTime);
+
+//personal
+bool mp_util_svc_extract_personal_video_folder_list(int nSortType,
+ bool bPersonal);
+bool mp_util_svc_extract_video_list_by_personal(int nSortType,
+ int nItemType,
+ int nViewType);
+bool mp_util_svc_extract_video_list_from_folder_by_personal(char
+ *szFolderPath,
+ int nSortType,
+ int nItemType,
+ int nViewType);
+void mp_util_svc_move_to_db(const int nVideoItemIndex,
+ const char *szVideoPath);
+bool mp_util_svc_remove_list_item_from_list(int nVideoItemIndex);
+bool mp_util_svc_is_device_storage(const int nVideoItemIndex);
+
+//sort by
+//used for check videoid and folderid
+bool mp_util_svc_check_valid_media_id(char *pMediaId, int style,
+ int *nMediaIndex);
+
+#endif // _MP_UTIL_DATABASE_
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef __VIDEO_MP_UTIL_PREFERENCE__
+#define __VIDEO_MP_UTIL_PREFERENCE__
+
+#include <Elementary.h>
+#include <stdbool.h>
+#include <app_preference.h>
+
+/*Currently, for different process, we could not use preference. Only save and read key in the same process, we could use preference.*/
+
+
+bool mp_util_preference_set_multi_play_status(bool set);
+bool mp_util_preference_get_multi_play_status(bool * bMultiPlay);
+
+char *mp_util_preference_get_preview(void);
+bool mp_util_preference_set_preview(char *szPreview);
+bool mp_util_preference_set_preview_change(preference_changed_cb callback,
+ void *pUserData);
+bool mp_util_preference_unset_preview_change(void);
+
+void mp_util_preference_init();
+
+
+#endif
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+
+#ifndef _MP_UTIL_
+#define _MP_UTIL_
+
+#include <stdbool.h>
+#include <Ecore_Evas.h>
+
+#include "mp-video-list-view-as-ctrl.h"
+#include "mp-video-list-auto-play-ctrl.h"
+#include <efl_extension.h>
+
+typedef void (*MpUtilExitCbFunc) (void);
+typedef void (*mpColorThemeChangedCb) (void *pUserData);
+
+#ifndef TRUE
+#define TRUE 1
+#endif
+
+#ifndef FALSE
+#define FALSE 0
+#endif
+
+#define MP_FREE_STRING(str) do { if (str) { free(str); str = NULL; } } while (0)
+#define MP_DEL_OBJ(obj) do { if (obj) { evas_object_del(obj); obj = NULL; } } while (0)
+#define MP_DEL_TIMER(timer) do { if (timer) { ecore_timer_del(timer); timer = NULL; } } while (0)
+#define MP_DEL_IDLER(idler) do { if (idler) { ecore_idler_del(idler); idler = NULL; } } while (0)
+#define MP_DEL_PIPE(pipe) do { if (pipe) { ecore_pipe_del(pipe); pipe = NULL; } } while (0)
+#define MP_DEL_ITC(Itc) do { if (Itc) { elm_genlist_item_class_free(Itc); Itc = NULL; } } while (0)
+#define MP_DEL_GRID_ITC(Itc) do { if (Itc) { elm_gengrid_item_class_free(Itc); Itc = NULL; } } while (0)
+
+#define MP_SCALE elm_config_scale_get()
+
+
+typedef enum {
+ NORMAL_POPUP_RETURN_TYPE_UNKNOW = 0,
+ NORMAL_POPUP_RETURN_TYPE_YES,
+ NORMAL_POPUP_RETURN_TYPE_NO,
+ NORMAL_POPUP_RETURN_TYPE_ERR,
+} NormalPopUpRetType;
+
+
+typedef enum {
+ VIDEO_ROTATE_UNKNOWN = 0,
+ VIDEO_ROTATE_PORTRAIT_NORMAL,
+ VIDEO_ROTATE_PORTRAIT_REVERSE,
+ VIDEO_ROTATE_LANDSCAPE_NORMAL,
+ VIDEO_ROTATE_LANDSCAPE_REVERSE,
+} MpVideoRotateType;
+
+
+typedef enum {
+ POPUP_PROCESSING_NO_BUTTON = 0,
+ POPUP_PROCESSING_ONE_BUTTON,
+
+} MpLoadingPopUpType;
+
+
+/////////////////////////////////////////
+// tap type
+int mp_util_get_main_tab_type();
+void mp_util_set_main_tab_type(int nType);
+
+/////////////////////////////////////////
+// Windows utility
+void mp_util_reset_for_relauching(void);
+void mp_util_set_main_window_handle(void *pWindowHandle);
+void *mp_util_get_main_window_handle(void);
+
+void mp_util_set_main_conformat(void *pConformant);
+void *mp_util_get_main_conformat(void);
+
+void mp_util_create_main_theme(void);
+void mp_util_set_color_theme_changed_cb(mpColorThemeChangedCb fChanged);
+void mp_util_free_main_theme(void);
+
+void mp_util_show_indicator(void);
+void mp_util_hide_indicator(void);
+
+/////////////////////////////////////////
+// Popup utility
+void mp_util_delete_popup_handle(void);
+bool mp_util_notify_popup(void *pUserData, char *szTitle, char *szContents,
+ void *PopupButtonCallbackFunc);
+bool mp_util_yes_no_popup(void *pUserData, char *szTitle, char *szContents,
+ void *PopupYesButtonCallbackFunc,
+ void *PopupNoButtonCallbackFunc);
+bool mp_util_remove_all_videos_question_popup(void *pUserData,
+ MpListViewAsType viewType,
+ void
+ *PopupDeleteButtonCallbackFunc,
+ void
+ *PopupCancelButtonCallbackFunc,
+ void
+ *PopupHWMouseBackUpCbFunc,
+ void *PopupHWKeyBackCbFunc);
+bool mp_util_remove_question_popup(int pUserData,
+ MpListViewAsType viewType,
+ void *PopupDeleteButtonCallbackFunc,
+ void *PopupCancelButtonCallbackFunc,
+ void *PopupHWMouseBackUpCbFunc,
+ void *PopupHWKeyBackCbFunc);
+bool mp_util_remove_folder_question_popup(void *pUserData,
+ void
+ *PopupDeleteButtonCallbackFunc,
+ void
+ *PopupCancelButtonCallbackFunc,
+ void *PopupHWMouseBackUpCbFunc,
+ void *PopupHWKeyBackCbFunc);
+bool mp_util_download_question_popup(void *pUserData, char *szTitle,
+ char *szContents,
+ void *PopupCancelBtnCallbackFunc,
+ void *PopupDownloadBtnCallbackFunc);
+bool mp_util_progress_popup(char *szLabel);
+void mp_util_status_bar_noti_popup_show(const char *szStr);
+void *mp_util_create_button_icon(void *pParent, const char *szIconPath,
+ bool bSizeUp, bool bSizeDown,
+ int nAspectWidth, int nAspectHeight,
+ void *pUserData, char *szButtonStyle,
+ void *func);
+void *mp_util_create_style_button(void *pParent, const char *szButtonText,
+ const void *pUserData,
+ char *szButtonStyle, void *func);
+bool mp_util_ticker_toast_popup(const char *text, bool info_style,
+ bool bottom);
+bool mp_util_ticker_toast_with_timeout_cb_popup(const char *text,
+ Evas_Smart_Cb
+ timeout_func);
+
+void *mp_util_create_title_icon_btn(void *pParent, const char *icon_path,
+ Evas_Smart_Cb pFunc, void *pUserData);
+bool mp_util_loading_popup(MpLoadingPopUpType style, char *szLabel,
+ Evas_Smart_Cb response_cb, void *pUserData);
+bool mp_util_info_popup(char *szLabel, Evas_Smart_Cb response_cb,
+ Evas_Event_Cb focus_cb, void *pUserData,
+ const char *szDomain);
+bool mp_util_info_second_popup(Evas_Object * pParent, char *szLabel,
+ Evas_Smart_Cb response_cb,
+ Evas_Event_Cb focus_cb, void *pUserData,
+ const char *szDomain);
+void *mp_util_get_current_popup_object();
+void mp_util_text_and_check_popup(Evas_Smart_Cb response_cb,
+ void *cancel_cb, void *ok_cb,
+ void *check_changed_cb, char *szLabel,
+ void *pUserData);
+bool mp_util_loading_left_text_popup(MpLoadingPopUpType style,
+ char *szLabel,
+ Evas_Smart_Cb response_cb,
+ void *pUserData);
+bool mp_util_check_video_file(const char *szFullPath);
+bool mp_util_check_empty_dir(const char *szDir);
+
+bool mp_util_call_off(void);
+
+bool mp_util_check_local_file_exist(char *uri);
+char *mp_util_get_file_size(unsigned long long size);
+bool mp_util_get_file_title_from_file_path(char *szFilepath, char *szTitle,
+ int nLengthTitle);
+char *mp_util_get_file_name_from_file_path(const char *szFilePath);
+bool mp_util_get_icon_path_from_thumbnail(const char *szMediaURL,
+ char **szIconURL);
+char *mp_util_get_display_name_from_path_and_title(const char *szFilePath,
+ const char *szTitle);
+char *mp_util_get_title_from_path(char *szFilePath);
+
+int mp_util_rename_the_same_file(const char *old_path,
+ char **szNewestPath);
+
+void mp_util_convert_time(int nVideoTime, char *szRetTime,
+ bool bIsHideHour);
+int mp_util_get_pid(void);
+
+const char *mp_util_str_str_same_case(const char *str, const char *subStr);
+bool mp_util_get_network_result();
+
+char *mp_util_get_dir_by_path(const char *file_path);
+char *mp_util_get_folder_icon_path(int nVideoFolderIndex);
+
+bool mp_util_get_subtitle_path(const char *szMediaURL, char **szSubtitle);
+bool mp_util_get_file_size_by_path(const char *szMediaURL,
+ unsigned long long *nSize);
+
+bool mp_util_get_image_size(Evas_Object * pParent, const char *szMediaURL,
+ int *nWidth, int *nHeight);
+
+//personal page
+bool mp_util_get_personal_status(void);
+bool mp_util_check_video_personal_status(const char *szPreviewUrl);
+int mp_util_rename_file(const char *old_path, const char *new_path,
+ char **szNewestPath);
+int mp_util_set_dest_file(const char *pDestPath);
+
+
+//drm
+bool mp_util_check_drm_lock(const char *szMediaURL, bool * bLock);
+void mp_util_convert_sec_time(int nVideoTime, char *szRetTime,
+ bool bIsHideHour);
+
+Evas_Object *mp_util_create_preload_image(Evas_Object * parent,
+ const char *path,
+ int nIconWidth);
+char *mp_util_get_preview_image_path(const char *szFilePath);
+
+// progresss loading object
+Evas_Object *mp_util_create_embedded_progress();
+void mp_util_destroy_embedded_progress(Evas_Object * pProgress);
+
+Evas_Object *mp_util_create_wall_preload_image(Evas_Object * parent,
+ int nIconWidth);
+
+bool mp_util_meta_get_width_and_height(const char *szFilePath, int *nWidth,
+ int *nHeight);
+
+bool mp_util_delete_wall_file(char *szVideoId);
+
+Evas_Object *mp_util_create_gengrid(Evas_Object * parent, int nWidth,
+ int nHeight, bool bHorizontal);
+
+Evas_Object *mp_util_create_folder_icon(void *pParent,
+ const char *icon_path);
+bool mp_util_create_folder_sub_icon(void *pLayout, int nVideoFolderIndex);
+bool mp_util_create_video_sub_icon(void *pLayout, int nVideoItemIndex);
+unsigned long long mp_util_get_disk_available_space(const char
+ *szFilePath);
+
+void mp_util_virtual_keypad_disabled_set(Eina_Bool bDisabled);
+
+int mp_util_set_translate_str(Evas_Object * obj, const char *str);
+
+bool vp_is_auto_play_on();
+void vp_set_auto_play(bool val);
+
+#define PREF_MP_VIDEO_AUTO_PLAY_TYPE_KEY "preference/org.tizen.videos/auto_play_type"
+#endif // _MP_UTIL_
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __VIDEO_MP_UTIL_DB_CONTROLLER__
+#define __VIDEO_MP_UTIL_DB_CONTROLLER__
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+typedef enum {
+ MP_DB_UPDATE_LEV_0 = 0,
+ MP_DB_UPDATE_LEV_1,
+ MP_DB_UPDATE_LEV_2,
+ MP_DB_UPDATE_LEV_3,
+ MP_DB_UPDATE_LEV_4,
+ MP_DB_UPDATE_LEV_MAX,
+} MpDbUpdateViewLev;
+
+
+typedef void (*MpDbUpdateCbFunc) (void *pUserData);
+
+
+bool mp_util_db_set_update_fun(MpDbUpdateViewLev nLev,
+ MpDbUpdateCbFunc pUpdateFun);
+void mp_util_db_reset_update_fun_except_lev0(void);
+void mp_util_db_reset_all_update_fun(void);
+void mp_util_db_reset_update_fun_up_self(MpDbUpdateViewLev nLev);
+bool mp_util_db_run_update_fun(MpDbUpdateViewLev nLev, void *pUserData);
+bool mp_util_db_run_all_update_fun(void *pUserData0, void *pUserData1,
+ void *pUserData2, void *pUserData3,
+ void *pUserData4);
+bool mp_util_db_run_update_fun_except_lev0(void *pUserData1,
+ void *pUserData2,
+ void *pUserData3,
+ void *pUserData4);
+
+void mp_util_db_reset_backup_fun_up_self(MpDbUpdateViewLev nLev);
+void mp_util_db_reset_backup_fun_except_lev0(void);
+void mp_util_db_reset_all_backup_fun(void);
+bool mp_util_db_set_backup_fun(MpDbUpdateViewLev nLev,
+ MpDbUpdateCbFunc pUpdateFun);
+bool mp_util_db_run_backup_fun_except_lev0(void *pUserData1,
+ void *pUserData2,
+ void *pUserData3,
+ void *pUserData4);
+bool mp_util_db_run_all_backup_fun(void *pUserData0, void *pUserData1,
+ void *pUserData2, void *pUserData3,
+ void *pUserData4);
+
+
+#endif
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __MP_UTIL_COPY_CTRL__
+#define __MP_UTIL_COPY_CTRL__
+
+#include <Eina.h>
+#include <Ecore_Evas.h>
+#include <Elementary.h>
+
+
+typedef enum {
+ MP_VIDEO_UPDATE,
+ MP_VIDEO_UPDATE_CANCEL,
+ MP_VIDEO_UPDATE_FINISH,
+ MP_VIDEO_UPDATE_FAILED,
+ MP_VIDEO_UPDATE_ERROR,
+} euThreadFeedback;
+
+
+typedef void (*mp_util_copy_cb) (euThreadFeedback msg_type,
+ unsigned long long size, int nErrorCode,
+ void *userData);
+
+int mp_util_move_push(const char *szSrcPath, const char *szDstPath,
+ mp_util_copy_cb cbFun, void *userData,
+ unsigned long long nTotalSize);
+bool mp_util_move_cancel_check(void);
+
+void mp_util_move_set_cancel_state(bool bCancel);
+bool mp_util_move_get_total_dir_size(const char *szDir,
+ unsigned long long *size);
+
+int mp_util_move_delete_video_folder(const char *szFolderPath,
+ void *userData);
+
+#endif
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _VIDEO_LOG_H_
+#define _VIDEO_LOG_H_
+
+#include <stdbool.h>
+#include <dlog.h>
+#include <unistd.h>
+#include <linux/unistd.h>
+#include <assert.h>
+
+#ifdef LOG_TAG
+#undef LOG_TAG
+#endif
+
+
+#define LOG_TAG "VIDEOS"
+
+#define VideoLogInfoWithTid(fmt, arg...) dlog_print(DLOG_DEBUG, LOG_TAG, "[%s : %05d %lu]" fmt "\n", __func__, __LINE__, syscall(__NR_gettid), ##arg)
+#define VideoLogInfo(fmt, arg...) dlog_print(DLOG_DEBUG, LOG_TAG, "[%s : %05d]" fmt "\n", __func__, __LINE__, ##arg)
+#define VideoLogDebug(fmt, arg...) dlog_print(DLOG_INFO, LOG_TAG, "[%s : %05d]" fmt "\n", __func__, __LINE__, ##arg)
+#define VideoLogWarning(fmt, arg...) dlog_print(DLOG_INFO, LOG_TAG, "[%s : %05d]" fmt "\n", __func__, __LINE__, ##arg)
+#define VideoLogError(fmt, arg...) dlog_print(DLOG_ERROR, LOG_TAG, "[%s : %05d]" fmt "\n", __func__, __LINE__, ##arg)
+
+#define VideoSecureLogInfoWithTid(fmt, arg...) dlog_print(DLOG_INFO, LOG_TAG, "[%s : %05d %lu]" fmt "\n", __func__, __LINE__, syscall(__NR_gettid), ##arg)
+#define VideoSecureLogDebug(fmt, arg...) dlog_print(DLOG_DEBUG, LOG_TAG, "[%s : %05d]" fmt "\n", __func__, __LINE__, ##arg)
+#define VideoSecureLogInfo(fmt, arg...) dlog_print(DLOG_INFO, LOG_TAG, "[%s : %05d]" fmt "\n", __func__, __LINE__, ##arg)
+#define VideoSecureLogError(fmt, arg...) dlog_print(DLOG_ERROR, LOG_TAG, "[%s : %05d]" fmt "\n", __func__, __LINE__, ##arg)
+
+
+#define PERF_CHECK_IN(fmt, arg...) dlog_print(DLOG_INFO, "LAUNCH", "[video-player:Application:" fmt ":IN]", ##arg)
+#define PERF_CHECK_OUT(fmt, arg...) dlog_print(DLOG_INFO, "LAUNCH", "[video-player:Application:" fmt ":OUT]", ##arg)
+
+#define VideoLogAssert(expr) do { \
+ if (!(expr)) { \
+ VideoLogError("Critical ERROR ########################################## Check below item.");\
+ assert(0); \
+ } \
+} while (0)
+
+
+#endif /*_MPVIDEO_LOG_H_*/
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#ifndef _VIDEO_STRING_DEFINE_
+#define _VIDEO_STRING_DEFINE_
+
+
+#include <app.h>
+
+
+#define MP_SYS_STRING "videos"
+#define VIDEOS_STRING "videos"
+
+#define VIDEOS_GET_STR(x) dgettext(VIDEOS_STRING, x)
+#define VIDEOS_GET_STR_FMT(x) _(dgettext(VIDEOS_STRING, x))
+
+/*--------------------------------------------String Define---------------------------------------------------*/
+
+/////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// Title, System
+/////////////////////////////////////////////////////////////////////////////////////////////////////////////
+#define VIDEOS_TITLE_VIDEO VIDEOS_GET_STR("IDS_VIDEO_OPT_VIDEOS")
+#define VIDEOS_TITLE_VIDEO_PLAYER (dgettext(MP_SYS_STRING, "IDS_COM_BODY_VIDEO_PLAYER"))
+#define VIDEOS_ALERT_LOW_BATTERY (dgettext(MP_SYS_STRING, "IDS_COM_BODY_LOW_BATTERY"))
+
+
+/////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// Popup
+/////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+// Common //
+#define VIDEOS_COMMON_BUTTON_YES_IDS ("IDS_COM_SK_YES")
+#define VIDEOS_COMMON_BUTTON_NO_IDS ("IDS_COM_SK_NO")
+#define VIDEOS_COMMON_BUTTON_OK (dgettext(MP_SYS_STRING, "IDS_COM_SK_OK"))
+#define VIDEOS_COMMON_BUTTON_OK_IDS ("IDS_COM_SK_OK")
+#define VIDEOS_COMMON_BUTTON_CANCEL VIDEOS_GET_STR("IDS_VIDEO_SK_CANCEL_ABB")
+#define VIDEOS_COMMON_BUTTON_CANCEL_IDS ("IDS_CLOCK_BUTTON_CANCEL")
+#define VIDEOS_COMMON_BUTTON_CLOSE_IDS ("IDS_COM_BODY_CLOSE")
+#define VIDEOS_COMMON_HEADER_ERROR (dgettext(MP_SYS_STRING, "IDS_COM_POP_ERROR"))
+#define VIDEOS_COMMON_MSG_DONT_ASK_AGAIN_IDS ("IDS_MUSIC_BUTTON_DONT_ASK_AGAIN")
+#define VIDEOS_COMMON_BUTTON_RENAME_IDS ("IDS_VIDEO_OPT_RENAME")
+
+// Context popup //
+#define VIDEOS_CTXPOP_MENU_DOWNLOAD VIDEOS_GET_STR("IDS_VIDEO_BUTTON_DOWNLOAD")
+#define VIDEOS_CTXPOP_MENU_DOWNLOAD_IDS ("IDS_VIDEO_BUTTON_DOWNLOAD")
+#define VIDEOS_CTXPOP_MENU_SEARCH VIDEOS_GET_STR("IDS_VIDEO_OPT_SEARCH")
+#define VIDEOS_CTXPOP_MENU_SEARCH_IDS ("IDS_VIDEO_OPT_SEARCH")
+#define VIDEOS_CTXPOP_MENU_SHARE VIDEOS_GET_STR("IDS_VIDEO_OPT_SHARE")
+#define VIDEOS_CTXPOP_MENU_SHARE_IDS ("IDS_VIDEO_OPT_SHARE")
+#define VIDEOS_CTXPOP_MENU_DELETE VIDEOS_GET_STR("IDS_VIDEO_BUTTON_DELETE")
+#define VIDEOS_CTXPOP_MENU_DELETE_IDS ("IDS_VIDEO_BUTTON_DELETE")
+#define VIDEOS_CTXPOP_MENU_VIEW_AS VIDEOS_GET_STR("IDS_VIDEO_OPT_VIEW_AS")
+#define VIDEOS_CTXPOP_MENU_VIEW_AS_IDS ("IDS_VIDEO_OPT_VIEW_AS")
+#define VIDEOS_CTXPOP_MENU_SORT_BY VIDEOS_GET_STR("IDS_VIDEO_OPT_SORT_BY")
+#define VIDEOS_CTXPOP_MENU_SORT_BY_IDS ("IDS_VIDEO_OPT_SORT_BY")
+#define VIDEOS_CTXPOP_MENU_AUTO_PLAY_NEXT_IDS ("IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB")
+#define VIDEOS_CTXPOP_MENU_RENAME VIDEOS_GET_STR("IDS_VIDEO_OPT_RENAME")
+#define VIDEOS_CTXPOP_MENU_RENAME_IDS ("IDS_VIDEO_OPT_RENAME")
+#define VIDEOS_CTXPOP_MENU_DETAILS VIDEOS_GET_STR("IDS_VIDEO_OPT_DETAILS")
+#define VIDEOS_CTXPOP_MENU_DETAILS_IDS ("IDS_VIDEO_OPT_DETAILS")
+#define VIDEOS_CTXPOP_MENU_ADD_TO_HOME VIDEOS_GET_STR("IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN")
+#define VIDEOS_CTXPOP_MENU_CONTENT_TO_DISPLAY VIDEOS_GET_STR("IDS_VIDEO_OPT_CONTENT_TO_DISPLAY_ABB")
+#define VIDEOS_CTXPOP_MENU_CONTENT_TO_DISPLAY_IDS ("IDS_VIDEO_OPT_CONTENT_TO_DISPLAY_ABB")
+#define VIDEOS_CTXPOP_MENU_MOVE_TO_PRIVATE VIDEOS_GET_STR("IDS_GALLERY_OPT_MOVE_TO_PRIVATE")
+#define VIDEOS_CTXPOP_MENU_REMOVE_FROM_PRIVATE VIDEOS_GET_STR("IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE")
+
+// Delete popup //
+#define VIDEOS_DELETEPOP_HEADER_DELETE VIDEOS_GET_STR("IDS_VIDEO_BUTTON_DELETE")
+#define VIDEOS_DELETEPOP_BUTTON_DELETE VIDEOS_GET_STR("IDS_VIDEO_BUTTON_DELETE")
+#define VIDEOS_DELETEPOP_BUTTON_DELETE_ALL VIDEOS_GET_STR("IDS_ST_OPT_DELETE_ALL")
+#define VIDEOS_DELETEPOP_MSG_PD_VIDEOS_WILL_BE_DELETED VIDEOS_GET_STR_FMT("IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED")
+#define VIDEOS_DELETEPOP_MSG_ONE_VIDEO_WILL_BE_DELETED VIDEOS_GET_STR("IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED")
+#define VIDEOS_DELETEPOP_MSG_ALL_VIDEOS_WILL_BE_DELETED VIDEOS_GET_STR("IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED")
+#define VIDEOS_DELETEPOP_MSG_ONE_FOLDER_WILL_BE_DELETED VIDEOS_GET_STR("IDS_MUSIC_POP_1_FOLDER_WILL_BE_DELETED")
+#define VIDEOS_DELETEPOP_MSG_ONE_FOLDER_WILL_BE_DELETED_IDS ("IDS_MUSIC_POP_1_FOLDER_WILL_BE_DELETED")
+#define VIDEOS_DELETEPOP_MSG_THIS_FOLDER_WILL_BE_DELETED_IDS VIDEOS_GET_STR("IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED")
+#define VIDEOS_DELETEPOP_MSG_PD_FOLDERS_WILL_BE_DELETED VIDEOS_GET_STR_FMT("IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED")
+#define VIDEOS_DELETEPOP_MSG_ALL_FOLDERS_WILL_BE_DELETED VIDEOS_GET_STR("IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED")
+#define VIDEOS_DELETEPOP_MSG_DELETING VIDEOS_GET_STR("IDS_VIDEO_TPOP_DELETING_ING")
+#define VIDEOS_DELETEPOP_MSG_DELETING_IDS ("IDS_VIDEO_TPOP_DELETING_ING")
+#define VIDEOS_DELETEPOP_HEADER_DELETE_VIDEO VIDEOS_GET_STR("IDS_VIDEO_HEADER_DELETE_VIDEO") // not be used in lite
+#define VIDEOS_DELETEPOP_HEADER_DELETE_VIDEOS VIDEOS_GET_STR("IDS_VIDEO_HEADER_DELETE_VIDEOS") // not be used in lite
+#define MP_COM_POP_DELETED (dgettext(MP_SYS_STRING, "IDS_COM_POP_DELETED")) // not be used in lite
+
+// Rename popup //
+#define VIDEOS_RENAMEPOP_HEADER_RENAME VIDEOS_GET_STR("IDS_VIDEO_OPT_RENAME")
+#define VIDEOS_RENAMEPOP_HEADER_RENAME_IDS ("IDS_VIDEO_OPT_RENAME")
+#define VIDEOS_RENAMEPOP_BUTTON_RENAME VIDEOS_GET_STR("IDS_VIDEO_OPT_RENAME")
+#define VIDEOS_RENAMEPOP_BUTTON_RENAME_IDS ("IDS_VIDEO_OPT_RENAME")
+
+// View as popup //
+#define VIDEOS_VIEWASPOP_HEADER_VIEW_AS VIDEOS_GET_STR("IDS_VIDEO_OPT_VIEW_AS")
+#define VIDEOS_VIEWASPOP_HEADER_VIEW_AS_IDS ("IDS_VIDEO_OPT_VIEW_AS")
+
+// Sort by popup //
+#define VIDEOS_SORTBYPOP_HEADER_SORT_BY VIDEOS_GET_STR("IDS_VIDEO_OPT_SORT_BY")
+#define VIDEOS_SORTBYPOP_HEADER_SORT_BY_IDS ("IDS_VIDEO_OPT_SORT_BY")
+
+//Auto Play next Popup
+#define VIDEOS_MENU_AUTO_PLAY_NEXT_POP_HEADER VIDEOS_GET_STR("IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB")
+
+// Download popup //
+#define VIDEOS_DOWNLOADPOP_MSG_1_VIDEO_WILL_BE_DOWNLOADED "1 video will be downloaded." // TODO. need to change STMS string after release new ID
+#define VIDEOS_DOWNLOADPOP_MSG_PD_VIDEOS_WILL_BE_DOWNLOADED "%d videos will be downloaded." // TODO. need to change STMS string after release new ID
+#define VIDEOS_DOWNLOADPOP_MSG_ALL_VIDEOS_WILL_BE_DOWNLOADED "All videos will be downloaded." // TODO. need to change STMS string after release new ID
+#define VIDEOS_DOWNLOADPOP_BUTTON_DOWNLOAD VIDEOS_GET_STR("IDS_VIDEO_BUTTON_DOWNLOAD")
+
+// Move popup (not be used for lite) //
+#define MP_PERSONAL_ITEM_MOVE_TO VIDEOS_GET_STR_FMT("IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS")
+#define MP_PERSONAL_ITEMS_MOVE_TO VIDEOS_GET_STR_FMT("IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS")
+#define MP_PERSONAL_DONT_ASK_AGAIN VIDEOS_GET_STR("IDS_MUSIC_BUTTON_DONT_ASK_AGAIN")
+#define MP_TEXT_MOVING_IDS ("IDS_VIDEO_POP_MOVING_ING")
+#define MP_TEXT_MOVING VIDEOS_GET_STR("IDS_VIDEO_POP_MOVING_ING")
+#define MP_TEXT_REMOVING_IDS ("IDS_VIDEO_POP_REMOVING_ING")
+#define MP_BUTTON_MOVE_IDS ("IDS_VIDEO_BUTTON_MOVE_ABB")
+#define MP_COM_OPT_ADDED (dgettext(MP_SYS_STRING, "IDS_COM_OPT_ADDED")) // status bar noti
+#define MP_COM_OPT_UNABLE_ADDED (dgettext(MP_SYS_STRING, "IDS_COM_BODY_UNABLE_TO_ADD")) // status bar noti
+#define MP_COM_BODY_MOVE (dgettext(MP_SYS_STRING, "IDS_COM_BODY_MOVE"))
+
+// Share panel (not used at lite) //
+#define MP_SHARE_BLUETOOTH (dgettext(MP_SYS_STRING, "IDS_COM_BODY_BLUETOOTH"))
+#define MP_SHARE_FTM (dgettext(MP_SYS_STRING, "IDS_COM_OPT1_WI_FI_DIRECT"))
+#define MP_SHARE_MESSAGE VIDEOS_GET_STR("IDS_VIDEO_OPT_MESSAGE_ABB")
+#define MP_SHARE_EMAIL VIDEOS_GET_STR("IDS_VIDEO_OPT_EMAIL_ABB")
+
+// Notificatioin msg (noti, toast popup) //
+#define VIDEOS_NOTIPOP_MSG_ALREADY_EXISTS VIDEOS_GET_STR("IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE")
+#define VIDEOS_NOTIPOP_MSG_ALREADY_EXISTS_IDS ("IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE")
+#define VIDEOS_NOTIPOP_MSG_SHARE_ITEM_MAX VIDEOS_GET_STR_FMT("IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED")
+#define VIDEOS_NOTIPOP_MSG_UNABLE_TO_PLAY_THIS_VIDEO_SIDESYNC VIDEOS_GET_STR("IDS_VIDEO_POP_UNABLE_TO_PLAY_THIS_VIDEO_WHILE_USING_SIDESYNC")
+#define VIDEOS_NOTIPOP_MSG_INVALID_CHARACTERS VIDEOS_GET_STR("IDS_SWALL_HEADER_INVALID_CHARACTER")
+#define VIDEOS_NOTIPOP_MSG_MAX_NUM_OF_CHARACTERS dgettext(MP_SYS_STRING, "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED")
+#define VIDEOS_NOTIPOP_MSG_CONNECTION_FAIL (dgettext(MP_SYS_STRING, "IDS_COM_POP_CONNECTION_ERROR"))
+#define VIDEOS_NOTIPOP_MSG_FILE_NOT_EXIST (dgettext(MP_SYS_STRING, "IDS_COM_POP_FILE_NOT_EXIST"))
+#define VIDEOS_NOTIPOP_MSG_UNABLE_TO_SHARE_DRM_FILE VIDEOS_GET_STR("IDS_MUSIC_POP_UNABLE_TO_SHARE_DRM_FILE") // it will be removed. // not be used for lite
+#define VIDEOS_NOTIPOP_MSG_UNABLE_TO_PLAY_VIDEO_DURING_CALL VIDEOS_GET_STR("IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL")
+#define VIDEOS_NOTIPOP_MSG_TURN_PHONE_OVER_TO_MUTE_IDS ("IDS_VPL_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS")
+#define VIDEOS_NOTIPOP_MSG_CLOUD_FILE_CONNECT_FAIL ("IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN")
+#define VIDEOS_NOTIPOP_MSG_MOVE_TO_PERSONAL_STORAGE_FAILED VIDEOS_GET_STR("IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE")
+#define VIDEOS_NOTIPOP_MSG_MOVE_TO_NORMAL_STORAGE_FAILED VIDEOS_GET_STR("IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE")
+
+/////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// Option
+/////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+// Sort by //
+#define VIDEOS_SORTBYOPT_OPT_DATE_MOST_RECENT VIDEOS_GET_STR("IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB")
+#define VIDEOS_SORTBYOPT_OPT_NAME VIDEOS_GET_STR("IDS_VIDEO_OPT_NAME_HA_Z_ABB")
+#define VIDEOS_SORTBYOPT_OPT_RECENTLY_VIEWED VIDEOS_GET_STR("IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB")
+#define VIDEOS_SORTBYOPT_OPT_RECENTLY_ADDED VIDEOS_GET_STR("IDS_VIDEO_OPT_RECENTLY_ADDED_ABB")
+#define VIDEOS_SORTBYOPT_OPT_TITLE VIDEOS_GET_STR("IDS_VIDEO_OPT_TITLE")
+#define VIDEOS_SORTBYOPT_OPT_SIZE VIDEOS_GET_STR("IDS_VIDEO_OPT_SIZE")
+#define VIDEOS_SORTBYOPT_OPT_TYPE VIDEOS_GET_STR("IDS_VIDEO_OPT_TYPE")
+
+// Veiw as //
+#define VIDEOS_VIEWASOPT_OPT_LIST VIDEOS_GET_STR("IDS_VIDEO_OPT_LIST")
+#define VIDEOS_VIEWASOPT_OPT_THUMBNAIL VIDEOS_GET_STR("IDS_VIDEO_OPT_VIDEOS") // not be used for lite
+#define VIDEOS_VIEWASOPT_OPT_FOLDER VIDEOS_GET_STR("IDS_VIDEO_OPT_FOLDERS_ABB")
+#define VIDEOS_TITLE_OPT_FOLDER VIDEOS_GET_STR("IDS_VIDEO_OPT_FOLDERS_ABB")
+
+// Content to display //
+#define VIDEOS_CONTENTTODISPLAYOPT_OPT_ALLCONTENT VIDEOS_GET_STR("IDS_VPL_OPT_ALL_CONTENT_ABB")
+#define VIDEOS_CONTENTTODISPLAYOPT_OPT_PHONE VIDEOS_GET_STR("IDS_VPL_OPT_CONTENT_ON_DEVICE_ABB")
+#define VIDEOS_CONTENTTODISPLAYOPT_OPT_CLOUD VIDEOS_GET_STR("IDS_VPL_OPT_CONTENT_IN_DROPBOX_ABB")
+
+//dropbox
+#define VIDEOS_POP_CLOUD_FILE_CONNECT_FAIL ("IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN")
+#define VIDEOS_VIEW_DROPBOX_NAME VIDEOS_GET_STR("IDS_CLOUD_BODY_DROPBOX_ABB")
+
+
+/////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// View
+/////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+// Nocontent //
+#define VIDEOS_NOCONTENT_MSG_NO_VIDEOS VIDEOS_GET_STR("IDS_VIDEO_NPBODY_NO_VIDEOS")
+#define VIDEOS_NOCONTENT_MSG_NO_VIDEOS_IDS VIDEOS_GET_STR("IDS_VIDEO_NPBODY_NO_VIDEOS")
+#define VIDEOS_NOCONTENT_MSG_NO_VIDEOS_DESC VIDEOS_GET_STR("IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE")
+#define VIDEOS_NOCONTENT_MSG_NO_VIDEOS_DESC_IDS ("IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE")
+
+// List view //
+#define VIDEOS_LISTVIEW_BODY_ONE_VIDEO VIDEOS_GET_STR("IDS_VPL_BODY_1_VIDEO")
+#define VIDEOS_LISTVIEW_BODY_PD_VIDEOS VIDEOS_GET_STR_FMT("IDS_VIDEO_HEADER_PD_VIDEOS")
+
+// Folder view //
+#define VIDEOS_FOLDERVIEW_BODY_ONE_FOLDER VIDEOS_GET_STR("IDS_VPL_BODY_1_FOLDER")
+#define VIDEOS_FOLDERVIEW_BODY_PD_FOLDERS VIDEOS_GET_STR_FMT("IDS_VIDEO_HEADER_PD_FOLDERS")
+#define VIDEOS_FOLDERVIEW_BODY_DEVICE_MEMORY VIDEOS_GET_STR("IDS_IS_BODY_DEVICE_MEMORY_ABB")
+#define VIDEOS_FOLDERVIEW_BODY_SD_CARD VIDEOS_GET_STR("IDS_IS_BODY_SD_CARD")
+#define VIDEOS_FOLDERVIEW_BODY_USB_MEMORY VIDEOS_GET_STR("IDS_IS_BODY_SD_CARD") // need to add IDS about USB memory
+
+// Folder item view //
+
+// Search view //
+#define VIDEOS_SEARCHVIEW_MSG_NO_RESULTS_FOUND_IDS ("IDS_MUSIC_BODY_NO_RESULTS_FOUND")
+#define VIDEOS_SEARCHVIEW_MSG_NO_SEARCH_RESULTS VIDEOS_GET_STR("IDS_VIDEO_BODY_NO_SEARCH_RESULTS")
+#define VIDEOS_SEARCHVIEW_MSG_NO_SEARCH_RESULTS_IDS ("IDS_VIDEO_BODY_NO_SEARCH_RESULTS")
+
+// Share view //
+#define VIDEOS_SHAREVIEW_DONE_IDS VIDEOS_GET_STR("IDS_TPLATFORM_ACBUTTON_DONE_ABB")
+#define VIDEOS_SHAREVIEW_CANCEL_IDS VIDEOS_GET_STR("IDS_TPLATFORM_ACBUTTON_CANCEL_ABB")
+// Delete view //
+#define VIDEOS_DELETEVIEW_DELETE_IDS VIDEOS_GET_STR("IDS_TPLATFORM_ACBUTTON_DELETE_ABB")
+#define VIDEOS_DELETEVIEW_CANCEL_IDS VIDEOS_GET_STR("IDS_TPLATFORM_ACBUTTON_CANCEL_ABB")
+
+// Select view //
+#define VIDEOS_SELECTVIEW_HEADER_PD_SELECTED VIDEOS_GET_STR_FMT("IDS_VIDEO_HEADER_PD_SELECTED")
+#define VIDEOS_SELECTVIEW_BODY_SELECT_ALL VIDEOS_GET_STR_FMT("IDS_VIDEO_HEADER_SELECT_ALL")
+#define VIDEOS_SELECTVIEW_BODY_SELECT_ALL_IDS ("IDS_VIDEO_HEADER_SELECT_ALL")
+#define VIDEOS_SELECTVIEW_HEADER_SELECT_ITEMS VIDEOS_GET_STR("IDS_VPL_BODY_SELECT_ITEMS") // not be used in lite
+#define VIDEOS_SELECTVIEW_HEADER_SELECT_ITEMS_IDS ("IDS_VPL_BODY_SELECT_ITEMS") // not be used in lite
+#define VIDEOS_SELECTVIEW_HEADER_SELECT VIDEOS_GET_STR("IDS_GALLERY_HEADER_SELECT")
+#define VIDEOS_SELECTVIEW_HEADER_SELECT_IDS ("IDS_GALLERY_HEADER_SELECT")
+#define VIDEOS_SELECTVIEW_HEADER_SELECT_VIDEO VIDEOS_GET_STR("IDS_GALLERY_HEADER_SELECT_VIDEO")
+
+// Rename view //
+#define VIDEOS_RENAMEVIEW_HEADER_RENAME VIDEOS_GET_STR("IDS_VIDEO_OPT_RENAME")
+#define VIDEOS_RENAMEVIEW_HEADER_RENAME_IDS ("IDS_VIDEO_OPT_RENAME")
+
+// Detail view //
+#define VIDEOS_DETAILVIEW_HEADER_DETAILS VIDEOS_GET_STR("IDS_VIDEO_OPT_DETAILS")
+#define VIDEOS_DETAILVIEW_HEADER_DETAILS_IDS ("IDS_VIDEO_OPT_DETAILS")
+#define VIDEOS_DETAILVIEW_BODY_TITLE VIDEOS_GET_STR("IDS_VIDEO_OPT_TITLE")
+#define VIDEOS_DETAILVIEW_BODY_SIZE VIDEOS_GET_STR("IDS_VIDEO_OPT_SIZE")
+#define VIDEOS_DETAILVIEW_BODY_DATE (dgettext(MP_SYS_STRING, "IDS_COM_BODY_DATE"))
+#define VIDEOS_DETAILVIEW_BODY_FORMAT VIDEOS_GET_STR("IDS_VPL_OPT_FORMAT")
+#define VIDEOS_DETAILVIEW_BODY_RESOLUTION VIDEOS_GET_STR("IDS_VIDEO_BODY_RESOLUTION")
+#define VIDEOS_DETAILVIEW_BODY_LAST_MODIFIED ("Last modified")
+#define VIDEOS_DETAILVIEW_BODY_LOCATION (dgettext(MP_SYS_STRING, "IDS_COM_BODY_LOCATION"))
+#define VIDEOS_DETAILVIEW_BODY_LATITUDE VIDEOS_GET_STR("IDS_VIDEO_BODY_LATITUDE")
+#define VIDEOS_DETAILVIEW_BODY_LONGITUDE VIDEOS_GET_STR("IDS_VIDEO_BODY_LONGITUDE")
+#define VIDEOS_DETAILVIEW_BODY_UNKNOWN ("Unknown")
+#define VIDEOS_DETAILVIEW_BODY_KB (dgettext(MP_SYS_STRING, "IDS_COM_BODY_KB"))
+#define VIDEOS_DETAILVIEW_BODY_B (dgettext(MP_SYS_STRING, "IDS_COM_BODY_B"))
+#define VIDEOS_DETAILVIEW_BODY_MB (dgettext(MP_SYS_STRING, "IDS_COM_BODY_MB"))
+#define VIDEOS_DETAILVIEW_BODY_GB (dgettext(MP_SYS_STRING, "IDS_COM_BODY_GB"))
+
+// Device view // // not be used in lite
+#define VP_TEXT_NOT_TO_CONNECT_WIFI_IDS ("IDS_IS_BODY_YOU_NEED_TO_BE_CONNECTED_TO_A_WI_FI_NETWORK_TO_SCAN_FOR_NEARBY_DEVICES_CONNECT_VIA_WI_FI_AND_TRY_AGAIN")
+#define VP_TEXT_NO_DEVICE_FOUND_IDS ("IDS_IS_BODY_NO_DEVICES_FOUND_ENABLE_THE_SHARE_CONTENT_FUNCTION_ON_YOUR_NEARBY_DEVICES")
+#define MP_VPL_LIST_CTX_NEAR_BY_DEVICE VIDEOS_GET_STR("IDS_VIDEO_OPT_NEARBY_DEVICES_ABB")
+#define MP_VPL_LIST_CTX_NEAR_BY_DEVICE_IDS ("IDS_VIDEO_OPT_NEARBY_DEVICES_ABB")
+#define VS_TEXT_DISCONNECT_DEVICE VIDEOS_GET_STR_FMT("IDS_DLNA_POP_DISCONNECTED_FROM_PS_CHECK_THE_NETWORK_STATUS_AND_THE_CONNECTED_DEVICE")
+#define MP_COM_SK_REFRESH (dgettext(MP_SYS_STRING, "IDS_COM_SK_REFRESH"))
+#define VS_TEXT_SETTINGS_DEVICES_IDS ("IDS_IS_BODY_DEVICES")
+#define VS_TEXT_LOADING VIDEOS_GET_STR("IDS_IS_BODY_LOADING_ING")
+#define MP_VPL_DEVICES VIDEOS_GET_STR_FMT("IDS_MUSIC_HEADER_PD_DEVICES")
+#define MP_VPL_CTX_SCAN_NEAR_BY_DEVICE_IDS ("IDS_VIDEO_OPT_SCAN_FOR_NEARBY_DEVICES")
+#define MP_TEXT_NO_DEVICES_IDS ("IDS_VIDEO_BODY_NO_DEVICES")
+
+// Cloud view //
+#define MP_COM_POP_DOWNLOADED (dgettext(MP_SYS_STRING, "IDS_COM_BODY_DOWNLOADED"))
+#define MP_VPL_DOWNLOAD_LIST_NO_VIDEO VIDEOS_GET_STR("IDS_VPL_POP_YOU_CAN_DOWNLOAD_AND_ENJOY_VIDEOS_THROUGH_THE_VIDEO_STORE")
+#define MP_VPL_DOWNLOAD_LIST_NO_VIDEO_IDS ("IDS_VPL_POP_YOU_CAN_DOWNLOAD_AND_ENJOY_VIDEOS_THROUGH_THE_VIDEO_STORE")
+#define MP_DOWNLOAD_STR_SELECT_QUALITY VIDEOS_GET_STR("IDS_VIDEO_HEADER_SELECT_QUALITY_ABB")
+
+// Tab (Personal, Devices) // // not be used in lite
+#define MP_VPL_LIST_TAB_PERSONAL VIDEOS_GET_STR("IDS_IS_TAB4_PERSONAL_M_CONTENT")
+#define MP_VPL_LIST_TAB_PERSONAL_IDS ("IDS_IS_TAB4_PERSONAL_M_CONTENT")
+#define MP_VPL_LIST_TAB_VIEW VIDEOS_GET_STR("IDS_VIDEO_BUTTON_VIEW")
+
+#define VIDEOS_STRING_COM_ON VIDEOS_GET_STR("IDS_COM_BODY_ON")
+#define VIDEOS_STRING_COM_OFF VIDEOS_GET_STR("IDS_COM_BODY_OFF")
+
+
+/////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// Other strings
+/////////////////////////////////////////////////////////////////////////////////////////////////////////////
+#ifdef ENABLE_DRM_FEATURE
+// DRM feature string //
+#define MP_VPL_DRM_PS_1_MORE_TIME_START_NOW_Q (dgettext(MP_SYS_STRING, "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"))
+#define MP_VPL_DRM_PS_2_MORE_TIME_START_NOW_Q (dgettext(MP_SYS_STRING, "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"))
+#define MP_VPL_DRM_PS_FOR_PD_DAYS_START_NOW_Q (dgettext(MP_SYS_STRING, "IDS_COM_POP_YOU_CAN_USE_PS_FOR_PD_DAYS_START_NOW_Q"))
+#define MP_VPL_DRM_PS_CURRENTLY_LOCKED_UNLOCK_Q (dgettext(MP_SYS_STRING, "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"))
+#define MP_VPL_DRM_PS_CAN_USE_1_MORE_TIME_GET_ANOTHER_LICENCE_Q (dgettext(MP_SYS_STRING, "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"))
+#define MP_VPL_DRM_PS_CANNOT_USE_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q (dgettext(MP_SYS_STRING, "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"))
+#define MP_VPL_DRM_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q (dgettext(MP_SYS_STRING, "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"))
+#endif
+
+// Sensor Control (not be used in lite) //
+#define MP_VPL_ENABLE_MOTION_IDS ("IDS_MUSIC_BUTTON_ENABLE_MOTION")
+
+
+#endif //_VIDEO_STRING_DEFINE_
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#ifndef _VIDEO_VALUE_DEFINE_
+#define _VIDEO_VALUE_DEFINE_
+
+//PLAY_TIME_FORMAT
+#define PLAY_TIME_FORMAT "02u:%02u:%02u"
+
+
+//PLAY_TIME_ARGS
+#define PLAY_TIME_ARGS(t) \
+ (t) / (60 * 60), \
+ ((t) / 60) % 60, \
+ (t) % 60
+
+#define PLAY_TIME_LENGTH 9
+
+#ifndef TRUE
+#define TRUE 1
+#endif
+
+#ifndef FALSE
+#define FALSE 0
+#endif
+
+#define _EDJ(x) elm_layout_edje_get(x)
+
+
+#ifdef PREFIX
+#undef PREFIX
+#endif
+
+#ifdef LOCALEDIR
+#undef LOCALEDIR
+#endif
+
+#define VIDEO_UTIL_PERSONAL_HEAD_STR "/opt/storage/PersonalStorage"
+
+#define MP_UTIL_VCONF_KEY_PERSONAL_TAG "memory/setting/personal"
+
+
+#define PREFIX "/usr/apps/org.tizen.videos"
+#define LOCALEDIR "/usr/apps/org.tizen.videos/res/locale"
+
+#define VIDEO_BOOKMARK_DIR "/opt"PREFIX"/data"
+#define VIDEO_THUMB_DATA_DIR "/opt/usr/media/.video_thumb"
+#define VIDEO_TRIM_DATA_DIR "/opt/usr/media/.video_thumb"
+#define VIDEO_DOWNLOAD_FILE_DIR "/opt/usr/media/Videos"
+#define VIDEO_CHAPTER_VIEW_DATA_DIR "/opt/usr/media/.video_thumb"
+
+#define VIDEO_LIST_VIEW_ICON_VIDEO_DEFAULT "player_library_list_thumbnail_default.png"
+#define VIDEO_LIST_VIEW_ICON_SEARCH "icon/T01_2_icon_search.png"
+
+#define VIDEO_LIST_VIEW_ICON_VIDEO "icon/T01_2_icon_video.png"
+#define VIDEO_LIST_VIEW_NO_ITEM "icon/T01-2_video_noitem.png"
+#define VIDEO_SOFT_BACK_BUTTON "T01_icon_soft_back.png"
+#define VIDEO_LIST_VIEW_PREVIEW_NO_ITEM "icon/T01-2_video_thumbnail_default.png"
+#define VIDEO_LIST_VIEW_ICON_SELECT_ALL "icon/T02_icon_edit.png"
+#define VIDEO_LIST_VIEW_ICON_PERSONAL_LOCK "icon/T01_2_video_lock_45x45.png"
+#define VIDEO_LIST_VIEW_ICON_DROPBOX "icon/T01_2_thumbnail_icon_drop_box.png"
+#define VIDEO_LIST_VIEW_ICON_REFRESH "icon/T01_Device_icon_index_refresh_bg.png"
+#define VIDEO_LIST_VIEW_ICON_REFRESH_FOCUS "icon/T01_Device_icon_index_refresh_focus_ef.png"
+
+//folder view
+#define VIDEO_LIST_VIEW_ICON_FOLDER_PHONE "icon/player_folder_list_icon_folder.png"
+#define VIDEO_LIST_VIEW_ICON_FOLDER_PHONE_EF "icon/player_folder_list_icon_folder_ef.png"
+#define VIDEO_LIST_VIEW_ICON_FOLDER_DROPBOX "icon/player_folder_list_icon_dropbox.png"
+#define VIDEO_LIST_VIEW_ICON_FOLDER_DROPBOX_EF "icon/player_folder_list_icon_dropbox_ef.png"
+#define VIDEO_LIST_VIEW_ICON_FOLDER_EXTERNAL "icon/T01_2_list_icon_inner_usb.png"
+#define VIDEO_LIST_VIEW_ICON_FOLDER_SDCARD "icon/T01_2_list_icon_sd_card.png"
+
+#define VIDEO_STORE_PATH ".video-store"
+
+#define VIDEO_PLAYER_TOOLBAR_ICON_VIDEOS "toolbar/T01-2_controlbar_icon_video.png"
+#define VIDEO_PLAYER_TOOLBAR_ICON_RECORDED "toolbar/T01-2_controlbar_icon_recorded.png"
+#define VIDEO_PLAYER_TOOLBAR_ICON_BACK "toolbar/T01-2_btn_toolbar_back.png"
+#define VIDEO_PLAYER_TOOLBAR_ICON_CANCEL "toolbar/T01-2_icon_toolbar_cancel.png"
+#define VIDEO_PLAYER_TOOLBAR_ICON_DELETE "toolbar/icon_delete.png"
+#define VIDEO_PLAYER_TOOLBAR_ICON_MOVE_TO_PERSONAL "toolbar/more_button_icon_add_to_your_personal_storage.png"
+#define VIDEO_PLAYER_TOOLBAR_ICON_MOVE_TO_NORMAL "toolbar/more_button_icon_remove_from_your_personal_storage.png"
+#define VIDEO_PLAYER_TOOLBAR_ICON_DONE "toolbar/T01-2_icon_toolbar_done.png"
+
+
+//Use for more button popup
+#define VIDEO_PLAYER_TOOLBAR_ICON_SIGN_IN "toolbar/icon_signin.png"
+#define VIDEO_PLAYER_TOOLBAR_ICON_DOWNLOAD "toolbar/icon_download.png"
+#define VIDEO_PLAYER_TOOLBAR_ICON_REFRESH "toolbar/icon_refresh.png"
+#define VIDEO_PLAYER_TOOLBAR_ICON_SORT_BY "toolbar/icon_sort_by.png"
+#define VIDEO_PLAYER_TOOLBAR_ICON_VIEW_AS "toolbar/icon_view_as.png"
+#define VIDEO_PLAYER_TOOLBAR_ICON_SHARE "toolbar/icon_share_via.png"
+#define VIDEO_PLAYER_TOOLBAR_ICON_NEAR_BY_DEVICES "toolbar/icon_nearbydevices.png"
+
+
+#define VIDEO_PLAYER_REMOVE_LIST_EDJ "vp-remove-list-internal.edj"
+#define VIDEO_PLAYER_LISTVIEW_EDJ "vp-main-listview-internal.edj"
+#define VIDEO_PLAYER_IMAGE_NAME_EDJ "vp-images.edj"
+#define VIDEO_PLAYER_NO_ITEM_EDJ "vp-genlist-no-item.edj"
+
+#define VIDEO_CUSTOM_THEME "vp-custom-winset-style.edj"
+#define VIDEO_PLAYER_POPUP_PROGRESSBAR_EDJ "popup_progressbar.edj"
+
+#define VIDEO_BASIC_LAYOUT_EDJ "vp-main-layout.edj"
+#define VIDEO_BASIC_NAVIFRAME_EDJ "vp-naviframe.edj"
+
+#define MAIN_EDJ_GROUP "main"
+#define CONTROL_EDJ_GROUP "control"
+#define PROGRESS_EDJ_GROUP "progress"
+#define BOOKMARK_EDJ_GROUP "bookmark"
+#define BOOKMARK_ITEM_EDJ_GROUP "bookmark.item"
+#define BOOKMARK_REMOVE_EDJ_GROUP "bookmark.end"
+#define TRIM_EDJ_GROUP "trim.control"
+#define TRIM_ITEM_EDJ_GROUP "trim.item"
+#define CHAPTER_VIEW_EDJ_GROUP "chapter"
+#define SPEEDBOX_EDJ_GROUP "speedbox"
+#define VOLUME_EDJ_GROUP "volume"
+
+#define PANEL_EDJ_GROUP "panel"
+#define FAVORITE_EDJ_GROUP "favorite"
+#define ANIMATION_EDJ_GROUP "animation"
+#define DETAIL_EDJ_GROUP "detail"
+#define SUBTITLE_EDJ_GROUP "subtitle"
+#define SUBTITLE_SYNC_EDJ_GROUP "subtitle.sync"
+#define PANEL_BUTTON_EDJ_GROUP "panel.button"
+#define OPTION_EDJ_GROUP "option"
+#define MULTIWIN_EDJ_GROUP "mw"
+#define SETTING_EDJ_GROUP "setting"
+#define LANDSCAPE_THUMB_EDJ_GROUP "landscape.thumb"
+#define SEARCH_VIEW_LAYOUT_GROUP "video-player.search-view.layout"
+#define REMOVE_LIST_EDJ_GROUP "main.listview.internal"
+#define LISTVIEW_EDJ_GROUP "main.listview.internal"
+#define ASF_DEVICE_LIST_EDJ_GROUP "asf.device.list.internal"
+#define PREVIEW_MOVIE_EDJ_GROUP "listview.preview.movie"
+#define PREVIEW_MOVIE_LANDSCAPE_EDJ_GROUP "listview.preview.movie.landscape"
+#define SEARCH_VIEW_DIM_EDJ_GROUP "search.view.internal"
+#define GENLIST_NOITEM_EDJ_GROUP "listview.genlist.noitem"
+#define GENLIST_NOITEM_SIGNIN_EDJ_GROUP "listview.genlist.noitem.signin"
+#define PREVIEW_MOVIE_NOCOTENT__EDJ_GROUP_L "listview.preview.movie.landspace.nocontent"
+#define PREVIEW_MOVIE_NOCOTENT_EDJ_GROUP "listview.preview.movie.nocontent"
+
+
+
+#define SWALLOW_MAIN_CONTROL "main.panel"
+#define SWALLOW_MAIN_BOOKMARK "main.bookmark"
+#define SWALLOW_MAIN_ANIMATION "main.animation"
+#define SWALLOW_MAIN_PANEL_BUTTON "main.panel.button"
+#define SWALLOW_MAIN_OPTION_BUTTON "main.option.button"
+#define SWALLOW_SETTING_LISTVIEW "setting.list"
+
+#define SWALLOW_BOOKMARK_GRID "bookmark.swallow"
+#define SWALLOW_PANEL_CONTROL "panel.control"
+#define SWALLOW_PANEL_PROGRESS_BAR "panel.progress"
+#define SWALLOW_DETAIL_LIST "detail.list"
+#define SWALLOW_TRIM_THUMBNAIL "trim.control.thumb"
+#define SWALLOW_LISTVIEW_CONTENT "main.listview.content"
+#define SWALLOW_ASF_DEVICE_LIST_CONTENT "asf.device.list.content"
+#define SWALLOW_LISTVIEW_SELECTION_INFO "main.listview.selection.info"
+#define SWALLOW_LISTVIEW_PREVIEW_MOVIE_PIXMAP "listview.preview.movie.pixmap"
+#define SWALLOW_LISTVIEW_PREVIEW_PROGRESS_BAR "listview.preview.movie.progressbar"
+#define SWALLOW_LISTVIEW_NO_ITEM_BUTTON "listview.genlist.noitem.button"
+#define SWALLOW_LISTVIEW_NO_ITEM_SIGNIN_BUTTON "listview.genlist.noitem.signin.button"
+#define SWALLOW_LISTVIEW_NO_ITEM_TEXT "listview.genlist.noitem.text"
+#define SWALLOW_LISTVIEW_NO_ITEM_SIGNIN_TEXT "listview.genlist.noitem.signin.text"
+#define SWALLOW_LISTVIEW_PREVIEW_LANDSCAPE_PROGRESS_BAR "listview.preview.movie.landscape.progressbar"
+#define SWALLOW_LISTVIEW_PREVIEW_LANDSCAPE_MOVIE_PIXMAP "listview.preview.movie.landscape.pixmap"
+#define SWALLOW_LISTVIEW_PREVIEW_NOCOTENT_PIXMAP "listview.preview.movie.nocontent.pixmap"
+
+#define SWALLOW_LISTVIEW_PROGRESS_CONTENT "main.listview.progress"
+
+
+
+
+
+
+#define PART_BUTTON_ICON "icon"
+#define MAIN_SPEED_TEXT "main.speedbox.txt"
+#define SUBTITLE_TEXT "subtitle.txt"
+
+#define PART_MAIN_ROTATE_BUTTON "main.rotate.button"
+
+#define SIGNAL_MAIN_ROTATE_BUTTON_SHOW "signal.main.rotate.button.show"
+#define SIGNAL_MAIN_ROTATE_BUTTON_HIDE "signal.main.rotate.button.hide"
+
+#define SIGNAL_MAIN_ROTATE_BUTTON_CLICK "signal.main.rotate.button.clicked"
+
+#define SIGNAL_CONTROL_PART_PLAY_BUTTON "control.play.button"
+#define SIGNAL_CONTROL_PART_BACK_BUTTON "control.back.button"
+#define SIGNAL_CONTROL_PART_VOL_BUTTON "control.volume.button"
+#define SIGNAL_CONTROL_PART_MUTE_BUTTON "control.volume.mute.button"
+
+#define SIGNAL_CONTROL_PART_SOUNDPATH_BUTTON "control.soundpath.button"
+#define SIGNAL_CONTROL_PART_SCREENSIZE_BUTTON "control.screensize.button"
+#define SIGNAL_CONTROL_PART_FF_BUTTON "control.normal.ff.button"
+#define SIGNAL_CONTROL_PART_REW_BUTTON "control.normal.rew.button"
+#define SIGNAL_CONTROL_PART_TRIM_FF_BUTTON "control.trim.ff.button"
+#define SIGNAL_CONTROL_PART_TRIM_REW_BUTTON "control.trim.rew.button"
+
+#define PART_CONTROL_TRIM_DONE_BUTTON "control.trim.done.button"
+#define PART_CONTROL_TRIM_CANCEL_BUTTON "control.trim.cancel.button"
+#define PART_CONTROL_SPEED_BOX_REW "control.normal.rew.speed.swallow"
+#define PART_CONTROL_SPEED_BOX_FF "control.normal.ff.speed.swallow"
+
+#define PART_BOOKMARK_ADD "bookmark.add"
+#define PART_BOOKMARK_DEL "bookmark.end.btn"
+
+#define SIGNAL_VOLUME_PORTRAIT_MODE "signal.volume.potrait.mode"
+#define SIGNAL_VOLUME_LANDSCAPE_MODE "signal.volume.landscape.mode"
+
+#define SIGNAL_SPEEDBOX_SET_MODE_1 "signal.speedbox.set.mode.1"
+#define SIGNAL_SPEEDBOX_SET_MODE_2 "signal.speedbox.set.mode.2"
+#define SIGNAL_SPEEDBOX_SET_MODE_3 "signal.speedbox.set.mode.3"
+
+#define SIGNAL_SPEEDBOX_SHOW "signal.speedbox.visible.on"
+#define SIGNAL_SPEEDBOX_HIDE "signal.speedbox.visible.off"
+
+#define SIGNAL_CONTROL_MODE_NORMAL "signal.control.mode.normal"
+#define SIGNAL_CONTROL_MODE_BOOKMARK "signal.control.mode.bookmark"
+#define SIGNAL_CONTROL_MODE_TRIM "signal.control.mode.trim"
+#define SIGNAL_CONTROL_MODE_STREAMING "signal.control.mode.streaming"
+#define SIGNAL_CONTROL_MODE_DLNA "signal.control.mode.dlna"
+#define SIGNAL_CONTROL_MODE_VISIBLE_OFF "signal.control.mode.visible.off"
+#define SIGNAL_CONTROL_BACK_BUTTON_UP "signal.control.back.button.up"
+
+#define SIGNAL_CONTROL_VOL_BUTTON_DOWN "signal.control.volume.button.down"
+#define SIGNAL_CONTROL_VOL_BUTTON_UP "signal.control.volume.button.up"
+
+#define SIGNAL_CONTROL_MUTE_BUTTON_DOWN "signal.control.volume.mute.button.down"
+#define SIGNAL_CONTROL_MUTE_BUTTON_UP "signal.control.volume.mute.button.up"
+
+#define SIGNAL_CONTROL_SOUNDPATH_BUTTON_DOWN "signal.control.soundpath.button.down"
+#define SIGNAL_CONTROL_SOUNDPATH_BUTTON_UP "signal.control.soundpath.button.up"
+#define SIGNAL_CONTROL_SCREENSIZE_NORMAL "signal.control.screensize.normal"
+#define SIGNAL_CONTROL_SCREENSIZE_EXPAND "signal.control.screensize.expand"
+#define SIGNAL_CONTROL_NORMAL_FF_BUTTON_DOWN "signal.control.normal.ff.button.down"
+#define SIGNAL_CONTROL_NORMAL_FF_BUTTON_UP "signal.control.normal.ff.button.up"
+#define SIGNAL_CONTROL_NORMAL_REW_BUTTON_DOWN "signal.control.normal.rew.button.down"
+#define SIGNAL_CONTROL_NORMAL_REW_BUTTON_UP "signal.control.normal.rew.button.up"
+
+#define SIGNAL_PANEL_BUTTON_SA_DOWN "signal.panel.button.sa.down"
+#define SIGNAL_PANEL_BUTTON_SA_UP "signal.panel.button.sa.up"
+#define SIGNAL_PANEL_BUTTON_REPEAT_DOWN "signal.panel.button.repeat.down"
+#define SIGNAL_PANEL_BUTTON_REPEAT_UP "signal.panel.button.repeat.up"
+
+#define SIGNAL_BOOKMARK_ADD_DOWN "signal.bookmark.add.down"
+#define SIGNAL_BOOKMARK_ADD_UP "signal.bookmark.add.up"
+
+#define SIGNAL_BOOKMARK_EXPAND "signal.bookmark.expand"
+#define SIGNAL_BOOKMARK_NORMAL "signal.bookmark.normal"
+#define SIGNAL_BOOKMARK_DEL_DOWN "signal.bookmark.end.btn.down"
+
+#define SIGNAL_CONTROL_TRIM_DONE_BUTTON_DOWN "signal.control.trim.done.button.down"
+#define SIGNAL_CONTROL_TRIM_CANCEL_BUTTON_DOWN "signal.control.trim.cancel.button.down"
+
+#define SIGNAL_CONTROL_TRIM_FF_BUTTON_DOWN "signal.control.trim.ff.button.down"
+#define SIGNAL_CONTROL_TRIM_FF_BUTTON_UP "signal.control.trim.ff.button.up"
+#define SIGNAL_CONTROL_TRIM_REW_BUTTON_DOWN "signal.control.trim.rew.button.down"
+#define SIGNAL_CONTROL_TRIM_REW_BUTTON_UP "signal.control.trim.rew.button.up"
+
+#define SIGNAL_CONTROL_SOUNDPATH_BUTTON_ACTIVE "signal.control.soundpath.button.active"
+#define SIGNAL_CONTROL_SOUNDPATH_BUTTON_UNACTIVE "signal.control.soundpath.button.unactive"
+
+#define PART_OPTION_SCREEN_SIZE "option.screensize"
+#define PART_OPTION_SHARE "option.share"
+#define PART_OPTION_BOOKMARK "option.bookmark"
+#define PART_OPTION_MULTIWIN "option.multiwin"
+#define PART_OPTION_MORE "option.more"
+#define PART_OPTION_SOUND_ALIVE "option.sa"
+#define PART_OPTION_TRIM "option.trim"
+#define PART_OPTION_REPEAT "option.repeat"
+#define PART_OPTION_CONNECT_INFO "option.connectinfo"
+
+#define SIGNAL_OPTION_SHARE_CLICKED "signal.option.share.clicked"
+#define SIGNAL_OPTION_BOOKMARK_CLICKED "signal.option.bookmark.clicked"
+#define SIGNAL_OPTION_MULTIWIN_CLICKED "signal.option.multiwin.clicked"
+#define SIGNAL_OPTION_MORE_CLICKED "signal.option.more.clicked"
+#define SIGNAL_OPTION_SOUND_ALIVE_CLICKED "signal.option.sa.clicked"
+#define SIGNAL_OPTION_TRIM_CLICKED "signal.option.trim.clicked"
+#define SIGNAL_OPTION_REPEAT_UP "signal.option.repeat.clicked"
+#define SIGNAL_OPTION_CONNECT_INFO_UP "signal.option.connectinfo.clicked"
+
+#define SIGNAL_LAYOUT_PIXMAP_BG_SHOW "signal.layout.pixmap.bg.show"
+#define SIGNAL_LAYOUT_PIXMAP_BG_HIDE "signal.layout.pixmap.bg.hide"
+
+#define SIGNAL_LAYOUT_INDICATOR_SHOW "signal.layout.indicator.show"
+#define SIGNAL_LAYOUT_INDICATOR_HIDE "signal.layout.indicator.hide"
+
+#define PART_MW_CLOSE "mw.close"
+#define PART_MW_PANEL_HIDE "mw.panel.hide"
+#define PART_MW_PANEL_SHOW "mw.panel.show"
+#define PART_MW_FULL_SIZE "mw.full.size"
+#define PART_MW_REW "mw.control.rew"
+#define PART_MW_PLAY "mw.control.play"
+#define PART_MW_PAUSE "mw.control.pause"
+#define PART_MW_FF "mw.control.ff"
+#define PART_MW_RESIZE "mw.resize"
+
+#define SIGNAL_CONTORL_SHOW_FINISH "signal.control.show.finish"
+#define SIGNAL_CONTORL_HIDE_FINISH "signal.control.hide.finish"
+
+#define SIGNAL_NAVIFRAME_TITLE_SHOW "elm,state,title,show,custom"
+#define SIGNAL_NAVIFRAME_TITLE_HIDE "elm,state,title,hide,custom"
+
+#define SIGNAL_MAIN_CONTROL_PORTRAIT_SHOW "signal.main.control.portrait.show"
+#define SIGNAL_MAIN_CONTROL_LANDSCAPE_SHOW "signal.main.control.landscape.show"
+
+#define SIGNAL_MAIN_CONTROL_NORMAL_HIDE "signal.main.control.hide"
+#define SIGNAL_MAIN_CONTROL_NO_EFFECT_HIDE "signal.main.control.no.effect.hide"
+#define SIGNAL_MAIN_CONTROL_LANDSCAPE_BOOKMAKR_HIDE "signal.main.control.hide.with.bookmark"
+
+#define SIGNAL_MW_CLOSE_CLICKED "signal.mw.close.clicked"
+#define SIGNAL_MW_PANEL_HIDE_CLICKED "signal.mw.panel.hide.clicked"
+#define SIGNAL_MW_PANEL_SHOW_CLICKED "signal.mw.panel.show.clicked"
+#define SIGNAL_MW_FULL_SIZE_CLICKED "signal.mw.full.size.clicked"
+#define SIGNAL_MW_REW_CLICKED "signal.mw.control.rew.clicked"
+#define SIGNAL_MW_PLAY_CLICKED "signal.mw.control.play.clicked"
+#define SIGNAL_MW_PAUSE_CLICKED "signal.mw.control.pause.clicked"
+#define SIGNAL_MW_FF_CLICKED "signal.mw.control.ff.clicked"
+#define SIGNAL_MW_RESIZE_DOWN "signal.mw.resize.down"
+
+#define SIGNAL_MW_HIDE_CONTROL "signal.mw.hide.control"
+#define SIGNAL_MW_SHOW_CONTROL "signal.mw.show.control"
+
+#define SIGNAL_MW_SET_PAUSE_STATUS "signal.mw.set.pause.status"
+#define SIGNAL_MW_SET_PLAY_STATUS "signal.mw.set.play.status"
+
+#define SIGNAL_MW_PIXMAP_SHOW "signal.mw.image.show"
+#define SIGNAL_MW_PIXMAP_HIDE "signal.mw.image.hide"
+
+#define SIGNAL_MW_PIXMAP_ALPHA_SET "signal.mw.image.alpha.set"
+#define SIGNAL_MW_PIXMAP_ALPHA_UNSET "signal.mw.image.alpha.unset"
+
+#define SIGNAL_OPTION_SELECT_BG_CLEAR "signal.option.select.bg.clear"
+
+#define SIGNAL_OPTION_SCREEN_SIZE_NORMAL "signal.option.screensize.normal"
+#define SIGNAL_OPTION_SCREEN_SIZE_FULL "signal.option.screensize.full"
+#define SIGNAL_OPTION_SCREEN_SIZE_ORIGIN "signal.option.screensize.origin"
+
+#define SIGNAL_OPTION_REPEAT_ON "signal.option.repeat.on"
+#define SIGNAL_OPTION_REPEAT_OFF "signal.option.repeat.off"
+
+#define SIGNAL_OPTION_MODE_LOCAL "signal.option.mode.local"
+#define SIGNAL_OPTION_MODE_MYFILE "signal.option.mode.myfile"
+#define SIGNAL_OPTION_MODE_EMAIL "signal.option.mode.email"
+#define SIGNAL_OPTION_MODE_WEB "signal.option.mode.web"
+#define SIGNAL_OPTION_MODE_MESSAGE "signal.option.mode.message"
+
+#define SIGNAL_PANEL_BUTTON_REPEAT_OFF "signal.panel.button.repeat.off"
+#define SIGNAL_PANEL_BUTTON_REPEAT_ONE "signal.panel.button.repeat.one"
+#define SIGNAL_PANEL_BUTTON_REPEAT_ALL "signal.panel.button.repeat.all"
+
+#define SIGNAL_NAVIFRAME_PORTRATE_MODE "signal.naviframe.portrate.mode"
+#define SIGNAL_NAVIFRAME_LANDSCAPE_MODE "signal.naviframe.landscape.mode"
+
+#define SIGNAL_MAIN_PORTRATE_MODE "signal.main.portrate.mode"
+#define SIGNAL_MAIN_LANDSCAPE_MODE "signal.main.landscape.mode"
+#define SIGNAL_MAIN_TRIM_MODE "signal.main.trim.mode"
+
+#define SIGNAL_MAIN_LANDSCAPE_BOOKMAKR_SHOW "signal.main.landscape.bookmark.show"
+#define SIGNAL_MAIN_LANDSCAPE_BOOKMAKR_HIDE "signal.main.landscape.bookmark.hide"
+
+#define SIGNAL_PANEL_PORTRATE_MODE "signal.panel.portrate.mode"
+#define SIGNAL_PANEL_LANDSCAPE_MODE "signal.panel.landscape.mode"
+#define SIGNAL_PANEL_TRIM_MODE "signal.panel.trim.mode"
+
+#define SIGNAL_PROGRESS_PORTRATE_MODE "signal.progress.portrate.mode"
+#define SIGNAL_PROGRESS_LANDSCAPE_MODE "signal.progress.landscape.mode"
+
+#define SIGNAL_PROGRESS_POINTER_SHOW "signal.progress.pointer.show"
+#define SIGNAL_PROGRESS_POINTER_HIDE "signal.progress.pointer.hide"
+
+#define SIGNAL_PROGRESS_ADJUSTMENT_SHOW "signal.progress.adjustment.show"
+#define SIGNAL_PROGRESS_ADJUSTMENT_HIDE "signal.progress.adjustment.hide"
+
+#define SIGNAL_CONTROL_PORTRATE_MODE "signal.control.portrate.mode"
+#define SIGNAL_CONTROL_LANDSCAPE_MODE "signal.control.landscape.mode"
+
+#define SIGNAL_CONTROL_STREAMING_PORTRATE_MODE "signal.control.streaming.portrate.mode"
+#define SIGNAL_CONTROL_STREAMING_LANDSCAPE_MODE "signal.control.streaming.landscape.mode"
+
+#define SIGNAL_CONTROL_SET_MUTE "signal.control.volume.set.mute"
+#define SIGNAL_CONTROL_UNSET_MUTE "signal.control.volume.unset.mute"
+
+#define SIGNAL_SEARCH_VIEW_INTERNAL_DIMMING_SHOW "signal.search.view.internal.dimming.show"
+#define SIGNAL_SEARCH_VIEW_INTERNAL_DIMMING_HIDE "signal.search.view.internal.dimming.hide"
+
+
+// Callback signals.
+#define SIGNAL_CONTROL_PLAY_BUTTON_DOWN "signal.control.play.button.down"
+#define SIGNAL_CONTROL_PLAY_BUTTON_UP "signal.control.play.button.up"
+#define SIGNAL_CONTROL_PLAY_PAUSE_PRESS "signal.control.play.pause.press"
+#define SIGNAL_CONTROL_PLAY_RESUME_PRESS "signal.control.play.resume.press"
+
+// Emit signals.
+#define SIGNAL_CONTROL_PLAY_RESUME "signal.control.play.resume"
+#define SIGNAL_CONTROL_PLAY_PAUSE "signal.control.play.pause"
+
+#define SIGNAL_MAIN_MUTE_SHOW "signal.main.mute.show"
+#define SIGNAL_MAIN_MUTE_HIDE "signal.main.mute.hide"
+
+#define SIGNAL_MAIN_NOCONTENTS_SHOW "signal.main.nocontents.show"
+#define SIGNAL_MAIN_NOCONTENTS_HIDE "signal.main.nocontents.hide"
+
+#define SIGNAL_MAIN_SPEEDBOX_SHOW "signal.main.speedbox.show"
+#define SIGNAL_MAIN_SPEEDBOX_HIDE "signal.main.speedbox.hide"
+
+#define SIGNAL_MAIN_SCREEN_TOUCH_TOGGLE "main.screen.touch.toggle"
+#define SIGNAL_MAIN_ANIMATION_SHOW "signal.main.animation.show"
+#define SIGNAL_MAIN_ANIMATION_HIDE "signal.main.animation.hide"
+
+#define SIGNAL_ANIMATION_IMAGE_LOADING "signal.loading.image.step"
+#define SIGNAL_SUBTITLE_PORTRATE_MODE "signal.subtitle.portrate.mode"
+#define SIGNAL_SUBTITLE_LANDSCAPE_MODE "signal.subtitle.landscape.mode"
+
+#define SIGNAL_SUBTITLE_TXT_SHOW "signal.subtitle.txt.show"
+#define SIGNAL_SUBTITLE_TXT_HIDE "signal.subtitle.txt.hide"
+
+#define SIGNAL_SUBTITLE_LAYOUT_SHOW "signal.subtitle.layout.show"
+#define SIGNAL_SUBTITLE_LAYOUT_HIDE "signal.subtitle.layout.hide"
+
+#define SIGNAL_SUBTITLE_SIZE_SMALL "signal.subtitle.size.small"
+#define SIGNAL_SUBTITLE_SIZE_MEDIUM "signal.subtitle.size.medium"
+#define SIGNAL_SUBTITLE_SIZE_LARGE "signal.subtitle.size.large"
+
+#define SIGNAL_SUBTITLE_SYNC_SHOW "signal.subtitle.sync.show"
+#define SIGNAL_SUBTITLE_SYNC_HIDE "signal.subtitle.sync.hide"
+
+
+#define PART_SUBTITLE_SYNC_SLOW_BUTTON "subtitle.sync.slow.button"
+#define PART_SUBTITLE_SYNC_FAST_BUTTON "subtitle.sync.fast.button"
+#define PART_SUBTITLE_SYNC_TXT "subtitle.sync.txt"
+
+#define SIGNAL_SUBTITLE_SYNC_SLOW_DOWN "signal.subtitle.sync.slow.button.down"
+#define SIGNAL_SUBTITLE_SYNC_FAST_DOWN "signal.subtitle.sync.fast.button.down"
+
+
+#define SIGNAL_LOCKSCREEN_SHOW "signal.lockscreen.show"
+#define SIGNAL_LOCKSCREEN_HIDE "signal.lockscreen.hide"
+
+
+#define SIGNAL_LISTVIEW_SELECTION_INFO_SHOW "signal.main.listview.internal.selection.info.show"
+#define SIGNAL_LISTVIEW_SELECTION_INFO_HIDE "signal.main.listview.internal.selection.info.hide"
+
+#define SIGNAL_ASF_VDIEO_ITEM_SELECTION_INFO_SHOW "signal.asf.device.internal.selection.info.show"
+#define SIGNAL_ASF_VIDEO_ITEM_SELECTION_INFO_HIDE "signal.asf.device.internal.selection.info.hide"
+
+#define SIGNAL_LISTVIEW_PREVIEW_MOVIE_EVENT_CLICKED "signal.listview.preview.movie.event.clicked"
+
+#define SIGNAL_LANDSCAPE_THUMB_PREVIEW_SHOW "signal.landscape.thumb.preview.show"
+#define SIGNAL_LANDSCAPE_THUMB_PREVIEW_HIDE "signal.landscape.thumb.preview.hide"
+
+#define SIGNAL_MOUSE_DOWN "mouse,down,1"
+#define SIGNAL_MOUSE_UP "mouse,up,1"
+#define SIGNAL_MOUSE_CLICK "mouse,clicked,1"
+
+//download
+#define MP_DOWNLOAD_BUTTON_STYLE "video/circle"
+
+// Multi Window value
+#define MP_MULTI_WINDOW_STARTUP_TYPE "window_startup_type"
+#define MP_MULTI_WINDOW_LAYOUT_ID "window_layout_id"
+#define MP_MULTI_WINDOW_OPERATION "http://tizen.org/appcontrol/operation/main"
+
+#define TAG_FAVOURITES "Favourites"
+#ifndef PACKAGE
+#define PACKAGE "video-player"
+#endif
+#define PAUSE_KEY "XF86AudioPause"
+#define PLAY_KEY "XF86AudioPlay"
+#define STOP_KEY "XF86AudioStop"
+#define NEXT_KEY "XF86AudioNext"
+#define PREV_KEY "XF86AudioPrev"
+#define FORWARD_KEY "XF86AudioForward"
+#define REWIND_KEY "XF86AudioRewind"
+#define END_KEY "XF86Stop"
+#define HOME_KEY "XF86Home"
+#define KEY_CANCLE "Cancel"
+#define POWER_KEY "XF86PowerOff"
+
+#define VOLUME_DOWN_KEY "XF86AudioLowerVolume"
+#define VOLUME_UP_KEY "XF86AudioRaiseVolume"
+
+#define VOLUME_MUTE 0
+#define KEY_GRAB_SHARED SHARED_GRAB
+#define KEY_GRAB_EXCLUSIVE EXCLUSIVE_GRAB
+#define KEY_GRAB_TOP_POSITION TOP_POSITION_GRAB
+#define KEY_GRAB_OR_EXCLUSIVE OR_EXCLUSIVE_GRAB
+#define STR_LEN_MAX 4096
+#define SVC_LEN_MAX 2048
+#define FORMAT_LEN_MAX 100
+
+
+#define XML_ITEM_NUM 6
+#define _WIFI_MODE_ 1
+#define _3G_MODE_ 2
+#define USE_STREAMING_ANI 1
+#define LONG_PRESS_INTERVAL 1.0
+#define DOUBLE_CLICK_TIME 0.2
+
+#define SCREEN_TOUCH_TOGGLE_AREA_Y_START 0.065
+#define SCREEN_TOUCH_TOGGLE_AREA_Y_END 0.78
+
+#define TAG_LIST_SIZE 256
+
+#define ANIMATION_TIMER_INTERVAL 0.05
+#define ANIMATION_MAX_COUNT 30
+
+#define BOOSTER_STEP_DISTANCE 99
+#define TRIM_DETAIL_STEP_DISTANCE 30
+
+#define SIGNAL_TEXT_MAX_LEN 64
+#define CAPTION_TEXT_MAX_LEN 16
+#define STR_UUID_LEN_MAX 37
+
+#define DEFAULT_SCALE_WIDTH 720
+#define DEFAULT_SCALE_HEIGHT 1280
+
+#define DEFAULT_MW_WIDTH 496
+#define DEFAULT_MW_HEIGHT 286
+
+#define VIDEO_ICON_WIDTH 70
+#define VIDEO_ICON_HEIGHT 45
+
+#define VIDEO_LIST_PROGRESSBAR_LENGTH 70
+
+#define NO_ITEM_GENLIST_WIDTH 720
+#define NO_ITEM_GENLIST_HEIGHT 690
+
+#define VIDEO_THUMB_WIDTH 176
+#define VIDEO_THUMB_HEIGHT 144
+
+#define VIDEO_PREVIEW_WIDTH 320
+#define VIDEO_PREVIEW_HEIGHT 240
+
+#define VIDEO_NUMBER_INFO_BAR_Y 1115
+
+#define NUMBER_INFO_BAR_HEIGHT 57
+
+#define VIDEO_POPUP_TITLE_H 72
+#define VIDEO_POPUP_1_ITEM_H 46
+#define VIDEO_POPUP_2_ITEM_H 84
+
+#define VIDEO_POPUP_MAX_HEIGHT 752-72
+#define VIDEO_POPUP_MAX_HEIGHT_L 432-72
+
+#define VIDEO_POPUP_MIN_ITEMS 4
+
+#define VIDEO_POPUP_LIST_HEIGHT(count) (((VIDEO_POPUP_1_ITEM_H*count) > VIDEO_POPUP_MAX_HEIGHT) ? (VIDEO_POPUP_MAX_HEIGHT) : (VIDEO_POPUP_1_ITEM_H*count)) //(((112*count) > 728) ? (728) : (112*count))
+#define VIDEO_POPUP_LIST_HEIGHT_L(count) (((VIDEO_POPUP_1_ITEM_H*count-1) > VIDEO_POPUP_MAX_HEIGHT_L) ? (VIDEO_POPUP_MAX_HEIGHT_L) : (VIDEO_POPUP_1_ITEM_H*count-1))
+
+#define VIDEO_POPUP_2_TEXT_HEIGHT(count) (((VIDEO_POPUP_2_ITEM_H*count-1) > VIDEO_POPUP_MAX_HEIGHT) ? (VIDEO_POPUP_MAX_HEIGHT) : (VIDEO_POPUP_2_ITEM_H*count-1))
+#define VIDEO_POPUP_2_TEXT_HEIGHT_L(count) (((VIDEO_POPUP_2_ITEM_H*count-1) > VIDEO_POPUP_MAX_HEIGHT_L) ? (VIDEO_POPUP_MAX_HEIGHT_L) : (VIDEO_POPUP_2_ITEM_H*count-1))
+
+
+#define VIDEO_POPUP_ITEM_W 120
+#define VIDEO_POPUP_ITEM_LADSCAPE_W 480
+
+#define VIDEO_POPUP_DETAIL_ITEM_W 367
+
+#define VIDEO_FILE_ENTRY_LEN_MAX 255
+#define VIDEO_FILE_SEARCH_CHAR_LEN_MAX 50
+#define VIDEO_CTXPOPUP_ITEM_W 500
+#define VIDEO_CTXPOPUP_TITLE_H 54
+
+
+#define PREVIEW_MOVIE_WIDTH 720
+#define PREVIEW_MOVIE_HEIGHT 406
+#define PREVIEW_MOVIE_WIDTH_LANDSCAPE 1280
+#define PREVIEW_MOVIE_HEIGHT_LANDSCAPE 320
+#define PREVIEW_MOVIE_NOCONTENT_LANDSCAPE 640
+#define NO_CONTENTS_WIDTH 720
+#define NO_CONTENTS_HEIGHT 897
+#define VIDEO_MAIN_LIST_BLOCK_COUNT 12
+#define VIDEO_GENLIST_BLOCK_COUNT 12
+#define VIDEO_PERSONAL_UPDATE_TIMER 1.0
+
+#define VIDEO_PREVIEW_WIDTH_ICON_LANDSCAPE 640
+#define VIDEO_PREVIEW_HEIGHT_ICON_LANDSCAPE 320
+
+
+//thumbnail view
+#define VP_GENLIST_THUMB_PORTRAIT_COUNT 2
+#define VP_GENLIST_THUMB_LANDSPACE_COUNT 4
+#define VP_GENLIST_THUMB_PORTRAIT_COUNT_ZOOM_IN 1
+#define VP_GENLIST_THUMB_LANDSPACE_COUNT_ZOOM_IN 2
+#define VP_ALBUM_THUMB_ICON_HEIGHT 150
+#define VP_ALBUM_THUMB_ICON_HEIGHT_ZOOM_IN 225
+#define GRID_VIDEO_ICON_WIDTH 150
+#define GRID_VIDEO_ICON_HEIGHT 210
+#define GRID_VIDEO_TAB_PAD_HEIGHT 12
+
+#define VIDEO_GENGRID_ICON_WIDTH 150
+
+//landspace
+#define VP_ALBUM_THUMB_ICON_HEIGHT_LAND 150
+#define GRID_VIDEO_ICON_WIDTH_LAND 314
+#define GRID_VIDEO_ICON_HEIGHT_LAND 186
+
+#define VIDEO_GENGRID_ICON_WIDTH_LAND 132
+
+//video wall
+#define MP_VIDEO_WALL_START_POSITION 0
+#define MP_VIDEO_WALL_DIR "/opt/usr/media/.video_wall"
+#define MP_VIDEO_WALL_FRAME_FILE_PREFIX "%s/.frame_buff.jpg"
+#define MP_VIDEO_WALL_GEN_FILE_NAME_PREFIX "%s/preview.3gp"
+
+#define VIDEO_SHARE_OPERATION_SINGLE "http://tizen.org/appcontrol/operation/share"
+#define VIDEO_SHARE_OPERATION_MULTIPLE "http://tizen.org/appcontrol/operation/multi_share"
+#define VIDEO_SHARE_SVC_FILE_PATH "http://tizen.org/appcontrol/data/path"
+
+#define MP_VIDEO_WALL_DURATION 10000
+#define MP_VIDEO_WALL_DEFAULT_FPS 10
+
+
+#define GRID_VIDEO_ICON_WIDTH_T 352
+#define GRID_VIDEO_ICON_HEIGHT_T 192
+
+#define VIDEO_DETAIL_VALUE_GPS_DEFAULT -200.0
+
+
+#endif //_VIDEO_VALUE_DEFINE_
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#ifndef __VIDEO_PLAYER__
+#define __VIDEO_PLAYER__
+
+#include <app.h>
+#include <stdbool.h>
+#include <Elementary.h>
+
+#include "mp-video-value-define.h"
+
+#ifndef EXPORT_API
+#define EXPORT_API __attribute__((__visibility__("default")))
+#endif
+
+#endif //__VIDEO_PLAYER__
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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_
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _VIDEO_PLAYER_DETAIL_VIEW_
+#define _VIDEO_PLAYER_DETAIL_VIEW_
+
+typedef struct _VideoDetailInfo {
+ char *szTitle;
+ char *szSize;
+ char *szFormat;
+ char *szResolution;
+ char *szLastModifiedTime;
+ char *szLocation;
+} stDetailInfo;
+
+typedef void (*mpDetailViewCbFunc) (void);
+
+void mp_detail_view_free_detail_info(stDetailInfo * pDetailInfo);
+void mp_detail_view_push(void *pNaviFrame, bool IsFolder,
+ const char *pMediaId, stDetailInfo * pDetailInfo);
+
+void mp_detail_view_delete_handle(void);
+bool mp_detail_view_get_video_detail_info(int nVideoItemIndex,
+ stDetailInfo ** pDetailInfo);
+bool mp_detail_view_get_folder_detail_info(int nFolderItemIndex,
+ stDetailInfo ** pDetailInfo);
+void mp_detail_view_update(void);
+
+#endif // __MP_VIDEO_DETAIL_VIEW__
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#ifndef _VIDEO_LIST_FOLDER_SHARE_VIA_VIEW_
+#define _VIDEO_LIST_FOLDER_SHARE_VIA_VIEW_
+
+#include <stdbool.h>
+#include "mp-video-type-define.h"
+
+typedef void (*ChangeListFolderShareViewCbFunc) (void);
+
+void mp_folder_share_view_push(void *pNaviFrame,
+ ChangeListFolderShareViewCbFunc
+ pChangeViewCb, MpVideoListTabType eTabType);
+void mp_folder_share_view_pop(void);
+void mp_folder_share_view_change_language(void);
+
+#endif
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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_
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#ifndef _VIDEO_LIST_PERSONAL_VIEW_
+#define _VIDEO_LIST_PERSONAL_VIEW_
+
+#include <stdbool.h>
+#include "mp-video-type-define.h"
+
+
+typedef void (*ChangePersonalViewCbFunc) (MpListUpdateType eUpdateType);
+
+/*nViewStyle: 0->add to personal, 1->Remove from personal */
+void mp_personal_view_push(void *pNaviFrame,
+ ChangePersonalViewCbFunc pChangeViewCb,
+ char *pFolderPath, int nViewStyle);
+void mp_personal_view_pop(void);
+bool mp_personal_view_is_top_view(void);
+void mp_personal_view_update(void);
+
+
+#endif
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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_
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#ifndef _VIDEO_LIST_REMOVE_VIEW_
+#define _VIDEO_LIST_REMOVE_VIEW_
+
+#include <stdbool.h>
+#include "mp-video-type-define.h"
+
+
+typedef void (*ChangeListRemoveViewCbFunc) (void);
+typedef void (*ListRemoveViewCbFunc) (MpListUpdateType eUpdateType);
+
+void mp_remove_view_push(void *pNaviFrame,
+ ListRemoveViewCbFunc pUpdateViewCb,
+ ChangeListRemoveViewCbFunc pChangeViewCb,
+ char *pFolderPath, MpVideoListTabType eTabType);
+void mp_remove_view_pop(void);
+bool mp_remove_view_is_top_view(void);
+void mp_remove_view_change_language(void);
+int __mp_remove_folder_view_get_folder_count();
+
+#endif
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#ifndef _VIDEO_LIST_SHARE_VIA_VIEW_
+#define _VIDEO_LIST_SHARE_VIA_VIEW_
+
+
+#include <stdbool.h>
+#include "mp-video-type-define.h"
+
+typedef void (*ChangeListShareViewCbFunc) (void);
+
+void mp_share_view_push(void *pNaviFrame,
+ ChangeListShareViewCbFunc pChangeViewCb,
+ char *pFolderPath, MpVideoListTabType eTabType);
+void mp_share_view_pop(void);
+bool mp_share_view_is_top_view(void);
+void mp_share_view_change_language(void);
+void vp_share_view_update_share_panel(void);
+
+#endif
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#ifndef _VIDEO_LIST_VIEW_COMMON_
+#define _VIDEO_LIST_VIEW_COMMON_
+
+
+#include <stdbool.h>
+#include <Ecore_Evas.h>
+#include <Elementary.h>
+
+#include "mp-video-type-define.h"
+
+typedef void (*UpdateListItemsCbFunc) (MpListUpdateType eUpdateType);
+
+typedef struct {
+ void *pNaviFrameHandle;
+ void *pNaviFrameItem;
+
+ void *pVideosGenlist; // DON'T CHANGE GENLIST HANDLE!!!
+
+ Ecore_Timer *pDbUpdateTimer; //db Update
+
+ MpVideoListTabType nListTabType;
+
+ int nCurrentViewType;
+
+ Evas_Smart_Cb pGenlistItemtLanguageChangedCb;
+ Evas_Smart_Cb pGenlistItemtRealizeCb;
+ Evas_Smart_Cb pGenlistItemtPressCb;
+ Evas_Smart_Cb pGenlistItemtLongPressCb;
+} st_VideoListViewMainViewHandle;
+
+
+typedef struct {
+ Evas_Object *pBox; // DON'T CHANGE BOX !!!
+ Evas_Object *pToolBar; // DON'T CHANGE TOOLBAR !!!
+
+ ////////////////////////////////////////////////////////////
+ // personal tab
+ Evas_Object *pListViewBaselayout;
+ Evas_Object *pListViewTitlelayout;
+ Evas_Object *pListViewNocontentlayout;
+ ////////////////////////////////////////////////////////////
+ Evas_Object *pScroller;
+
+ Evas_Object *pVideoGenlistTitle;
+ Elm_Genlist_Item_Class *pVideoGenlistTitleItc;
+ Elm_Object_Item *pVideoGenlistItemForTitle;
+ Elm_Object_Item *pVideoGenlistItemForNoContentLayout;
+
+ Evas_Object *gesture;
+ int zoom_level;
+} st_VideoListViewMainViewWidget;
+
+void mp_list_common_set_callabcks(void *viewHandle,
+ Evas_Smart_Cb
+ pGenlistItemtLanguageChangedCb,
+ Evas_Smart_Cb pGenlistItemtRealizeCb,
+ Evas_Smart_Cb pGenlistItemtPressCb,
+ Evas_Smart_Cb pGenlistItemtLongPressCb);
+void mp_list_common_unset_callabcks(void *viewHandle);
+
+void mp_folder_view_set_is_item_view(bool isSelected);
+bool mp_folder_view_is_item_view(void);
+bool mp_folder_view_is_top_view(void);
+
+
+#endif
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#ifndef _VIDEO_LIST_VIEW_
+#define _VIDEO_LIST_VIEW_
+
+#include <stdbool.h>
+#include "mp-video-type-define.h"
+
+
+void mp_list_view_push(void *pNaviFrame);
+void mp_list_view_destroy(void);
+void mp_list_view_update_widget(void);
+void mp_list_view_update_widget_resume(void);
+void mp_list_view_change_language(void);
+void mp_list_view_change_color(void);
+void mp_list_view_destroy_player(void);
+void mp_list_view_update_whole_genlist(MpListUpdateType eUpdateType);
+void mp_list_view_rotate_view(MpListUpdateType eUpdateType);
+void mp_list_view_update_count_layout();
+void mp_list_view_update_base_layout();
+void mp_list_view_search_item_cb(void *pUserData, Evas_Object * pObject,
+ void *pEventInfo);
+
+#endif
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#ifndef _VIDEO_LIST_VIEW_SELECT_H_
+#define _VIDEO_LIST_VIEW_SELECT_H_
+
+#include <stdbool.h>
+#include "mp-video-type-define.h"
+
+typedef enum {
+ SELECT_TYPE_UNKNOW = 0,
+ SELECT_TYPE_DETAIL,
+ SELECT_TYPE_RENAME,
+} SelectType;
+
+typedef void (*ChangeSelectViewCbFunc) (MpListUpdateType eUpdateType);
+
+void mp_select_view_push(void *pNaviFrame, void *pNaviItem,
+ ChangeSelectViewCbFunc pChangeViewCb,
+ char *pFolderUrl, SelectType eSelType,
+ MpVideoListTabType eTabType);
+void mp_select_view_pop(void);
+void mp_select_view_change_language(void);
+bool mp_select_view_arrange_video_list(void *pGenlist, bool bNeedSvc);
+
+#endif
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#ifndef _VIDEOS_VIEW_MGR_
+#define _VIDEOS_VIEW_MGR_
+
+
+#include <Evas.h>
+#include <stdlib.h>
+#include <stdbool.h>
+
+#include <Elementary.h>
+
+
+#ifdef _cplusplus
+extern "C" {
+#endif
+
+
+ const Evas_Object *mp_mgr_create_main_window(const char *pStrName);
+ void mp_mgr_restart_main_window();
+ const Evas_Object *mp_mgr_get_main_window();
+ const Evas_Object *mp_mgr_get_conformant();
+ const Evas_Object *mp_mgr_get_main_layout();
+
+ Eina_Bool mp_mgr_is_landscape();
+
+ const Evas_Object *mp_mgr_get_library_naviframe();
+ const Evas_Object *mp_mgr_get_current_inner_naviframe();
+
+ const Evas_Object *mp_mgr_get_library_parent();
+
+
+#ifdef _cplusplus
+}
+#endif
+#endif // _VIDEOS_VIEW_MGR_
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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_
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#ifndef _VIDEO_FOOTER_TOOLBAR_
+#define _VIDEO_FOOTER_TOOLBAR_
+
+
+typedef enum {
+ FOOTER_TAB_TYPE_PERSONAL = 0,
+ FOOTER_TAB_TYPE_DOWNLOAD,
+ FOOTER_LIST_ITEM_TYPE_MAX,
+} MpFooterLibraryMainListTabType;
+
+
+typedef struct {
+ void *DownloadCb;
+ void *SearchCb;
+ void *ShareViaCb;
+ void *DeleteCb;
+ void *ViewAsCb;
+ void *AutoPlayCb;
+ void *SortItemCb;
+ void *RenameCb;
+ void *DetailsCb;
+ void *SignInCb;
+#ifdef ENABLE_PRIVATE_MODE
+ void *AddToPersonalCB;
+ void *RemoveFromPersonalCB;
+#endif
+} st_RegisteCbFunc;
+
+
+void mp_ft_ctrl_create(void *pNaviFrameHandle, void *pNaviFrameItem,
+ MpFooterLibraryMainListTabType nFooterListTabType,
+ st_RegisteCbFunc * pRegisteCbFunc);
+void mp_ft_ctrl_destroy(void);
+void mp_ft_ctrl_hide_more_popup(void);
+void mp_ft_ctrl_create_center_button(void *pUserData,
+ void *pToolbarCenterButtonCb);
+void mp_ft_ctrl_create_center_toolbar(void *pParent,
+ void *pToolbarCenterButtonCb);
+void mp_ft_ctrl_delete_center_button(void);
+void mp_ft_ctrl_disable(void);
+void mp_ft_ctrl_delete_center_toolbar();
+void mp_ft_ctrl_rotate_update();
+bool mp_ft_ctrl_is_show(void);
+#endif
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __MP_UTIL_WIDGET_CTRL__
+#define __MP_UTIL_WIDGET_CTRL__
+
+#include <Eina.h>
+#include <Ecore_Evas.h>
+#include <Elementary.h>
+
+typedef enum {
+ VIDEOS_POPUP_NONE = 0x00,
+ VIDEOS_POPUP_114,
+ VIDEOS_POPUP_141,
+ VIDEOS_POPUP_MAX
+} euPopUpStyle;
+
+
+void mp_widget_ctrl_enable_navi_handle_focus(Evas_Object * pNaviHandle);
+void mp_widget_ctrl_disable_navi_handle_focus_except_item(Evas_Object *
+ pNaviHandle,
+ Elm_Object_Item *
+ pCurentNaviItem);
+void mp_widget_ctrl_set_popup_min_size(Evas_Object * pBox, int nListCount,
+ euPopUpStyle eStyle);
+void mp_widget_ctrl_navi_item_layout_focus_out(Evas_Object * pFocusLayout);
+void mp_widget_ctrl_navi_item_layout_focus_in(Evas_Object * pFocusLayout);
+Evas_Object *mp_widget_ctrl_create_navi_btn(Evas_Object * pParent,
+ const char *pIconPath,
+ Evas_Smart_Cb pFunc,
+ void *pUserData);
+
+Evas_Object *mp_widget_ctrl_create_navi_left_btn(Evas_Object * pParent,
+ Elm_Object_Item *
+ pNaviItem,
+ const char *pIconPath,
+ Evas_Smart_Cb pFunc,
+ void *pUserData);
+
+Evas_Object *mp_widget_ctrl_create_navi_right_btn(Evas_Object * pParent,
+ Elm_Object_Item *
+ pNaviItem,
+ const char *pIconPath,
+ Evas_Smart_Cb pFunc,
+ void *pUserData);
+
+bool mp_widget_ctrl_create_select_all_layout(Evas_Object * pParent,
+ Evas_Smart_Cb pChangeFunc,
+ Evas_Object_Event_Cb
+ pMouseDownFunc,
+ void *pUserData,
+ Evas_Object ** pCheckBox,
+ Evas_Object ** pSelectLayout);
+
+Evas_Object *mp_widget_ctrl_create_progressbar(Evas_Object * pParent,
+ double dRadio);
+
+#endif
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#ifndef _MP_VIDEO_LIST_AUTO_PLAY_CTRL_
+#define _MP_VIDEO_LIST_AUTO_PLAY_CTRL_
+
+
+typedef enum {
+ MP_LIST_AUTO_PLAY_NONE = 0,
+ MP_LIST_AUTO_PLAY_ON,
+ MP_LIST_AUTO_PLAY_OFF,
+ MP_LIST_AUTO_PLAY_MAX,
+} MpListAutoPlaySelect;
+
+
+typedef void (*ListViewAsCtrlCbFunc) (void);
+
+
+bool mp_auto_play_ctrl_show();
+void mp_auto_play_ctrl_hide(void);
+void mp_auto_play_ctrl_change_language(void);
+int mp_auto_play_ctrl_get_type(void);
+
+
+#endif // _MP_VIDEO_LIST_AUTO_PLAY_CTRL_
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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_
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#ifndef _MP_VIDEO_LIST_SORT_CTRL_
+#define _MP_VIDEO_LIST_SORT_CTRL_
+
+
+typedef enum {
+ MP_LIST_SORT_BY_NONE = 0,
+ MP_LIST_SORT_BY_RECENTLY_ADDED = 2,
+ MP_LIST_SORT_BY_NAME = 3,
+ MP_LIST_SORT_BY_MAX,
+} MpListSortType;
+
+
+typedef void (*ListSortCtrlCbFunc) (void);
+
+
+bool mp_sort_ctrl_show(ListSortCtrlCbFunc pListSortCtrlCb);
+void mp_sort_ctrl_hide(void);
+void mp_sort_ctrl_change_language(void);
+int mp_sort_ctrl_get_sort_state(void);
+
+
+#endif // _MP_VIDEO_LIST_SORT_CTRL_
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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_
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#include <Evas.h>
+
+
+#ifndef _MP_VIDEO_NOCONTENT_LAYOUT_
+#define _MP_VIDEO_NOCONTENT_LAYOUT_
+
+
+#ifdef _cplusplus
+extern "C" {
+#endif
+
+
+ Evas_Object *mp_create_nocontent_layout(const Evas_Object * pParent,
+ const char *pText,
+ const char *pHelpText);
+
+
+#ifdef _cplusplus
+}
+#endif
+#endif // _MP_VIDEO_NOCONTENT_LAYOUT_
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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__
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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_
--- /dev/null
+<manifest>
+ <request>
+ <domain name="_" />
+ </request>
+</manifest>
--- /dev/null
+<manifest>
+ <request>
+ <domain name="_"/>
+ </request>
+</manifest>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<manifest xmlns="http://tizen.org/ns/packages" package="org.tizen.videos" version="1.0.39" install-location="internal-only" api-version="3.0">
+ <label>Videos</label>
+ <author email="yoechan.song@samsung.com" href="www.samsung.com">Yochan Song</author>
+ <description>Videos Application</description>
+ <ui-application appid="org.tizen.videos" exec="/usr/apps/org.tizen.videos/bin/videos"
+ nodisplay="false" multiple="false" type="capp" taskmanage="true" indicatordisplay="false" hw-acceleration="on" process-pool="true"
+ effectimage-type="edj-default" portrait-effectimage="/usr/apps/org.tizen.videos/shared/res/video.edj">
+ <metadata key="http://developer.samsung.com/tizen/metadata/multiwindow"/>
+ <label>Video</label>
+ <icon>org.tizen.videos.png</icon>
+ <!--INDIA-->
+ <label xml:lang="en-gb">Video</label> <!-- -->
+ <label xml:lang="hi-in">वीडियो</label>
+ <label xml:lang="bn-in">ভিডিও</label>
+ <label xml:lang="gu-in">વિડિયો</label>
+ <label xml:lang="kn-in">ವೀಡಿಯೊ</label>
+ <label xml:lang="ml-in">വീഡിയോ</label>
+ <label xml:lang="si-lk">වීඩියෝ</label>
+ <label xml:lang="ta-in">நிகழ்படம்</label>
+ <label xml:lang="te-in">వీడియో</label>
+ <label xml:lang="ur-pk">ویڈیو</label>
+ <!--SEA-->
+ <label xml:lang="en-us">Video</label>
+ <label xml:lang="en-ph">Video</label>
+ <label xml:lang="zh-cn">视频</label>
+ <label xml:lang="tl-ph">Video</label>
+ <label xml:lang="id-id">Video</label>
+ <label xml:lang="ko-kr">비디오</label>
+ <label xml:lang="ms-my">Video</label>
+ <label xml:lang="my-mm">ဗီဒီယို</label>
+ <label xml:lang="th-th">วิดีโอ</label>
+ <label xml:lang="vi-vn">Video</label>
+ <label xml:lang="lo-la">ວິດີໂອ</label>
+ <label xml:lang="km-kh">វីដេអូ</label>
+ <label xml:lang="hy-am">Վիդեո</label>
+ <label xml:lang="az-az">Video</label>
+ <label xml:lang="eu-es">Bideoa</label>
+ <label xml:lang="bg-bg">Видеоклип</label>
+ <label xml:lang="ca-es">Vídeo</label>
+ <label xml:lang="zh-cn">视频</label>
+ <label xml:lang="zh-hk">影片</label>
+ <label xml:lang="zh-tw">影片</label>
+ <label xml:lang="hr-hr">Video</label>
+ <label xml:lang="cs-cz">Video</label>
+ <label xml:lang="da-dk">Videoklip</label>
+ <label xml:lang="nl-nl">Video</label>
+ <label xml:lang="en-gb">Video</label>
+ <label xml:lang="en-us">Video</label>
+ <label xml:lang="et-ee">Video</label>
+ <label xml:lang="fi-fi">Video</label>
+ <label xml:lang="fr-fr">Vidéo</label>
+ <label xml:lang="gl-es">Vídeo</label>
+ <label xml:lang="ka-ge">ვიდეო</label>
+ <label xml:lang="de-de">Video</label>
+ <label xml:lang="el-gr">Βίντεο</label>
+ <label xml:lang="hu-hu">Videó</label>
+ <label xml:lang="is-is">Myndskeið</label>
+ <label xml:lang="ga-ie">Físeán</label>
+ <label xml:lang="it-it">Video</label>
+ <label xml:lang="ja-jp">動画</label>
+ <label xml:lang="kk-kz">Бейне</label>
+ <label xml:lang="ko-kr">동영상</label>
+ <label xml:lang="lv-lv">Video</label>
+ <label xml:lang="lt-lt">Vaizdo įrašas</label>
+ <label xml:lang="mk-mk">Видео-запис</label>
+ <label xml:lang="nb-no">Video</label>
+ <label xml:lang="pl-pl">Film</label>
+ <label xml:lang="pt-pt">Vídeo</label>
+ <label xml:lang="pt-br">Vídeo</label>
+ <label xml:lang="ro-ro">Videoclip</label>
+ <label xml:lang="ru-ru">Видео</label>
+ <label xml:lang="sr-rs">Video zapis</label>
+ <label xml:lang="sk-sk">Video</label>
+ <label xml:lang="sl-si">Video</label>
+ <label xml:lang="es-es">Vídeo</label>
+ <label xml:lang="es-us">Video</label>
+ <label xml:lang="sv-se">Videoklipp</label>
+ <label xml:lang="tr-tr">Video</label>
+ <label xml:lang="uk-ua">Відео</label>
+ <label xml:lang="uz-uz">Video</label>
+ <label xml:lang="ar-ae">فيديو</label>
+ <!-- <label xml:lang="zh-sg">画廊</label> -->
+ <label xml:lang="hi-in">वीडियो</label>
+ <label xml:lang="en-ph">Video</label>
+ <label xml:lang="fr-ca">Vidéo</label>
+ <!--Latin-->
+ <label xml:lang="pt-br">Vídeo</label>
+ <label xml:lang="es-us">Video</label>
+ </ui-application>
+
+ <privileges>
+ <privilege>http://tizen.org/privilege/mediastorage</privilege>
+ <privilege>http://tizen.org/privilege/systemsettings</privilege>
+ <privilege>http://tizen.org/privilege/externalstorage.appdata</privilege>
+ <privilege>http://tizen.org/privilege/externalstorage</privilege>
+ <privilege>http://tizen.org/privilege/telephony</privilege>
+ <privilege>http://tizen.org/privilege/wifidirect</privilege>
+ <privilege>http://tizen.org/privilege/network.get</privilege>
+ <privilege>http://tizen.org/privilege/volume.set</privilege>
+ <privilege>http://tizen.org/privilege/appmanager.launch</privilege>
+ <privilege>http://tizen.org/privilege/content.write</privilege>
+ <privilege>http://tizen.org/privilege/display</privilege>
+ <privilege>http://tizen.org/privilege/internet</privilege>
+ </privileges>
+</manifest>
--- /dev/null
+#!/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
+
--- /dev/null
+Name: org.tizen.videos
+Summary: video library & store
+Version: 1.0.40
+Release: 1
+Group: Applications
+License: Flora-1.1
+Source0: %{name}-%{version}.tar.gz
+
+%if "%{?tizen_profile_name}" == "wearable" || "%{?tizen_profile_name}" == "tv"
+ExcludeArch: %{arm} %ix86 x86_64
+%endif
+
+BuildRequires: pkgconfig(elementary)
+BuildRequires: pkgconfig(capi-system-system-settings)
+BuildRequires: pkgconfig(libmedia-service)
+BuildRequires: pkgconfig(libxml-2.0)
+BuildRequires: pkgconfig(evas)
+BuildRequires: pkgconfig(edje)
+BuildRequires: pkgconfig(efreet)
+BuildRequires: pkgconfig(capi-appfw-application)
+BuildRequires: pkgconfig(capi-appfw-preference)
+BuildRequires: pkgconfig(capi-media-player)
+BuildRequires: pkgconfig(capi-media-image-util)
+BuildRequires: pkgconfig(capi-media-metadata-extractor)
+BuildRequires: pkgconfig(capi-content-media-content)
+BuildRequires: pkgconfig(capi-content-mime-type)
+BuildRequires: pkgconfig(capi-system-media-key)
+BuildRequires: pkgconfig(capi-web-url-download)
+BuildRequires: pkgconfig(capi-system-sensor)
+BuildRequires: pkgconfig(shortcut)
+BuildRequires: pkgconfig(notification)
+BuildRequires: pkgconfig(accounts-svc)
+BuildRequires: pkgconfig(capi-network-connection)
+BuildRequires: pkgconfig(glib-2.0)
+BuildRequires: pkgconfig(capi-system-runtime-info)
+BuildRequires: pkgconfig(capi-network-wifi-direct)
+BuildRequires: pkgconfig(capi-network-wifi-manager)
+BuildRequires: boost-devel
+BuildRequires: boost-thread
+BuildRequires: boost-system
+BuildRequires: boost-filesystem
+BuildRequires: pkgconfig(appcore-efl)
+BuildRequires: pkgconfig(minicontrol-provider)
+BuildRequires: pkgconfig(capi-appfw-app-manager)
+BuildRequires: pkgconfig(storage)
+BuildRequires: pkgconfig(appsvc)
+BuildRequires: pkgconfig(libcore-context-manager)
+BuildRequires: pkgconfig(capi-system-device)
+BuildRequires: pkgconfig(capi-network-bluetooth)
+BuildRequires: pkgconfig(capi-base-utils-i18n)
+BuildRequires: pkgconfig(capi-ui-efl-util)
+
+BuildRequires: cmake
+BuildRequires: gettext-tools
+BuildRequires: edje-tools
+BuildRequires: libicu-devel
+#BuildRequires: hash-signer
+
+BuildRequires: pkgconfig(tapi)
+BuildRequires: pkgconfig(efl-extension)
+BuildRequires: pkgconfig(capi-telephony)
+BuildRequires: pkgconfig(libtzplatform-config)
+
+%description
+video library
+
+
+Description: chapter video manange app for video-player.
+
+%package -n org.tizen.video-player
+Summary: video file video-player.
+Group: Applications
+License: Flora-1.1
+
+%description -n org.tizen.video-player
+
+Description: video file video-player.
+
+%prep
+%setup -q
+
+%ifarch %{arm}
+%define ARCH arm
+%else
+%define ARCH i586
+%endif
+
+%build
+%if 0%{?tizen_build_devel_mode}
+export CFLAGS="$CFLAGS -DTIZEN_ENGINEER_MODE"
+export CXXFLAGS="$CXXFLAGS -DTIZEN_ENGINEER_MODE"
+export FFLAGS="$FFLAGS -DTIZEN_ENGINEER_MODE"
+%endif
+
+CFLAGS+=" -fvisibility=hidden"; export CFLAGS
+CXXFLAGS+=" -fvisibility=hidden"; export CXXFLAGS
+FFLAGS+=" -fvisibility=hidden"; export FFLAGS
+
+cmake . -DCMAKE_INSTALL_PREFIX="%{TZ_SYS_RO_APP}/org.tizen.videos" \
+ -DCMAKE_INSTALL_VP_PREFIX="%{TZ_SYS_RO_APP}/org.tizen.video-player" \
+ -DCMAKE_DESKTOP_ICON_DIR="%{TZ_SYS_RO_ICONS}/default/small" \
+ -DCMAKE_APP_SHARE_PACKAGES_DIR="%{TZ_SYS_RO_PACKAGES}" \
+ -DARCH=%{ARCH} \
+ -DTZ_SYS_RO_APP=%{TZ_SYS_RO_APP}
+
+%if 0%{?sec_build_binary_debug_enable}
+export CFLAGS="$CFLAGS -DTIZEN_DEBUG_ENABLE"
+export CXXFLAGS="$CXXFLAGS -DTIZEN_DEBUG_ENABLE"
+export FFLAGS="$FFLAGS -DTIZEN_DEBUG_ENABLE"
+%endif
+
+make %{?jobs:-j%jobs}
+
+%install
+rm -rf %{buildroot}
+
+%make_install
+#execstack -c %{buildroot}%{TZ_SYS_RO_APP}/org.tizen.videos/bin/videos
+%define tizen_sign 1
+%define tizen_sign_base %{TZ_SYS_RO_APP}/org.tizen.videos;
+%define tizen_sign_base %{TZ_SYS_RO_APP}/org.tizen.video-player;
+%define tizen_sign_level platform
+%define tizen_author_sign 1
+%define tizen_dist_sign 1
+
+%post
+#/usr/bin/signing-client/hash-signer-client.sh -a -d -p platform %{TZ_SYS_RO_APP}/org.tizen.videos
+
+%postun
+
+%post -n org.tizen.video-player
+/sbin/ldconfig
+
+#/usr/bin/signing-client/hash-signer-client.sh -a -d -p platform /usr/apps/org.tizen.video-player
+
+%files -n org.tizen.videos
+%manifest org.tizen.videos.manifest
+%defattr(-,root,root,-)
+%{TZ_SYS_RO_APP}/org.tizen.videos/bin/*
+%{TZ_SYS_RO_APP}/org.tizen.videos/res/locale/*
+%{TZ_SYS_RW_ICONS}/default/small/org.tizen.videos.png
+%{TZ_SYS_RO_APP}/org.tizen.videos/res/edje/*
+%{TZ_SYS_RO_PACKAGES}/org.tizen.videos.xml
+%{TZ_SYS_RO_APP}/org.tizen.videos/shared/res/video.edc
+%{TZ_SYS_RO_APP}/org.tizen.videos/res/images/core_theme_bg_01.png
+
+#%{TZ_SYS_RO_APP}/org.tizen.videos/res/script/*
+#%{TZ_SYS_RO_APP}/org.tizen.videos/libexec/*
+
+#%{TZ_SYS_RO_APP}/org.tizen.videos/author-signature.xml
+#%{TZ_SYS_RO_APP}/org.tizen.videos/signature1.xml
+
+%files -n org.tizen.video-player
+%manifest org.tizen.video-player.manifest
+%defattr(-,root,root,-)
+%{TZ_SYS_RO_APP}/org.tizen.video-player/bin/*
+%{TZ_SYS_RO_APP}/org.tizen.video-player/res/locale/*
+%{TZ_SYS_RO_APP}/org.tizen.video-player/res/edje/*
+%{TZ_SYS_RW_ICONS}/default/small/org.tizen.video-player.png
+%{TZ_SYS_RO_PACKAGES}/org.tizen.video-player.xml
+#%{TZ_SYS_RO_APP}/org.tizen.video-player/author-signature.xml
+#%{TZ_SYS_RO_APP}/usr/apps/org.tizen.video-player/signature1.xml
+%license LICENSE
--- /dev/null
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+PROJECT(playview C)
+
+SET(PREFIX ${CMAKE_INSTALL_PREFIX})
+SET(VERSION 0.1.0)
+
+SET(SRCS
+#################################################
+#play view src
+#################################################
+ src/vp-play-view.c
+ src/common/vp-play-util.c
+ src/common/vp-play-config.c
+ src/common/vp-play-preference.c
+ src/common/vp-play-ug.c
+ #src/view/vp-play-multi-view.c
+ src/view/vp-play-normal-view.c
+ src/widget/vp-play-bookmark.c
+ src/widget/vp-play-button.c
+ src/widget/vp-play-more.c
+ src/widget/vp-play-popup.c
+ src/widget/vp-play-subtitle.c
+ src/widget/vp-play-volume.c
+ src/widget/vp-play-progressbar.c
+ src/widget/vp-play-loading-ani.c
+ src/widget/vp-play-volume-popup.c
+ src/widget/vp-play-brightness-popup.c
+ src/widget/vp-play-minicontroller.c
+ src/widget/vp-play-lockscreenmc.c
+ src/core/vp-mm-player.c
+ src/core/vp-sound.c
+ src/core/vp-media-contents.c
+ src/core/vp-image-util.c
+ src/core/vp-device.c
+ src/core/vp-media-key.c
+ src/core/vp-sensor.c
+ src/core/vp-multi-path.c
+ src/core/vp-hollic.c
+ src/core/vp-device-language.c
+ src/core/vp-avrcp.c
+ src/feature/vp-share.c
+ src/feature/vp-sound-alive.c
+ src/feature/vp-sound-path.c
+ src/feature/vp-repeat.c
+ src/feature/vp-setting.c
+ src/feature/vp-audio-track.c
+ src/feature/vp-subtitle.c
+ src/feature/vp-subtitle-sync.c
+ src/feature/vp-subtitle-select.c
+ src/feature/vp-subtitle-track.c
+ src/feature/vp-subtitle-font.c
+ src/feature/vp-subtitle-size.c
+ src/feature/vp-subtitle-color.c
+ src/feature/vp-subtitle-alignment.c
+ src/feature/vp-subtitle-bg-color.c
+ src/feature/vp-subtitle-edge.c
+ src/feature/vp-detail.c
+ src/feature/vp-capture.c
+ src/feature/vp-play-speed.c
+ src/feature/vp-zoom-guide.c
+)
+
+INCLUDE_DIRECTORIES(
+ ${CMAKE_SOURCE_DIR}/video-downloader/include
+ ${CMAKE_SOURCE_DIR}/common/include
+ ${CMAKE_SOURCE_DIR}/feature/include
+ ${CMAKE_SOURCE_DIR}/core/include
+
+#################################################
+#play view include
+#################################################
+ ${CMAKE_CURRENT_SOURCE_DIR}/include
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/include
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/common/include
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/view/include
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/widget/include
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/core/include
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/feature/include
+)
+
+INCLUDE(FindPkgConfig)
+pkg_check_modules(${PROJECT_NAME}_pkgs REQUIRED
+ elementary
+ #ecore-x
+ evas
+ edje
+ capi-appfw-application
+ capi-system-system-settings
+ glib-2.0
+ libxml-2.0
+ appcore-efl
+ capi-appfw-application
+ capi-appfw-preference
+ capi-media-player
+ capi-media-image-util
+ capi-network-wifi-manager
+ capi-network-wifi-direct
+ capi-system-media-key
+ capi-content-media-content
+ capi-system-sensor
+ capi-system-runtime-info
+ capi-web-url-download
+ shortcut
+ notification
+ capi-content-mime-type
+ capi-network-connection
+ fontconfig
+ minicontrol-provider
+ capi-appfw-app-manager
+ storage
+ accounts-svc
+ tapi
+ libcore-context-manager
+ capi-system-device
+ capi-network-bluetooth
+ capi-ui-efl-util
+ capi-base-utils-i18n
+ efl-extension
+ capi-telephony
+ capi-media-metadata-extractor
+)
+
+FOREACH(flag ${${PROJECT_NAME}_pkgs_CFLAGS})
+ SET(EXTRA_CXXFLAGS "${EXTRA_CXXFLAGS} ${flag}")
+ENDFOREACH(flag)
+
+SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CXXFLAGS} -Wall")
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CMAKE_CXX_FLAGS}")
+
+FIND_PROGRAM(UNAME NAMES uname)
+EXEC_PROGRAM("${UNAME}" ARGS "-m" OUTPUT_VARIABLE "ARCH")
+IF("${ARCH}" STREQUAL "arm")
+ ADD_DEFINITIONS("-DTARGET")
+ MESSAGE("add -DTARGET")
+ENDIF("${ARCH}" STREQUAL "arm")
+
+ADD_DEFINITIONS("-DPREFIX=\"${CMAKE_INSTALL_PREFIX}\"")
+
+IF(ENABLE_HW_BACK_KEY)
+ADD_DEFINITIONS("-D_ENABLE_HW_BACK_KEY")
+ENDIF(ENABLE_HW_BACK_KEY)
+
+ADD_DEFINITIONS("-DUSE_I_FRAMESEKK")
+
+# K feature
+#ADD_DEFINITIONS("-DK_FEATURE_MICROSEEK")
+ADD_DEFINITIONS("-DSUBTITLE_K_FEATURE")
+
+# support multi-language of subtitle
+ADD_DEFINITIONS("-D_SUBTITLE_MULTI_LANGUAGE")
+
+# apply new feature for trim view
+ADD_DEFINITIONS("-D_TRIME_VIEW_NEW_FEATURE")
+
+# apply native buffer sync
+#ADD_DEFINITIONS("-D_NATIVE_BUFFER_SYNC")
+
+# apply native buffer sync
+#ADD_DEFINITIONS("-DFLICK_JUMP")
+
+ADD_LIBRARY(${PROJECT_NAME} STATIC ${SRCS})
+
+SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES SOVERSION ${VERSION} )
+SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/lib)
+
+TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${${PROJECT_NAME}_pkgs_LDFLAGS} common core video-downloader -ldl)
+
+SET(VIDEO_PLAYER_PACKAGE "org.tizen.video-player")
+SET(VIDEO_PLAYER_EDJ_DIR "/usr/apps/${VIDEO_PLAYER_PACKAGE}/res/edje")
+SET(VIDEO_SHARED_DATA_DIR "/opt/usr/apps/${VIDEO_PLAYER_PACKAGE}/shared/data")
+
+INSTALL(DIRECTORY DESTINATION ${VIDEO_PLAYER_EDJ_DIR})
+INSTALL(DIRECTORY DESTINATION ${VIDEO_SHARED_DATA_DIR})
+
+# EDJE
+FUNCTION (BUILD_EDJ _in _out _base _dir)
+ ADD_CUSTOM_TARGET(${_out}
+ COMMAND
+ edje_cc -no-save -id ${_base}/${_dir}
+ ${CMAKE_CURRENT_SOURCE_DIR}/${_base}/${_in}
+ ${CMAKE_BINARY_DIR}/${_out}
+ DEPENDS
+ ${CMAKE_CURRENT_SOURCE_DIR}/${_base}/${_in}
+ )
+ ADD_DEPENDENCIES(${PROJECT_NAME} ${_out})
+ INSTALL(FILES ${CMAKE_BINARY_DIR}/${_out} DESTINATION ${VIDEO_PLAYER_EDJ_DIR})
+ENDFUNCTION (BUILD_EDJ)
+
+FUNCTION (BUILD_CUSTOM_EDJ _in _out _base _id _sd)
+ ADD_CUSTOM_TARGET(${_out}
+ COMMAND
+ edje_cc -no-save -id ${_base}/${_id} -sd ${_base}/${_sd}
+ ${CMAKE_CURRENT_SOURCE_DIR}/${_base}/${_in}
+ ${CMAKE_BINARY_DIR}/${_out}
+ DEPENDS
+ ${CMAKE_CURRENT_SOURCE_DIR}/${_base}/${_in}
+ )
+ ADD_DEPENDENCIES(${PROJECT_NAME} ${_out})
+ INSTALL(FILES ${CMAKE_BINARY_DIR}/${_out} DESTINATION ${VIDEO_PLAYER_EDJ_DIR})
+ENDFUNCTION (BUILD_CUSTOM_EDJ)
+
+BUILD_EDJ(pv-normal-main.edc pv-normal-main.edj res/edje/ images)
+BUILD_EDJ(pv-normal-control.edc pv-normal-control.edj res/edje/ images)
+BUILD_EDJ(pv-normal-top-control.edc pv-normal-top-control.edj res/edje/ images)
+BUILD_EDJ(pv-normal-function.edc pv-normal-function.edj res/edje/ images)
+BUILD_EDJ(pv-multi-main.edc pv-multi-main.edj res/edje/ images)
+BUILD_EDJ(pv-trim-main.edc pv-trim-main.edj res/edje/ images)
+BUILD_EDJ(pv-trim-control.edc pv-trim-control.edj res/edje/ images)
+BUILD_EDJ(pv-trim-top-control.edc pv-trim-top-control.edj res/edje/ images)
+BUILD_EDJ(pv-trim-item.edc pv-trim-item.edj res/edje/ images)
+BUILD_EDJ(pv-chapter-main-new.edc pv-chapter-main-new.edj res/edje/ images)
+BUILD_EDJ(pv-progressbar.edc pv-progressbar.edj res/edje/ images)
+BUILD_EDJ(pv-volume.edc pv-volume.edj res/edje/ images)
+BUILD_EDJ(pv-volume-popup.edc pv-volume-popup.edj res/edje/ images)
+BUILD_EDJ(pv-brightness-popup.edc pv-brightness-popup.edj res/edje/ images)
+BUILD_EDJ(pv-bookmark.edc pv-bookmark.edj res/edje/ images)
+BUILD_EDJ(pv-bookmark-item.edc pv-bookmark-item.edj res/edje/ images)
+BUILD_EDJ(pv-resource.edc pv-resource.edj res/edje/ images)
+BUILD_EDJ(pv-subtitle.edc pv-subtitle.edj res/edje/ images)
+BUILD_EDJ(pv-popup.edc pv-popup.edj res/edje/ images)
+BUILD_EDJ(pv-sensor-popup.edc pv-sensor-popup.edj res/edje/ images)
+BUILD_EDJ(pv-speed-popup.edc pv-speed-popup.edj res/edje/ images)
+BUILD_EDJ(pv-zoom-guide.edc pv-zoom-guide.edj res/edje/ images)
+BUILD_EDJ(pv-gesture.edc pv-gesture.edj res/edje/ images)
+BUILD_EDJ(pv-subtitle-color-popup.edc pv-subtitle-color-popup.edj res/edje/ images)
+BUILD_EDJ(pv-colorselector.edc pv-colorselector.edj res/edje/ images)
+
+BUILD_CUSTOM_EDJ(pv-minicontroller.edc pv-minicontroller.edj res/edje/ images custom)
+BUILD_CUSTOM_EDJ(pv-lockscreenmini.edc pv-lockscreenmini.edj res/edje/ images custom)
+BUILD_CUSTOM_EDJ(pv-custom-winset.edc pv-custom-winset.edj res/edje/ images custom)
+
+
+#install resouce files.
+# Lack of a trailing slash means install this directory, trailing slash means
+# install everything in this directory.
+
+# Install image files.
+
+INSTALL(TARGETS ${PROJECT_NAME} DESTINATION lib)
+
+
+
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#ifndef _VIDEO_LOG_H_
+#define _VIDEO_LOG_H_
+
+#include <dlog.h>
+#include <unistd.h>
+#include <linux/unistd.h>
+#include <stdbool.h>
+
+#ifdef LOG_TAG
+#undef LOG_TAG
+#endif
+
+
+#define LOG_TAG "VIDEO_PLAYER"
+
+#define VideoLogInfoWithTid(fmt, arg...) dlog_print(DLOG_DEBUG, LOG_TAG, "[%s : %05d %lu]" fmt "\n", __func__, __LINE__, syscall(__NR_gettid), ##arg)
+#define VideoLogInfo(fmt, arg...) dlog_print(DLOG_DEBUG, LOG_TAG, "[%s : %05d]" fmt "\n", __func__, __LINE__, ##arg)
+#define VideoLogDebug(fmt, arg...) dlog_print(DLOG_INFO, LOG_TAG, "[%s : %05d]" fmt "\n", __func__, __LINE__, ##arg)
+#define VideoLogWarning(fmt, arg...) dlog_print(DLOG_INFO, LOG_TAG, "[%s : %05d]" fmt "\n", __func__, __LINE__, ##arg)
+#define VideoLogError(fmt, arg...) dlog_print(DLOG_ERROR, LOG_TAG, "[%s : %05d]" fmt "\n", __func__, __LINE__, ##arg)
+
+#define VideoLogPerfS(fmt, arg...) dlog_print(DLOG_INFO, LOG_TAG, "\033[0;31m [PERF] ---> Start " fmt "\033[0m\n", ##arg)
+#define VideoLogPerfE(fmt, arg...) dlog_print(DLOG_INFO, LOG_TAG, "\033[0;31m [PERF] End <--- " fmt "\033[0m\n", ##arg)
+
+
+#define VideoSecureLogInfoWithTid(fmt, arg...) dlog_print(DLOG_INFO, LOG_TAG, "[%s : %05d %lu]" fmt "\n", __func__, __LINE__, syscall(__NR_gettid), ##arg)
+#define VideoSecureLogDebug(fmt, arg...) dlog_print(DLOG_DEBUG, LOG_TAG, "[%s : %05d]" fmt "\n", __func__, __LINE__, ##arg)
+#define VideoSecureLogInfo(fmt, arg...) dlog_print(DLOG_INFO, LOG_TAG, "[%s : %05d]" fmt "\n", __func__, __LINE__, ##arg)
+#define VideoSecureLogError(fmt, arg...) dlog_print(DLOG_ERROR, LOG_TAG, "[%s : %05d]" fmt "\n", __func__, __LINE__, ##arg)
+
+#endif /*_MPVIDEO_LOG_H_*/
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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;
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+#include "vp-play-type-define.h"
+
+typedef void *play_view_handle;
+
+typedef void (*vp_play_view_realize_cb) (void *pUserData);
+typedef void (*vp_play_view_destroy_cb) (void *pUserData);
+typedef Eina_Bool(*vp_play_view_event_key_down_cb) (void *pUserData,
+ int nType,
+ void *pEvent);
+typedef Eina_Bool(*vp_play_view_event_key_up_cb) (void *pUserData,
+ int nType, void *pEvent);
+
+
+play_view_handle vp_play_view_create(Evas_Object * pParent,
+ Ecore_X_Window nParentXID,
+ video_play_mode_t nMode,
+ video_play_launching_type_t
+ nLaunchingType);
+void vp_play_view_destroy(play_view_handle pViewHandle);
+#ifdef _PERF_TEST_
+void vp_play_view_reset(play_view_handle pViewHandle, int nMode);
+#endif
+bool vp_play_view_realize(play_view_handle pViewHandle);
+bool vp_play_view_live_stream_realize(play_view_handle pViewHandle);
+bool vp_play_view_unrealize(play_view_handle pViewHandle);
+bool vp_play_view_is_realize(play_view_handle pViewHandle,
+ bool * bIsRealize);
+bool vp_play_view_set_user_data(play_view_handle pViewHandle,
+ void *pUserData);
+bool vp_play_view_set_url(play_view_handle pViewHandle,
+ const char *szMediaURL);
+bool vp_play_view_get_url(play_view_handle pViewHandle, char **szMediaURL);
+bool vp_play_view_get_visible_status(play_view_handle pViewHandle,
+ bool * bVisible);
+bool vp_play_view_set_device_id(play_view_handle pViewHandle,
+ const char *szDeviceID);
+bool vp_play_view_set_auto_play_setting(play_view_handle pViewHandle,
+ const char *autoplay);
+bool vp_play_view_set_dmr_id(play_view_handle pViewHandle,
+ const char *szDMRID);
+bool vp_play_view_set_media_title(play_view_handle pViewHandle,
+ const char *szMediaTitle);
+bool vp_play_view_set_play_mode(play_view_handle pViewHandle,
+ video_play_mode_t nMode);
+bool vp_play_view_set_start_position(play_view_handle pViewHandle,
+ int nPosition);
+bool vp_play_view_set_rotate(play_view_handle pViewHandle,
+ video_play_rotate_t nRotate);
+bool vp_play_view_get_popup_mode(play_view_handle pViewHandle,
+ bool * bPopupMode);
+bool vp_play_view_set_relaunch_caller(play_view_handle pViewHandle,
+ bool bRelaunch);
+bool vp_play_view_set_launching_mode(play_view_handle pViewHandle,
+ video_play_launching_type_t
+ nLaunchingType);
+bool vp_play_view_set_list_mode(play_view_handle pViewHandle,
+ video_play_list_type_t nListType);
+bool vp_play_view_set_cookie(play_view_handle pViewHandle,
+ const char *szCookie);
+bool vp_play_view_set_proxy(play_view_handle pViewHandle,
+ const char *szProxy);
+bool vp_play_view_set_store_download_mode(play_view_handle pViewHandle,
+ bool bStoreDownload);
+bool vp_play_view_set_stop_after_repeat_mode(play_view_handle pViewHandle,
+ bool bStopAfterRepeat);
+bool vp_play_view_set_store_download_filesize(play_view_handle pViewHandle,
+ double dStoreDL_FileSize);
+bool vp_play_view_set_store_order_info(play_view_handle pViewHandle,
+ char *pStoreOrderId,
+ char *pStoreServerId,
+ char *pStoreAppId,
+ char *pStoreMvId);
+
+bool vp_play_view_add_multi_path(play_view_handle pViewHandle,
+ const char *szURL, char *szTitle,
+ char *szSubTitle, int nPosition,
+ int nDuration, bool bIsSameAP);
+
+bool vp_play_view_update(play_view_handle pViewHandle);
+
+bool vp_play_view_set_callback(play_view_handle pViewHandle,
+ video_play_callback_type_t nCbType,
+ void *pFunc);
+bool vp_play_view_unset_callback(play_view_handle pViewHandle,
+ video_play_callback_type_t nCbType);
+
+Evas_Object *vp_play_view_get_main_window(play_view_handle pViewHandle);
+bool vp_play_view_change_style_minimode_to_fullmode(play_view_handle
+ pViewHandle,
+ video_play_launching_type_t
+ nLaunchingType);
+
+
+bool vp_play_view_reset_audio_only(play_view_handle * pPlayView);
+
+bool vp_play_view_handle_language_change(play_view_handle * pPlayViewHandle);
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#define BUTTON_NAVIFRAME_TITLE_BUTTON_BG_MIN_MAX_INC 63 63
+#define BUTTON_NAVIFRAME_TITLE_BUTTON_MIN_MAX_INC 63 63
+
+#define BUTTON_CUSTOM_ICON_NORMAL_COLOR 236 234 226 255
+#define BUTTON_CUSTOM_ICON_PRESS_COLOR 64 147 247 255
+#define BUTTON_CUSTOM_ICON_DIM_COLOR 236 234 226 75
+
+#define BUTTON_NAVIFRAME_MORE_BG_MIN_MAX_INC 85 98
+#define BUTTON_NAVIFRAME_MORE_DEFAULT_IMAGE_MIN_MAX_INC 63 63
+
+#define BUTTON_CIRCLE_01_MIN_MAX_INC 40 40
+#define BUTTON_CIRCLE_02_MIN_MAX_INC 36 36
+#define BUTTON_CIRCLE_03_MIN_MAX_INC 45 45
+
+#define BUTTON_FLAT_MIN_MAX_INC 30 30
+
+#define BUTTON_ROUND_LEFT_MIN_MAX_INC 104 68
+#define BUTTON_ROUND_CENTER_MIN_MAX_INC 104 68
+#define BUTTON_ROUND_RIGHT_MIN_MAX_INC 104 68
+
+#define BUTTON_ROUND_ICON_MIN_MAX_INC 40 40
+
+#define BUTTON_NAVIFRAME_TITLE_ICON_CLIPPER_NORMAL_COLOR_INC 255 255 255 255
+#define BUTTON_NAVIFRAME_TITLE_ICON_CLIPPER_DEFAULT_COLOR_INC 101 101 101 255
+#define BUTTON_NAVIFRAME_TITLE_ICON_CLIPPER_DEFAULT_BLACK_COLOR_INC 255 255 255 255
+#define BUTTON_NAVIFRAME_TITLE_ICON_CLIPPER_PRESSED_COLOR_INC 64 147 247 255
+#define BUTTON_NAVIFRAME_TITLE_ICON_CLIPPER_DISABLED_COLOR_INC 101 101 101 76
+
+
+#define BUTTON_CUSTOM_ICON_STYLES(style_name, min_width, min_height) \
+group { \
+ name: "elm/button/base/custom/"style_name; \
+ parts { \
+ part { \
+ name: "button_image"; \
+ type: RECT; \
+ scale: 1; \
+ description { \
+ state: "default" 0.0; \
+ min: min_width min_height; \
+ max: min_width min_height; \
+ fixed: 1 1; \
+ visible: 0; \
+ } \
+ description { \
+ state: "clicked" 0.0; \
+ inherit: "default" 0.0; \
+ } \
+ description { \
+ state: "disabled" 0.0; \
+ inherit: "default" 0.0; \
+ } \
+ description { \
+ state: "focused" 0.0; \
+ inherit: "default" 0.0; \
+ } \
+ } \
+ part { \
+ name: "elm.text"; \
+ type: TEXT; \
+ mouse_events: 0; \
+ scale: 1; \
+ description { \
+ state: "default" 0.0; \
+ visible: 0; \
+ rel1 { relative: 0.0 0.0;} \
+ rel2 { relative: 0.0 0.0;} \
+ color: 0 0 0 0; \
+ text { \
+ font: "Tizen:style=Regular"; \
+ size: 24; \
+ min: 0 0; \
+ } \
+ } \
+ } \
+ part { \
+ name: "elm.swallow.content"; \
+ type: SWALLOW; \
+ scale: 1; \
+ mouse_events: 0; \
+ description { \
+ state: "default" 0.0; \
+ visible: 1; \
+ min: min_width min_height; \
+ max: min_width min_height; \
+ fixed: 1 1; \
+ rel1.to: "button_image"; \
+ rel2.to: "button_image"; \
+ } \
+ } \
+ part { \
+ name: "over2"; \
+ type: RECT; \
+ repeat_events: 1; \
+ ignore_flags: ON_HOLD; \
+ description { \
+ state: "default" 0.0; \
+ color: 0 0 0 0; \
+ } \
+ } \
+ part { \
+ name: "over3"; \
+ type: RECT; \
+ repeat_events: 1; \
+ ignore_flags: ON_HOLD; \
+ description { \
+ state: "default" 0.0; \
+ color: 0 0 0 0; \
+ } \
+ } \
+ } \
+ programs \
+ { \
+ program { \
+ name: "button_down"; \
+ signal: "mouse,down,1"; \
+ source: "over2"; \
+ action: SIGNAL_EMIT "elm,action,press" ""; \
+ } \
+ program { \
+ name: "button_up"; \
+ signal: "mouse,up,1"; \
+ source: "over3"; \
+ action: SIGNAL_EMIT "elm,action,unpress" ""; \
+ } \
+ program { \
+ name: "button_clicked"; \
+ signal: "mouse,clicked,1"; \
+ source: "over2"; \
+ action: SIGNAL_EMIT "elm,action,click" ""; \
+ } \
+ program { \
+ name: "button_click"; \
+ source: "over2"; \
+ signal: "mouse,clicked,1"; \
+ action: RUN_PLUGIN "touch_sound_plugin"; \
+ } \
+ } \
+}
+
+
+
+group {
+ name: "elm/button/base/custom/circle_1/default";
+ parts {
+ part {
+ name: "button_image";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ rel1.relative: 0.3 0.3;
+ rel2.relative: 0.7 0.7;
+ color: 0 166 191 255;
+ visible: 0;
+ }
+ description {
+ state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "focused" 0.0;
+ inherit: "default" 0.0;
+ }
+ }
+ part {
+ name: "button_bg";
+ type: IMAGE;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ rel1.relative: 0 0;
+ rel2.relative: 1 1;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ image.normal: "button/T01-2_control_circle_button_01_press.png";
+ color: 0 166 191 255;
+ }
+ description {
+ state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ image.normal: "button/T01-2_control_circle_button_01_press.png";
+ color: 0 166 191 255;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ image.normal: "button/T01-2_control_circle_button_01_press.png";
+ color: 0 166 191 255;
+ }
+ description {
+ state: "focused" 0.0;
+ inherit: "default" 0.0;
+ image.normal: "button/T01-2_control_circle_button_01_press.png";
+ color: 0 166 191 255;
+ }
+ }
+
+ part {
+ name: "button_circle";
+ type: IMAGE;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ rel1.relative: 0 0;
+ rel2.relative: 1 1;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ image.normal: "button/T01-2_control_circle_button_01.png";
+ color: 0 166 191 255;
+ }
+ description {
+ state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ image.normal: "button/T01-2_control_circle_button_01.png";
+ color: 0 166 191 255;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ image.normal: "button/T01-2_control_circle_button_01.png";
+ color: 0 166 191 255;
+ }
+ description {
+ state: "focused" 0.0;
+ inherit: "default" 0.0;
+ image.normal: "button/T01-2_control_circle_button_01_focus.png";
+ color: 0 166 191 255;
+ }
+ }
+ part {
+ name: "elm.text";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 0.0 0.0;}
+ color: 0 0 0 0;
+ text {
+ font: "Tizen:style=Regular";
+ size: 24;
+ min: 0 0;
+ }
+ }
+ }
+ part {
+ name: "elm.swallow.content";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ rel1.relative: 0 0;
+ rel2.relative: 1 1;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ }
+ part {
+ name: "over2";
+ type: RECT;
+ ignore_flags: ON_HOLD;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ rel1.relative: 0 0;
+ rel2.relative: 1 1;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ }
+ part {
+ name: "over3";
+ type: RECT;
+ repeat_events: 1;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ rel1.relative: 0 0;
+ rel2.relative: 1 1;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ }
+ part {
+ name: "disabler";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ visible: 0;
+ rel1.relative: 0 0;
+ rel2.relative: 1 1;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ } /* parts */
+ programs {
+ program {
+ name: "button_click";
+ signal: "mouse,down,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,press" "";
+ after: "button_click_anim";
+ }
+
+ program {
+ name: "button_click_anim";
+ action: STATE_SET "clicked" 0.0;
+ target: "button_image";
+ //target: "button_circle";
+ //target: "button_bg";
+ }
+
+ program {
+ name: "button_unclick";
+ signal: "mouse,up,1";
+ source: "over3";
+ action: SIGNAL_EMIT "elm,action,unpress" "";
+ after: "button_unclick_anim";
+ }
+ program {
+ name: "button_unclick_anim";
+ action: STATE_SET "default" 0.0;
+ target: "button_image";
+ //target: "button_circle";
+ //target: "button_bg";
+ }
+
+ program {
+ name: "button_unclick3";
+ signal: "mouse,clicked,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,click" "";
+ }
+
+ program {
+ name: "disable";
+ signal: "elm,state,disabled";
+ source: "elm";
+ action: STATE_SET "disabled" 0.0;
+ target: "button_image";
+ target: "disabler";
+ //target: "button_circle";
+ //target: "button_bg";
+ }
+ program {
+ name: "enable";
+ signal: "elm,state,enabled";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "button_image";
+ target: "disabler";
+ //target: "button_circle";
+ //target: "button_bg";
+ }
+
+ /*program {
+ name: "focused";
+ signal: "elm,action,focus";
+ source: "elm";
+ action: STATE_SET "focused" 0.0;
+ target: "button_circle";
+ target: "button_bg";
+ }
+
+ program {
+ name: "unfocused";
+ signal: "elm,action,unfocus";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "button_circle";
+ target: "button_bg";
+ }*/
+ program {
+ name: "button_clicked";
+ source: "over2";
+ signal: "mouse,clicked,1";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ } /* programs */
+}
+
+group {
+ name: "elm/button/base/custom/circle_1_focus/default";
+ parts {
+ part {
+ name: "button_image";
+ type: RECT;
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ rel1.relative: 0.3 0.3;
+ rel2.relative: 0.7 0.7;
+ color: 0 255 0 255;
+ visible: 0;
+ }
+ description {
+ state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "focused" 0.0;
+ inherit: "default" 0.0;
+ }
+ }
+ part {
+ name: "button_bg";
+ type: IMAGE;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ rel1.relative: 0 0;
+ rel2.relative: 1 1;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ image.normal: "button/T01-2_control_circle_button_01_press.png";
+ color: 0 166 191 255;
+ }
+ description {
+ state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ image.normal: "button/T01-2_control_circle_button_01_press.png";
+ color: 0 166 191 255;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ image.normal: "button/T01-2_control_circle_button_01_press.png";
+ color: 0 166 191 255;
+ }
+ description {
+ state: "focused" 0.0;
+ inherit: "default" 0.0;
+ image.normal: "button/T01-2_control_circle_button_01_press.png";
+ color: 0 166 191 255;
+ }
+ }
+
+ part {
+ name: "button_circle";
+ type: IMAGE;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ rel1.relative: 0 0;
+ rel2.relative: 1 1;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ image.normal: "button/T01-2_control_circle_button_01.png";
+ color: 0 166 191 255;
+ }
+ description {
+ state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ image.normal: "button/T01-2_control_circle_button_01.png";
+ color: 0 166 191 255;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ image.normal: "button/T01-2_control_circle_button_01.png";
+ color: 0 166 191 255;
+ }
+ description {
+ state: "focused" 0.0;
+ inherit: "default" 0.0;
+ image.normal: "button/T01-2_control_circle_button_01.png";
+ color: 0 166 191 255;
+ }
+ }
+ part {
+ name: "elm.text";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 0.0 0.0;}
+ color: 0 0 0 0;
+ text {
+ font: "Tizen:style=Regular";
+ size: 24;
+ min: 0 0;
+ }
+ }
+ }
+ part {
+ name: "elm.swallow.content";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ rel1.relative: 0 0;
+ rel2.relative: 1 1;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ }
+ part {
+ name: "over2";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ rel1.relative: 0 0;
+ rel2.relative: 1 1;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ }
+ part {
+ name: "over3";
+ type: RECT;
+ repeat_events: 1;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ rel1.relative: 0 0;
+ rel2.relative: 1 1;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ }
+ part {
+ name: "disabler";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ visible: 0;
+ rel1.relative: 0 0;
+ rel2.relative: 1 1;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ rel1.relative: 0 0;
+ rel2.relative: 1 1;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ }
+ } /* parts */
+ programs {
+ program {
+ name: "button_click";
+ signal: "mouse,down,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,press" "";
+ after: "button_click_anim";
+ }
+
+ program {
+ name: "button_click_anim";
+ action: STATE_SET "clicked" 0.0;
+ target: "button_image";
+ target: "button_circle";
+ target: "button_bg";
+ }
+
+ program {
+ name: "button_unclick";
+ signal: "mouse,up,1";
+ source: "over3";
+ action: SIGNAL_EMIT "elm,action,unpress" "";
+ after: "button_unclick_anim";
+ }
+ program {
+ name: "button_unclick_anim";
+ action: STATE_SET "default" 0.0;
+ target: "button_image";
+ target: "button_circle";
+ target: "button_bg";
+ }
+
+ program {
+ name: "button_unclick3";
+ signal: "mouse,clicked,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,click" "";
+ }
+
+ program {
+ name: "disable";
+ signal: "elm,state,disabled";
+ source: "elm";
+ action: STATE_SET "disabled" 0.0;
+ target: "button_image";
+ target: "disabler";
+ target: "button_circle";
+ target: "button_bg";
+ }
+ program {
+ name: "enable";
+ signal: "elm,state,enabled";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "button_image";
+ target: "disabler";
+ target: "button_circle";
+ target: "button_bg";
+ }
+
+ program {
+ name: "focused";
+ signal: "elm,action,focus";
+ source: "elm";
+ action: STATE_SET "focused" 0.0;
+ target: "button_circle";
+ target: "button_bg";
+ }
+
+ program {
+ name: "unfocused";
+ signal: "elm,action,unfocus";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "button_circle";
+ target: "button_bg";
+ }
+ program {
+ name: "button_clicked";
+ source: "over2";
+ signal: "mouse,clicked,1";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ } /* programs */
+}
+
+group {
+ name: "elm/button/base/custom/circle_2/default";
+ parts {
+ part {
+ name: "button_image";
+ type: IMAGE;
+ description {
+ state: "default" 0.0;
+ rel1.relative: 0.8 0.3;
+ rel2.relative: 1.2 0.7;
+ visible: 1;
+ image { normal: "control/T01-2_control_circle_icon_rewind.png";}
+ color: 0 166 191 255;
+ }
+ description {
+ state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "focused" 0.0;
+ inherit: "default" 0.0;
+ }
+ }
+
+ /*part {
+ name: "button_bg";
+ type: IMAGE;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ rel1.relative: 0 0;
+ rel2.relative: 1 1;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ image.normal: "button/T01-2_control_circle_button_02_press.png";
+ color: 0 0 0 153;
+ }
+ description {
+ state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ image.normal: "button/T01-2_control_circle_button_02_press.png";
+ color: 66 162 207 255;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ image.normal: "button/T01-2_control_circle_button_02_press.png";
+ color: 0 0 0 153;
+ }
+ description {
+ state: "focused" 0.0;
+ inherit: "default" 0.0;
+ image.normal: "button/T01-2_control_circle_button_02_press.png";
+ color: 0 0 0 153;
+ }
+ }
+
+ part {
+ name: "button_circle";
+ type: IMAGE;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ rel1.relative: 0 0;
+ rel2.relative: 1 1;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ image.normal: "button/T01-2_control_circle_button_02.png";
+ color: 255 255 255 255 128;
+ }
+ description {
+ state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ image.normal: "button/T01-2_control_circle_button_02.png";
+ color: 66 162 207 255;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ image.normal: "button/T01-2_control_circle_button_02.png";
+ color: 255 255 255 51;
+ }
+ description {
+ state: "focused" 0.0;
+ inherit: "default" 0.0;
+ image.normal: "button/T01-2_control_circle_button_02.png";
+ color: 255 255 255 255 128;
+ }
+ }*/
+ part {
+ name: "elm.text";
+ type: TEXT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 0.0 0.0;}
+ color: 0 0 0 0;
+ text {
+ font: "Tizen:style=Regular";
+ size: 24;
+ min: 0 0;
+ }
+ }
+ }
+ /*part {
+ name: "elm.swallow.content";
+ type: SWALLOW;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ rel1.relative: 0 0;
+ rel2.relative: 1 1;
+
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ }*/
+ part {
+ name: "over2";
+ type: RECT;
+ ignore_flags: ON_HOLD;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ rel1.relative: 0 0;
+ rel2.relative: 1 1;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ }
+ part {
+ name: "over3";
+ type: RECT;
+ repeat_events: 1;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ rel1.relative: 0 0;
+ rel2.relative: 1 1;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ }
+ part {
+ name: "disabler";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ visible: 0;
+ rel1.relative: 0 0;
+ rel2.relative: 1 1;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ } /* parts */
+ programs {
+ program {
+ name: "button_click";
+ signal: "mouse,down,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,press" "";
+ after: "button_click_anim";
+ }
+
+ program {
+ name: "button_click_anim";
+ action: STATE_SET "clicked" 0.0;
+ target: "button_image";
+ //target: "button_circle";
+ //target: "button_bg";
+ }
+
+ program {
+ name: "button_unclick";
+ signal: "mouse,up,1";
+ source: "over3";
+ action: SIGNAL_EMIT "elm,action,unpress" "";
+ after: "button_unclick_anim";
+ }
+ program {
+ name: "button_unclick_anim";
+ action: STATE_SET "default" 0.0;
+ target: "button_image";
+ //target: "button_circle";
+ //target: "button_bg";
+ }
+
+ program {
+ name: "button_unclick3";
+ signal: "mouse,clicked,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,click" "";
+ }
+
+ program {
+ name: "disable";
+ signal: "elm,state,disabled";
+ source: "elm";
+ action: STATE_SET "disabled" 0.0;
+ target: "button_image";
+ target: "disabler";
+ //target: "button_circle";
+ //target: "button_bg";
+ }
+ program {
+ name: "enable";
+ signal: "elm,state,enabled";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "button_image";
+ target: "disabler";
+ //target: "button_circle";
+ //target: "button_bg";
+ }
+ /*program {
+ name: "focused";
+ action: STATE_SET "focused" 0.0;
+ target: "button_circle";
+ target: "button_bg";
+ }
+
+ program {
+ name: "unfocused";
+ action: STATE_SET "default" 0.0;
+ target: "button_circle";
+ target: "button_bg";
+ }*/
+ program {
+ name: "button_clicked";
+ source: "over2";
+ signal: "mouse,clicked,1";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ } /* programs */
+}
+
+
+group {
+ name: "elm/button/base/custom/circle_3/default";
+ parts {
+ part {
+ name: "button_image";
+ type: IMAGE;
+ description {
+ state: "default" 0.0;
+ rel1.relative: -0.2 0.3;
+ rel2.relative: 0.2 0.7;
+ visible: 1;
+ image { normal: "control/T01-2_control_circle_icon_next.png";}
+ color: 0 166 191 255;
+ }
+ description {
+ state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "focused" 0.0;
+ inherit: "default" 0.0;
+ }
+ }
+
+ /*part {
+ name: "button_bg";
+ type: IMAGE;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ rel1.relative: 0 0;
+ rel2.relative: 1 1;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ image.normal: "button/T01-2_control_circle_button_02_press.png";
+ color: 0 0 0 153;
+ }
+ description {
+ state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ image.normal: "button/T01-2_control_circle_button_02_press.png";
+ color: 66 162 207 255;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ image.normal: "button/T01-2_control_circle_button_02_press.png";
+ color: 0 0 0 153;
+ }
+ description {
+ state: "focused" 0.0;
+ inherit: "default" 0.0;
+ image.normal: "button/T01-2_control_circle_button_02_press.png";
+ color: 0 0 0 153;
+ }
+ }
+
+ part {
+ name: "button_circle";
+ type: IMAGE;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ rel1.relative: 0 0;
+ rel2.relative: 1 1;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ image.normal: "button/T01-2_control_circle_button_02.png";
+ color: 255 255 255 255 128;
+ }
+ description {
+ state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ image.normal: "button/T01-2_control_circle_button_02.png";
+ color: 66 162 207 255;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ image.normal: "button/T01-2_control_circle_button_02.png";
+ color: 255 255 255 51;
+ }
+ description {
+ state: "focused" 0.0;
+ inherit: "default" 0.0;
+ image.normal: "button/T01-2_control_circle_button_02.png";
+ color: 255 255 255 255 128;
+ }
+ }*/
+ part {
+ name: "elm.text";
+ type: TEXT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 0.0 0.0;}
+ color: 0 0 0 0;
+ text {
+ font: "Tizen:style=Regular";
+ size: 24;
+ min: 0 0;
+ }
+ }
+ }
+ /*part {
+ name: "elm.swallow.content";
+ type: SWALLOW;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ rel1.relative: 0 0;
+ rel2.relative: 1 1;
+
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ }*/
+ part {
+ name: "over2";
+ type: RECT;
+ ignore_flags: ON_HOLD;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ rel1.relative: 0 0;
+ rel2.relative: 1 1;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ }
+ part {
+ name: "over3";
+ type: RECT;
+ repeat_events: 1;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ rel1.relative: 0 0;
+ rel2.relative: 1 1;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ }
+ part {
+ name: "disabler";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ visible: 0;
+ rel1.relative: 0 0;
+ rel2.relative: 1 1;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ } /* parts */
+ programs {
+ program {
+ name: "button_click";
+ signal: "mouse,down,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,press" "";
+ after: "button_click_anim";
+ }
+
+ program {
+ name: "button_click_anim";
+ action: STATE_SET "clicked" 0.0;
+ target: "button_image";
+ //target: "button_circle";
+ //target: "button_bg";
+ }
+
+ program {
+ name: "button_unclick";
+ signal: "mouse,up,1";
+ source: "over3";
+ action: SIGNAL_EMIT "elm,action,unpress" "";
+ after: "button_unclick_anim";
+ }
+ program {
+ name: "button_unclick_anim";
+ action: STATE_SET "default" 0.0;
+ target: "button_image";
+ //target: "button_circle";
+ //target: "button_bg";
+ }
+
+ program {
+ name: "button_unclick3";
+ signal: "mouse,clicked,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,click" "";
+ }
+
+ program {
+ name: "disable";
+ signal: "elm,state,disabled";
+ source: "elm";
+ action: STATE_SET "disabled" 0.0;
+ target: "button_image";
+ target: "disabler";
+ //target: "button_circle";
+ //target: "button_bg";
+ }
+ program {
+ name: "enable";
+ signal: "elm,state,enabled";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "button_image";
+ target: "disabler";
+ //target: "button_circle";
+ //target: "button_bg";
+ }
+ /*program {
+ name: "focused";
+ action: STATE_SET "focused" 0.0;
+ target: "button_circle";
+ target: "button_bg";
+ }
+
+ program {
+ name: "unfocused";
+ action: STATE_SET "default" 0.0;
+ target: "button_circle";
+ target: "button_bg";
+ }*/
+ program {
+ name: "button_clicked";
+ source: "over2";
+ signal: "mouse,clicked,1";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ } /* programs */
+}
+
+
+
+
+group { name: "elm/button/base/custom/navi_button/default";
+ parts {
+ part { name: "button_image";
+ type: RECT;
+ scale: 1;
+ description { state: "default" 0.0;
+ visible: 0;
+ min: BUTTON_NAVIFRAME_TITLE_BUTTON_BG_MIN_MAX_INC;
+ max: BUTTON_NAVIFRAME_TITLE_BUTTON_BG_MIN_MAX_INC;
+ }
+ description { state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ }
+ description { state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ }
+ }
+ part { name: "elm.swallow.content";
+ type: SWALLOW;
+ scale: 1;
+ clip_to: "elm.icon.clipper";
+ description { state: "default" 0.0;
+ visible: 1;
+ fixed: 1 1;
+ min: BUTTON_NAVIFRAME_TITLE_BUTTON_MIN_MAX_INC;
+ max: BUTTON_NAVIFRAME_TITLE_BUTTON_MIN_MAX_INC;
+ rel1 { relative: 0.5 0.5; to : "button_image"; }
+ rel2 { relative: 0.5 0.5; to : "button_image"; }
+
+ }
+ description { state: "visible" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ part { name: "elm.swallow.icon.proxy";
+ type: PROXY;
+ scale: 1;
+ clip_to: "elm.icon.proxy.clipper";
+ description { state: "default" 0.0;
+ source: "elm.swallow.content";
+ rel1.to: "elm.swallow.content";
+ rel1.offset: 0 -2;
+ rel2.to: "elm.swallow.content";
+ rel2.offset: -1 -3;
+ }
+ }
+ part { name: "elm.icon.proxy.clipper";
+ type: RECT;
+ description { state: "default" 0.0;
+ color: BUTTON_NAVIFRAME_TITLE_ICON_CLIPPER_DEFAULT_BLACK_COLOR_INC;
+ }
+ description { state: "clicked" 0.0;
+ color: BUTTON_NAVIFRAME_TITLE_ICON_CLIPPER_PRESSED_COLOR_INC;
+ }
+ description { state: "disabled" 0.0;
+ color: BUTTON_NAVIFRAME_TITLE_ICON_CLIPPER_DISABLED_COLOR_INC;
+ }
+ }
+ part { name: "elm.icon.clipper";
+ type: RECT;
+ description { state: "default" 0.0;
+ color: BUTTON_NAVIFRAME_TITLE_ICON_CLIPPER_NORMAL_COLOR_INC;
+ }
+ description { state: "clicked" 0.0;
+ color: BUTTON_NAVIFRAME_TITLE_ICON_CLIPPER_NORMAL_COLOR_INC;
+ }
+ description { state: "disabled" 0.0;
+ color: BUTTON_NAVIFRAME_TITLE_ICON_CLIPPER_DISABLED_COLOR_INC;
+ }
+ }
+ part { name: "over2";
+ type: RECT;
+ ignore_flags: ON_HOLD;
+ description { state: "default" 0.0;
+ color: 0 0 0 0;
+ }
+ }
+ part { name: "over3";
+ type: RECT;
+ repeat_events: 1;
+ description { state: "default" 0.0;
+ color: 0 0 0 0;
+ }
+ }
+ part { name: "disabler";
+ type: RECT;
+ description { state: "default" 0.0;
+ color: 0 0 0 0;
+ visible: 0;
+ }
+ description { state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ }
+ programs {
+ program { name: "button_click";
+ signal: "mouse,down,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,press" "";
+ after: "button_click_anim";
+ }
+ program { name: "button_click_anim";
+ action: STATE_SET "clicked" 0.0;
+ target: "button_image";
+ target: "elm.icon.clipper";
+ target: "elm.icon.proxy.clipper";
+ }
+ program { name: "button_unpress";
+ action: SIGNAL_EMIT "elm,action,unpress" "";
+ }
+ program { name: "button_mouseout_clicked";
+ signal: "mouse,up,1";
+ source: "over3";
+ action: STATE_SET "default" 0.0;
+ target: "elm.icon.clipper";
+ target: "elm.icon.proxy.clipper";
+ after: button_unpress;
+ }
+ program { name: "touch_snd";
+ signal: "mouse,clicked,1";
+ source: "over2";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ after: button_unclick3;
+ }
+ program { name: "button_unclick3";
+ action: SIGNAL_EMIT "elm,action,click" "";
+ }
+ program { name: "icon_show";
+ signal: "elm,state,icon,visible";
+ source: "elm";
+ action: STATE_SET "visible" 0.0;
+ target: "elm.swallow.content";
+ }
+ program { name: "icon_hide";
+ signal: "elm,state,icon,hidden";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "elm.swallow.content";
+ }
+ program { name: "disable";
+ signal: "elm,state,disabled";
+ source: "elm";
+ action: STATE_SET "disabled" 0.0;
+ target: "button_image";
+ target: "disabler";
+ target: "elm.icon.clipper";
+ target: "elm.icon.proxy.clipper";
+ }
+ program { name: "enable";
+ signal: "elm,state,enabled";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "button_image";
+ target: "elm.icon.clipper";
+ target: "elm.icon.proxy.clipper";
+ target: "disabler";
+ }
+ }
+}
+
+group {
+ name: "elm/button/base/custom/sound_path/default";
+ parts {
+ part {
+ name: "button_image";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ fixed: 1 1;
+ min: BUTTON_NAVIFRAME_TITLE_BUTTON_BG_MIN_MAX_INC;
+ max: BUTTON_NAVIFRAME_TITLE_BUTTON_BG_MIN_MAX_INC;
+ visible: 0;
+ }
+ description {
+ state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "focused" 0.0;
+ inherit: "default" 0.0;
+ }
+ }
+ part {
+ name: "rotate_button";
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ fixed: 1 1;
+ min: BUTTON_NAVIFRAME_TITLE_BUTTON_MIN_MAX_INC;
+ max: BUTTON_NAVIFRAME_TITLE_BUTTON_MIN_MAX_INC;
+ rel1 { relative: 0.5 0.5; to : "button_image"; }
+ rel2 { relative: 0.5 0.5; to : "button_image"; }
+ image.normal: "button/T01_2_icon_bluetooth_headset.png";
+ }
+ description {
+ state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ image.normal: "button/T01_2_icon_bluetooth_headset_press.png";
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ image.normal: "button/T01_2_icon_bluetooth_headset.png";
+ }
+ }
+ part {
+ name: "elm.text";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 0.0 0.0;}
+ color: 0 0 0 0;
+ text {
+ font: "Tizen:style=Regular";
+ size: 24;
+ min: 0 0;
+ }
+ }
+ }
+ part {
+ name: "over2";
+ type: RECT;
+ ignore_flags: ON_HOLD;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "over3";
+ type: RECT;
+ repeat_events: 1;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "disabler";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ visible: 0;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ } /* parts */
+ programs {
+ program {
+ name: "button_click";
+ signal: "mouse,down,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,press" "";
+ after: "button_click_anim";
+ }
+
+ program {
+ name: "button_click_anim";
+ action: STATE_SET "clicked" 0.0;
+ target: "button_image";
+ target: "rotate_button";
+ }
+
+ program {
+ name: "button_unclick";
+ signal: "mouse,up,1";
+ source: "over3";
+ action: SIGNAL_EMIT "elm,action,unpress" "";
+ after: "button_unclick_anim";
+ }
+ program {
+ name: "button_unclick_anim";
+ action: STATE_SET "default" 0.0;
+ target: "button_image";
+ target: "rotate_button";
+ }
+
+ program {
+ name: "button_unclick3";
+ signal: "mouse,clicked,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,click" "";
+ }
+
+ program {
+ name: "disable";
+ signal: "elm,state,disabled";
+ source: "elm";
+ action: STATE_SET "disabled" 0.0;
+ target: "button_image";
+ target: "disabler";
+ target: "rotate_button";
+ }
+ program {
+ name: "enable";
+ signal: "elm,state,enabled";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "button_image";
+ target: "disabler";
+ target: "rotate_button";
+ }
+ } /* programs */
+}
+
+group
+{
+ name: "elm/button/base/custom/allshare/default";
+ parts
+ {
+ part {
+ name: "button_image";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ fixed: 1 1;
+ min: BUTTON_NAVIFRAME_TITLE_BUTTON_BG_MIN_MAX_INC;
+ max: BUTTON_NAVIFRAME_TITLE_BUTTON_BG_MIN_MAX_INC;
+ visible: 0;
+ }
+ description {
+ state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "focused" 0.0;
+ inherit: "default" 0.0;
+ }
+ }
+ part {
+ name: "allshare_button";
+ type: IMAGE;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ fixed: 1 1;
+ min: BUTTON_NAVIFRAME_TITLE_BUTTON_MIN_MAX_INC;
+ max: BUTTON_NAVIFRAME_TITLE_BUTTON_MIN_MAX_INC;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ image.normal: "button/T01_2_icon_Near_by_device.png";
+ }
+ description {
+ state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ image.normal: "button/T01_2_icon_Near_by_device_press.png";
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ image.normal: "button/T01_2_icon_Near_by_device.png";
+ }
+ description {
+ state: "focused" 0.0;
+ inherit: "default" 0.0;
+ image.normal: "button/T01_2_icon_Near_by_device_press.png";
+ }
+ }
+ part {
+ name: "elm.text";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 0.0 0.0;}
+ color: 0 0 0 0;
+ text {
+ font: "Tizen:style=Regular";
+ size: 24;
+ min: 0 0;
+ }
+ }
+ }
+ part {
+ name: "over2";
+ type: RECT;
+ repeat_events: 1;
+ ignore_flags: ON_HOLD;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "over3";
+ type: RECT;
+ repeat_events: 1;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "disabler";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ visible: 0;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ }
+
+ programs
+ {
+ program {
+ name: "button_click";
+ signal: "mouse,down,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,press" "";
+ after: "button_click_anim";
+ }
+
+ program {
+ name: "button_click_anim";
+ action: STATE_SET "clicked" 0.0;
+ target: "button_image";
+ target: "allshare_button";
+ }
+
+ program {
+ name: "button_unclick";
+ signal: "mouse,up,1";
+ source: "over3";
+ action: SIGNAL_EMIT "elm,action,unpress" "";
+ after: "button_unclick_anim";
+ }
+ program {
+ name: "button_unclick_anim";
+ action: STATE_SET "default" 0.0;
+ target: "button_image";
+ target: "allshare_button";
+ }
+
+ program {
+ name: "button_unclick3";
+ signal: "mouse,clicked,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,click" "";
+ }
+
+ program {
+ name: "disable";
+ signal: "elm,state,disabled";
+ source: "elm";
+ action: STATE_SET "disabled" 0.0;
+ target: "button_image";
+ target: "disabler";
+ target: "allshare_button";
+ }
+ program {
+ name: "enable";
+ signal: "elm,state,enabled";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "button_image";
+ target: "disabler";
+ target: "allshare_button";
+ }
+ program {
+ name: "focused";
+ signal: "elm,action,focus";
+ source: "elm";
+ action: STATE_SET "focused" 0.0;
+ target: "allshare_button";
+ }
+
+ program {
+ name: "unfocused";
+ signal: "elm,action,unfocus";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "allshare_button";
+ }
+ program {
+ name: "button_clicked";
+ source: "over2";
+ signal: "mouse,clicked,1";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ }
+
+}
+
+group {
+ name: "elm/button/base/custom/check/default";
+ parts {
+ part {
+ name: "button_image";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ fixed: 1 1;
+ min: BUTTON_NAVIFRAME_TITLE_BUTTON_BG_MIN_MAX_INC;
+ max: BUTTON_NAVIFRAME_TITLE_BUTTON_BG_MIN_MAX_INC;
+ visible: 0;
+ }
+ description {
+ state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "focused" 0.0;
+ inherit: "default" 0.0;
+ }
+ }
+ part {
+ name: "save_button";
+ scale: 1;
+ mouse_events: 0;
+ type: IMAGE;
+ description {
+ state: "default" 0.0;
+ fixed: 1 1;
+ min: BUTTON_NAVIFRAME_TITLE_BUTTON_MIN_MAX_INC;
+ max: BUTTON_NAVIFRAME_TITLE_BUTTON_MIN_MAX_INC;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ image.normal: "button/T01_2_icon_check.png";
+ }
+ description {
+ state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ image.normal: "button/T01_2_icon_check_press.png";
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ image.normal: "button/T01_2_icon_check.png";
+ }
+ }
+ part {
+ name: "elm.text";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 0.0 0.0;}
+ color: 0 0 0 0;
+ text {
+ font: "Tizen:style=Regular";
+ size: 24;
+ min: 0 0;
+ }
+ }
+ }
+ part {
+ name: "over2";
+ type: RECT;
+ ignore_flags: ON_HOLD;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "over3";
+ type: RECT;
+ repeat_events: 1;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "disabler";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ visible: 0;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ } /* parts */
+ programs {
+ program {
+ name: "button_click";
+ signal: "mouse,down,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,press" "";
+ after: "button_click_anim";
+ }
+
+ program {
+ name: "button_click_anim";
+ action: STATE_SET "clicked" 0.0;
+ target: "button_image";
+ target: "save_button";
+ }
+
+ program {
+ name: "button_unclick";
+ signal: "mouse,up,1";
+ source: "over3";
+ action: SIGNAL_EMIT "elm,action,unpress" "";
+ after: "button_unclick_anim";
+ }
+ program {
+ name: "button_unclick_anim";
+ action: STATE_SET "default" 0.0;
+ target: "button_image";
+ target: "save_button";
+ }
+
+ program {
+ name: "button_unclick3";
+ signal: "mouse,clicked,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,click" "";
+ }
+
+ program {
+ name: "disable";
+ signal: "elm,state,disabled";
+ source: "elm";
+ action: STATE_SET "disabled" 0.0;
+ target: "button_image";
+ target: "disabler";
+ target: "save_button";
+ }
+ program {
+ name: "enable";
+ signal: "elm,state,enabled";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "button_image";
+ target: "disabler";
+ target: "save_button";
+ }
+ program {
+ name: "button_clicked";
+ source: "over2";
+ signal: "mouse,clicked,1";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ } /* programs */
+}
+
+group {
+ name: "elm/button/base/playview/naviframe/close/default";
+ parts {
+ part {
+ name: "button_image";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ fixed: 1 1;
+ min: BUTTON_NAVIFRAME_TITLE_BUTTON_BG_MIN_MAX_INC;
+ max: BUTTON_NAVIFRAME_TITLE_BUTTON_BG_MIN_MAX_INC;
+ visible: 0;
+ }
+ description {
+ state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "focused" 0.0;
+ inherit: "default" 0.0;
+ }
+ }
+ part {
+ name: "back_button";
+ type: IMAGE;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ fixed: 1 1;
+ min: BUTTON_NAVIFRAME_TITLE_BUTTON_MIN_MAX_INC;
+ max: BUTTON_NAVIFRAME_TITLE_BUTTON_MIN_MAX_INC;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ image.normal: "button/T01_2_icon_close.png";
+ }
+ description {
+ state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ image.normal: "button/T01_2_icon_close_press.png";
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ image.normal: "button/T01_2_icon_close.png";
+ }
+ }
+ part {
+ name: "elm.text";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 0.0 0.0;}
+ color: 0 0 0 0;
+ text {
+ font: "Tizen:style=Regular";
+ size: 24;
+ min: 0 0;
+ }
+ }
+ }
+
+ part {
+ name: "over2";
+ type: RECT;
+ ignore_flags: ON_HOLD;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "over3";
+ type: RECT;
+ repeat_events: 1;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "disabler";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ visible: 0;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ } /* parts */
+ programs {
+ program {
+ name: "button_click";
+ signal: "mouse,down,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,press" "";
+ after: "button_click_anim";
+ }
+
+ program {
+ name: "button_click_anim";
+ action: STATE_SET "clicked" 0.0;
+ target: "button_image";
+ target: "back_button";
+ }
+
+ program {
+ name: "button_unclick";
+ signal: "mouse,up,1";
+ source: "over3";
+ action: SIGNAL_EMIT "elm,action,unpress" "";
+ after: "button_unclick_anim";
+ }
+ program {
+ name: "button_unclick_anim";
+ action: STATE_SET "default" 0.0;
+ target: "button_image";
+ target: "back_button";
+ }
+
+ program {
+ name: "button_unclick3";
+ signal: "mouse,clicked,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,click" "";
+ }
+
+ program {
+ name: "disable";
+ signal: "elm,state,disabled";
+ source: "elm";
+ action: STATE_SET "disabled" 0.0;
+ target: "button_image";
+ target: "disabler";
+ target: "back_button";
+ }
+ program {
+ name: "enable";
+ signal: "elm,state,enabled";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "button_image";
+ target: "disabler";
+ target: "back_button";
+ }
+ program {
+ name: "button_clicked";
+ source: "over2";
+ signal: "mouse,clicked,1";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ } /* programs */
+}
+
+
+
+
+group {
+ name: "elm/button/base/custom/round_left/default";
+ parts {
+ part {
+ name: "button_image";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ fixed: 1 1;
+ min: BUTTON_ROUND_LEFT_MIN_MAX_INC;
+ max: BUTTON_ROUND_LEFT_MIN_MAX_INC;
+ visible: 0;
+ }
+ description {
+ state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "focused" 0.0;
+ inherit: "default" 0.0;
+ }
+ }
+ part {
+ name: "round_button";
+ type: IMAGE;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ fixed: 1 1;
+ min: BUTTON_ROUND_LEFT_MIN_MAX_INC;
+ max: BUTTON_ROUND_LEFT_MIN_MAX_INC;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ image { normal: "multi/T01_2_mw_control_bg_left.png"; border: 37 1 0 0;}
+ }
+ description {
+ state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ image { normal: "multi/T01_2_mw_control_bg_left_press.png"; border: 37 1 0 0;}
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ image { normal: "multi/T01_2_mw_control_bg_left.png"; border: 37 1 0 0;}
+ }
+ }
+ part {
+ name: "elm.text";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 0.0 0.0;}
+ color: 0 0 0 0;
+ text {
+ font: "Tizen:style=Regular";
+ size: 24;
+ min: 0 0;
+ }
+ }
+ }
+ part {
+ name: "elm.swallow.content";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: BUTTON_ROUND_ICON_MIN_MAX_INC;
+ max: BUTTON_ROUND_ICON_MIN_MAX_INC;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ rel1 { relative: 0.5 0.5; to: "button_image"; }
+ rel2 { relative: 0.5 0.5; to: "button_image"; }
+ }
+ }
+
+ part {
+ name: "over2";
+ type: RECT;
+ ignore_flags: ON_HOLD;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "over3";
+ type: RECT;
+ repeat_events: 1;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "disabler";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ visible: 0;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ } /* parts */
+ programs {
+ program {
+ name: "button_click";
+ signal: "mouse,down,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,press" "";
+ after: "button_click_anim";
+ }
+
+ program {
+ name: "button_click_anim";
+ action: STATE_SET "clicked" 0.0;
+ target: "button_image";
+ target: "round_button";
+ }
+
+ program {
+ name: "button_unclick";
+ signal: "mouse,up,1";
+ source: "over3";
+ action: SIGNAL_EMIT "elm,action,unpress" "";
+ after: "button_unclick_anim";
+ }
+ program {
+ name: "button_unclick_anim";
+ action: STATE_SET "default" 0.0;
+ target: "button_image";
+ target: "round_button";
+ }
+
+ program {
+ name: "button_unclick3";
+ signal: "mouse,clicked,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,click" "";
+ }
+
+ program {
+ name: "disable";
+ signal: "elm,state,disabled";
+ source: "elm";
+ action: STATE_SET "disabled" 0.0;
+ target: "button_image";
+ target: "disabler";
+ target: "round_button";
+ }
+ program {
+ name: "enable";
+ signal: "elm,state,enabled";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "button_image";
+ target: "disabler";
+ target: "round_button";
+ }
+ program {
+ name: "button_clicked";
+ source: "over2";
+ signal: "mouse,clicked,1";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ } /* programs */
+}
+
+
+group {
+ name: "elm/button/base/custom/round_right/default";
+ parts {
+ part {
+ name: "button_image";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ fixed: 1 1;
+ min: BUTTON_ROUND_RIGHT_MIN_MAX_INC;
+ max: BUTTON_ROUND_RIGHT_MIN_MAX_INC;
+ visible: 0;
+ }
+ description {
+ state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "focused" 0.0;
+ inherit: "default" 0.0;
+ }
+ }
+ part {
+ name: "round_button";
+ type: IMAGE;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ fixed: 1 1;
+ min: BUTTON_ROUND_RIGHT_MIN_MAX_INC;
+ max: BUTTON_ROUND_RIGHT_MIN_MAX_INC;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ image { normal: "multi/T01_2_mw_control_bg_right.png"; border: 1 37 0 0;}
+ }
+ description {
+ state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ image { normal: "multi/T01_2_mw_control_bg_right_press.png"; border: 1 37 0 0;}
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ image { normal: "multi/T01_2_mw_control_bg_right.png"; border: 1 37 0 0;}
+ }
+ }
+ part {
+ name: "elm.text";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 0.0 0.0;}
+ color: 0 0 0 0;
+ text {
+ font: "Tizen:style=Regular";
+ size: 24;
+ min: 0 0;
+ }
+ }
+ }
+ part {
+ name: "elm.swallow.content";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: BUTTON_ROUND_ICON_MIN_MAX_INC;
+ max: BUTTON_ROUND_ICON_MIN_MAX_INC;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ rel1 { relative: 0.5 0.5; to: "button_image"; }
+ rel2 { relative: 0.5 0.5; to: "button_image"; }
+ }
+ }
+ part {
+ name: "over2";
+ type: RECT;
+ ignore_flags: ON_HOLD;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "over3";
+ type: RECT;
+ repeat_events: 1;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "disabler";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ visible: 0;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ } /* parts */
+ programs {
+ program {
+ name: "button_click";
+ signal: "mouse,down,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,press" "";
+ after: "button_click_anim";
+ }
+
+ program {
+ name: "button_click_anim";
+ action: STATE_SET "clicked" 0.0;
+ target: "button_image";
+ target: "round_button";
+ }
+
+ program {
+ name: "button_unclick";
+ signal: "mouse,up,1";
+ source: "over3";
+ action: SIGNAL_EMIT "elm,action,unpress" "";
+ after: "button_unclick_anim";
+ }
+ program {
+ name: "button_unclick_anim";
+ action: STATE_SET "default" 0.0;
+ target: "button_image";
+ target: "round_button";
+ }
+
+ program {
+ name: "button_unclick3";
+ signal: "mouse,clicked,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,click" "";
+ }
+
+ program {
+ name: "disable";
+ signal: "elm,state,disabled";
+ source: "elm";
+ action: STATE_SET "disabled" 0.0;
+ target: "button_image";
+ target: "disabler";
+ target: "round_button";
+ }
+ program {
+ name: "enable";
+ signal: "elm,state,enabled";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "button_image";
+ target: "disabler";
+ target: "round_button";
+ }
+ program {
+ name: "button_clicked";
+ source: "over2";
+ signal: "mouse,clicked,1";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ } /* programs */
+}
+
+
+
+group {
+ name: "elm/button/base/custom/round_center/default";
+ parts {
+ part {
+ name: "button_image";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ fixed: 1 1;
+ min: BUTTON_ROUND_CENTER_MIN_MAX_INC;
+ max: BUTTON_ROUND_CENTER_MIN_MAX_INC;
+ visible: 0;
+ }
+ description {
+ state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "focused" 0.0;
+ inherit: "default" 0.0;
+ }
+ }
+ part {
+ name: "round_button";
+ type: IMAGE;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ fixed: 1 1;
+ min: BUTTON_ROUND_LEFT_MIN_MAX_INC;
+ max: BUTTON_ROUND_LEFT_MIN_MAX_INC;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ image { normal: "multi/T01_2_mw_control_bg_center.png"; border: 19 19 0 0;}
+ }
+ description {
+ state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ image { normal: "multi/T01_2_mw_control_bg_center_press.png"; border: 19 19 0 0;}
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ image { normal: "multi/T01_2_mw_control_bg_center.png"; border: 19 19 0 0;}
+ }
+ }
+ part {
+ name: "elm.text";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 0.0 0.0;}
+ color: 0 0 0 0;
+ text {
+ font: "Tizen:style=Regular";
+ size: 24;
+ min: 0 0;
+ }
+ }
+ }
+ part {
+ name: "elm.swallow.content";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ fixed: 1 1;
+ min: BUTTON_ROUND_ICON_MIN_MAX_INC;
+ max: BUTTON_ROUND_ICON_MIN_MAX_INC;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ rel1 { relative: 0.5 0.5; to: "button_image"; }
+ rel2 { relative: 0.5 0.5; to: "button_image"; }
+ }
+ }
+ part {
+ name: "over2";
+ type: RECT;
+ ignore_flags: ON_HOLD;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "over3";
+ type: RECT;
+ repeat_events: 1;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "disabler";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ visible: 0;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ } /* parts */
+ programs {
+ program {
+ name: "button_click";
+ signal: "mouse,down,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,press" "";
+ after: "button_click_anim";
+ }
+
+ program {
+ name: "button_click_anim";
+ action: STATE_SET "clicked" 0.0;
+ target: "button_image";
+ target: "round_button";
+ }
+
+ program {
+ name: "button_unclick";
+ signal: "mouse,up,1";
+ source: "over3";
+ action: SIGNAL_EMIT "elm,action,unpress" "";
+ after: "button_unclick_anim";
+ }
+ program {
+ name: "button_unclick_anim";
+ action: STATE_SET "default" 0.0;
+ target: "button_image";
+ target: "round_button";
+ }
+
+ program {
+ name: "button_unclick3";
+ signal: "mouse,clicked,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,click" "";
+ }
+
+ program {
+ name: "disable";
+ signal: "elm,state,disabled";
+ source: "elm";
+ action: STATE_SET "disabled" 0.0;
+ target: "button_image";
+ target: "disabler";
+ target: "round_button";
+ }
+ program {
+ name: "enable";
+ signal: "elm,state,enabled";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "button_image";
+ target: "disabler";
+ target: "round_button";
+ }
+ program {
+ name: "button_clicked";
+ source: "over2";
+ signal: "mouse,clicked,1";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ } /* programs */
+}
+
+
+group {
+ name: "elm/button/base/custom/flat_70_70/default";
+ parts {
+ part {
+ name: "button_image";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ fixed: 1 1;
+ min: BUTTON_FLAT_MIN_MAX_INC;
+ max: BUTTON_FLAT_MIN_MAX_INC;
+ visible: 0;
+ }
+ description {
+ state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "focused" 0.0;
+ inherit: "default" 0.0;
+ }
+ }
+ part {
+ name: "elm.text";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 0.0 0.0;}
+ color: 0 0 0 0;
+ text {
+ font: "Tizen:style=Regular";
+ size: 24;
+ min: 0 0;
+ }
+ }
+ }
+ part {
+ name: "elm.swallow.content";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: BUTTON_FLAT_MIN_MAX_INC;
+ max: BUTTON_FLAT_MIN_MAX_INC;
+ fixed: 1 1;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+ part {
+ name: "elm.swallow.content.press";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: BUTTON_FLAT_MIN_MAX_INC;
+ max: BUTTON_FLAT_MIN_MAX_INC;
+ fixed: 1 1;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ part {
+ name: "elm.swallow.content.dim";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: BUTTON_FLAT_MIN_MAX_INC;
+ max: BUTTON_FLAT_MIN_MAX_INC;
+ fixed: 1 1;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+
+ part {
+ name: "over2";
+ type: RECT;
+ ignore_flags: ON_HOLD;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "over3";
+ type: RECT;
+ repeat_events: 1;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "disabler";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ visible: 0;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ } /* parts */
+ programs {
+ program {
+ name: "button_click";
+ signal: "mouse,down,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,press" "";
+ after: "button_click_anim";
+ }
+
+ program {
+ name: "button_click_anim";
+ source: "elm";
+ script {
+ set_state(PART:"button_image", "clicked", 0.0);
+ set_state(PART:"elm.swallow.content", "hide", 0.0);
+ set_state(PART:"elm.swallow.content.press", "show", 0.0);
+ set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+ }
+ }
+
+ program {
+ name: "button_unclick";
+ signal: "mouse,up,1";
+ source: "over3";
+ action: SIGNAL_EMIT "elm,action,unpress" "";
+ after: "button_unclick_anim";
+ }
+ program {
+ name: "button_unclick_anim";
+ source: "elm";
+ script {
+ set_state(PART:"button_image", "default", 0.0);
+ set_state(PART:"elm.swallow.content", "default", 0.0);
+ set_state(PART:"elm.swallow.content.press", "default", 0.0);
+ set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+ }
+ }
+
+ program {
+ name: "button_unclick3";
+ signal: "mouse,clicked,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,click" "";
+ }
+
+ program {
+ name: "disable";
+ signal: "elm,state,disabled";
+ source: "elm";
+ script {
+ set_state(PART:"button_image", "default", 0.0);
+ set_state(PART:"disabler", "disabled", 0.0);
+ set_state(PART:"elm.swallow.content", "hide", 0.0);
+ set_state(PART:"elm.swallow.content.press", "default", 0.0);
+ set_state(PART:"elm.swallow.content.dim", "show", 0.0);
+ }
+ }
+ program {
+ name: "enable";
+ source: "elm";
+ signal: "elm,state,enabled";
+ script {
+ set_state(PART:"button_image", "default", 0.0);
+ set_state(PART:"disabler", "default", 0.0);
+ set_state(PART:"elm.swallow.content", "default", 0.0);
+ set_state(PART:"elm.swallow.content.press", "default", 0.0);
+ set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+ }
+ }
+
+ program {
+ name: "button_clicked";
+ source: "over2";
+ signal: "mouse,clicked,1";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ } /* programs */
+}
+
+//volume icon
+
+group {
+ name: "elm/button/base/custom/flat_46_46/default";
+ parts {
+ part {
+ name: "button_image";
+ type: RECT;
+ scale: 1;
+
+ description {
+ state: "default" 0.0;
+ rel1.relative:0.0 0.0;
+ rel2.relative:0.95 1.0;
+ color:255 0 0 255;
+ visible: 0;
+ }
+ description {
+ state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "focused" 0.0;
+ inherit: "default" 0.0;
+ }
+ }
+ part {
+ name: "elm.swallow.content";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 26 26;
+ max: 26 26;
+ //fixed: 1 1;
+ rel1
+ { relative: 0.0 0.0; to:"button_image";}
+ rel2
+ {relative: 1.0 1.0; to:"button_image"; }
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+ part {
+ name: "elm.swallow.content.press";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 26 26;
+ max: 26 26;
+ fixed: 1 1;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ part {
+ name: "elm.swallow.content.dim";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 26 26;
+ max: 26 26;
+ fixed: 1 1;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ part {
+ name: "elm.text";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ align: 0.5 0.5;
+ rel1 { relative: 0.0 0.7; to:"button_image";}
+ rel2 { relative: 1.0 1.0; to:"button_image";}
+ color: 255 255 255 255;
+ text {
+ font: "Tizen:style=Regular";
+ size: 10;
+ align: 0.5 0.5;
+ }
+ }
+ }
+ part {
+ name: "over2";
+ type: RECT;
+ ignore_flags: ON_HOLD;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "over3";
+ type: RECT;
+ repeat_events: 1;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "disabler";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ visible: 0;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ } /* parts */
+ programs {
+ program {
+ name: "button_click";
+ signal: "mouse,down,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,press" "";
+ after: "button_click_anim";
+ }
+
+ program {
+ name: "button_click_anim";
+ source: "elm";
+ script {
+ set_state(PART:"button_image", "clicked", 0.0);
+ set_state(PART:"elm.swallow.content", "hide", 0.0);
+ set_state(PART:"elm.swallow.content.press", "show", 0.0);
+ set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+ }
+ }
+
+ program {
+ name: "button_unclick";
+ signal: "mouse,up,1";
+ source: "over3";
+ action: SIGNAL_EMIT "elm,action,unpress" "";
+ after: "button_unclick_anim";
+ }
+ program {
+ name: "button_unclick_anim";
+ source: "elm";
+ script {
+ set_state(PART:"button_image", "default", 0.0);
+ set_state(PART:"elm.swallow.content", "default", 0.0);
+ set_state(PART:"elm.swallow.content.press", "default", 0.0);
+ set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+ }
+ }
+
+ program {
+ name: "button_unclick3";
+ signal: "mouse,clicked,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,click" "";
+ }
+
+ program {
+ name: "disable";
+ signal: "elm,state,disabled";
+ source: "elm";
+ script {
+ set_state(PART:"button_image", "default", 0.0);
+ set_state(PART:"disabler", "disabled", 0.0);
+ set_state(PART:"elm.swallow.content", "hide", 0.0);
+ set_state(PART:"elm.swallow.content.press", "default", 0.0);
+ set_state(PART:"elm.swallow.content.dim", "show", 0.0);
+ }
+ }
+ program {
+ name: "enable";
+ source: "elm";
+ signal: "elm,state,enabled";
+ script {
+ set_state(PART:"button_image", "default", 0.0);
+ set_state(PART:"disabler", "default", 0.0);
+ set_state(PART:"elm.swallow.content", "default", 0.0);
+ set_state(PART:"elm.swallow.content.press", "default", 0.0);
+ set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+ }
+ }
+
+ program {
+ name: "button_clicked";
+ source: "over2";
+ signal: "mouse,clicked,1";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ } /* programs */
+}
+
+//screen size icon
+
+group {
+ name: "elm/button/base/custom/flat_56_56/default";
+ parts {
+ part {
+ name: "button_image";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ //rel1.relative:0.7 0.0;
+ //rel2.relative:1.0 1.0;
+ color:0 0 255 255;
+ visible: 0;
+ }
+ description {
+ state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "focused" 0.0;
+ inherit: "default" 0.0;
+ }
+ }
+ part {
+ name: "elm.swallow.content";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 26 26;
+ max: 26 26;
+ //fixed: 1 1;
+ rel1
+ { relative: 0.0 0.0; to:"button_image";}
+ rel2
+ {relative: 1.0 1.0; to:"button_image"; }
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+ part {
+ name: "elm.swallow.content.press";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 26 26;
+ max: 26 26;
+ fixed: 1 1;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ part {
+ name: "elm.swallow.content.dim";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 26 26;
+ max: 26 26;
+ fixed: 1 1;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ part {
+ name: "elm.text";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ align: 0.5 0.5;
+ rel1 { relative: 0.0 0.6;to: "button_image";}
+ rel2 { relative: 1.0 1.0;to: "button_image";}
+ color: 0 166 191 255;
+ text {
+ font: "Tizen:style=Regular";
+ size: 10;
+ align: 0.5 0.5;
+ }
+ }
+ }
+ part {
+ name: "over2";
+ type: RECT;
+ ignore_flags: ON_HOLD;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "over3";
+ type: RECT;
+ repeat_events: 1;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "disabler";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ visible: 0;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ } /* parts */
+ programs {
+ program {
+ name: "button_click";
+ signal: "mouse,down,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,press" "";
+ after: "button_click_anim";
+ }
+
+ program {
+ name: "button_click_anim";
+ source: "elm";
+ script {
+ set_state(PART:"button_image", "clicked", 0.0);
+ set_state(PART:"elm.swallow.content", "hide", 0.0);
+ set_state(PART:"elm.swallow.content.press", "show", 0.0);
+ set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+ }
+ }
+
+ program {
+ name: "button_unclick";
+ signal: "mouse,up,1";
+ source: "over3";
+ action: SIGNAL_EMIT "elm,action,unpress" "";
+ after: "button_unclick_anim";
+ }
+ program {
+ name: "button_unclick_anim";
+ source: "elm";
+ script {
+ set_state(PART:"button_image", "default", 0.0);
+ set_state(PART:"elm.swallow.content", "default", 0.0);
+ set_state(PART:"elm.swallow.content.press", "default", 0.0);
+ set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+ }
+ }
+
+ program {
+ name: "button_unclick3";
+ signal: "mouse,clicked,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,click" "";
+ }
+
+ program {
+ name: "disable";
+ signal: "elm,state,disabled";
+ source: "elm";
+ script {
+ set_state(PART:"button_image", "default", 0.0);
+ set_state(PART:"disabler", "disabled", 0.0);
+ set_state(PART:"elm.swallow.content", "hide", 0.0);
+ set_state(PART:"elm.swallow.content.press", "default", 0.0);
+ set_state(PART:"elm.swallow.content.dim", "show", 0.0);
+ }
+ }
+ program {
+ name: "enable";
+ source: "elm";
+ signal: "elm,state,enabled";
+ script {
+ set_state(PART:"button_image", "default", 0.0);
+ set_state(PART:"disabler", "default", 0.0);
+ set_state(PART:"elm.swallow.content", "default", 0.0);
+ set_state(PART:"elm.swallow.content.press", "default", 0.0);
+ set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+ }
+ }
+
+ program {
+ name: "button_clicked";
+ source: "over2";
+ signal: "mouse,clicked,1";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ } /* programs */
+}
+
+
+group {
+ name: "elm/button/base/custom/flat_63_63/default";
+ parts {
+ part {
+ name: "button_image";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ fixed: 1 1;
+ min: 63 63;
+ max: 63 63;
+ visible: 0;
+ }
+ description {
+ state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "focused" 0.0;
+ inherit: "default" 0.0;
+ }
+ }
+ part {
+ name: "elm.text";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 0.0 0.0;}
+ color: 0 0 0 0;
+ text {
+ font: "Tizen:style=Regular";
+ size: 24;
+ min: 0 0;
+ }
+ }
+ }
+ part {
+ name: "elm.swallow.content";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 63 63;
+ max: 63 63;
+ fixed: 1 1;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+ part {
+ name: "elm.swallow.content.press";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 63 63;
+ max: 63 63;
+ fixed: 1 1;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ part {
+ name: "elm.swallow.content.dim";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 63 63;
+ max: 63 63;
+ fixed: 1 1;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+
+ part {
+ name: "over2";
+ type: RECT;
+ ignore_flags: ON_HOLD;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "over3";
+ type: RECT;
+ repeat_events: 1;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "disabler";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ visible: 0;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ } /* parts */
+ programs {
+ program {
+ name: "button_click";
+ signal: "mouse,down,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,press" "";
+ after: "button_click_anim";
+ }
+
+ program {
+ name: "button_click_anim";
+ source: "elm";
+ script {
+ set_state(PART:"button_image", "clicked", 0.0);
+ set_state(PART:"elm.swallow.content", "hide", 0.0);
+ set_state(PART:"elm.swallow.content.press", "show", 0.0);
+ set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+ }
+ }
+
+ program {
+ name: "button_unclick";
+ signal: "mouse,up,1";
+ source: "over3";
+ action: SIGNAL_EMIT "elm,action,unpress" "";
+ after: "button_unclick_anim";
+ }
+ program {
+ name: "button_unclick_anim";
+ source: "elm";
+ script {
+ set_state(PART:"button_image", "default", 0.0);
+ set_state(PART:"elm.swallow.content", "default", 0.0);
+ set_state(PART:"elm.swallow.content.press", "default", 0.0);
+ set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+ }
+ }
+
+ program {
+ name: "button_unclick3";
+ signal: "mouse,clicked,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,click" "";
+ }
+
+ program {
+ name: "disable";
+ signal: "elm,state,disabled";
+ source: "elm";
+ script {
+ set_state(PART:"button_image", "default", 0.0);
+ set_state(PART:"disabler", "disabled", 0.0);
+ set_state(PART:"elm.swallow.content", "hide", 0.0);
+ set_state(PART:"elm.swallow.content.press", "default", 0.0);
+ set_state(PART:"elm.swallow.content.dim", "show", 0.0);
+ }
+ }
+ program {
+ name: "enable";
+ source: "elm";
+ script {
+ set_state(PART:"button_image", "default", 0.0);
+ set_state(PART:"disabler", "default", 0.0);
+ set_state(PART:"elm.swallow.content", "default", 0.0);
+ set_state(PART:"elm.swallow.content.press", "default", 0.0);
+ set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+ }
+ }
+
+ program {
+ name: "button_clicked";
+ source: "over2";
+ signal: "mouse,clicked,1";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ } /* programs */
+}
+
+group {
+ name: "elm/button/base/custom/flat_63_85/default";
+ parts {
+ part {
+ name: "button_image";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ fixed: 1 1;
+ min: 63 85;
+ max: 63 85;
+ visible: 0;
+ }
+ description {
+ state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "focused" 0.0;
+ inherit: "default" 0.0;
+ }
+ }
+ part {
+ name: "elm.text";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 0.0 0.0;}
+ color: 0 0 0 0;
+ text {
+ font: "Tizen:style=Regular";
+ size: 24;
+ min: 0 0;
+ }
+ }
+ }
+ part {
+ name: "elm.swallow.content";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 63 63;
+ max: 63 63;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+ part {
+ name: "elm.swallow.content.press";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 63 63;
+ max: 63 63;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ part {
+ name: "elm.swallow.content.dim";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 63 63;
+ max: 63 63;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+
+ part {
+ name: "over2";
+ type: RECT;
+ ignore_flags: ON_HOLD;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "over3";
+ type: RECT;
+ repeat_events: 1;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "disabler";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ visible: 0;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ } /* parts */
+ programs {
+ program {
+ name: "button_click";
+ signal: "mouse,down,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,press" "";
+ after: "button_click_anim";
+ }
+
+ program {
+ name: "button_click_anim";
+ source: "elm";
+ script {
+ set_state(PART:"button_image", "clicked", 0.0);
+ set_state(PART:"elm.swallow.content", "hide", 0.0);
+ set_state(PART:"elm.swallow.content.press", "show", 0.0);
+ set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+ }
+ }
+
+ program {
+ name: "button_unclick";
+ signal: "mouse,up,1";
+ source: "over3";
+ action: SIGNAL_EMIT "elm,action,unpress" "";
+ after: "button_unclick_anim";
+ }
+ program {
+ name: "button_unclick_anim";
+ source: "elm";
+ script {
+ set_state(PART:"button_image", "default", 0.0);
+ set_state(PART:"elm.swallow.content", "default", 0.0);
+ set_state(PART:"elm.swallow.content.press", "default", 0.0);
+ set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+ }
+ }
+
+ program {
+ name: "button_unclick3";
+ signal: "mouse,clicked,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,click" "";
+ }
+
+ program {
+ name: "disable";
+ signal: "elm,state,disabled";
+ source: "elm";
+ script {
+ set_state(PART:"button_image", "default", 0.0);
+ set_state(PART:"disabler", "disabled", 0.0);
+ set_state(PART:"elm.swallow.content", "hide", 0.0);
+ set_state(PART:"elm.swallow.content.press", "default", 0.0);
+ set_state(PART:"elm.swallow.content.dim", "show", 0.0);
+ }
+ }
+ program {
+ name: "enable";
+ signal: "elm,state,enabled";
+ source: "elm";
+ script {
+ set_state(PART:"button_image", "default", 0.0);
+ set_state(PART:"disabler", "default", 0.0);
+ set_state(PART:"elm.swallow.content", "default", 0.0);
+ set_state(PART:"elm.swallow.content.press", "default", 0.0);
+ set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+ }
+ }
+ /*keep default state when it is focused, Only show blue border in focued state*/
+ program {
+ name: "focused";
+ signal: "elm,action,focus";
+ source: "elm";
+ script {
+ set_state(PART:"button_image", "clicked", 0.0);
+ set_state(PART:"disabler", "default", 0.0);
+ set_state(PART:"elm.swallow.content", "default", 0.0);
+ set_state(PART:"elm.swallow.content.press", "default", 0.0);
+ set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+ }
+ }
+
+ program {
+ name: "unfocused";
+ signal: "elm,action,unfocus";
+ source: "elm";
+ script {
+ set_state(PART:"button_image", "default", 0.0);
+ set_state(PART:"disabler", "default", 0.0);
+ set_state(PART:"elm.swallow.content", "default", 0.0);
+ set_state(PART:"elm.swallow.content.press", "default", 0.0);
+ set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+ }
+ }
+
+ program {
+ name: "button_clicked";
+ source: "over2";
+ signal: "mouse,clicked,1";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ } /* programs */
+}
+
+group {
+ name: "elm/button/base/custom/flat_94_60/default";
+ parts {
+ part {
+ name: "button_image";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ fixed: 1 1;
+ min: 94 60;
+ max: 94 60;
+ visible: 0;
+ }
+ description {
+ state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "focused" 0.0;
+ inherit: "default" 0.0;
+ }
+ }
+ part {
+ name: "elm.text";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 0.0 0.0;}
+ color: 0 0 0 0;
+ text {
+ font: "Tizen:style=Regular";
+ size: 24;
+ min: 0 0;
+ }
+ }
+ }
+ part {
+ name: "elm.swallow.content";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 45 45;
+ max: 45 45;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+ part {
+ name: "elm.swallow.content.press";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 45 45;
+ max: 45 45;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ part {
+ name: "elm.swallow.content.dim";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 45 45;
+ max: 45 45;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+
+ part {
+ name: "over2";
+ type: RECT;
+ ignore_flags: ON_HOLD;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "over3";
+ type: RECT;
+ repeat_events: 1;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "disabler";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ visible: 0;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ } /* parts */
+ programs {
+ program {
+ name: "button_click";
+ signal: "mouse,down,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,press" "";
+ after: "button_click_anim";
+ }
+
+ program {
+ name: "button_click_anim";
+ source: "elm";
+ script {
+ set_state(PART:"button_image", "clicked", 0.0);
+ set_state(PART:"elm.swallow.content", "hide", 0.0);
+ set_state(PART:"elm.swallow.content.press", "show", 0.0);
+ set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+ }
+ }
+
+ program {
+ name: "button_unclick";
+ signal: "mouse,up,1";
+ source: "over3";
+ action: SIGNAL_EMIT "elm,action,unpress" "";
+ after: "button_unclick_anim";
+ }
+ program {
+ name: "button_unclick_anim";
+ source: "elm";
+ script {
+ set_state(PART:"button_image", "default", 0.0);
+ set_state(PART:"elm.swallow.content", "default", 0.0);
+ set_state(PART:"elm.swallow.content.press", "default", 0.0);
+ set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+ }
+ }
+
+ program {
+ name: "button_unclick3";
+ signal: "mouse,clicked,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,click" "";
+ }
+
+ program {
+ name: "disable";
+ signal: "elm,state,disabled";
+ source: "elm";
+ script {
+ set_state(PART:"button_image", "default", 0.0);
+ set_state(PART:"disabler", "disabled", 0.0);
+ set_state(PART:"elm.swallow.content", "hide", 0.0);
+ set_state(PART:"elm.swallow.content.press", "default", 0.0);
+ set_state(PART:"elm.swallow.content.dim", "show", 0.0);
+ }
+ }
+ program {
+ name: "enable";
+ signal: "elm,state,enabled";
+ source: "elm";
+ script {
+ set_state(PART:"button_image", "default", 0.0);
+ set_state(PART:"disabler", "default", 0.0);
+ set_state(PART:"elm.swallow.content", "default", 0.0);
+ set_state(PART:"elm.swallow.content.press", "default", 0.0);
+ set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+ }
+ }
+
+ program {
+ name: "button_clicked";
+ source: "over2";
+ signal: "mouse,clicked,1";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ } /* programs */
+}
+
+
+group {
+ name: "elm/button/base/custom/flat_36_36/default";
+ parts {
+ part {
+ name: "button_image";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ fixed: 1 1;
+ min: 36 36;
+ max: 36 36;
+ visible: 0;
+ }
+ description {
+ state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "focused" 0.0;
+ inherit: "default" 0.0;
+ }
+ }
+ part {
+ name: "elm.text";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 0.0 0.0;}
+ color: 0 0 0 0;
+ text {
+ font: "Tizen:style=Regular";
+ size: 24;
+ min: 0 0;
+ }
+ }
+ }
+ part {
+ name: "elm.swallow.content";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 36 36;
+ max: 36 36;
+ fixed: 1 1;
+ align: 0.0 0.0;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+ part {
+ name: "elm.swallow.content.press";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 36 36;
+ max: 36 36;
+ fixed: 1 1;
+ align: 0.0 0.0;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ part {
+ name: "elm.swallow.content.dim";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 36 36;
+ max: 36 36;
+ fixed: 1 1;
+ align: 0.0 0.0;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+
+ part {
+ name: "over2";
+ type: RECT;
+ ignore_flags: ON_HOLD;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "over3";
+ type: RECT;
+ repeat_events: 1;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "disabler";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ visible: 0;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ } /* parts */
+ programs {
+ program {
+ name: "button_click";
+ signal: "mouse,down,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,press" "";
+ after: "button_click_anim";
+ }
+
+ program {
+ name: "button_click_anim";
+ source: "elm";
+ script {
+ set_state(PART:"button_image", "clicked", 0.0);
+ set_state(PART:"elm.swallow.content", "hide", 0.0);
+ set_state(PART:"elm.swallow.content.press", "show", 0.0);
+ set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+ }
+ }
+
+ program {
+ name: "button_unclick";
+ signal: "mouse,up,1";
+ source: "over3";
+ action: SIGNAL_EMIT "elm,action,unpress" "";
+ after: "button_unclick_anim";
+ }
+ program {
+ name: "button_unclick_anim";
+ source: "elm";
+ script {
+ set_state(PART:"button_image", "default", 0.0);
+ set_state(PART:"elm.swallow.content", "default", 0.0);
+ set_state(PART:"elm.swallow.content.press", "default", 0.0);
+ set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+ }
+ }
+
+ program {
+ name: "button_unclick3";
+ signal: "mouse,clicked,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,click" "";
+ }
+
+ program {
+ name: "disable";
+ signal: "elm,state,disabled";
+ source: "elm";
+ script {
+ set_state(PART:"button_image", "default", 0.0);
+ set_state(PART:"disabler", "disabled", 0.0);
+ set_state(PART:"elm.swallow.content", "hide", 0.0);
+ set_state(PART:"elm.swallow.content.press", "default", 0.0);
+ set_state(PART:"elm.swallow.content.dim", "show", 0.0);
+ }
+ }
+ program {
+ name: "enable";
+ signal: "elm,state,enabled";
+ source: "elm";
+ script {
+ set_state(PART:"button_image", "default", 0.0);
+ set_state(PART:"disabler", "default", 0.0);
+ set_state(PART:"elm.swallow.content", "default", 0.0);
+ set_state(PART:"elm.swallow.content.press", "default", 0.0);
+ set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+ }
+ }
+
+ program {
+ name: "button_clicked";
+ source: "over2";
+ signal: "mouse,clicked,1";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ } /* programs */
+}
+
+
+group {
+ name: "elm/button/base/custom/flat_63_78/default";
+ parts {
+ part {
+ name: "button_image";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ fixed: 1 1;
+ min: 40 40;
+ max: 40 40;
+ align: 0.5 0.5;
+ visible: 0;
+ }
+ description {
+ state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "focused" 0.0;
+ inherit: "default" 0.0;
+ }
+ }
+ part {
+ name: "elm.text";
+ type: TEXT;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 0.0 0.0;}
+ color: 0 0 0 0;
+ text {
+ font: "Tizen:style=Regular";
+ size: 24;
+ min: 0 0;
+ }
+ }
+ }
+ part {
+ name: "elm.swallow.content";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 40 40;
+ max: 40 40;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+ part {
+ name: "elm.swallow.content.press";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 40 40;
+ max: 40 40;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ part {
+ name: "elm.swallow.content.dim";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 40 40;
+ max: 40 40;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+
+ part {
+ name: "over2";
+ type: RECT;
+ mouse_events: 1;
+ repeat_events: 1;
+ ignore_flags: ON_HOLD;
+ description {
+ state: "default" 0.0;
+ min: 50 50;
+ max: 50 50;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ align: 0.5 0.5;
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "over3";
+ type: RECT;
+ mouse_events: 1;
+ repeat_events: 1;
+ description {
+ state: "default" 0.0;
+ min: 100 100;
+ max: 100 100;
+ align: 0.5 0.5;
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "disabler";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ align: 0.5 0.5;
+ visible: 0;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ } /* parts */
+ programs {
+ program {
+ name: "button_click";
+ signal: "mouse,down,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,press" "";
+ after: "button_click_anim";
+ }
+
+ program {
+ name: "button_click_anim";
+ source: "elm";
+ script {
+ set_state(PART:"button_image", "clicked", 0.0);
+ set_state(PART:"elm.swallow.content", "hide", 0.0);
+ set_state(PART:"elm.swallow.content.press", "show", 0.0);
+ set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+ }
+ }
+
+ program {
+ name: "button_unclick";
+ signal: "mouse,up,1";
+ source: "over3";
+ action: SIGNAL_EMIT "elm,action,unpress" "";
+ after: "button_unclick_anim";
+ }
+ program {
+ name: "button_unclick_anim";
+ source: "elm";
+ script {
+ set_state(PART:"button_image", "default", 0.0);
+ set_state(PART:"elm.swallow.content", "default", 0.0);
+ set_state(PART:"elm.swallow.content.press", "default", 0.0);
+ set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+ }
+ }
+
+ program {
+ name: "button_unclick3";
+ signal: "mouse,clicked,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,click" "";
+ }
+
+ program {
+ name: "disable";
+ signal: "elm,state,disabled";
+ source: "elm";
+ script {
+ set_state(PART:"button_image", "default", 0.0);
+ set_state(PART:"disabler", "disabled", 0.0);
+ set_state(PART:"elm.swallow.content", "hide", 0.0);
+ set_state(PART:"elm.swallow.content.press", "default", 0.0);
+ set_state(PART:"elm.swallow.content.dim", "show", 0.0);
+ }
+ }
+ program {
+ name: "enable";
+ signal: "elm,state,enabled";
+ source: "elm";
+ script {
+ set_state(PART:"button_image", "default", 0.0);
+ set_state(PART:"disabler", "default", 0.0);
+ set_state(PART:"elm.swallow.content", "default", 0.0);
+ set_state(PART:"elm.swallow.content.press", "default", 0.0);
+ set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+ }
+ }
+
+ program {
+ name: "button_clicked";
+ source: "over2";
+ signal: "mouse,clicked,1";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ } /* programs */
+}
+group {
+ name: "elm/button/base/back";
+ images
+ {
+ image: "button/core_icon_back.png" COMP;
+ }
+ parts {
+ part {
+ name: "bg";
+ type: RECT;
+ mouse_events: 1;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ min: 80 80;
+ max: 80 80;
+ }
+ }
+ part {
+ name: "icon";
+ type: IMAGE;
+ mouse_events: 1;
+ description {
+ state: "default" 0.0;
+ rel1 {
+ relative: 0 0;
+ to: "bg";
+ }
+ rel2 {
+ relative: 1 1;
+ to: "bg";
+ }
+ image {
+ normal: "button/core_icon_back.png";
+ }
+ }
+ }
+ } /*parts*/
+ programs {
+ program {
+ name: "buttonclicked";
+ signal: "mouse,clicked,1";
+ source: "bg";
+ action: SIGNAL_EMIT "elm,action,click" "";
+ }
+ program {
+ name: "buttontextclicked";
+ signal: "mouse,clicked,1";
+ source: "icon";
+ action: SIGNAL_EMIT "elm,action,click" "";
+ }
+ program{
+ name: "touch_snd";
+ source: "bg";
+ signal: "mouse,clicked,1";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ program{
+ name: "touch_snd1";
+ source: "icon";
+ signal: "mouse,clicked,1";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ }
+
+}
+
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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
+ }
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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
+
+
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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;
+ }
+ }
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#define GENLIST_HEIGHT_MULTILINE_SUB 38
+#define GENLIST_HEIGHT_2LINE_SUB 42
+#define GENLIST_LIST_SUB_TEXT_SIZE 32
+#define GENLIST_TREESIZE_DEFAULT 26
+#define GENLIST_PART_LIST_LINE_HEIGHT 1
+#define GENLIST_HEIGHT_2LINE_MAIN 57
+#define GENLIST_PADDING_SIZE_DEFAULT 16
+#define GENLIST_PADDING_SIZE_LEFT 62
+#define GENLIST_PADDING_SIZE_RIGHT GENLIST_PADDING_SIZE_LEFT
+#define GENLIST_PADDING_SIZE_TOP_2LINE 19
+#define GENLIST_PADDING_SIZE_BOTTOM_2LINE 19
+#define GENLIST_HEIGHT_1LINE 112 // (114 - top/bottom padding)
+#define GENLIST_PADDING_SIZE_TOP 5
+#define GENLIST_PADDING_SIZE_BOTTOM 5
+#define GENLIST_ICON_MEDIUM_SIZE 81
+#define GENLIST_BTN_01_HEIGHT 74
+
+#define GENLIST_LIST_MAIN_TEXT_SIZE 44
+
+//popup
+#define POPUP_ITEM_BG_PRESSED_BORDER_INC 8 8 8 8
+#define POPUP_ITEM_BG_LEFT_TOP_PAD_MIN_INC 4 4
+#define POPUP_ITEM_BG_RIGHT_BOTTOM_PAD_MIN_INC 4 6
+
+
+//white
+///---------------------------------------------------------------start
+#define GENLIST_LIST_BG_COLOR 248 246 239 0
+#define GENLIST_LIST_PRESS_COLOR 87 135 194 255
+#define GENLIST_LIST_DIM_COLOR 248 246 239 255
+#define GENLIST_LIST_LINE2_COLOR 204 203 199 255
+#define GENLIST_LIST_LINE1_COLOR 250 250 250 255
+#define GENLIST_LIST_MAIN_TEXT_UNREAD_COLOR 0 0 0 255
+#define GENLIST_LIST_GROUP_TEXT_COLOR 14 104 173 255
+
+#define GENLIST_LIST_SUB_TEXT_DEFAULT_COLOR_STYLE "#4F4F4FFF"
+#define GENLIST_LIST_SUB_TEXT_DEFAULT_DIM_COLOR_STYLE "#A3A99FFF"
+//#define GENLIST_LIST_TEXT_FOCUS_COLOR_STYLE "#FFFFFFFF"
+#define GENLIST_PART_MATCH_TAG_COLOR "+ color=#1382FF"
+
+
+// Genlist Text
+#define GENLIST_LIST_MAIN_TEXT_UNREAD_COLOR_STYLE "#000000FF"
+#define GENLIST_LIST_MAIN_TEXT_UNREAD_DIM_COLOR 124 123 119 255
+#define GENLIST_LIST_MAIN_TEXT_UNREAD_DIM_COLOR_STYLE "#7C7B77FF"
+#define GENLIST_LIST_MAIN_TEXT_READ_COLOR 128 128 128 255
+#define GENLIST_LIST_MAIN_TEXT_READ_DIM_COLOR 188 187 183 255
+#define GENLIST_LIST_TEXT_FOCUS_COLOR 255 255 255 255
+#define GENLIST_LIST_TEXT_FOCUS_COLOR_STYLE "#FAFAFAFF"
+
+
+//popup
+#define GENLIST_LIST_BG_POPUP_COLOR 0 0 0 0
+#define GENLIST_LIST_BG_POPUP_PRESS_COLOR 255 255 255 255
+#define GENLIST_LIST_LINE1_POPUP_COLOR 211 209 203 255
+#define GENLIST_LIST_LINE2_POPUP_COLOR 250 250 250 255
+
+
+#define PV_POPUP_TITLE_LINE_WIDTH_HEIGHT_MIN 0 4
+#define PV_GENLIST_LIST_LINE1_POPUP_COLOR 211 209 203 255
+
+//----------------------------------------------------------------end
+
+#define GENLIST_PARAM_ICON_MEDIUM \
+ min: GENLIST_ICON_MEDIUM_SIZE GENLIST_ICON_MEDIUM_SIZE; \
+ max: GENLIST_ICON_MEDIUM_SIZE GENLIST_ICON_MEDIUM_SIZE;
+
+#define GENLIST_PARAM_ICON_BTN_01 \
+ min: 0 GENLIST_BTN_01_HEIGHT; \
+ max: -1 GENLIST_BTN_01_HEIGHT;
+
+
+#define STYLE_TAG \
+ tag: "br" "\n";\
+ tag: "ps" "ps";\
+ tag: "tab" "\t";\
+ tag: "b" "+ font_weight=Bold";
+
+#define STYLE_TAG_MATCH \
+ tag: "match" GENLIST_PART_MATCH_TAG_COLOR;
+
+
+styles {
+ style { name: "genlist_style_list_sub_text_default_wrap";
+ base: "font=Tizen:style=Bold font_size="GENLIST_LIST_SUB_TEXT_SIZE" color=#FFFFFF wrap=mixed";
+ STYLE_TAG
+ STYLE_TAG_MATCH
+ }
+ style { name: "genlist_style_list_main_multiline_text_default_wrap";
+ base: "font=Tizen:style=Bold font_size="GENLIST_LIST_SUB_TEXT_SIZE" color=#FFFFFF wrap=mixed";
+ STYLE_TAG
+ STYLE_TAG_MATCH
+ }
+ style { name: "genlist_style_list_sub_multiline_text_default_wrap";
+ base: "font=Tizen:style=Light font_size="GENLIST_LIST_SUB_TEXT_SIZE" color=#FFFFFF wrap=mixed";
+ STYLE_TAG
+ STYLE_TAG_MATCH
+ }
+ style { name: "genlist_style_list_sub_text_default_dim_wrap";
+ base: "font=Tizen:style=Bold font_size="GENLIST_LIST_SUB_TEXT_SIZE" color=#FFFFFF wrap=mixed";
+ STYLE_TAG
+ STYLE_TAG_MATCH
+ }
+ style { name: "genlist_style_list_sub_text_focus_wrap";
+ base: "font=Tizen:style=Bold font_size="GENLIST_LIST_SUB_TEXT_SIZE" color=#FFFFFF wrap=mixed";
+ STYLE_TAG
+ STYLE_TAG_MATCH
+ }
+
+ style { name: "genlist_style_list_main_text_default_wrap";
+ base: "font=Tizen:style=Bold font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color=#FFFFFF wrap=mixed";
+ STYLE_TAG
+ STYLE_TAG_MATCH
+ }
+ style { name: "genlist_style_list_main_text_default_dim_wrap";
+ base: "font=Tizen:style=Bold font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color=#FFFFFF wrap=mixed";
+ STYLE_TAG
+ STYLE_TAG_MATCH
+ }
+ style { name: "genlist_style_list_main_text_focus_wrap";
+ base: "font=Tizen:style=Bold font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color=#FFFFFF wrap=mixed";
+ STYLE_TAG
+ STYLE_TAG_MATCH
+ }
+ style { name: "genlist_style_list_main_text_custom_wrap";
+ base: "font=Tizen:style=Roman font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color=#FFFFFF wrap=mixed";
+ STYLE_TAG
+ STYLE_TAG_MATCH
+ }
+ style { name: "genlist_style_list_main_1_text_default_wrap";
+ base: "font=Tizen:style=Regular font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color=#FFFFFF wrap=mixed";
+ STYLE_TAG
+ STYLE_TAG_MATCH
+ }
+ style { name: "genlist_style_list_main_1_text_default_dim_wrap";
+ base: "font=Tizen:style=Regular font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color=#FFFFFF wrap=mixed";
+ STYLE_TAG
+ STYLE_TAG_MATCH
+ }
+ style { name: "genlist_style_list_main_1_text_focus_wrap";
+ base: "font=Tizen:style=Regular font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color=#FFFFFF wrap=mixed";
+ STYLE_TAG
+ STYLE_TAG_MATCH
+ }
+}
+
+
+#define GENLIST_NAME(NAME) \
+ name: "elm/genlist/item/"NAME; \
+ alias: "elm/genlist/item_compress/"NAME; \
+ alias: "elm/genlist/tree/"NAME; \
+ alias: "elm/genlist/tree_compress/"NAME;
+
+ // | PART == HERE |
+ // ------------------
+ #define GENLIST_DESCRIPTION_ENVELOP( PART, PARAM ) \
+ description { state: "default" 0.0;\
+ rel1 { \
+ relative: 0 0; \
+ to: PART; \
+ }\
+ rel2 {\
+ relative: 1 1;\
+ to: PART; \
+ }\
+ PARAM\
+ }
+
+
+ // | top |
+ // ---------------------
+ // left | HERE | right
+ // ---------------------
+ // | bottom |
+#define GENLIST_DESCRIPTION( left, right, top, bottom, param ) \
+ description { state: "default" 0.0;\
+ rel1 { \
+ relative: 1 1; \
+ to_x: left; \
+ to_y: top; \
+ }\
+ rel2 {\
+ relative: 0 0;\
+ to_x: right;\
+ to_y: bottom;\
+ }\
+ param\
+ }
+
+
+// | top |
+// ---------------------
+// left | HERE | right
+#define GENLIST_DESCRIPTION_LRT( left, right, top, param ) \
+ description { state: "default" 0.0;\
+ align: 0.5 0;\
+ rel1 { \
+ relative: 1 1; \
+ to_x: left; \
+ to_y: top; \
+ }\
+ rel2 {\
+ relative: 0 1;\
+ to_x: right;\
+ to_y: top;\
+ }\
+ param\
+ }
+
+// ---------------------
+// left |--> HERE
+// ---------------------
+#define GENLIST_DESCRIPTION_L( left, param ) \
+ description { state: "default" 0.0;\
+ align: 0 0.5; \
+ fixed: 1 0; \
+ rel1 { \
+ relative: 1 0; \
+ to_x: left; \
+ to_y: "base"; \
+ }\
+ rel2 { \
+ relative: 1 1;\
+ to_x: left; \
+ to_y: "base"; \
+ }\
+ param\
+ }
+
+// | top |
+// -----------------
+// | HERE <--| right
+// -----------------
+// | bottom |
+#define GENLIST_DESCRIPTION_RTB( right, top, bottom, param ) \
+ description { state: "default" 0.0;\
+ align: 1 0.5;\
+ rel1 { \
+ relative: 0 1; \
+ to_x: right; \
+ to_y: top; \
+ }\
+ rel2 {\
+ relative: 0 0;\
+ to_x: right;\
+ to_y: bottom;\
+ }\
+ param\
+ }
+
+// --------------------------
+// left |--> HERE <--| right
+// --------------------------
+#define GENLIST_DESCRIPTION_LR( left, right, param ) \
+ description { state: "default" 0.0;\
+ rel1 { \
+ relative: 1 0; \
+ to_x: left; \
+ to_y: "base"; \
+ }\
+ rel2 {\
+ relative: 0 1;\
+ to_x: right;\
+ to_y: "base"; \
+ }\
+ param\
+ }
+
+// | top |
+// ---------------------
+// left |--> HERE |
+// ---------------------
+// | bottom |
+#define GENLIST_DESCRIPTION_LTB( left, top, bottom, param ) \
+ description { state: "default" 0.0;\
+ align: 0 0.5;\
+ rel1 { \
+ relative: 1 1; \
+ to_x: left; \
+ to_y: top; \
+ }\
+ rel2 {\
+ relative: 1 0;\
+ to_x: left;\
+ to_y: bottom;\
+ }\
+ param\
+ }
+
+
+#define GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS_TB_WRAP \
+ description { state: "disabled" 0.0; \
+ inherit: "default" 0.0; \
+ text.style: "genlist_style_list_sub_text_default_dim_wrap"; \
+ } \
+ description { state: "selected" 0.0; \
+ inherit: "default" 0.0; \
+ text.style: "genlist_style_list_sub_text_focus_wrap"; \
+ }
+
+#define GENLIST_PARAM_SUBITEM_DEFAULT_TB_WRAP \
+ text { \
+ min: 0 1; \
+ style: "genlist_style_list_sub_text_default_wrap"; \
+ }
+
+#define GENLIST_PARAM_MULTI_MAINITEM_DEFAULT_TB_WRAP \
+ text { \
+ min: 0 1; \
+ style: "genlist_style_list_main_multiline_text_default_wrap"; \
+ }
+
+#define GENLIST_PARAM_MULTI_SUBITEM_DEFAULT_TB_WRAP \
+ text { \
+ min: 0 1; \
+ style: "genlist_style_list_sub_multiline_text_default_wrap"; \
+ }
+
+#define GENLIST_PARAM_MAINITEM_DEFAULT_TB_WRAP \
+ text { \
+ min: 0 1; \
+ style: "genlist_style_list_main_text_default_wrap"; \
+ }
+
+#define GENLIST_PARAM_MAINITEM_CUSTOM_TB_WRAP \
+ text { \
+ min: 0 1; \
+ style: "genlist_style_list_main_text_custom_wrap"; \
+ }
+
+#define GENLIST_PARAM_MAINITEM_1TEXT_DEFAULT_TB_WRAP \
+ text { \
+ min: 0 1; \
+ style: "genlist_style_list_main_1_text_default_wrap"; \
+ }
+
+#define GENLIST_DESCRIPTION_MAINITEM_1TEXT_DEFAULT_OTHERS_TB_WRAP \
+ description { state: "disabled" 0.0; \
+ inherit: "default" 0.0; \
+ text.style: "genlist_style_list_main_1_text_default_dim_wrap"; \
+ } \
+ description { state: "selected" 0.0; \
+ inherit: "default" 0.0; \
+ text.style: "genlist_style_list_main_1_text_focus_wrap"; \
+ }
+
+
+#define GENLIST_DESCRIPTION_MAINITEM_DEFAULT_OTHERS_TB_WRAP \
+ description { state: "disabled" 0.0; \
+ inherit: "default" 0.0; \
+ text.style: "genlist_style_list_main_text_default_dim_wrap"; \
+ } \
+ description { state: "selected" 0.0; \
+ inherit: "default" 0.0; \
+ text.style: "genlist_style_list_main_text_focus_wrap"; \
+ }
+
+#define GENLIST_PART_TEXTBLOCK(NAME, DESCRIPION) \
+ part { name: NAME; \
+ scale: 1; \
+ type: TEXTBLOCK; \
+ repeat_events: 1; \
+ DESCRIPION \
+ }
+
+#define GENLIST_PART_TEXT(NAME, DESCRIPION) \
+ part { name: NAME; \
+ scale: 1; \
+ type: TEXT; \
+ repeat_events: 1; \
+ DESCRIPION \
+ }
+
+#define GENLIST_PART_SPACER(NAME, DESCRIPION) \
+ part { name: NAME; \
+ scale: 1; \
+ mouse_events: 0; \
+ type: SPACER; \
+ DESCRIPION \
+ }
+
+#define GENLIST_PART_RECT(NAME, DESCRIPION) \
+ part { name: NAME; \
+ scale: 1; \
+ type: RECT; \
+ DESCRIPION \
+ }
+
+#define GENLIST_PART_IMAGE(NAME, DESCRIPION) \
+ part { name: NAME; \
+ scale: 1; \
+ type: IMAGE; \
+ DESCRIPION \
+ }
+
+#define GENLIST_PART_ICON(NAME, DESCRIPION) \
+ part { name: NAME; \
+ scale: 1; \
+ type: SWALLOW; \
+ DESCRIPION \
+ }
+
+#define GENLIST_PART_ICON_MEDIUM_L(NAME, LEFT) \
+ GENLIST_PART_ICON(NAME, \
+ GENLIST_DESCRIPTION_LTB(LEFT, "elm.padding.top", "elm.padding.bottom", \
+ GENLIST_PARAM_ICON_MEDIUM \
+ fixed: 1 1; \
+ ) \
+ )
+
+
+// list main text
+#define GENLIST_PARAM_LISTITEM \
+ color: 8 8 8 255; \
+ text { \
+ align: 0 0.5; \
+ min: 0 1; \
+ font: "Tizen:style=Regular"; \
+ size: GENLIST_LIST_MAIN_TEXT_SIZE; \
+ }
+
+// list main text
+#define GENLIST_DESCRIPTION_LISTITEM_OTHERS \
+ description { state: "disabled" 0.0; \
+ inherit: "default" 0.0; \
+ color: GENLIST_LIST_MAIN_TEXT_UNREAD_DIM_COLOR; \
+ } \
+ description { state: "read" 0.0; \
+ inherit: "default" 0.0; \
+ color: GENLIST_LIST_MAIN_TEXT_READ_COLOR; \
+ } \
+ description { state: "read,disabled" 0.0; \
+ inherit: "default" 0.0; \
+ color: GENLIST_LIST_MAIN_TEXT_READ_DIM_COLOR; \
+ } \
+ description { state: "selected" 0.0; \
+ inherit: "default" 0.0; \
+ color: GENLIST_LIST_TEXT_FOCUS_COLOR; \
+ }
+
+#define GENLIST_PART_PADDING_T_SIZE( NAME, TOP, SIZE ) \
+ GENLIST_PART_SPACER(NAME, \
+ description { state: "default" 0.0; \
+ min: 0 SIZE; \
+ max: -1 SIZE; \
+ fixed: 0 1; \
+ align: 0.5 0; \
+ rel1 { \
+ relative: 0 1; \
+ to: TOP; \
+ } \
+ rel2 { \
+ relative: 1 1; \
+ to: TOP; \
+ } \
+ } \
+ )
+
+#define GENLIST_PART_EXPANDED_PAD \
+ part { name: "elm.swallow.pad"; \
+ type: SWALLOW; \
+ scale: 1; \
+ mouse_events: 0; \
+ description { state: "default" 0.0; \
+ visible: 0; \
+ min: 0 0; \
+ fixed: 1 0; \
+ align: 0.0 0.5; \
+ rel1.to: "base"; \
+ rel2.to: "base"; \
+ rel2.relative: 0.0 1.0; \
+ } \
+ } \
+
+#define GENLIST_PROLOG \
+ data.item: "selectraise" "on"; \
+ data.item: "treesize" 0;
+
+
+#define GENLIST_PROLOG_NORMAL \
+ GENLIST_PROLOG \
+ data.item: "treesize" GENLIST_TREESIZE_DEFAULT; \
+ data.item: "flips" "elm.flip.icon elm.flip.content"; \
+ images { \
+ image : "genlist/00_list_group_bg.png" COMP; \
+ image : "genlist/00_list_group_bg_press.png" COMP; \
+ }
+
+#define GENLIST_PART_BASE_SIZE(HEIGHT) \
+ part { name: "base"; \
+ type: RECT; \
+ mouse_events: 0; \
+ scale: 1; \
+ description { state: "default" 0.0; \
+ color: 0 0 0 0; \
+ min: 0 HEIGHT; \
+ } \
+ } \
+ part { name: "state"; \
+ type: RECT; \
+ mouse_events: 0; \
+ scale: 1; \
+ description { state: "default" 0.0; \
+ color: 0 0 0 0; \
+ } \
+ description { state: "decorate" 0.0; \
+ inherit: "default"; \
+ } \
+ description { state: "reorder" 0.0; \
+ inherit: "default"; \
+ } \
+ description { state: "decorate_reorder" 0.0; \
+ inherit: "default"; \
+ } \
+ }
+
+#define GENLIST_PART_BASE \
+ GENLIST_PART_BASE_SIZE(0)
+
+#define GENLIST_DESCRIPTION_DECORATE_PADDING \
+ description { state: "decorate" 0.0; \
+ inherit: "default" 0.0; \
+ min: 0 0; \
+ max: 0 0; \
+ }
+
+#define GENLIST_DESCRIPTION_DECORATE_REORDER_PADDING \
+ description { state: "decorate_reorder" 0.0; \
+ inherit: "default" 0.0; \
+ min: 0 0; \
+ max: 0 0; \
+ }
+
+#define GENLIST_DESCRIPTION_REORDER_PADDING \
+ description { state: "reorder" 0.0; \
+ inherit: "default" 0.0; \
+ min: 32 0; \
+ max: 32 -1; \
+ }
+
+
+#define GENLIST_PART_PADDING_LEFT \
+ GENLIST_PART_EXPANDED_PAD \
+ GENLIST_PART_SPACER("elm.padding.left", \
+ GENLIST_DESCRIPTION_L("elm.swallow.pad", \
+ min: GENLIST_PADDING_SIZE_LEFT 0; \
+ max: GENLIST_PADDING_SIZE_LEFT -1; \
+ fixed: 1 0; \
+ ) \
+ GENLIST_DESCRIPTION_DECORATE_PADDING \
+ GENLIST_DESCRIPTION_REORDER_PADDING \
+ GENLIST_DESCRIPTION_DECORATE_REORDER_PADDING \
+ )
+
+#define GENLIST_PART_PADDING_RIGHT \
+ GENLIST_PART_SPACER("elm.padding.right", \
+ description { state: "default" 0.0; \
+ min: GENLIST_PADDING_SIZE_RIGHT 0; \
+ max: GENLIST_PADDING_SIZE_RIGHT -1; \
+ fixed: 1 0; \
+ align: 1.0 0.5; \
+ rel1.to: "base"; \
+ rel2.to: "base"; \
+ rel1.relative: 1 0; \
+ } \
+ GENLIST_DESCRIPTION_DECORATE_PADDING \
+ GENLIST_DESCRIPTION_REORDER_PADDING \
+ GENLIST_DESCRIPTION_DECORATE_REORDER_PADDING \
+ )
+
+
+#define GENLIST_PART_PADDING_R( NAME, RIGHT ) \
+ GENLIST_PART_SPACER(NAME, \
+ description { state: "default" 0.0; \
+ fixed: 1 0; \
+ min: GENLIST_PADDING_SIZE_DEFAULT 0; \
+ max: GENLIST_PADDING_SIZE_DEFAULT -1; \
+ align: 1 0.5; \
+ rel1 { \
+ relative: 0 0; \
+ to_x: RIGHT; \
+ } \
+ rel2 { \
+ relative: 0 1; \
+ to_x: RIGHT; \
+ } \
+ } \
+ )
+
+#define GENLIST_PART_ICON_BTN_01_LTB(NAME, LEFT, TOP, BOTTOM) \
+ GENLIST_PART_ICON(NAME, \
+ GENLIST_DESCRIPTION_LTB(LEFT, TOP, BOTTOM,\
+ GENLIST_PARAM_ICON_BTN_01 \
+ fixed: 1 1; \
+ ) \
+ )
+
+#define GENLIST_PART_BG_NORMAL \
+ GENLIST_PART_RECT("bg_clip", \
+ mouse_events: 0; \
+ description { state: "default" 0.0; \
+ visible: 1; \
+ color: 255 255 255 255; \
+ } \
+ description { state: "decorate" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 0; \
+ } \
+ description { state: "reorder" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 0; \
+ } \
+ description { state: "decorate_reorder" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 0; \
+ } \
+ ) \
+ GENLIST_PART_RECT("bg_reorder_clip", \
+ mouse_events: 0; \
+ description { state: "default" 0.0; \
+ visible: 0; \
+ } \
+ description { state: "reorder" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 1; \
+ color: 255 255 255 255; \
+ } \
+ description { state: "decorate_reorder" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 0; \
+ } \
+ description { state: "decorate" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 0; \
+ } \
+ description { state: "reorder_flip" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 0; \
+ } \
+ ) \
+ GENLIST_PART_RECT("bg", \
+ clip_to: "bg_clip"; \
+ description { state: "default" 0.0; \
+ color: GENLIST_LIST_BG_COLOR; \
+ } \
+ description { state: "selected" 0.0; \
+ inherit: "default" 0.0; \
+ color: GENLIST_LIST_PRESS_COLOR; \
+ } \
+ description { state: "disabled" 0.0; \
+ inherit: "default" 0.0; \
+ color: GENLIST_LIST_DIM_COLOR; \
+ } \
+ ) \
+ GENLIST_PART_SPACER("bg_reorder_left", \
+ description { state: "default" 0.0; \
+ min: 16 0; \
+ max: 16 -1; \
+ fixed: 1 0; \
+ align: 0 0.5; \
+ rel2.relative: 0 1; \
+ } \
+ ) \
+ GENLIST_PART_SPACER("bg_reorder_right", \
+ description { state: "default" 0.0; \
+ min: 16 0; \
+ max: 16 -1; \
+ fixed: 1 0; \
+ align: 1.0 0.5; \
+ rel1.relative: 1 0; \
+ } \
+ ) \
+ GENLIST_PART_SPACER("bg_reorder_top", \
+ description { state: "default" 0.0; \
+ min: 0 2; \
+ max: -1 2; \
+ fixed: 0 1; \
+ align: 0.5 0; \
+ rel2.relative: 1 0; \
+ } \
+ ) \
+ GENLIST_PART_SPACER("bg_reorder_bottom", \
+ description { state: "default" 0.0; \
+ min: 0 2; \
+ max: -1 2; \
+ fixed: 0 1; \
+ align: 0.5 1.0; \
+ rel1.relative: 0 1; \
+ } \
+ ) \
+ GENLIST_PART_IMAGE("bg_reorder", \
+ clip_to: "bg_reorder_clip"; \
+ description { state: "default" 0.0; \
+ rel1 { \
+ relative: 1 1; \
+ to_x: "bg_reorder_left"; \
+ to_y: "bg_reorder_top"; \
+ } \
+ rel2 { \
+ relative: 0 0; \
+ to_x: "bg_reorder_right"; \
+ to_y: "bg_reorder_bottom"; \
+ } \
+ image { \
+ normal: "genlist/00_list_group_bg.png"; \
+ border: 17 17 8 8; \
+ border_scale: 1; \
+ } \
+ } \
+ description { state: "selected" 0.0; \
+ inherit: "default"; \
+ image { \
+ normal: "genlist/00_list_group_bg_press.png"; \
+ border: 17 17 8 8; \
+ border_scale: 1; \
+ } \
+ } \
+ description { state: "flipped" 0.0; \
+ inherit: "default"; \
+ visible: 0; \
+ } \
+ ) \
+ GENLIST_PART_RECT("sound", \
+ repeat_events: 1; /*for play_sound to check selected state*/ \
+ description { state: "default" 0.0; \
+ color: 0 0 0 0; \
+ } \
+ ) \
+
+
+#define GENLIST_PART_BOTTOM_LINE \
+ GENLIST_PART_RECT("bottom_line_clip", \
+ description { state: "default" 0.0; \
+ color: 255 255 255 255; \
+ } \
+ description { state: "decorate" 0.0; \
+ inherit: "default" 0.0; \
+ color: 0 0 0 0; \
+ } \
+ description { state: "reorder" 0.0; \
+ inherit: "default" 0.0; \
+ color: 0 0 0 0; \
+ } \
+ description { state: "decorate_reorder" 0.0; \
+ inherit: "default" 0.0; \
+ color: 0 0 0 0; \
+ } \
+ ) \
+ GENLIST_PART_RECT("bottom_line", \
+ mouse_events: 0; \
+ clip_to: "bottom_line_clip"; \
+ description { state: "default" 0.0; \
+ min: 0 GENLIST_PART_LIST_LINE_HEIGHT; \
+ max: -1 GENLIST_PART_LIST_LINE_HEIGHT; \
+ fixed: 0 1; \
+ align: 0.5 1; \
+ color: GENLIST_LIST_LINE1_COLOR; \
+ rel1.to: "bottom_line2"; \
+ rel2.to: "bottom_line2"; \
+ rel2.relative: 1 0; \
+ rel1.offset: -1 -1; \
+ } \
+ description { state: "flipped" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 0; \
+ } \
+ ) \
+ GENLIST_PART_RECT("bottom_line2", \
+ mouse_events: 0; \
+ clip_to: "bottom_line_clip"; \
+ description { state: "default" 0.0; \
+ min: 0 GENLIST_PART_LIST_LINE_HEIGHT; \
+ max: -1 GENLIST_PART_LIST_LINE_HEIGHT; \
+ fixed: 0 1; \
+ align: 0.5 1; \
+ color: GENLIST_LIST_LINE2_COLOR; \
+ rel1.to_x: "base"; \
+ rel1.relative: 0 0; \
+ rel2.to_x: "base"; \
+ rel2.relative: 1 1; \
+ rel1.offset: -1 -1; \
+ } \
+ description { state: "flipped" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 0; \
+ } \
+ )
+
+#define GENLIST_PART_PADDING_TOP_2LINE \
+ GENLIST_PART_SPACER("elm.padding.top", \
+ description { \
+ state: "default" 0.0; \
+ min: 0 GENLIST_PADDING_SIZE_TOP_2LINE; \
+ max: -1 GENLIST_PADDING_SIZE_TOP_2LINE; \
+ fixed: 0 1; \
+ rel1.to: "base"; \
+ rel2.to: "base"; \
+ rel2.relative: 1.0 0.0; \
+ align: 0.5 0.0; \
+ } \
+ description { state: "reorder" 0.0; \
+ inherit: "default" 0.0; \
+ min: 0 (GENLIST_PADDING_SIZE_TOP_2LINE+2); \
+ max: -1 (GENLIST_PADDING_SIZE_TOP_2LINE+2); \
+ } \
+ )
+
+#define GENLIST_PART_PADDING_BOTTOM_2LINE \
+ GENLIST_PART_SPACER("elm.padding.bottom", \
+ description { state: "default" 0.0; \
+ min: 0 GENLIST_PADDING_SIZE_BOTTOM_2LINE; \
+ max: -1 GENLIST_PADDING_SIZE_BOTTOM_2LINE; \
+ fixed: 0 1; \
+ rel1.to: "base"; \
+ rel2.to: "base"; \
+ rel1.relative: 0.0 1.0; \
+ align: 0.5 1.0; \
+ } \
+ description { state: "reorder" 0.0; \
+ inherit: "default" 0.0; \
+ min: 0 (GENLIST_PADDING_SIZE_BOTTOM_2LINE+2); \
+ max: -1 (GENLIST_PADDING_SIZE_BOTTOM_2LINE+2); \
+ } \
+ )
+
+#define GENLIST_PART_PADDING_TOP \
+ GENLIST_PART_SPACER("elm.padding.top", \
+ description { \
+ state: "default" 0.0; \
+ min: 0 GENLIST_PADDING_SIZE_TOP; \
+ max: -1 GENLIST_PADDING_SIZE_TOP; \
+ fixed: 0 1; \
+ rel1.to: "base"; \
+ rel2.to: "base"; \
+ rel2.relative: 1.0 0.0; \
+ align: 0.5 0.0; \
+ } \
+ description { state: "reorder" 0.0; \
+ inherit: "default" 0.0; \
+ min: 0 (GENLIST_PADDING_SIZE_TOP+2); \
+ max: -1 (GENLIST_PADDING_SIZE_TOP+2); \
+ } \
+ )
+
+#define GENLIST_PART_PADDING_BOTTOM \
+ GENLIST_PART_SPACER("elm.padding.bottom", \
+ description { state: "default" 0.0; \
+ min: 0 GENLIST_PADDING_SIZE_BOTTOM; \
+ max: -1 GENLIST_PADDING_SIZE_BOTTOM; \
+ fixed: 0 1; \
+ rel1.to: "base"; \
+ rel2.to: "base"; \
+ rel1.relative: 0.0 1.0; \
+ align: 0.5 1.0; \
+ } \
+ description { state: "reorder" 0.0; \
+ inherit: "default" 0.0; \
+ min: 0 (GENLIST_PADDING_SIZE_BOTTOM+2); \
+ max: -1 (GENLIST_PADDING_SIZE_BOTTOM+2); \
+ } \
+ )
+
+
+#define GENLIST_PART_FLIP \
+ GENLIST_PART_RECT("elm.flip.bg", \
+ mouse_events: 0; \
+ description { state: "default" 0.0;\
+ color: 0 0 0 0;\
+ } \
+ description { state: "flipped" 0.0; \
+ inherit: "default" 0.0; \
+ rel2.offset: 0 -3; \
+ color: GENLIST_LIST_BG_COLOR;\
+ }\
+ ) \
+ GENLIST_PART_SPACER("elm.flip.padding.right", \
+ description { state: "default" 0.0; \
+ min: 26 0; \
+ max: 26 -1; \
+ fixed: 1 0; \
+ align: 1 0.5; \
+ rel1.relative: 1 0; \
+ } \
+ ) \
+ GENLIST_PART_ICON("elm.flip.content", \
+ GENLIST_DESCRIPTION("elm.padding.left", "elm.flip.padding.icon.left", \
+ "elm.padding.top", "elm.padding.bottom", \
+ visible: 0; \
+ aspect: 1 1; \
+ min: 0 96; \
+ ) \
+ description { state: "flipped" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 1; \
+ } \
+ ) \
+ GENLIST_PART_PADDING_R("elm.flip.padding.icon.left", "elm.flip.icon") \
+ GENLIST_PART_ICON( "elm.flip.icon", \
+ GENLIST_DESCRIPTION_RTB("elm.flip.padding.right", \
+ "elm.padding.top", "elm.padding.bottom", \
+ visible: 0; \
+ aspect: 1 1; \
+ align: 1 0.5; \
+ max: 158 74; \
+ ) \
+ description { state: "flipped" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 1; \
+ } \
+ )
+
+#define GENLIST_PART_FOCUS \
+ GENLIST_PART_IMAGE("focus_part", \
+ mouse_events: 0; \
+ description { state: "default" 0.0; \
+ visible: 0; \
+ image { \
+ normal: "genlist/00_focus.png"; \
+ border: 6 6 6 6; \
+ border_scale: 1; \
+ } \
+ } \
+ description { state: "focused" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 1; \
+ } \
+ ) \
+ GENLIST_PART_ICON("elm.icon.focus", \
+ repeat_events: 1; \
+ GENLIST_DESCRIPTION_ENVELOP("focus_part", \
+ fixed: 1 1; \
+ ) \
+ )
+
+#define GENLIST_PART_FOCUS_REORDER \
+ GENLIST_PART_IMAGE("focus_part_reorder", \
+ mouse_events: 0; \
+ description { state: "default" 0.0; \
+ rel1 { \
+ relative: 1 1; \
+ to_x: "bg_reorder_left"; \
+ to_y: "bg_reorder_top"; \
+ } \
+ rel2 { \
+ relative: 0 0; \
+ to_x: "bg_reorder_right"; \
+ to_y: "bg_reorder_bottom"; \
+ } \
+ visible: 0; \
+ image { \
+ normal: "genlist/00_focus.png"; \
+ border: 6 6 6 6; \
+ border_scale: 1; \
+ } \
+ } \
+ description { state: "focused" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 1; \
+ } \
+ )
+
+#define GENLIST_PART_PADDING_L( NAME, LEFT ) \
+ GENLIST_PART_SPACER(NAME, \
+ description { state: "default" 0.0; \
+ fixed: 1 0; \
+ min: GENLIST_PADDING_SIZE_DEFAULT 0; \
+ max: GENLIST_PADDING_SIZE_DEFAULT -1; \
+ align: 0 0.5; \
+ rel1 { \
+ relative: 1 0; \
+ to_x: LEFT; \
+ } \
+ rel2 { \
+ relative: 1 1; \
+ to_x: LEFT; \
+ } \
+ } \
+ )
+
+
+#define GENLIST_PART_FOCUS_NORMAL \
+ GENLIST_PART_FOCUS \
+ GENLIST_PART_FOCUS_REORDER
+
+
+#define GENLIST_PROGRAM_DEFAULT( TARGET ) \
+ program { name: "default"; \
+ signal: "elm,state,default"; \
+ source: "elm"; \
+ action: STATE_SET "default" 0.0; \
+ TARGET \
+ } \
+
+#define GENLIST_PROGRAM_DISABLED( TARGET ) \
+ program { name: "enabled"; \
+ signal: "elm,state,enabled"; \
+ source: "elm"; \
+ action: STATE_SET "default" 0.0; \
+ TARGET \
+ } \
+ program { name: "disabled"; \
+ signal: "elm,state,disabled"; \
+ source: "elm"; \
+ action: STATE_SET "disabled" 0.0; \
+ TARGET \
+ }
+
+#define GENLIST_PROGRAM_FOCUS \
+ program { name: "focused"; \
+ signal: "elm,state,focused"; \
+ source: "elm"; \
+ action: STATE_SET "focused" 0.0; \
+ target: "focus_part"; \
+ } \
+ program { name: "unfocused"; \
+ signal: "elm,state,unfocused"; \
+ source: "elm"; \
+ action: STATE_SET "default" 0.0; \
+ target: "focus_part"; \
+ }
+
+#define GENLIST_PROGRAM_FOCUS_NORMAL \
+ program { name: "focused"; \
+ signal: "elm,action,focus_highlight,show"; \
+ source: "elm"; \
+ script { \
+ new st[31]; \
+ new Float:vl; \
+ get_state(PART:"bg_reorder_clip", st, 30, vl); \
+ if (!strcmp(st, "reorder") || !strcmp(st, "decorate_reorder")) \
+ set_state(PART:"focus_part_reorder", "focused", 0.0); \
+ else \
+ set_state(PART:"focus_part", "focused", 0.0); \
+ } \
+ } \
+ program { name: "unfocused"; \
+ signal: "elm,action,focus_highlight,hide"; \
+ source: "elm"; \
+ action: STATE_SET "default" 0.0; \
+ target: "focus_part_reorder"; \
+ target: "focus_part"; \
+ }
+
+#define GENLIST_PROGRAM_FOCUS_DIALOGUE \
+ program { name: "focused"; \
+ signal: "elm,state,focused"; \
+ source: "elm"; \
+ script { \
+ new st[31]; \
+ new Float:vl; \
+ get_state(PART:"bg_dialogue", st, 30, vl); \
+ if (!strcmp(st, "top") || !strcmp(st, "top_selected") || !strcmp(st, "2depth_top")) \
+ set_state(PART:"focus_part_dialogue", "top_focused", 0.0); \
+ else if (!strcmp(st, "center") || !strcmp(st, "center_selected") || !strcmp(st, "2depth_center")) \
+ set_state(PART:"focus_part_dialogue", "center_focused", 0.0); \
+ else if (!strcmp(st, "bottom") || !strcmp(st, "bottom_selected") || !strcmp(st, "2depth_bottom")) \
+ set_state(PART:"focus_part_dialogue", "bottom_focused", 0.0); \
+ else if (!strcmp(st, "default") || !strcmp(st, "selected") || !strcmp(st, "2depth")) \
+ set_state(PART:"focus_part_dialogue", "focused", 0.0); \
+ } \
+ } \
+ program { name: "unfocused"; \
+ signal: "elm,state,unfocused"; \
+ source: "elm"; \
+ action: STATE_SET "default" 0.0; \
+ target: "focus_part_dialogue"; \
+ }
+
+#define GENLIST_PROGRAM_SOUND( SRC ) \
+ program { name: "play_sound"SRC; \
+ signal: "mouse,clicked,1"; \
+ source: SRC; \
+ script { \
+ new st[31]; \
+ new Float:vl; \
+ get_state(PART:SRC, st, 30, vl); \
+ } \
+ }
+
+#define GENLIST_PROGRAM_SELECT( TARGET ) \
+ program { name: "selected"; \
+ signal: "elm,state,selected"; \
+ source: "elm"; \
+ action: STATE_SET "selected" 0.0; \
+ TARGET \
+ } \
+ program { name: "unselected"; \
+ signal: "elm,state,unselected"; \
+ source: "elm"; \
+ action: STATE_SET "default" 0.0; \
+ TARGET \
+ }
+
+#define GENLIST_PROGRAM_DECORATE_REORDER( NAME, TARGET ) \
+ program { name: "reorder_enabled"NAME; \
+ signal: "elm,state,reorder,mode_set"; \
+ source: "elm"; \
+ script { \
+ new st[31]; \
+ new Float:vl; \
+ get_state(PART:"state", st, 30, vl); \
+ if (!strcmp(st, "decorate") || !strcmp(st, "decorate_reorder")) { \
+ run_program(PROGRAM:"decorate_reorder_set"NAME); \
+ } else { \
+ run_program(PROGRAM:"reorder_set"NAME); \
+ } \
+ } \
+ } \
+ program { name: "reorder_disabled"NAME; \
+ signal: "elm,state,reorder,mode_unset"; \
+ source: "elm"; \
+ script { \
+ new st[31]; \
+ new Float:vl; \
+ get_state(PART:"state", st, 30, vl); \
+ if (!strcmp(st, "decorate") || !strcmp(st, "decorate_reorder")) { \
+ run_program(PROGRAM:"decorate_set"NAME); \
+ } else { \
+ run_program(PROGRAM:"default_set"NAME); \
+ } \
+ } \
+ } \
+ program { name: "decorate_enabled_effect"NAME; \
+ signal: "elm,state,decorate,enabled,effect";\
+ source: "elm";\
+ script { \
+ new st[31]; \
+ new Float:vl; \
+ get_state(PART:"state", st, 30, vl); \
+ if (!strcmp(st, "reorder") || !strcmp(st, "decorate_reorder")) { \
+ run_program(PROGRAM:"decorate_reorder_set"NAME); \
+ } else { \
+ run_program(PROGRAM:"decorate_set"NAME); \
+ } \
+ } \
+ }\
+ program { name: "decorate_disabled_effect"NAME;\
+ signal: "elm,state,decorate,disabled,effect";\
+ source: "elm";\
+ script { \
+ new st[31]; \
+ new Float:vl; \
+ get_state(PART:"state", st, 30, vl); \
+ if (!strcmp(st, "reorder") || !strcmp(st, "decorate_reorder")) { \
+ run_program(PROGRAM:"reorder_set"NAME); \
+ } else { \
+ run_program(PROGRAM:"default_set"NAME); \
+ } \
+ } \
+ }\
+ program { name: "decorate_enabled"NAME;\
+ signal: "elm,state,decorate,enabled";\
+ source: "elm";\
+ script { \
+ new st[31]; \
+ new Float:vl; \
+ get_state(PART:"state", st, 30, vl); \
+ if (!strcmp(st, "reorder") || !strcmp(st, "decorate_reorder")) { \
+ run_program(PROGRAM:"decorate_reorder_set"NAME); \
+ } else { \
+ run_program(PROGRAM:"decorate_set"NAME); \
+ } \
+ } \
+ }\
+ program { name: "decorate_disabled"NAME;\
+ signal: "elm,state,decorate,disabled";\
+ source: "elm";\
+ script { \
+ new st[31]; \
+ new Float:vl; \
+ get_state(PART:"state", st, 30, vl); \
+ if (!strcmp(st, "reorder") || !strcmp(st, "decorate_reorder")) { \
+ run_program(PROGRAM:"reorder_set"NAME); \
+ } else { \
+ run_program(PROGRAM:"default_set"NAME); \
+ } \
+ } \
+ } \
+ program { name: "default_set"NAME; \
+ action: STATE_SET "default" 0.0;\
+ target: "state"; \
+ TARGET \
+ } \
+ program { name: "decorate_set"NAME; \
+ action: STATE_SET "decorate" 0.0;\
+ target: "state"; \
+ TARGET \
+ } \
+ program { name: "reorder_set"NAME; \
+ action: STATE_SET "reorder" 0.0;\
+ target: "state"; \
+ TARGET \
+ } \
+ program { name: "decorate_reorder_set"NAME; \
+ action: STATE_SET "decorate_reorder" 0.0;\
+ target: "state"; \
+ TARGET \
+ }
+
+#define GENLIST_PROGRAM_FLIP \
+ program { name: "flip_enabled"; \
+ signal: "elm,state,flip,enabled"; \
+ source: "elm"; \
+ transition: DECELERATE 0.5; \
+ action: STATE_SET "flipped" 0.0; \
+ target: "elm.flip.content"; \
+ target: "elm.flip.icon"; \
+ } \
+ program { name: "flip_disabled"; \
+ signal: "elm,state,flip,disabled"; \
+ source: "elm"; \
+ transition: DECELERATE 0.5; \
+ action: STATE_SET "default" 0.0; \
+ target: "elm.flip.content"; \
+ target: "elm.flip.icon"; \
+ } \
+ program { name: "flip_enabled_bg"; \
+ signal: "elm,state,flip,enabled"; \
+ source: "elm"; \
+ action: STATE_SET "flipped" 0.0; \
+ target: "elm.flip.bg"; \
+ } \
+ program { name: "flip_disabled_bg"; \
+ signal: "elm,state,flip,disabled"; \
+ source: "elm"; \
+ action: STATE_SET "default" 0.0; \
+ target: "elm.flip.bg"; \
+ }
+
+
+#define GENLIST_PROGRAMS_NORMAL( TARGET ) \
+ programs { \
+ GENLIST_PROGRAM_DEFAULT( TARGET \
+ target: "bg"; \
+ target: "bg_clip"; \
+ target: "bottom_line"; \
+ target: "bottom_line2"; \
+ target: "bottom_line_clip"; \
+ target: "bg_reorder"; \
+ target: "elm.padding.left"; \
+ target: "elm.padding.right"; \
+ target: "elm.padding.top"; \
+ target: "elm.padding.bottom"; \
+ ) \
+ GENLIST_PROGRAM_DISABLED( TARGET \
+ target: "bg"; \
+ target: "bg_reorder"; \
+ ) \
+ GENLIST_PROGRAM_FOCUS_NORMAL \
+ GENLIST_PROGRAM_SELECT( TARGET \
+ target: "bg"; \
+ target: "bg_reorder"; \
+ ) \
+ GENLIST_PROGRAM_SOUND("bg") \
+ GENLIST_PROGRAM_SOUND("bg_reorder") \
+ GENLIST_PROGRAM_DECORATE_REORDER("normal", TARGET \
+ target: "bg_clip"; \
+ target: "bg_reorder_clip"; \
+ target: "bottom_line_clip"; \
+ target: "elm.padding.left"; \
+ target: "elm.padding.right"; \
+ target: "elm.padding.top"; \
+ target: "elm.padding.bottom"; \
+ ) \
+ GENLIST_PROGRAM_FLIP \
+ }
+
+ group { GENLIST_NAME("video.multiline/2text/default")
+ GENLIST_PROLOG_NORMAL
+ data.item: "texts" "elm.text.1 elm.text.2";
+
+ parts {
+ GENLIST_PART_BASE
+ GENLIST_PART_BG_NORMAL
+ GENLIST_PART_BOTTOM_LINE
+ GENLIST_PART_PADDING_LEFT
+ GENLIST_PART_PADDING_RIGHT
+ GENLIST_PART_PADDING_TOP_2LINE
+ GENLIST_PART_PADDING_BOTTOM_2LINE
+
+ GENLIST_PART_TEXT("elm.text.1",
+ GENLIST_DESCRIPTION_LRT("elm.padding.left", "elm.padding.right", "elm.padding.top",
+ GENLIST_PARAM_LISTITEM
+ min: 0 GENLIST_HEIGHT_2LINE_MAIN;
+ fixed: 0 1;
+ )
+ GENLIST_DESCRIPTION_LISTITEM_OTHERS
+ )
+ //GENLIST_PART_PADDING_T_SIZE("elm.padding.text1.bottom", "elm.text.1", 0)
+ GENLIST_PART_TEXTBLOCK("elm.text.2",
+ GENLIST_DESCRIPTION("elm.padding.left", "elm.padding.right", "elm.text.1", "elm.padding.bottom",
+ GENLIST_PARAM_SUBITEM_DEFAULT_TB_WRAP
+ min: 0 GENLIST_HEIGHT_MULTILINE_SUB;
+ )
+ GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS_TB_WRAP
+ )
+ GENLIST_PART_FLIP
+ GENLIST_PART_FOCUS_NORMAL
+ }
+ GENLIST_PROGRAMS_NORMAL( target: "elm.text.1"; target: "elm.text.2"; )
+ }
+
+ group { GENLIST_NAME("video.multiline/1text.2icon/default")
+ GENLIST_PROLOG_NORMAL
+ data.item: "texts" "elm.text";
+ data.item: "contents" "elm.icon.1 elm.icon.2";
+
+ parts {
+ GENLIST_PART_BASE
+ GENLIST_PART_BG_NORMAL
+ GENLIST_PART_BOTTOM_LINE
+ GENLIST_PART_PADDING_LEFT
+ GENLIST_PART_PADDING_RIGHT
+ GENLIST_PART_PADDING_TOP
+ GENLIST_PART_PADDING_BOTTOM
+
+ GENLIST_PART_ICON_BTN_01_LTB("elm.icon.2", "elm.padding.left", "elm.padding.top", "elm.padding.bottom")
+ GENLIST_PART_PADDING_L("elm.padding.icon2.right", "elm.icon.2")
+ GENLIST_PART_ICON_MEDIUM_L( "elm.icon.1", "elm.padding.icon2.right")
+ GENLIST_PART_PADDING_L("elm.padding.icon1.right", "elm.icon.1")
+ GENLIST_PART_TEXTBLOCK("elm.text",
+ GENLIST_DESCRIPTION_LR("elm.padding.icon1.right", "elm.padding.right",
+ GENLIST_PARAM_MAINITEM_1TEXT_DEFAULT_TB_WRAP
+ min: 0 GENLIST_HEIGHT_1LINE;
+ )
+ GENLIST_DESCRIPTION_MAINITEM_1TEXT_DEFAULT_OTHERS_TB_WRAP
+ )
+ GENLIST_PART_FLIP
+ GENLIST_PART_FOCUS_NORMAL
+ }
+ GENLIST_PROGRAMS_NORMAL( target: "elm.text"; target: "elm.icon.1"; target: "elm.icon.2"; )
+ }
+
+ group { GENLIST_NAME("video.multiline/2text.1icon/default")
+ GENLIST_PROLOG_NORMAL
+ data.item: "texts" "elm.text.1 elm.text.2" ;
+ data.item: "contents" "elm.icon";
+ parts {
+ GENLIST_PART_BASE
+ GENLIST_PART_BG_NORMAL
+ GENLIST_PART_BOTTOM_LINE
+ GENLIST_PART_PADDING_LEFT
+ GENLIST_PART_PADDING_RIGHT
+ GENLIST_PART_PADDING_TOP_2LINE
+ GENLIST_PART_PADDING_BOTTOM_2LINE
+
+ GENLIST_PART_ICON_MEDIUM_L( "elm.icon", "elm.padding.left")
+ GENLIST_PART_PADDING_L("elm.padding.icon.right", "elm.icon")
+ GENLIST_PART_TEXTBLOCK("elm.text.1",
+ GENLIST_DESCRIPTION_LRT("elm.padding.icon.right", "elm.padding.right", "elm.padding.top",
+ GENLIST_PARAM_MAINITEM_DEFAULT_TB_WRAP
+ min: 0 GENLIST_HEIGHT_2LINE_MAIN;
+ )
+ GENLIST_DESCRIPTION_MAINITEM_DEFAULT_OTHERS_TB_WRAP
+ )
+ GENLIST_PART_TEXTBLOCK("elm.text.2",
+ GENLIST_DESCRIPTION("elm.padding.icon.right", "elm.padding.right", "elm.text.1", "elm.padding.bottom",
+ GENLIST_PARAM_MULTI_SUBITEM_DEFAULT_TB_WRAP
+ min: 0 GENLIST_HEIGHT_MULTILINE_SUB;
+ )
+ GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS_TB_WRAP
+ )
+ GENLIST_PART_FLIP
+ GENLIST_PART_FOCUS_NORMAL
+ }
+ GENLIST_PROGRAMS_NORMAL( target: "elm.text.1"; target: "elm.text.2"; target: "elm.icon";)
+ }
+
+
+ group { GENLIST_NAME("video.multiline/1text.1icon/default")
+ GENLIST_PROLOG_NORMAL
+ data.item: "texts" "elm.text";
+ data.item: "contents" "elm.icon";
+ parts {
+ GENLIST_PART_BASE
+ GENLIST_PART_BG_NORMAL
+ GENLIST_PART_BOTTOM_LINE
+ GENLIST_PART_PADDING_LEFT
+ GENLIST_PART_PADDING_RIGHT
+ GENLIST_PART_PADDING_TOP
+ GENLIST_PART_PADDING_BOTTOM
+
+ GENLIST_PART_ICON_MEDIUM_L( "elm.icon", "elm.padding.left")
+ GENLIST_PART_PADDING_L("elm.padding.icon.right", "elm.icon")
+ GENLIST_PART_TEXTBLOCK("elm.text",
+ GENLIST_DESCRIPTION_LR("elm.padding.icon.right", "elm.padding.right",
+ GENLIST_PARAM_MAINITEM_CUSTOM_TB_WRAP
+ min: 0 GENLIST_HEIGHT_1LINE;
+ )
+ GENLIST_DESCRIPTION_MAINITEM_DEFAULT_OTHERS_TB_WRAP
+ )
+ GENLIST_PART_FLIP
+ GENLIST_PART_FOCUS_NORMAL
+ }
+ GENLIST_PROGRAMS_NORMAL( target: "elm.text"; target: "elm.icon";)
+ }
+
+ group {
+ name: "elm/genlist/item/custom.subtitle/default";
+ alias: "elm/genlist/item_compress/custom.subtitle/default";
+ alias: "elm/genlist/tree/custom.subtitle/default";
+ alias: "elm/genlist/tree_compress/custom.subtitle/default";
+ data.item: "stacking" "above";
+ data.item: "selectraise" "on";
+ data.item: "texts" "elm.text";
+ data.item: "contents" "elm.icon";
+ parts {
+ part {
+ name: "base";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ //color: 22 28 45 255;
+ color: GENLIST_LIST_BG_POPUP_COLOR;
+ min: 0 76;
+ }
+ }
+ part {
+ name: "elm.text";
+ scale: 1;
+ type: TEXT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ align: 0.0 0.0;
+ rel1 {
+ relative: 26/618 0.0; offset: 0 0; to: "base";
+ }
+ rel2 {
+ relative: 556/618 1.0; to: "base";
+ }
+ text {
+ align: 0.0 0.5;
+ min: 0 1;
+ size: 27;
+ }
+ color: 21 108 148 255;
+ }
+ }
+ part {
+ name: "elm.icon";
+ scale: 0;
+ type: SWALLOW;
+ description {
+ state: "default" 0.0;
+ align: 1.0 0.0;
+ fixed: 1 1;
+ rel1 {
+ relative: 1.0 23/76; to: "base";
+ }
+ rel2 {
+ relative: 1.0 59/76; to: "base"; offset:-26 0;
+ }
+ min: 36 36;
+ max: 36 36;
+ }
+ }
+
+ part {
+ name:"bottom.line";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ //min: PV_POPUP_TITLE_LINE_WIDTH_HEIGHT_MIN;
+ //color: PV_GENLIST_LIST_LINE1_POPUP_COLOR;
+ color: 217 217 217 255;
+ fixed: 0 1;
+ align: 0.5 1.0;
+ rel1 { relative: 0.0 1.0; to_x: "base"; to_y: "elm.icon"; offset:4 13;}
+ rel2 { relative: 1.0 1.0; to_x: "base"; to_y: "elm.icon"; offset:-5 17;}
+ }
+ }
+ }
+}/* group */
+
+
+#define GENLIST_POPUP_STYLE(NAME) \
+ group { GENLIST_NAME(NAME"/popup/default") \
+ inherit: "elm/genlist/item/"NAME"/default"; \
+ images { \
+ image: "genlist/00_popup_list_press.png" COMP; \
+ } \
+ parts { \
+ GENLIST_PART_SPACER("bg_left_top_padding", \
+ description { state: "default" 0.0; \
+ min: POPUP_ITEM_BG_LEFT_TOP_PAD_MIN_INC; \
+ fixed: 1 1; \
+ align: 0 0; \
+ rel2.relative: 0 0; \
+ } \
+ ) \
+ GENLIST_PART_SPACER("bg_right_bottom_padding", \
+ description { state: "default" 0.0; \
+ min: POPUP_ITEM_BG_RIGHT_BOTTOM_PAD_MIN_INC; \
+ fixed: 1 1; \
+ align: 1 1; \
+ rel1.relative: 1 1; \
+ } \
+ ) \
+ GENLIST_PART_IMAGE("bg", \
+ description { state: "default" 0.0; \
+ image { \
+ normal: "genlist/00_popup_list_press.png"; \
+ border: POPUP_ITEM_BG_PRESSED_BORDER_INC; \
+ border_scale: 1; \
+ } \
+ rel1 { \
+ relative: 1 1; \
+ to_x: "bg_left_top_padding"; \
+ to_y: "bg_left_top_padding"; \
+ } \
+ rel2 { \
+ relative: 0 0; \
+ to_x: "bg_right_bottom_padding"; \
+ to_y: "bg_right_bottom_padding"; \
+ } \
+ color: GENLIST_LIST_BG_POPUP_COLOR; \
+ } \
+ description { state: "disabled" 0.0; \
+ inherit: "default" 0.0; \
+ color: GENLIST_LIST_BG_POPUP_COLOR; \
+ } \
+ description { state: "selected" 0.0; \
+ inherit: "default" 0.0; \
+ color: GENLIST_LIST_BG_POPUP_PRESS_COLOR; \
+ } \
+ ) \
+ GENLIST_PART_RECT("bottom_line", \
+ description { state: "default" 0.0; \
+ color: GENLIST_LIST_LINE1_POPUP_COLOR; \
+ rel1.to: "bottom_line2"; \
+ rel2.to: "bottom_line2"; \
+ rel2.relative: 1 0; \
+ } \
+ description { state: "disabled" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 0; \
+ } \
+ ) \
+ GENLIST_PART_RECT("bottom_line2", \
+ description { state: "default" 0.0; \
+ color: GENLIST_LIST_LINE2_POPUP_COLOR; \
+ rel1.to_x: "bg"; \
+ rel2.to_x: "bg"; \
+ rel1.offset: 1 0; \
+ rel2.offset: -2 -1; \
+ } \
+ description { state: "disabled" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 0; \
+ } \
+ ) \
+ } \
+ programs { \
+ program { name : "hide_bottomline"; \
+ signal: "elm,state,bottomline,hide"; \
+ source: ""; \
+ action: STATE_SET "disabled" 0.0; \
+ target: "bottom_line"; \
+ target: "bottom_line2"; \
+ } \
+ program { name : "show_bottomline"; \
+ signal: "elm,state,bottomline,show"; \
+ source: ""; \
+ action: STATE_SET "default" 0.0; \
+ target: "bottom_line"; \
+ target: "bottom_line2"; \
+ } \
+ } \
+ }
+
+
+//popup
+GENLIST_POPUP_STYLE("video.multiline/2text")
+GENLIST_POPUP_STYLE("video.multiline/1text.2icon")
+GENLIST_POPUP_STYLE("video.multiline/1text.1icon")
+GENLIST_POPUP_STYLE("video.multiline/2text.1icon")
+
+#define POPUP_FS_OUTSIDE_PADDING "500"
+#define POPUP_FS_TITLE_AREA_HEIGHT "72"
+
+#define POPUP_FS_TITLE_LEFT_PADDING 15
+#define POPUP_FS_TITLE_RIGHT_PADDING 15
+#define POPUP_FS_TITLE_TOP_PADDING 3
+#define POPUP_FS_TITLE_BOTTOM_PADDING 3
+#define POPUP_SUBTITLE_HEIGHT 28
+
+
+#define POPUP_FS_DEFAULT_TEXT_FONT_SIZE_INC 30
+#define POPUP_FS_SUBTITLE_TEXT_FONT_SIZE_INC 21
+
+#define POPUP_FS_DEFAULT_BASE_DEFAULT_MIN_INC 480 0
+#define POPUP_FS_DEFAULT_BASE_DEFAULT_MAX_INC 480 800
+#define POPUP_FS_DEFAULT_BASE_LANDSCAPE_MIN_INC 800 0
+#define POPUP_FS_DEFAULT_BASE_LANDSCAPE_MAX_INC 800 480
+#define POPUP_FS_DEFAULT_TITLE_DEFAULT_MIN_INC 480 72
+#define POPUP_FS_DEFAULT_TITLE_DEFAULT_MAX_INC 800 72
+#define POPUP_FS_DEFAULT_BUTTON_BG_DEFAULT_MIN_INC 480 0
+#define POPUP_FS_DEFAULT_TEXT_SHADOW_COLOR_INC "#08080855"
+#define POPUP_FS_SUBTITLE_TEXT_SHADOW_COLOR_INC "#08080855"
+
+ group { name: "elm/popup/fullsrceen/default";
+ data {
+ item: "focus_highlight" "on";
+ item: "default_orient" "2"; //top, center:1 bottom:2
+ item: "title_height" POPUP_FS_TITLE_AREA_HEIGHT;
+ item: "popup_outside_pad" POPUP_FS_OUTSIDE_PADDING;
+ }
+ styles {
+ style { name: "popup_fs_title_style";
+ base: "font=Tizen:style=Regular align=center font_size="POPUP_FS_DEFAULT_TEXT_FONT_SIZE_INC" color=#FFFFFF wrap=mixed ellipsis=1.0 style=far_shadow,bottom shadow_color="POPUP_FS_DEFAULT_TEXT_SHADOW_COLOR_INC"";
+ tag: "br" "\n";
+ tag: "tab" "\t";
+ }
+ style { name: "popup_subtitle_style";
+ base: "font=Tizen:style=Regular align=center font_size="POPUP_FS_SUBTITLE_TEXT_FONT_SIZE_INC" color=#FFFFFF wrap=mixed ellipsis=1.0 style=far_shadow,bottom shadow_color="POPUP_FS_SUBTITLE_TEXT_SHADOW_COLOR_INC"";
+ tag: "br" "\n";
+ tag: "tab" "\t";
+ }
+ }
+ parts {
+ part { name: "base";
+ scale: 1;
+ type: RECT;
+ description { state: "default" 0.0;
+ min: POPUP_FS_DEFAULT_BASE_DEFAULT_MAX_INC;
+ max: POPUP_FS_DEFAULT_BASE_DEFAULT_MAX_INC;
+ fixed: 1 0;
+ }
+ description { state: "landscape" 0.0;
+ inherit: "default" 0.0;
+ min: POPUP_FS_DEFAULT_BASE_LANDSCAPE_MAX_INC;
+ max: POPUP_FS_DEFAULT_BASE_LANDSCAPE_MAX_INC;
+ }
+ }
+ part { name: "bg";
+ type: RECT;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1.to: "base";
+ rel2.to: "base";
+ color: 255 255 255 255;
+ }
+ }
+ part { name: "access.outline";
+ type: RECT;
+ repeat_events: 1;
+ description { state: "default" 0.0;
+ fixed: 1 1;
+ rel1.to: "base";
+ rel2.to: "base";
+ color: 0 0 0 0;
+ }
+ }
+ part { name: "elm.bg.title";
+ type: RECT;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: 0 0;
+ max: 0 0;
+ fixed: 1 1;
+ align: 0.5 0.0;
+ rel1.relative: 0.0 0.0;
+ rel2.relative: 0.0 1.0;
+ color: 115 167 191 255;
+ }
+ description { state: "visible" 0.0;
+ inherit: "default" 0.0;
+ min: POPUP_FS_DEFAULT_TITLE_DEFAULT_MAX_INC;
+ max: POPUP_FS_DEFAULT_TITLE_DEFAULT_MAX_INC;
+ }
+ description { state: "landscape" 0.0;
+ inherit: "default" 0.0;
+ min: POPUP_FS_DEFAULT_TITLE_DEFAULT_MAX_INC;
+ max: POPUP_FS_DEFAULT_TITLE_DEFAULT_MAX_INC;
+ }
+ }
+ part { name: "title_left_top_padding";
+ type: SPACER;
+ scale: 1;
+ description { state: "default" 0.0;
+ align: 0.0 0.0;
+ rel1.to: "elm.bg.title";
+ fixed: 1 1;
+ min: POPUP_FS_TITLE_LEFT_PADDING POPUP_FS_TITLE_TOP_PADDING;
+ max: POPUP_FS_TITLE_LEFT_PADDING POPUP_FS_TITLE_TOP_PADDING;
+ }
+ }
+ part { name: "title_right_bottom_padding";
+ type: SPACER;
+ scale: 1;
+ description { state: "default" 0.0;
+ align: 1.0 1.0;
+ rel2.to: "elm.bg.title";
+ fixed: 1 1;
+ min: POPUP_FS_TITLE_RIGHT_PADDING POPUP_FS_TITLE_BOTTOM_PADDING;
+ max: POPUP_FS_TITLE_RIGHT_PADDING POPUP_FS_TITLE_BOTTOM_PADDING;
+ }
+ }
+ part { name: "elm.text.title";
+ type: TEXTBLOCK;
+ scale:1;
+ description { state: "default" 0.0;
+ fixed: 1 1;
+ text {
+ style: "popup_fs_title_style";
+ size: POPUP_FS_DEFAULT_TEXT_FONT_SIZE_INC;
+ }
+ rel1 {
+ relative: 1.0 1.0;
+ to: "title_left_top_padding";
+ }
+ rel2 {
+ relative: 0.0 0.0;
+ to: "title_right_bottom_padding";
+ }
+ }
+ description { state: "subtitle_visible" 0.0;
+ inherit: "default" 0.0;
+ rel2 {
+ relative: 1.0 0.0;
+ to: "elm.text.subtitle";
+ }
+ }
+ }
+
+ part { name: "elm.text.subtitle";
+ type: TEXTBLOCK;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: 0 POPUP_SUBTITLE_HEIGHT;
+ max: -1 POPUP_SUBTITLE_HEIGHT;
+ text.style: "popup_subtitle_style";
+ rel1 {
+ relative: 1.0 0.0;
+ to_x: "title_left_top_padding";
+ to_y: "title_right_bottom_padding";
+ }
+ rel2 {
+ relative: 0.0 0.0;
+ to: "title_right_bottom_padding";
+ }
+ align: 0.5 1.0;
+ fixed: 1 1;
+ visible: 0;
+ }
+ description { state: "subtitle_visible" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ part { name: "access.title";
+ type: RECT;
+ repeat_events: 1;
+ description { state: "default" 0.0;
+ rel1.to: "elm.bg.title";
+ rel2.to: "elm.bg.title";
+ color: 0 0 0 0;
+ }
+ }
+ part { name: "elm.swallow.content";
+ type: SWALLOW;
+ scale: 1;
+ description { state: "default" 0.0;
+ fixed: 1 0;
+ rel1.to: "base";
+ rel2.to: "base";
+ }
+ description { state: "show_title_area" 0.0;
+ inherit: "default" 0.0;
+ rel1 {
+ relative: 0.0 1.0;
+ to_x: "base";
+ to_y: "elm.bg.title";
+ }
+ rel2.to: "base";
+ }
+ description { state: "show_action_area" 0.0;
+ inherit: "default" 0.0;
+ rel1.to: "base";
+ rel2 {
+ relative: 1.0 0.0;
+ to_x: "base";
+ to_y: "elm.swallow.action_area.bg";
+ }
+ }
+ description { state: "show_action_title_area" 0.0;
+ inherit: "default" 0.0;
+ rel1 {
+ relative: 0.0 1.0;
+ to_x: "base";
+ to_y: "elm.bg.title";
+ }
+ rel2 {
+ relative: 1.0 0.0;
+ to_x: "base";
+ to_y: "elm.swallow.action_area.bg";
+ }
+ }
+ }
+ part { name: "access.body";
+ type: RECT;
+ repeat_events: 1;
+ description { state: "default" 0.0;
+ fixed: 1 1;
+ rel1.to: "elm.swallow.content";
+ rel2.to: "elm.swallow.content";
+ color: 0 0 0 0;
+ }
+ }
+ part { name: "elm.swallow.action_area.bg";
+ type: RECT;
+ scale : 1;
+ description { state: "default" 0.0;
+ fixed : 1 1;
+ align: 0.5 1.0;
+ visible: 0;
+ rel1 {
+ relative: 0.0 1.0;
+ to: "base";
+ }
+ rel2.to: "base";
+ }
+ description { state: "visible" 0.0;
+ inherit: "default" 0.0;
+ min: POPUP_FS_DEFAULT_BUTTON_BG_DEFAULT_MIN_INC;
+ visible: 1;
+ color: 245 245 242 255;
+ }
+ }
+ part { name: "elm.swallow.action_area";
+ type: SWALLOW;
+ scale : 1;
+ description { state: "default" 0.0;
+ rel1.to: "elm.swallow.action_area.bg";
+ rel2.to: "elm.swallow.action_area.bg";
+ }
+ }
+ }
+ programs {
+ program { name: "show_subtitle";
+ signal: "elm,state,subtitle,text,visible";
+ source: "elm";
+ action: STATE_SET "subtitle_visible" 0.0;
+ target: "elm.text.title";
+ target: "elm.text.subtitle";
+ }
+ program { name: "hide_subtitle";
+ signal: "elm,state,subtitle,text,hidden";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "elm.text.title";
+ target: "elm.text.subtitle";
+ }
+ program { name: show_title_area;
+ signal: "elm,state,title_area,visible";
+ source: "elm";
+ script {
+ new st[31];
+ new Float:vl;
+ get_state(PART:"elm.swallow.action_area.bg", st, 30, vl);
+ if (!strcmp(st, "visible"))
+ set_state(PART:"elm.swallow.content", "show_action_title_area", 0.0);
+ else
+ set_state(PART:"elm.swallow.content", "show_title_area", 0.0);
+ set_state(PART:"elm.bg.title", "visible", 0.0);
+ }
+ }
+ program { name: hide_title_area;
+ signal: "elm,state,title_area,hidden";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ script {
+ new st[31];
+ new Float:vl;
+ get_state(PART:"elm.swallow.action_area.bg", st, 30, vl);
+ if ((!strcmp(st, "visible")) || (!strcmp(st, "landscape_visible")))
+ set_state(PART:"elm.swallow.content", "show_action_area", 0.0);
+ else
+ set_state(PART:"elm.swallow.content", "default", 0.0);
+ set_state(PART:"elm.bg.title", "default", 0.0);
+ }
+ }
+ program { name: show_action_area;
+ signal: "elm,state,action_area,visible";
+ source: "elm";
+ script {
+ new st[31];
+ new Float:vl;
+ get_state(PART:"elm.bg.title", st, 30, vl);
+ if ((!strcmp(st, "visible")))
+ set_state(PART:"elm.swallow.content", "show_action_title_area", 0.0);
+ else
+ set_state(PART:"elm.swallow.content", "show_action_area", 0.0);
+ set_state(PART:"elm.swallow.action_area.bg", "visible", 0.0);
+ }
+ }
+ program { name: hide_action_area;
+ signal: "elm,state,action_area,hidden";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ script {
+ new st[31];
+ new Float:vl;
+ get_state(PART:"elm.bg.title", st, 30, vl);
+ if ((!strcmp(st, "visible")))
+ set_state(PART:"elm.swallow.content", "show_title_area", 0.0);
+ else
+ set_state(PART:"elm.swallow.content", "default", 0.0);
+ set_state(PART:"elm.swallow.action_area.bg", "default", 0.0);
+ }
+ }
+ program { name: "change_to_landscape";
+ action: STATE_SET "landscape" 0.0;
+ target: "base";
+ target: "elm.bg.title";
+ after: "orientation_change";
+ }
+ program { name: "title_change_to_portrait";
+ action: STATE_SET "visible" 0.0;
+ target: "elm.bg.title";
+ }
+ program { name: "orientation_change";
+ action: SIGNAL_EMIT "elm,state,orientation,changed" "";
+ after: "title_change_to_portrait";
+ }
+ program { name: "change_to_portrait";
+ action: STATE_SET "default" 0.0;
+ target: "base";
+ after: "orientation_change";
+ }
+ program { name: "landscape_mode";
+ source: "elm";
+ signal: "elm,state,orient,90";
+ after: "change_to_landscape";
+ }
+ program { name: "landscape_mode2";
+ source: "elm";
+ signal: "elm,state,orient,270";
+ after: "change_to_landscape";
+ }
+ program { name: "portrait_mode";
+ source: "elm";
+ signal: "elm,state,orient,0";
+ after: "change_to_portrait";
+ }
+ program { name: "portrait_mode2";
+ source: "elm";
+ signal: "elm,state,orient,180";
+ after: "change_to_portrait";
+ }
+ } /* end of programs */
+ }
+ group { name: "elm/popup/fullsrceen/notitle/default";
+ data {
+ item: "focus_highlight" "on";
+ item: "default_orient" "2"; //top, center:1 bottom:2
+ item: "title_height" POPUP_FS_TITLE_AREA_HEIGHT;
+ item: "popup_outside_pad" POPUP_FS_OUTSIDE_PADDING;
+ }
+ parts {
+ part { name: "base";
+ scale: 1;
+ type: RECT;
+ description { state: "default" 0.0;
+ min: POPUP_FS_DEFAULT_BASE_DEFAULT_MAX_INC;
+ max: POPUP_FS_DEFAULT_BASE_DEFAULT_MAX_INC;
+ fixed: 1 0;
+ }
+ description { state: "landscape" 0.0;
+ inherit: "default" 0.0;
+ min: POPUP_FS_DEFAULT_BASE_LANDSCAPE_MAX_INC;
+ max: POPUP_FS_DEFAULT_BASE_LANDSCAPE_MAX_INC;
+ }
+ }
+ part { name: "bg";
+ type: RECT;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1.to: "base";
+ rel2.to: "base";
+ color: 255 255 255 255;
+ }
+ }
+
+ part { name: "elm.bg.title";
+ type: RECT;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: 0 0;
+ max: 0 0;
+ fixed: 1 1;
+ align: 0.5 0.0;
+ rel1.relative: 0.0 0.0;
+ rel2.relative: 0.0 1.0;
+ visible: 0;
+ }
+ }
+ part { name: "elm.swallow.content";
+ type: SWALLOW;
+ scale: 1;
+
+ description { state: "default" 0.0;
+ rel1 {
+ relative: 0.0 1.0;
+ to_x: "base";
+ to_y: "elm.bg.title";
+ }
+ rel2.to: "base";
+ }
+ }
+ }
+
+ programs {
+ program { name: "change_to_landscape";
+ action: STATE_SET "landscape" 0.0;
+ target: "base";
+ after: "orientation_change";
+ }
+ program { name: "orientation_change";
+ action: SIGNAL_EMIT "elm,state,orientation,changed" "";
+ }
+ program { name: "change_to_portrait";
+ action: STATE_SET "default" 0.0;
+ target: "base";
+ after: "orientation_change";
+ }
+ program { name: "landscape_mode";
+ source: "elm";
+ signal: "elm,state,orient,90";
+ after: "change_to_landscape";
+ }
+ program { name: "landscape_mode2";
+ source: "elm";
+ signal: "elm,state,orient,270";
+ after: "change_to_landscape";
+ }
+ program { name: "portrait_mode";
+ source: "elm";
+ signal: "elm,state,orient,0";
+ after: "change_to_portrait";
+ }
+ program { name: "portrait_mode2";
+ source: "elm";
+ signal: "elm,state,orient,180";
+ after: "change_to_portrait";
+ }
+ } /* end of programs */
+ }
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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;
+
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+ group {
+ name: "elm/layout/application/play_view";
+ parts {
+ part {
+ name: "elm.swallow.bg";
+ type: SWALLOW;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 255;
+ }
+ }
+ part {
+ name: "elm.swallow.event";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: 0.0 0.0; }
+ rel2 { relative: 1.0 1.0; }
+ }
+ }
+ part {
+ name: "elm.swallow.content";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ }
+ }
+ } /* parts */
+} /* group */
+
+ group {
+ name: "elm/layout/application/multi_view";
+ parts {
+ part {
+ name: "elm.swallow.bg";
+ type: SWALLOW;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 255;
+ }
+ }
+ part {
+ name: "elm.swallow.content";
+ type: SWALLOW;
+ mouse_events: 1;
+ repeat_events : 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ }
+ }
+ } /* parts */
+} /* group */
+group {
+ name: "elm/layout/application/detail_view";
+ parts {
+ part {
+ name: "elm.swallow.bg";
+ type: SWALLOW;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 255;
+ }
+ }
+ part {
+ name: "elm.swallow.event";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: 0.0 0.0; }
+ rel2 { relative: 1.0 1.0; }
+ }
+ }
+ part {
+ name: "elm.swallow.content";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ }
+ }
+ } /* parts */
+} /* group */
+
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#define NAVIFRAME_TITLE_BG_COLOR_INC 0 0 0 0
+#define NAVIFRAME_TOOLBAR_BG_COLOR_INC 0 0 0 0
+#define NAVIFRAME_TITLE_TOP_PADDING_INC 0 16
+#define NAVIFRAME_TITLE_H_INC 50
+#define NAVIFRAME_TOOLBAR_HEIGHT_INC 0
+#define NAVIFRAME_TITLE_FUNC_BTN_SIZE_INC 63 63
+
+#define NAVIFRAME_PADDING_INC 20 0
+#define NAVIFRAME_PADDING2_INC 6 0
+#define NAVIFRAME_PADDING3_INC 8 0
+
+#define NAVIFRAME_BOTTOM_TEXT_PADDING_INC 0 11
+#define NAVIFRAME_BOTTOM_RIGHT_PADDING_INC 26 11
+#define NAVIFRAME_BOTTOM_PADDING_INC 0 10
+
+#define NAVIFRAME_VIEW_TRANS_TIME 0.3
+
+#define NAVIFRAME_TOP_LINE_COLOR 0 0 0 0
+
+//tag buddy
+#define NAVIFRAME_TAG_TOP_PADDING 116
+#define NAVIFRAME_TAG_RIGHT_PADDING 26
+#define NAVIFRAME_TAG_LEFT_PADDING 26
+#define NAVIFRAME_TAG_HEIGHT 192
+
+
+group {
+ name:"elm/naviframe/item/playview/basic/default";
+ alias:"elm/naviframe/item/playview/1line/default";
+ script {
+ public tbar_bg = 0; //Toolbar BG Show call count
+ public buttons_visible = 0; //when both buttons are visible
+ public toolbar_buttons_visible = 0; //when both toolbar buttons are visible
+ }
+ parts {
+ part {
+ name: "base";
+ type: RECT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ }
+ description {
+ state: "left" 0.0;
+ inherit: "default" 0.0;
+ rel1.relative: -1.0 0.0;
+ rel2.relative: 0.0 1.0;
+ }
+ description {
+ state: "right" 0.0;
+ inherit: "default" 0.0;
+ rel1.relative: 1.0 0.0;
+ rel2.relative: 2.0 1.0;
+ }
+ }
+
+ part {
+ name: "title_swallow";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 0;
+ align: 0.0 1.0;
+ fixed: 0 1;
+ visible: 1;
+ rel1 { relative: 0.0 0.0; to: "base"; }
+ rel2 { relative: 1.0 0.0; to: "base"; }
+ color: NAVIFRAME_TITLE_BG_COLOR_INC;
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ min: 0 NAVIFRAME_TITLE_H_INC;
+ fixed: 0 1;
+ rel1 { relative: 0.0 0.0; to: "base"; }
+ rel2 { relative: 1.0 0.0; to: "base"; }
+ }
+ }
+
+ part {
+ name: "title_bg";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 NAVIFRAME_TITLE_H_INC;
+ align: 0.0 0.0;
+ fixed: 0 1;
+ visible: 1;
+ rel1 { relative: 0.0 0.0; to: "title_swallow"; }
+ rel2 { relative: 1.0 0.0; to: "title_swallow"; }
+ color: NAVIFRAME_TITLE_BG_COLOR_INC;
+ }
+/*
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ min: 0 0;
+ fixed: 0 1;
+ rel1 { relative: 0.0 0.0; to: "base"; }
+ rel2 { relative: 1.0 0.0; to: "base"; }
+ }
+*/
+ }
+ part {
+ name: "title_line";
+ type: RECT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ min: 0 2;
+ align: 0.0 0.0;
+ fixed: 0 1;
+ visible: 1;
+ rel1 { relative: 0.0 0.0; to: "title_swallow"; }
+ rel2 { relative: 1.0 0.0; to: "title_swallow"; }
+ color: NAVIFRAME_TOP_LINE_COLOR;
+ }
+/*
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ min: 0 0;
+ }
+*/
+ }
+ part {
+ name: "title_clip";
+ type: RECT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ rel1 { to: "title_bg"; }
+ rel2 { to: "title_bg"; }
+ }
+ }
+ part {
+ name: "top_padding";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: NAVIFRAME_TITLE_TOP_PADDING_INC;
+ fixed: 0 1;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 0.0; to: "title_bg"; }
+ rel2 { relative: 1.0 0.0; to: "title_bg"; }
+ visible: 0;
+ }
+ }/*
+ part {
+ name: "padding_center_text1";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ min: NAVIFRAME_PADDING_INC;
+ visible: 0;
+ fixed: 1 0;
+ align: 0.0 0.0;
+ rel1 { relative: 1.0 0.0; to: "title_left_btn"; }
+ rel2 { relative: 1.0 1.0; to: "title_left_btn"; }
+ }
+ }*/
+ part {
+ name: "padding_center_text1";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 45 0;
+ fixed: 1 0;
+ align: 0.0 0.5;
+ rel1 { relative: 0.0 0.0; to: "title_bg"; }
+ rel2 { relative: 0.0 1.0; to: "title_bg"; }
+ visible: 0;
+ }
+ }
+
+ part {
+ name: "elm.swallow.content";
+ type: SWALLOW;
+ scale: 1;
+ repeat_events: 0;
+ clip_to: "content_clip";
+ description {
+ state: "default" 0.0;
+ align: 0.0 0.0;
+ // _NATIVE_BUFFER_SYNC
+ rel1 { relative: 0.0 0.0; to: "base"; }
+ rel2 { relative: 1.0 1.0; to: "base"; }
+ /*
+ rel1.relative: 0.0 1.0;
+ rel1.to_x: "base";
+ rel1.to_y: "title_bg";
+ rel2.relative: 1.0 0.0;
+ rel2.to_x: "base";
+ rel2.to_y: "toolbar_bg";
+ */
+ }
+ description {
+ state: "sip_visible" 0.0;
+ inherit: "default" 0.0;
+ rel2.relative: 1.0 1.0;
+ rel2.to: "base";
+ }
+ }
+ part {
+ name: "content_clip";
+ type: RECT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ rel1.to: "elm.swallow.content";
+ rel2.to: "elm.swallow.content";
+ }
+ }
+ part {
+ name: "padding_center_text2";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 45 0;
+ fixed: 1 0;
+ align: 1.0 0.5;
+ rel1 { relative: 1.0 0.0; to: "title_bg"; }
+ rel2 { relative: 1.0 1.0; to: "title_bg"; }
+ visible: 0;
+ }
+ }
+ part {
+ name: "padding_bottom_text";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: NAVIFRAME_BOTTOM_TEXT_PADDING_INC;
+ fixed: 0 1;
+ align: 0.0 1.0;
+ rel1 { relative: 0.0 1.0; to: "title_bg"; }
+ rel2 { relative: 1.0 1.0; to: "title_bg"; }
+ visible: 0;
+ }
+ }
+ part {
+ name: "elm.text.title";
+ type: TEXT;
+ effect: FAR_SHADOW BOTTOM;
+ scale: 1;
+ repeat_events: 1;
+ clip_to: "title_clip";
+ description {
+ state: "default" 0.0;
+ text {
+ min: 0 0;
+ max: 1 0;
+ size: 18;
+ }
+/* chageable GUI
+ color: VIDEO_TITLE_FONT_DEFAULT_COLOR;
+ color3: 0 0 0 255;
+ align: 0.5 0.5;
+*/
+ color: 240 240 240 255;
+
+ fixed: 1 1;
+ rel1 { relative: 1.0 1.0; to_x: "padding_center_text1"; to_y: "top_padding"; }
+ rel2 { relative: 0.0 0.0; to_x: "padding_center_text2"; to_y: "padding_bottom_text"; }
+ }
+ }
+ part {
+ name: "access.title";
+ type: RECT;
+ repeat_events: 1;
+ description {
+ state: "default" 0.0;
+ fixed: 1 1;
+ rel1.to: "title_bg";
+ rel2.to: "title_bg";
+ color: 0 0 0 0;
+ }
+ }
+
+ part {
+ name: "padding_before_text";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ align: 1.0 0.5;
+ rel1 { relative: 0.0 0.0; to: "elm.text.title"; }
+ rel2 { relative: 0.0 1.0; to: "elm.text.title"; }
+ fixed: 1 0;
+ min: NAVIFRAME_PADDING_INC;
+ visible: 0;
+ }
+ }
+
+ part {
+ name: "click_event_area";
+ type: RECT;
+ ignore_flags: ON_HOLD;
+ repeat_events: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { to: "title_bg"; }
+ rel2 { to: "title_bg"; }
+ visible: 0;
+ }
+ }
+
+ part {
+ name: "title_btns_padding";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: NAVIFRAME_PADDING2_INC;
+ fixed: 1 1;
+ align: 0.0 0.5;
+ visible: 0;
+ rel1 { relative: 0.0 0.0; to: "title_bg"; }
+ rel2 { relative: 0.0 1.0; to: "title_bg"; }
+ }
+ }
+
+ part {
+ name: "bottom_right_padding";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 0;
+ fixed: 1 1;
+ align: 1.0 1.0;
+ rel1 { relative: 1.0 1.0; to: "title_bg"; }
+ rel2 { relative: 1.0 1.0; to: "title_bg"; }
+ visible: 0;
+ }
+ description {
+ state: "visible" 0.0;
+ inherit: "default" 0.0;
+ min: NAVIFRAME_BOTTOM_RIGHT_PADDING_INC;
+ }
+ }
+
+ part {
+ name: "title_left_btn";
+ type: SWALLOW;
+ scale: 1;
+ clip_to: "title_clip";
+ description {
+ state: "default" 0.0;
+ max: NAVIFRAME_TITLE_FUNC_BTN_SIZE_INC;
+ fixed: 1 1;
+ align: 0.0 0.5;
+ rel1 { relative: 0.5 0.0; to: "title_btns_padding"; }
+ rel2 { relative: 0.5 1.0; to: "title_btns_padding"; }
+ }
+ }
+ part {
+ name: "title_right_btn";
+ type: SWALLOW;
+ scale: 1;
+ clip_to: "title_clip";
+ description {
+ state: "default" 0.0;
+ max: NAVIFRAME_TITLE_FUNC_BTN_SIZE_INC;
+ align: 1 0.5;
+ fixed: 1 1;
+ rel1 { relative: 1.0 1.0; to_x: "title_bg"; to_y: "top_padding"; }
+ rel2 { relative: 0.0 0.0; to: "bottom_right_padding"; }
+ }
+ }
+ part {
+ name: "toolbar_bg";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 0;
+ max: 999999 0;
+ fixed: 0 1;
+ align: 0.0 1.0;
+ visible: 0;
+ rel1 { to: "base"; }
+ rel2 { to: "base"; }
+ color: NAVIFRAME_TOOLBAR_BG_COLOR_INC;
+ }
+ description {
+ state: "visible" 0.0;
+ inherit: "default" 0.0;
+ min: 0 NAVIFRAME_TOOLBAR_HEIGHT_INC;
+ max: 999999 NAVIFRAME_TOOLBAR_HEIGHT_INC;
+ visible: 1;
+ }
+ description {
+ state: "sip_visible" 0.0;
+ inherit: "default" 0.0;
+ align: 0.0 0.0;
+ min: 1 NAVIFRAME_TITLE_H_INC;
+ rel1 { to: "title_bg"; }
+ rel2 { to: "title_bg"; }
+ visible: 1;
+ }
+ }
+ part {
+ name: "pv.tag.left.padding";
+ type: SPACER;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: NAVIFRAME_TAG_LEFT_PADDING 0;
+ fixed: 1 0;
+ align: 0.0 0.5;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 0.0 1.0;}
+ }
+ }
+ part {
+ name: "pv.tag.right.padding";
+ type: SPACER;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: NAVIFRAME_TAG_RIGHT_PADDING 0;
+ fixed: 1 0;
+ align: 1.0 0.5;
+ rel1 { relative: 1.0 0.0;}
+ rel2 { relative: 1.0 1.0;}
+ }
+ }
+ part {
+ name: "pv.tag.top.padding";
+ type: SPACER;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 NAVIFRAME_TAG_TOP_PADDING;
+ fixed: 0 1;
+ align: 0.5 0.0;
+ rel1 { relative: 1.0 0.0; to: "pv.tag.left.padding";}
+ rel2 { relative: 0.0 0.0; to: "pv.tag.right.padding";}
+ }
+ }
+ part {
+ name: "pv.tag.bg";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 0 NAVIFRAME_TAG_HEIGHT;
+ fixed: 0 1;
+ align: 0.5 0.0;
+ rel1 { relative: 0.0 1.0; to:"pv.tag.top.padding";}
+ rel2 { relative: 1.0 1.0; to:"pv.tag.top.padding";}
+ color: 90 46 7 255;
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+ }
+ programs {
+ program {
+ name: "content_new_pushed";
+ signal: "elm,state,new,pushed,internal";
+ source: "";
+ action: STATE_SET "default" 0.0;
+ target: "base";
+ transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+ after: "show_finished";
+ }
+ program {
+ name: "content_cur_pushed";
+ signal: "elm,state,cur,pushed,internal";
+ source: "";
+ action: STATE_SET "left" 0.0;
+ target: "base";
+ transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+ after: "pushed_finished";
+ }
+ program {
+ name: "content_prev_popped";
+ signal: "elm,state,prev,popped,internal";
+ source: "";
+ action: STATE_SET "default" 0.0;
+ target: "base";
+ transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+ after: "show_finished";
+ }
+ program {
+ name: "content_cur_popped";
+ signal: "elm,state,cur,popped,internal";
+ source: "";
+ action: STATE_SET "right" 0.0;
+ target: "base";
+ transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+ after: "popped_finished";
+ }
+ program {
+ name: "cur_pushed";
+ signal: "elm,state,cur,pushed";
+ source: "elm";
+ script {
+ set_state(PART:"base", "default", 0.0);
+ emit("elm,state,cur,pushed,internal", "");
+ }
+ }
+ program {
+ name: "new_pushed";
+ signal: "elm,state,new,pushed";
+ source: "elm";
+ script {
+ set_state(PART:"base", "right", 0.0);
+ emit("elm,state,new,pushed,internal", "");
+ }
+ }
+ program {
+ name: "prev_popped";
+ signal: "elm,state,prev,popped";
+ source: "elm";
+ script {
+ set_state(PART:"base", "left", 0.0);
+ emit("elm,state,prev,popped,internal", "");
+ }
+ }
+ program {
+ name: "cur_popped";
+ signal: "elm,state,cur,popped";
+ source: "elm";
+ script {
+ set_state(PART:"base", "default", 0.0);
+ emit("elm,state,cur,popped,internal", "");
+ }
+ }
+ program {
+ name: "visible";
+ signal: "elm,state,visible";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "base";
+ }
+ program {
+ name: "title_show";
+ signal: "elm,state,title,show";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "title_swallow";
+ transition: LINEAR 0.2;
+ after: "show_finished";
+ }
+ program {
+ name: "title_hide";
+ signal: "elm,state,title,hide";
+ source: "elm";
+ action: STATE_SET "hide" 0.0;
+ target: "title_swallow";
+ transition: LINEAR 0.2;
+ after: "hide_finished";
+ }
+ program {
+ name: "no_effect_title_hide";
+ signal: "elm,state,title,no,effect,hide";
+ source: "elm";
+ action: STATE_SET "hide" 0.0;
+ target: "title_swallow";
+ transition: LINEAR 0.0;
+ after: "hide_finished";
+ }
+ program {
+ name: "subtitle_show";
+ signal: "elm,state,subtitle,show";
+ source: "elm";
+ script {
+ set_state(PART:"elm.text.title", "subtitle_is_set", 0.0);
+ }
+ }
+ program {
+ name: "subtitle_hide";
+ signal: "elm,state,subtitle,hide";
+ source: "elm";
+ script {
+ set_state(PART:"elm.text.title", "default", 0.0);
+ }
+ }
+ program {
+ name: "prev_btn_show";
+ signal: "elm,state,prev_btn,show";
+ source: "elm";
+ script {
+ emit("elm,state,toolbar_bg,show", "elm");
+ }
+ }
+ program {
+ name: "prev_btn_hide";
+ signal: "elm,state,prev_btn,hide";
+ source: "elm";
+ script {
+ emit("elm,state,toolbar_bg,hide", "elm");
+ }
+ }
+ program {
+ name: "sip_show";
+ signal: "elm,state,sip,shown";
+ source: "";
+ script {
+ if (get_int(tbar_bg) <= 0)
+ set_state(PART:"toolbar_bg", "default", 0.0);
+ else
+ {
+ set_state(PART:"toolbar_bg", "sip_visible", 0.0);
+ set_state(PART:"elm.swallow.content", "sip_visible", 0.0);
+ }
+ }
+ }
+
+ program {
+ name: "sip_hide";
+ signal: "elm,state,sip,hidden";
+ source: "";
+ script {
+ if (get_int(tbar_bg) <= 0)
+ set_state(PART:"toolbar_bg", "default", 0.0);
+ else
+ {
+ set_state(PART:"toolbar_bg", "visible", 0.0);
+ set_state(PART:"elm.swallow.content", "default", 0.0);
+ }
+ }
+ }
+ program {
+ name: "left_btn_show";
+ signal: "elm,state,title_left_btn,show";
+ source: "elm";
+ script {
+ set_int(buttons_visible, get_int(buttons_visible) + 1);
+ set_state(PART:"bottom_right_padding", "visible", 0.0);
+ }
+ }
+ program {
+ name: "left_btn_hide";
+ signal: "elm,state,title_left_btn,hide";
+ source: "elm";
+ script {
+ set_int(buttons_visible, get_int(buttons_visible) - 1);
+ if (get_int(buttons_visible) == 0)
+ set_state(PART:"bottom_right_padding", "default", 0.0);
+ }
+ }
+ program {
+ name: "right_btn_show";
+ signal: "elm,state,title_right_btn,show";
+ source: "elm";
+ action: STATE_SET "visible" 0.0;
+ script {
+ set_int(buttons_visible, get_int(buttons_visible) + 1);
+ set_state(PART:"bottom_right_padding", "visible", 0.0);
+ }
+ }
+ program {
+ name: "right_btn_hide";
+ signal: "elm,state,title_right_btn,hide";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ script {
+ set_int(buttons_visible, get_int(buttons_visible) - 1);
+ if (get_int(buttons_visible) == 0)
+ set_state(PART:"bottom_right_padding", "default", 0.0);
+ }
+ }
+
+ program {
+ name: "toolbar_bg_show";
+ signal: "elm,state,toolbar_bg,show";
+ source: "elm";
+ script {
+ set_state(PART:"toolbar_bg", "visible", 0.0);
+ set_int(tbar_bg, get_int(tbar_bg) + 1);
+ }
+ }
+ program {
+ name: "toolbar_bg_hide";
+ signal: "elm,state,toolbar_bg,hide";
+ source: "elm";
+ script {
+ set_int(tbar_bg, get_int(tbar_bg) - 1);
+ if (get_int(tbar_bg) <= 0)
+ set_state(PART:"toolbar_bg", "default", 0.0);
+ }
+ }
+ program {
+ name: "toolbar_open";
+ signal: "elm,state,toolbar,open";
+ source: "";
+ action: STATE_SET "visible" 0.0;
+ target: "toolbar_bg";
+ transition: LINEAR 0.2;
+ }
+ program {
+ name: "toolbar_close";
+ signal: "elm,state,toolbar,close";
+ source: "";
+ action: STATE_SET "default" 0.0;
+ target: "toolbar_bg";
+ transition: LINEAR 0.2;
+ }
+
+ program {
+ name: "show_finished";
+ action: SIGNAL_EMIT "elm,action,show,finished" "";
+ }
+ program {
+ name: "hide_finished";
+ action: SIGNAL_EMIT "elm,action,hide,finished" "";
+ }
+
+ program {
+ name: "pushed_finished";
+ action: SIGNAL_EMIT "elm,action,pushed,finished" "";
+ }
+ program {
+ name: "popped_finished";
+ action: SIGNAL_EMIT "elm,action,popped,finished" "";
+ }
+ program {
+ name: "title_clicked";
+ signal: "mouse,clicked,1";
+ source: "click_event_area";
+ action: SIGNAL_EMIT "elm,action,title,clicked" "";
+ }
+ program {
+ name: "display_mode_compress";
+ signal: "display,mode,compress";
+ source: "";
+ action: SIGNAL_EMIT "elm,state,toolbar,instant_close" "";
+ }
+ program {
+ name: "display_mode_default";
+ signal: "display,mode,default";
+ source: "";
+ action: SIGNAL_EMIT "elm,state,toolbar,instant_open" "";
+ }
+ program {
+ name: "pv.tag.bg.hide";
+ signal: "signal.pv.tag.bg.hide";
+ source: "*";
+ action: STATE_SET "hide" 0.0;
+ target: "pv.tag.bg";
+ }
+ program {
+ name: "pv.tag.bg.show";
+ signal: "signal.pv.tag.bg.show";
+ source: "*";
+ action: STATE_SET "default" 0.0;
+ target: "pv.tag.bg";
+ }
+ }
+}
+
+
+
+group {
+ name:"elm/naviframe/item/playview/multiwin/default";
+ script {
+ public tbar_bg = 0; //Toolbar BG Show call count
+ public buttons_visible = 0; //when both buttons are visible
+ public toolbar_buttons_visible = 0; //when both toolbar buttons are visible
+ }
+ parts {
+ part {
+ name: "base";
+ type: RECT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ }
+ description {
+ state: "left" 0.0;
+ inherit: "default" 0.0;
+ rel1.relative: -1.0 0.0;
+ rel2.relative: 0.0 1.0;
+ }
+ description {
+ state: "right" 0.0;
+ inherit: "default" 0.0;
+ rel1.relative: 1.0 0.0;
+ rel2.relative: 2.0 1.0;
+ }
+ }
+ part {
+ name: "title_bg";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 0;
+ align: 0.0 0.0;
+ fixed: 0 1;
+ visible: 1;
+ rel1 { relative: 0.0 0.0; to: "base"; }
+ rel2 { relative: 1.0 0.0; to: "base"; }
+ color: NAVIFRAME_TITLE_BG_COLOR_INC;
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ min: 0 0;
+ fixed: 0 1;
+ rel1 { relative: 0.0 0.0; to: "base"; }
+ rel2 { relative: 1.0 0.0; to: "base"; }
+ }
+ }
+ part {
+ name: "title_clip";
+ type: RECT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ rel1 { to: "title_bg"; }
+ rel2 { to: "title_bg"; }
+ }
+ }
+ part {
+ name: "top_padding";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 0;
+ fixed: 0 1;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 0.0; to: "title_bg"; }
+ rel2 { relative: 1.0 0.0; to: "title_bg"; }
+ visible: 0;
+ }
+ }
+ part {
+ name: "padding_center_text1";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ min: 0 0;
+ fixed: 1 0;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 0.0; to: "title_bg"; }
+ rel2 { relative: 0.0 1.0; to: "title_bg"; }
+ visible: 0;
+ }
+ }
+
+ part {
+ name: "elm.swallow.content";
+ type: SWALLOW;
+ scale: 1;
+ repeat_events: 0;
+ clip_to: "content_clip";
+ description {
+ state: "default" 0.0;
+ align: 0.0 0.0;
+ rel1.relative: 0.0 1.0;
+ rel1.to_x: "base";
+ rel1.to_y: "title_bg";
+ rel2.relative: 1.0 0.0;
+ rel2.to_x: "base";
+ rel2.to_y: "toolbar_bg";
+ }
+ description {
+ state: "sip_visible" 0.0;
+ inherit: "default" 0.0;
+ rel2.relative: 1.0 1.0;
+ rel2.to: "base";
+ }
+ }
+ part {
+ name: "content_clip";
+ type: RECT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ rel1.to: "elm.swallow.content";
+ rel2.to: "elm.swallow.content";
+ }
+ }
+ part {
+ name: "padding_center_text2";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 0;
+ fixed: 1 0;
+ align: 1.0 0.5;
+ rel1 { relative: 0.0 0.0; to: "title_btns_padding_ext"; }
+ rel2 { relative: 0.0 1.0; to: "title_btns_padding_ext"; }
+ visible: 0;
+ }
+ }
+ part {
+ name: "padding_bottom_text";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 0;
+ fixed: 0 1;
+ align: 0.0 1.0;
+ rel1 { relative: 0.0 1.0; to: "title_bg"; }
+ rel2 { relative: 1.0 1.0; to: "title_bg"; }
+ visible: 0;
+ }
+ }
+ part {
+ name: "elm.text.title";
+ type: TEXT;
+ effect: FAR_SHADOW BOTTOM;
+ scale: 1;
+ repeat_events: 1;
+ clip_to: "title_clip";
+ description {
+ state: "default" 0.0;
+ text {
+ font: VIDEO_TITLE_FONT_STYLE;
+ size: VIDEO_TITLE_FONT_SIZE;
+ min: 0 0;
+ max: 1 0;
+ align: 0.0 0.5;
+ }
+ color: VIDEO_TITLE_FONT_DEFAULT_COLOR;
+ color3: 0 0 0 255;
+ align: 0.0 0.5;
+ fixed: 1 1;
+ rel1 { relative: 1.0 1.0; to_x: "padding_center_text1"; to_y: "top_padding"; }
+ rel2 { relative: 0.0 0.0; to_x: "padding_center_text2"; to_y: "padding_bottom_text"; }
+ }
+ }
+ part {
+ name: "access.title";
+ type: RECT;
+ repeat_events: 1;
+ description {
+ state: "default" 0.0;
+ fixed: 1 1;
+ rel1.to: "title_bg";
+ rel2.to: "title_bg";
+ color: 0 0 0 0;
+ }
+ }
+
+ part {
+ name: "padding_before_text";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ align: 1.0 0.5;
+ rel1 { relative: 0.0 0.0; to: "elm.text.title"; }
+ rel2 { relative: 0.0 1.0; to: "elm.text.title"; }
+ fixed: 1 0;
+ min: 0 0;
+ visible: 0;
+ }
+ }
+
+ part {
+ name: "click_event_area";
+ type: RECT;
+ ignore_flags: ON_HOLD;
+ repeat_events: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { to: "title_bg"; }
+ rel2 { to: "title_bg"; }
+ visible: 0;
+ }
+ }
+ part {
+ name: "title_left_btn_ext";
+ type: SWALLOW;
+ scale: 1;
+ clip_to: "title_clip";
+ description {
+ state: "default" 0.0;
+ max: 0 0;
+ fixed: 1 1;
+ align: 1 0.5;
+ rel1 { relative: 0.0 0.0; to: "title_btns_padding_ext"; }
+ rel2 { relative: 0.0 1.0; to: "title_btns_padding_ext"; }
+ }
+ }
+ part {
+ name: "title_btns_padding_ext";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 0;
+ fixed: 1 1;
+ align: 1 0.5;
+ visible: 0;
+ rel1 { relative: 0.0 0.0; to: "title_left_btn"; }
+ rel2 { relative: 0.0 1.0; to: "title_left_btn"; }
+ }
+ description {
+ state: "visible" 0.0;
+ inherit: "default" 0.0;
+ min: 0 0;
+ }
+ }
+ part {
+ name: "title_left_btn";
+ type: SWALLOW;
+ scale: 1;
+ clip_to: "title_clip";
+ description {
+ state: "default" 0.0;
+ max: 0 0;
+ fixed: 1 1;
+ align: 1 0.5;
+ rel1 { relative: 0.0 0.0; to: "title_btns_padding"; }
+ rel2 { relative: 0.0 1.0; to: "title_btns_padding"; }
+ }
+ }
+ part {
+ name: "title_btns_padding";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 0;
+ fixed: 1 1;
+ align: 1 0.5;
+ visible: 0;
+ rel1 { relative: 0.0 0.0; to: "title_right_btn"; }
+ rel2 { relative: 0.0 1.0; to: "title_right_btn"; }
+ }
+ description {
+ state: "visible" 0.0;
+ inherit: "default" 0.0;
+ min: 0 0;
+ }
+ }
+ part {
+ name: "bottom_right_padding";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 0;
+ fixed: 1 1;
+ align: 1.0 1.0;
+ rel1 { relative: 1.0 1.0; to: "title_bg"; }
+ rel2 { relative: 1.0 1.0; to: "title_bg"; }
+ visible: 0;
+ }
+ description {
+ state: "visible" 0.0;
+ inherit: "default" 0.0;
+ min: 0 0;
+ }
+ }
+ part {
+ name: "title_right_btn";
+ type: SWALLOW;
+ scale: 1;
+ clip_to: "title_clip";
+ description {
+ state: "default" 0.0;
+ max: 0 0;
+ align: 1 0.5;
+ fixed: 1 1;
+ rel1 { relative: 1.0 1.0; to_x: "title_bg"; to_y: "top_padding"; }
+ rel2 { relative: 0.0 0.0; to: "bottom_right_padding"; }
+ }
+ }
+ part {
+ name: "toolbar_bg";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 0;
+ max: 999999 0;
+ fixed: 0 1;
+ align: 0.0 1.0;
+ visible: 0;
+ rel1 { to: "base"; }
+ rel2 { to: "base"; }
+ color: 0 0 0 0;
+ }
+ description {
+ state: "visible" 0.0;
+ inherit: "default" 0.0;
+ min: 0 0;
+ max: 999999 0;
+ visible: 1;
+ }
+ description {
+ state: "sip_visible" 0.0;
+ inherit: "default" 0.0;
+ align: 0.0 0.0;
+ min: 1 0;
+ rel1 { to: "title_bg"; }
+ rel2 { to: "title_bg"; }
+ visible: 1;
+ }
+ }
+ }
+ programs {
+ program {
+ name: "content_new_pushed";
+ signal: "elm,state,new,pushed,internal";
+ source: "";
+ action: STATE_SET "default" 0.0;
+ target: "base";
+ transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+ after: "show_finished";
+ }
+ program {
+ name: "content_cur_pushed";
+ signal: "elm,state,cur,pushed,internal";
+ source: "";
+ action: STATE_SET "left" 0.0;
+ target: "base";
+ transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+ after: "pushed_finished";
+ }
+ program {
+ name: "content_prev_popped";
+ signal: "elm,state,prev,popped,internal";
+ source: "";
+ action: STATE_SET "default" 0.0;
+ target: "base";
+ transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+ after: "show_finished";
+ }
+ program {
+ name: "content_cur_popped";
+ signal: "elm,state,cur,popped,internal";
+ source: "";
+ action: STATE_SET "right" 0.0;
+ target: "base";
+ transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+ after: "popped_finished";
+ }
+ program {
+ name: "cur_pushed";
+ signal: "elm,state,cur,pushed";
+ source: "elm";
+ script {
+ set_state(PART:"base", "default", 0.0);
+ emit("elm,state,cur,pushed,internal", "");
+ }
+ }
+ program {
+ name: "new_pushed";
+ signal: "elm,state,new,pushed";
+ source: "elm";
+ script {
+ set_state(PART:"base", "right", 0.0);
+ emit("elm,state,new,pushed,internal", "");
+ }
+ }
+ program {
+ name: "prev_popped";
+ signal: "elm,state,prev,popped";
+ source: "elm";
+ script {
+ set_state(PART:"base", "left", 0.0);
+ emit("elm,state,prev,popped,internal", "");
+ }
+ }
+ program {
+ name: "cur_popped";
+ signal: "elm,state,cur,popped";
+ source: "elm";
+ script {
+ set_state(PART:"base", "default", 0.0);
+ emit("elm,state,cur,popped,internal", "");
+ }
+ }
+ program {
+ name: "visible";
+ signal: "elm,state,visible";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "base";
+ }
+ program {
+ name: "title_show";
+ signal: "elm,state,title,show";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "title_bg";
+ transition: LINEAR 0.4;
+ after: "show_finished";
+ }
+ program {
+ name: "title_hide";
+ signal: "elm,state,title,hide";
+ source: "elm";
+ action: STATE_SET "hide" 0.0;
+ target: "title_bg";
+ transition: LINEAR 0.4;
+ after: "hide_finished";
+ }
+ program {
+ name: "subtitle_show";
+ signal: "elm,state,subtitle,show";
+ source: "elm";
+ script {
+ set_state(PART:"elm.text.title", "subtitle_is_set", 0.0);
+ }
+ }
+ program {
+ name: "subtitle_hide";
+ signal: "elm,state,subtitle,hide";
+ source: "elm";
+ script {
+ set_state(PART:"elm.text.title", "default", 0.0);
+ }
+ }
+ program {
+ name: "prev_btn_show";
+ signal: "elm,state,prev_btn,show";
+ source: "elm";
+ script {
+ emit("elm,state,toolbar_bg,show", "elm");
+ }
+ }
+ program {
+ name: "prev_btn_hide";
+ signal: "elm,state,prev_btn,hide";
+ source: "elm";
+ script {
+ emit("elm,state,toolbar_bg,hide", "elm");
+ }
+ }
+ program {
+ name: "sip_show";
+ signal: "elm,state,sip,shown";
+ source: "";
+ script {
+ if (get_int(tbar_bg) <= 0)
+ set_state(PART:"toolbar_bg", "default", 0.0);
+ else
+ {
+ set_state(PART:"toolbar_bg", "sip_visible", 0.0);
+ set_state(PART:"elm.swallow.content", "sip_visible", 0.0);
+ }
+ }
+ }
+
+ program {
+ name: "sip_hide";
+ signal: "elm,state,sip,hidden";
+ source: "";
+ script {
+ if (get_int(tbar_bg) <= 0)
+ set_state(PART:"toolbar_bg", "default", 0.0);
+ else
+ {
+ set_state(PART:"toolbar_bg", "visible", 0.0);
+ set_state(PART:"elm.swallow.content", "default", 0.0);
+ }
+ }
+ }
+ program {
+ name: "left_btn_show";
+ signal: "elm,state,title_left_btn,show";
+ source: "elm";
+ script {
+ set_int(buttons_visible, get_int(buttons_visible) + 1);
+ set_state(PART:"bottom_right_padding", "visible", 0.0);
+ if (get_int(buttons_visible) >= 2)
+ set_state(PART:"title_btns_padding", "visible", 0.0);
+ }
+ }
+ program {
+ name: "left_btn_hide";
+ signal: "elm,state,title_left_btn,hide";
+ source: "elm";
+ script {
+ set_int(buttons_visible, get_int(buttons_visible) - 1);
+ set_state(PART:"title_btns_padding", "default", 0.0);
+ if (get_int(buttons_visible) == 0)
+ set_state(PART:"bottom_right_padding", "default", 0.0);
+ }
+ }
+ program {
+ name: "right_btn_show";
+ signal: "elm,state,title_right_btn,show";
+ source: "elm";
+ action: STATE_SET "visible" 0.0;
+ script {
+ set_int(buttons_visible, get_int(buttons_visible) + 1);
+ set_state(PART:"bottom_right_padding", "visible", 0.0);
+ if (get_int(buttons_visible) >= 2)
+ set_state(PART:"title_btns_padding", "visible", 0.0);
+ }
+ }
+ program {
+ name: "right_btn_hide";
+ signal: "elm,state,title_right_btn,hide";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ script {
+ set_int(buttons_visible, get_int(buttons_visible) - 1);
+ set_state(PART:"title_btns_padding", "default", 0.0);
+ if (get_int(buttons_visible) == 0)
+ set_state(PART:"bottom_right_padding", "default", 0.0);
+ }
+ }
+
+ program {
+ name: "toolbar_bg_show";
+ signal: "elm,state,toolbar_bg,show";
+ source: "elm";
+ script {
+ set_state(PART:"toolbar_bg", "visible", 0.0);
+ set_int(tbar_bg, get_int(tbar_bg) + 1);
+ }
+ }
+ program {
+ name: "toolbar_bg_hide";
+ signal: "elm,state,toolbar_bg,hide";
+ source: "elm";
+ script {
+ set_int(tbar_bg, get_int(tbar_bg) - 1);
+ if (get_int(tbar_bg) <= 0)
+ set_state(PART:"toolbar_bg", "default", 0.0);
+ }
+ }
+ program {
+ name: "toolbar_open";
+ signal: "elm,state,toolbar,open";
+ source: "";
+ action: STATE_SET "visible" 0.0;
+ target: "toolbar_bg";
+ transition: LINEAR 0.2;
+ }
+ program {
+ name: "toolbar_close";
+ signal: "elm,state,toolbar,close";
+ source: "";
+ action: STATE_SET "default" 0.0;
+ target: "toolbar_bg";
+ transition: LINEAR 0.2;
+ }
+
+ program {
+ name: "show_finished";
+ action: SIGNAL_EMIT "elm,action,show,finished" "";
+ }
+ program {
+ name: "hide_finished";
+ action: SIGNAL_EMIT "elm,action,hide,finished" "";
+ }
+
+ program {
+ name: "pushed_finished";
+ action: SIGNAL_EMIT "elm,action,pushed,finished" "";
+ }
+ program {
+ name: "popped_finished";
+ action: SIGNAL_EMIT "elm,action,popped,finished" "";
+ }
+ program {
+ name: "title_clicked";
+ signal: "mouse,clicked,1";
+ source: "click_event_area";
+ action: SIGNAL_EMIT "elm,action,title,clicked" "";
+ }
+ program {
+ name: "display_mode_compress";
+ signal: "display,mode,compress";
+ source: "";
+ action: SIGNAL_EMIT "elm,state,toolbar,instant_close" "";
+ }
+ program {
+ name: "display_mode_default";
+ signal: "display,mode,default";
+ source: "";
+ action: SIGNAL_EMIT "elm,state,toolbar,instant_open" "";
+ }
+ }
+}
+
+group {
+ name:"elm/naviframe/item/playview/trim/default";
+ script {
+ public tbar_bg = 0; //Toolbar BG Show call count
+ public buttons_visible = 0; //when both buttons are visible
+ public toolbar_buttons_visible = 0; //when both toolbar buttons are visible
+ }
+ parts {
+ part {
+ name: "base";
+ type: RECT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ }
+ description {
+ state: "left" 0.0;
+ inherit: "default" 0.0;
+ rel1.relative: -1.0 0.0;
+ rel2.relative: 0.0 1.0;
+ }
+ description {
+ state: "right" 0.0;
+ inherit: "default" 0.0;
+ rel1.relative: 1.0 0.0;
+ rel2.relative: 2.0 1.0;
+ }
+ }
+ part {
+ name: "title_bg";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 NAVIFRAME_TITLE_H_INC;
+ align: 0.0 0.0;
+ fixed: 0 1;
+ visible: 1;
+ rel1 { relative: 0.0 0.0; to: "base"; }
+ rel2 { relative: 1.0 0.0; to: "base"; }
+ color: NAVIFRAME_TITLE_BG_COLOR_INC;
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ min: 0 0;
+ fixed: 0 1;
+ rel1 { relative: 0.0 0.0; to: "base"; }
+ rel2 { relative: 1.0 0.0; to: "base"; }
+ }
+ }
+ part {
+ name: "title_line";
+ type: RECT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ min: 0 6;
+ align: 0.0 0.0;
+ fixed: 0 1;
+ visible: 1;
+ rel1 { relative: 0.0 0.0; to: "title_bg"; }
+ rel2 { relative: 1.0 0.0; to: "title_bg"; }
+ color: NAVIFRAME_TOP_LINE_COLOR;
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ min: 0 0;
+ }
+ }
+ part {
+ name: "title_clip";
+ type: RECT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ rel1 { to: "title_bg"; }
+ rel2 { to: "title_bg"; }
+ }
+ }
+ part {
+ name: "top_padding";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: NAVIFRAME_TITLE_TOP_PADDING_INC;
+ fixed: 0 1;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 0.0; to: "title_bg"; }
+ rel2 { relative: 1.0 0.0; to: "title_bg"; }
+ visible: 0;
+ }
+ }
+ part {
+ name: "padding_center_text1";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ min: NAVIFRAME_PADDING_INC;
+ visible: 0;
+ fixed: 1 0;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 0.0; to: "title_bg"; }
+ rel2 { relative: 0.0 1.0; to: "title_bg"; }
+ }
+ }
+
+ part {
+ name: "elm.swallow.content";
+ type: SWALLOW;
+ scale: 1;
+ repeat_events: 0;
+ clip_to: "content_clip";
+ description {
+ state: "default" 0.0;
+ align: 0.0 0.0;
+ rel1.relative: 0.0 1.0;
+ rel1.to_x: "base";
+ rel1.to_y: "title_bg";
+ rel2.relative: 1.0 0.0;
+ rel2.to_x: "base";
+ rel2.to_y: "toolbar_bg";
+ }
+ description {
+ state: "sip_visible" 0.0;
+ inherit: "default" 0.0;
+ rel2.relative: 1.0 1.0;
+ rel2.to: "base";
+ }
+ }
+ part {
+ name: "content_clip";
+ type: RECT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ rel1.to: "elm.swallow.content";
+ rel2.to: "elm.swallow.content";
+ }
+ }
+ part {
+ name: "padding_center_text2";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: NAVIFRAME_PADDING2_INC;
+ fixed: 1 0;
+ align: 1.0 0.5;
+ rel1 { relative: 0.0 0.0; to: "title_left_btn"; }
+ rel2 { relative: 0.0 1.0; to: "title_left_btn"; }
+ visible: 0;
+ }
+ }
+ part {
+ name: "padding_bottom_text";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: NAVIFRAME_BOTTOM_TEXT_PADDING_INC;
+ fixed: 0 1;
+ align: 0.0 1.0;
+ rel1 { relative: 0.0 1.0; to: "title_bg"; }
+ rel2 { relative: 1.0 1.0; to: "title_bg"; }
+ visible: 0;
+ }
+ }
+ part {
+ name: "elm.text.title";
+ type: TEXT;
+ effect: FAR_SHADOW BOTTOM;
+ scale: 1;
+ repeat_events: 1;
+ clip_to: "title_clip";
+ description {
+ state: "default" 0.0;
+ text {
+ font: VIDEO_TITLE_FONT_STYLE;
+ size: VIDEO_TITLE_FONT_SIZE;
+ min: 0 0;
+ max: 1 0;
+ align: 0.0 0.5;
+ }
+ color: VIDEO_TITLE_FONT_DEFAULT_COLOR;
+ color3: 0 0 0 255;
+ align: 0.0 0.5;
+ fixed: 1 1;
+ rel1 { relative: 1.0 1.0; to_x: "padding_center_text1"; to_y: "top_padding"; }
+ rel2 { relative: 0.0 0.0; to_x: "padding_center_text2"; to_y: "padding_bottom_text"; }
+ }
+ }
+
+ part {
+ name: "access.title";
+ type: RECT;
+ repeat_events: 1;
+ description {
+ state: "default" 0.0;
+ fixed: 1 1;
+ rel1.to: "title_bg";
+ rel2.to: "title_bg";
+ color: 0 0 0 0;
+ }
+ }
+
+ part {
+ name: "padding_before_text";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ align: 1.0 0.5;
+ rel1 { relative: 0.0 0.0; to: "elm.text.title"; }
+ rel2 { relative: 0.0 1.0; to: "elm.text.title"; }
+ fixed: 1 0;
+ min: NAVIFRAME_PADDING_INC;
+ visible: 0;
+ }
+ }
+
+ part {
+ name: "click_event_area";
+ type: RECT;
+ ignore_flags: ON_HOLD;
+ repeat_events: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { to: "title_bg"; }
+ rel2 { to: "title_bg"; }
+ visible: 0;
+ }
+ }
+ part {
+ name: "title_left_btn_line_shadow";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 1 48;
+ fixed: 1 1;
+ align: 1.0 0.5;
+ rel1 { relative: 0.0 0.5; to_x: "title_left_btn_line"; to_y: "title_bg"; }
+ rel2 { relative: 0.0 0.5; to_x: "title_left_btn_line"; to_y: "title_bg"; }
+ color: 0 0 0 81;
+ }
+ }
+
+ part {
+ name: "title_left_btn_line";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 2 48;
+ fixed: 1 1;
+ align: 1.0 0.5;
+ rel1 { relative: 0.0 0.5; to_x: "title_left_btns_padding"; to_y: "title_bg"; }
+ rel2 { relative: 0.0 0.5; to_x: "title_left_btns_padding"; to_y: "title_bg"; }
+ color: 255 255 255 81;
+ }
+ }
+
+ part {
+ name: "title_left_btns_padding";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: NAVIFRAME_PADDING2_INC;
+ fixed: 1 1;
+ align: 1.0 0.5;
+ visible: 0;
+ rel1 { relative: 0.0 0.0; to_x: "title_left_btn"; to_y: "title_bg"; }
+ rel2 { relative: 0.0 1.0; to_x: "title_left_btn"; to_y: "title_bg"; }
+ }
+ }
+
+ part {
+ name: "title_left_btn";
+ type: SWALLOW;
+ scale: 1;
+ clip_to: "title_clip";
+ description {
+ state: "default" 0.0;
+ max: NAVIFRAME_TITLE_FUNC_BTN_SIZE_INC;
+ fixed: 1 1;
+ align: 1.0 0.5;
+ rel1 { relative: 0.0 0.0; to: "title_btns_padding"; }
+ rel2 { relative: 0.0 1.0; to: "title_btns_padding"; }
+ }
+ }
+
+ part {
+ name: "title_btns_padding";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: NAVIFRAME_PADDING2_INC;
+ fixed: 1 1;
+ align: 1.0 0.5;
+ visible: 0;
+ rel1 { relative: 0.0 0.0; to_x: "title_right_btn_line"; to_y: "title_bg"; }
+ rel2 { relative: 0.0 1.0; to_x: "title_right_btn_line"; to_y: "title_bg"; }
+ }
+ }
+
+ part {
+ name: "title_right_btn_line_shadow";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 1 48;
+ fixed: 1 1;
+ align: 1.0 0.5;
+ rel1 { relative: 0.0 0.5; to_x: "title_right_btn_line"; to_y: "title_bg"; }
+ rel2 { relative: 0.0 0.5; to_x: "title_right_btn_line"; to_y: "title_bg"; }
+ color: 0 0 0 81;
+ }
+ }
+
+ part {
+ name: "title_right_btn_line";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 2 48;
+ fixed: 1 1;
+ align: 1.0 0.5;
+ rel1 { relative: 0.0 0.5; to_x: "title_btns_line_padding"; to_y: "title_bg"; }
+ rel2 { relative: 0.0 0.5; to_x: "title_btns_line_padding"; to_y: "title_bg"; }
+ color: 255 255 255 81;
+ }
+ }
+
+ part {
+ name: "title_btns_line_padding";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: NAVIFRAME_PADDING2_INC;
+ fixed: 1 1;
+ align: 1.0 0.5;
+ visible: 0;
+ rel1 { relative: 0.0 0.0; to_x: "title_right_btn"; to_y: "title_bg"; }
+ rel2 { relative: 0.0 1.0; to_x: "title_right_btn"; to_y: "title_bg"; }
+ }
+ }
+
+ part {
+ name: "bottom_right_padding";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 0;
+ fixed: 1 1;
+ align: 1.0 1.0;
+ rel1 { relative: 1.0 1.0; to: "title_bg"; }
+ rel2 { relative: 1.0 1.0; to: "title_bg"; }
+ visible: 0;
+ }
+ description {
+ state: "visible" 0.0;
+ inherit: "default" 0.0;
+ min: NAVIFRAME_PADDING2_INC;
+ }
+ }
+
+
+ part {
+ name: "title_right_btn";
+ type: SWALLOW;
+ scale: 1;
+ clip_to: "title_clip";
+ description {
+ state: "default" 0.0;
+ max: NAVIFRAME_TITLE_FUNC_BTN_SIZE_INC;
+ align: 1.0 0.5;
+ fixed: 1 1;
+ rel1 { relative: 0.0 0.5; to_x: "bottom_right_padding"; to_y: "title_bg"; }
+ rel2 { relative: 0.0 0.5; to_x: "bottom_right_padding"; to_y: "title_bg"; }
+ }
+ }
+
+ part {
+ name: "toolbar_bg";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 0;
+ max: 999999 0;
+ fixed: 0 1;
+ align: 0.0 1.0;
+ visible: 0;
+ rel1 { to: "base"; }
+ rel2 { to: "base"; }
+ color: NAVIFRAME_TOOLBAR_BG_COLOR_INC;
+ }
+ description {
+ state: "visible" 0.0;
+ inherit: "default" 0.0;
+ min: 0 NAVIFRAME_TOOLBAR_HEIGHT_INC;
+ max: 999999 NAVIFRAME_TOOLBAR_HEIGHT_INC;
+ visible: 1;
+ }
+ description {
+ state: "sip_visible" 0.0;
+ inherit: "default" 0.0;
+ align: 0.0 0.0;
+ min: 1 NAVIFRAME_TITLE_H_INC;
+ rel1 { to: "title_bg"; }
+ rel2 { to: "title_bg"; }
+ visible: 1;
+ }
+ }
+ }
+ programs {
+ program {
+ name: "content_new_pushed";
+ signal: "elm,state,new,pushed,internal";
+ source: "";
+ action: STATE_SET "default" 0.0;
+ target: "base";
+ transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+ after: "show_finished";
+ }
+ program {
+ name: "content_cur_pushed";
+ signal: "elm,state,cur,pushed,internal";
+ source: "";
+ action: STATE_SET "left" 0.0;
+ target: "base";
+ transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+ after: "pushed_finished";
+ }
+ program {
+ name: "content_prev_popped";
+ signal: "elm,state,prev,popped,internal";
+ source: "";
+ action: STATE_SET "default" 0.0;
+ target: "base";
+ transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+ after: "show_finished";
+ }
+ program {
+ name: "content_cur_popped";
+ signal: "elm,state,cur,popped,internal";
+ source: "";
+ action: STATE_SET "right" 0.0;
+ target: "base";
+ transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+ after: "popped_finished";
+ }
+ program {
+ name: "cur_pushed";
+ signal: "elm,state,cur,pushed";
+ source: "elm";
+ script {
+ set_state(PART:"base", "default", 0.0);
+ emit("elm,state,cur,pushed,internal", "");
+ }
+ }
+ program {
+ name: "new_pushed";
+ signal: "elm,state,new,pushed";
+ source: "elm";
+ script {
+ set_state(PART:"base", "right", 0.0);
+ emit("elm,state,new,pushed,internal", "");
+ }
+ }
+ program {
+ name: "prev_popped";
+ signal: "elm,state,prev,popped";
+ source: "elm";
+ script {
+ set_state(PART:"base", "left", 0.0);
+ emit("elm,state,prev,popped,internal", "");
+ }
+ }
+ program {
+ name: "cur_popped";
+ signal: "elm,state,cur,popped";
+ source: "elm";
+ script {
+ set_state(PART:"base", "default", 0.0);
+ emit("elm,state,cur,popped,internal", "");
+ }
+ }
+ program {
+ name: "visible";
+ signal: "elm,state,visible";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "base";
+ }
+ program {
+ name: "title_show";
+ signal: "elm,state,title,show";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "title_bg";
+ target: "title_line";
+ }
+ program {
+ name: "title_hide";
+ signal: "elm,state,title,hide";
+ source: "elm";
+ action: STATE_SET "hide" 0.0;
+ target: "title_bg";
+ target: "title_line";
+ }
+ program {
+ name: "subtitle_show";
+ signal: "elm,state,subtitle,show";
+ source: "elm";
+ script {
+ set_state(PART:"elm.text.title", "subtitle_is_set", 0.0);
+ }
+ }
+ program {
+ name: "subtitle_hide";
+ signal: "elm,state,subtitle,hide";
+ source: "elm";
+ script {
+ set_state(PART:"elm.text.title", "default", 0.0);
+ }
+ }
+ program {
+ name: "prev_btn_show";
+ signal: "elm,state,prev_btn,show";
+ source: "elm";
+ script {
+ emit("elm,state,toolbar_bg,show", "elm");
+ }
+ }
+ program {
+ name: "prev_btn_hide";
+ signal: "elm,state,prev_btn,hide";
+ source: "elm";
+ script {
+ emit("elm,state,toolbar_bg,hide", "elm");
+ }
+ }
+ program {
+ name: "sip_show";
+ signal: "elm,state,sip,shown";
+ source: "";
+ script {
+ if (get_int(tbar_bg) <= 0)
+ set_state(PART:"toolbar_bg", "default", 0.0);
+ else
+ {
+ set_state(PART:"toolbar_bg", "sip_visible", 0.0);
+ set_state(PART:"elm.swallow.content", "sip_visible", 0.0);
+ }
+ }
+ }
+
+ program {
+ name: "sip_hide";
+ signal: "elm,state,sip,hidden";
+ source: "";
+ script {
+ if (get_int(tbar_bg) <= 0)
+ set_state(PART:"toolbar_bg", "default", 0.0);
+ else
+ {
+ set_state(PART:"toolbar_bg", "visible", 0.0);
+ set_state(PART:"elm.swallow.content", "default", 0.0);
+ }
+ }
+ }
+ program {
+ name: "left_btn_show";
+ signal: "elm,state,title_left_btn,show";
+ source: "elm";
+ script {
+ set_int(buttons_visible, get_int(buttons_visible) + 1);
+ set_state(PART:"bottom_right_padding", "visible", 0.0);
+ }
+ }
+ program {
+ name: "left_btn_hide";
+ signal: "elm,state,title_left_btn,hide";
+ source: "elm";
+ script {
+ set_int(buttons_visible, get_int(buttons_visible) - 1);
+ if (get_int(buttons_visible) == 0)
+ set_state(PART:"bottom_right_padding", "default", 0.0);
+ }
+ }
+ program {
+ name: "right_btn_show";
+ signal: "elm,state,title_right_btn,show";
+ source: "elm";
+ action: STATE_SET "visible" 0.0;
+ script {
+ set_int(buttons_visible, get_int(buttons_visible) + 1);
+ set_state(PART:"bottom_right_padding", "visible", 0.0);
+ }
+ }
+ program {
+ name: "right_btn_hide";
+ signal: "elm,state,title_right_btn,hide";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ script {
+ set_int(buttons_visible, get_int(buttons_visible) - 1);
+ if (get_int(buttons_visible) == 0)
+ set_state(PART:"bottom_right_padding", "default", 0.0);
+ }
+ }
+
+ program {
+ name: "toolbar_bg_show";
+ signal: "elm,state,toolbar_bg,show";
+ source: "elm";
+ script {
+ set_state(PART:"toolbar_bg", "visible", 0.0);
+ set_int(tbar_bg, get_int(tbar_bg) + 1);
+ }
+ }
+ program {
+ name: "toolbar_bg_hide";
+ signal: "elm,state,toolbar_bg,hide";
+ source: "elm";
+ script {
+ set_int(tbar_bg, get_int(tbar_bg) - 1);
+ if (get_int(tbar_bg) <= 0)
+ set_state(PART:"toolbar_bg", "default", 0.0);
+ }
+ }
+ program {
+ name: "toolbar_open";
+ signal: "elm,state,toolbar,open";
+ source: "";
+ action: STATE_SET "visible" 0.0;
+ target: "toolbar_bg";
+ transition: LINEAR 0.2;
+ }
+ program {
+ name: "toolbar_close";
+ signal: "elm,state,toolbar,close";
+ source: "";
+ action: STATE_SET "default" 0.0;
+ target: "toolbar_bg";
+ transition: LINEAR 0.2;
+ }
+
+ program {
+ name: "show_finished";
+ action: SIGNAL_EMIT "elm,action,show,finished" "";
+ }
+ program {
+ name: "hide_finished";
+ action: SIGNAL_EMIT "elm,action,hide,finished" "";
+ }
+
+ program {
+ name: "pushed_finished";
+ action: SIGNAL_EMIT "elm,action,pushed,finished" "";
+ }
+ program {
+ name: "popped_finished";
+ action: SIGNAL_EMIT "elm,action,popped,finished" "";
+ }
+ program {
+ name: "title_clicked";
+ signal: "mouse,clicked,1";
+ source: "click_event_area";
+ action: SIGNAL_EMIT "elm,action,title,clicked" "";
+ }
+ program {
+ name: "display_mode_compress";
+ signal: "display,mode,compress";
+ source: "";
+ action: SIGNAL_EMIT "elm,state,toolbar,instant_close" "";
+ }
+ program {
+ name: "display_mode_default";
+ signal: "display,mode,default";
+ source: "";
+ action: SIGNAL_EMIT "elm,state,toolbar,instant_open" "";
+ }
+ }
+}
+
+
+
+group {
+ name:"elm/naviframe/item/playview/chapter/default";
+ script {
+ public tbar_bg = 0; //Toolbar BG Show call count
+ public buttons_visible = 0; //when both buttons are visible
+ public toolbar_buttons_visible = 0; //when both toolbar buttons are visible
+ }
+ parts {
+ part {
+ name: "base";
+ type: RECT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ }
+ description {
+ state: "left" 0.0;
+ inherit: "default" 0.0;
+ rel1.relative: -1.0 0.0;
+ rel2.relative: 0.0 1.0;
+ }
+ description {
+ state: "right" 0.0;
+ inherit: "default" 0.0;
+ rel1.relative: 1.0 0.0;
+ rel2.relative: 2.0 1.0;
+ }
+ }
+ part {
+ name: "title_bg";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 0;
+ align: 0.0 0.0;
+ fixed: 0 1;
+ visible: 1;
+ rel1 { relative: 0.0 0.0; to: "base"; }
+ rel2 { relative: 1.0 0.0; to: "base"; }
+ color: NAVIFRAME_TITLE_BG_COLOR_INC;
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ min: 0 0;
+ fixed: 0 1;
+ rel1 { relative: 0.0 0.0; to: "base"; }
+ rel2 { relative: 1.0 0.0; to: "base"; }
+ }
+ }
+ part {
+ name: "title_line";
+ type: RECT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ min: 0 6;
+ align: 0.0 0.0;
+ fixed: 0 1;
+ visible: 1;
+ rel1 { relative: 0.0 0.0; to: "title_bg"; }
+ rel2 { relative: 1.0 0.0; to: "title_bg"; }
+ color: NAVIFRAME_TOP_LINE_COLOR;
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ min: 0 0;
+ }
+ }
+ part {
+ name: "title_clip";
+ type: RECT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ rel1 { to: "title_bg"; }
+ rel2 { to: "title_bg"; }
+ }
+ }
+ part {
+ name: "top_padding";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 0;
+ fixed: 0 1;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 0.0; to: "title_bg"; }
+ rel2 { relative: 1.0 0.0; to: "title_bg"; }
+ visible: 0;
+ }
+ }
+ part {
+ name: "padding_center_text1";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ min: 0 0;
+ fixed: 1 0;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 0.0; to: "title_bg"; }
+ rel2 { relative: 0.0 1.0; to: "title_bg"; }
+ visible: 0;
+ }
+ }
+
+ part {
+ name: "elm.swallow.content";
+ type: SWALLOW;
+ scale: 1;
+ repeat_events: 0;
+ clip_to: "content_clip";
+ description {
+ state: "default" 0.0;
+ align: 0.0 0.0;
+ rel1.relative: 0.0 1.0;
+ rel1.to_x: "base";
+ rel1.to_y: "title_bg";
+ rel2.relative: 1.0 0.0;
+ rel2.to_x: "base";
+ rel2.to_y: "toolbar_bg";
+ }
+ description {
+ state: "sip_visible" 0.0;
+ inherit: "default" 0.0;
+ rel2.relative: 1.0 1.0;
+ rel2.to: "base";
+ }
+ }
+ part {
+ name: "content_clip";
+ type: RECT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ rel1.to: "elm.swallow.content";
+ rel2.to: "elm.swallow.content";
+ }
+ }
+ part {
+ name: "padding_center_text2";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 0;
+ fixed: 1 0;
+ align: 1.0 0.5;
+ rel1 { relative: 0.0 0.0; to: "title_btns_padding_ext"; }
+ rel2 { relative: 0.0 1.0; to: "title_btns_padding_ext"; }
+ visible: 0;
+ }
+ }
+ part {
+ name: "padding_bottom_text";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 0;
+ fixed: 0 1;
+ align: 0.0 1.0;
+ rel1 { relative: 0.0 1.0; to: "title_bg"; }
+ rel2 { relative: 1.0 1.0; to: "title_bg"; }
+ visible: 0;
+ }
+ }
+
+ part {
+ name: "elm.text.title";
+ type: TEXT;
+ effect: FAR_SHADOW BOTTOM;
+ scale: 1;
+ repeat_events: 1;
+ clip_to: "title_clip";
+ description {
+ state: "default" 0.0;
+ text {
+ font: VIDEO_TITLE_FONT_STYLE;
+ size: VIDEO_TITLE_FONT_SIZE;
+ min: 0 0;
+ max: 1 0;
+ align: 0.5 0.5;
+ }
+ color: VIDEO_TITLE_FONT_DEFAULT_COLOR;
+ color3: 0 0 0 255;
+ align: 0.5 0.5;
+ fixed: 1 1;
+ rel1 { relative: 1.0 1.0; to_x: "padding_center_text1"; to_y: "top_padding"; }
+ rel2 { relative: 0.0 0.0; to_x: "padding_center_text2"; to_y: "padding_bottom_text"; }
+ }
+ }
+
+ part {
+ name: "access.title";
+ type: RECT;
+ repeat_events: 1;
+ description {
+ state: "default" 0.0;
+ fixed: 1 1;
+ rel1.to: "title_bg";
+ rel2.to: "title_bg";
+ color: 0 0 0 0;
+ }
+ }
+
+ part {
+ name: "padding_before_text";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ align: 1.0 0.5;
+ rel1 { relative: 0.0 0.0; to: "elm.text.title"; }
+ rel2 { relative: 0.0 1.0; to: "elm.text.title"; }
+ fixed: 1 0;
+ min: 0 0;
+ visible: 0;
+ }
+ }
+
+ part {
+ name: "click_event_area";
+ type: RECT;
+ ignore_flags: ON_HOLD;
+ repeat_events: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { to: "title_bg"; }
+ rel2 { to: "title_bg"; }
+ visible: 0;
+ }
+ }
+ part {
+ name: "title_left_btn_ext";
+ type: SWALLOW;
+ scale: 1;
+ clip_to: "title_clip";
+ description {
+ state: "default" 0.0;
+ max: 0 0;
+ fixed: 1 1;
+ align: 1 0.5;
+ rel1 { relative: 0.0 0.0; to: "title_btns_padding_ext"; }
+ rel2 { relative: 0.0 1.0; to: "title_btns_padding_ext"; }
+ }
+ }
+ part {
+ name: "title_btns_padding_ext";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 0;
+ fixed: 1 1;
+ align: 1 0.5;
+ visible: 0;
+ rel1 { relative: 0.0 0.0; to: "title_left_btn"; }
+ rel2 { relative: 0.0 1.0; to: "title_left_btn"; }
+ }
+ description {
+ state: "visible" 0.0;
+ inherit: "default" 0.0;
+ min: 0 0;
+ }
+ }
+ part {
+ name: "title_left_btn";
+ type: SWALLOW;
+ scale: 1;
+ clip_to: "title_clip";
+ description {
+ state: "default" 0.0;
+ max: 0 0;
+ fixed: 1 1;
+ align: 1 0.5;
+ rel1 { relative: 0.0 0.0; to: "title_btns_padding"; }
+ rel2 { relative: 0.0 1.0; to: "title_btns_padding"; }
+ }
+ }
+ part {
+ name: "title_btns_padding";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 0;
+ fixed: 1 1;
+ align: 1 0.5;
+ visible: 0;
+ rel1 { relative: 0.0 0.0; to: "title_right_btn"; }
+ rel2 { relative: 0.0 1.0; to: "title_right_btn"; }
+ }
+ description {
+ state: "visible" 0.0;
+ inherit: "default" 0.0;
+ min: 0 0;
+ }
+ }
+ part {
+ name: "bottom_right_padding";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 0;
+ fixed: 1 1;
+ align: 1.0 1.0;
+ rel1 { relative: 1.0 1.0; to: "title_bg"; }
+ rel2 { relative: 1.0 1.0; to: "title_bg"; }
+ visible: 0;
+ }
+ description {
+ state: "visible" 0.0;
+ inherit: "default" 0.0;
+ min: 0 0;
+ }
+ }
+ part {
+ name: "title_right_btn";
+ type: SWALLOW;
+ scale: 1;
+ clip_to: "title_clip";
+ description {
+ state: "default" 0.0;
+ max: 0 0;
+ align: 1 0.5;
+ fixed: 1 1;
+ rel1 { relative: 1.0 1.0; to_x: "title_bg"; to_y: "top_padding"; }
+ rel2 { relative: 0.0 0.0; to: "bottom_right_padding"; }
+ }
+ }
+ part {
+ name: "toolbar_bg";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 0;
+ max: 999999 0;
+ fixed: 0 1;
+ align: 0.0 1.0;
+ visible: 0;
+ rel1 { to: "base"; }
+ rel2 { to: "base"; }
+ color: 0 0 0 255;
+ }
+ description {
+ state: "visible" 0.0;
+ inherit: "default" 0.0;
+ min: 0 98;
+ max: 999999 98;
+ visible: 1;
+ }
+ description {
+ state: "sip_visible" 0.0;
+ inherit: "default" 0.0;
+ align: 0.0 0.0;
+ min: 1 0;
+ rel1 { to: "title_bg"; }
+ rel2 { to: "title_bg"; }
+ visible: 1;
+ }
+ }
+ part {
+ name: "prev_btn_bg";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ min: 112 0;
+ fixed: 1 0;
+ align: 1.0 0.0;
+ rel1 { relative: 1.0 0.0; to: "toolbar_bg"; }
+ rel2.to: "toolbar_bg";
+ visible: 0;
+ }
+ }
+ part {
+ name: "elm.swallow.prev_btn";
+ type: SWALLOW;
+ scale: 1;
+ clip_to: "toolbar_clip";
+ description {
+ state: "default" 0.0;
+ max: 85 98;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ rel1.to: "prev_btn_bg";
+ rel2.to: "prev_btn_bg";
+ }
+ }
+ part {
+ name: "toolbar_clip";
+ type: RECT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ rel1 { to: "toolbar_bg"; }
+ rel2 { to: "toolbar_bg"; }
+ }
+ }
+ }
+
+ programs {
+ program {
+ name: "content_new_pushed";
+ signal: "elm,state,new,pushed,internal";
+ source: "";
+ action: STATE_SET "default" 0.0;
+ target: "base";
+ transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+ after: "show_finished";
+ }
+ program {
+ name: "content_cur_pushed";
+ signal: "elm,state,cur,pushed,internal";
+ source: "";
+ action: STATE_SET "left" 0.0;
+ target: "base";
+ transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+ after: "pushed_finished";
+ }
+ program {
+ name: "content_prev_popped";
+ signal: "elm,state,prev,popped,internal";
+ source: "";
+ action: STATE_SET "default" 0.0;
+ target: "base";
+ transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+ after: "show_finished";
+ }
+ program {
+ name: "content_cur_popped";
+ signal: "elm,state,cur,popped,internal";
+ source: "";
+ action: STATE_SET "right" 0.0;
+ target: "base";
+ transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+ after: "popped_finished";
+ }
+ program {
+ name: "cur_pushed";
+ signal: "elm,state,cur,pushed";
+ source: "elm";
+ script {
+ set_state(PART:"base", "default", 0.0);
+ emit("elm,state,cur,pushed,internal", "");
+ }
+ }
+ program {
+ name: "new_pushed";
+ signal: "elm,state,new,pushed";
+ source: "elm";
+ script {
+ set_state(PART:"base", "right", 0.0);
+ emit("elm,state,new,pushed,internal", "");
+ }
+ }
+ program {
+ name: "prev_popped";
+ signal: "elm,state,prev,popped";
+ source: "elm";
+ script {
+ set_state(PART:"base", "left", 0.0);
+ emit("elm,state,prev,popped,internal", "");
+ }
+ }
+ program {
+ name: "cur_popped";
+ signal: "elm,state,cur,popped";
+ source: "elm";
+ script {
+ set_state(PART:"base", "default", 0.0);
+ emit("elm,state,cur,popped,internal", "");
+ }
+ }
+ program {
+ name: "visible";
+ signal: "elm,state,visible";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "base";
+ }
+ program {
+ name: "title_show";
+ signal: "elm,state,title,show";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "title_bg";
+ target: "title_line";
+ transition: LINEAR 0.4;
+ after: "show_finished";
+ }
+ program {
+ name: "title_hide";
+ signal: "elm,state,title,hide";
+ source: "elm";
+ action: STATE_SET "hide" 0.0;
+ target: "title_bg";
+ target: "title_line";
+ transition: LINEAR 0.4;
+ after: "hide_finished";
+ }
+ program {
+ name: "subtitle_show";
+ signal: "elm,state,subtitle,show";
+ source: "elm";
+ script {
+ set_state(PART:"elm.text.title", "subtitle_is_set", 0.0);
+ }
+ }
+ program {
+ name: "subtitle_hide";
+ signal: "elm,state,subtitle,hide";
+ source: "elm";
+ script {
+ set_state(PART:"elm.text.title", "default", 0.0);
+ }
+ }
+ program {
+ name: "prev_btn_show";
+ signal: "elm,state,prev_btn,show";
+ source: "elm";
+ script {
+ emit("elm,state,toolbar_bg,show", "elm");
+ }
+ }
+ program {
+ name: "prev_btn_hide";
+ signal: "elm,state,prev_btn,hide";
+ source: "elm";
+ script {
+ emit("elm,state,toolbar_bg,hide", "elm");
+ }
+ }
+ program {
+ name: "sip_show";
+ signal: "elm,state,sip,shown";
+ source: "";
+ script {
+ if (get_int(tbar_bg) <= 0)
+ set_state(PART:"toolbar_bg", "default", 0.0);
+ else
+ {
+ set_state(PART:"toolbar_bg", "sip_visible", 0.0);
+ set_state(PART:"elm.swallow.content", "sip_visible", 0.0);
+ }
+ }
+ }
+
+ program {
+ name: "sip_hide";
+ signal: "elm,state,sip,hidden";
+ source: "";
+ script {
+ if (get_int(tbar_bg) <= 0)
+ set_state(PART:"toolbar_bg", "default", 0.0);
+ else
+ {
+ set_state(PART:"toolbar_bg", "visible", 0.0);
+ set_state(PART:"elm.swallow.content", "default", 0.0);
+ }
+ }
+ }
+ program {
+ name: "left_btn_show";
+ signal: "elm,state,title_left_btn,show";
+ source: "elm";
+ script {
+ set_int(buttons_visible, get_int(buttons_visible) + 1);
+ set_state(PART:"bottom_right_padding", "visible", 0.0);
+ if (get_int(buttons_visible) >= 2)
+ set_state(PART:"title_btns_padding", "visible", 0.0);
+ }
+ }
+ program {
+ name: "left_btn_hide";
+ signal: "elm,state,title_left_btn,hide";
+ source: "elm";
+ script {
+ set_int(buttons_visible, get_int(buttons_visible) - 1);
+ set_state(PART:"title_btns_padding", "default", 0.0);
+ if (get_int(buttons_visible) == 0)
+ set_state(PART:"bottom_right_padding", "default", 0.0);
+ }
+ }
+ program {
+ name: "right_btn_show";
+ signal: "elm,state,title_right_btn,show";
+ source: "elm";
+ action: STATE_SET "visible" 0.0;
+ script {
+ set_int(buttons_visible, get_int(buttons_visible) + 1);
+ set_state(PART:"bottom_right_padding", "visible", 0.0);
+ if (get_int(buttons_visible) >= 2)
+ set_state(PART:"title_btns_padding", "visible", 0.0);
+ }
+ }
+ program {
+ name: "right_btn_hide";
+ signal: "elm,state,title_right_btn,hide";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ script {
+ set_int(buttons_visible, get_int(buttons_visible) - 1);
+ set_state(PART:"title_btns_padding", "default", 0.0);
+ if (get_int(buttons_visible) == 0)
+ set_state(PART:"bottom_right_padding", "default", 0.0);
+ }
+ }
+
+ program {
+ name: "toolbar_bg_show";
+ signal: "elm,state,toolbar_bg,show";
+ source: "elm";
+ script {
+ set_state(PART:"toolbar_bg", "visible", 0.0);
+ set_int(tbar_bg, get_int(tbar_bg) + 1);
+ }
+ }
+ program {
+ name: "toolbar_bg_hide";
+ signal: "elm,state,toolbar_bg,hide";
+ source: "elm";
+ script {
+ set_int(tbar_bg, get_int(tbar_bg) - 1);
+ if (get_int(tbar_bg) <= 0)
+ set_state(PART:"toolbar_bg", "default", 0.0);
+ }
+ }
+ program {
+ name: "toolbar_open";
+ signal: "elm,state,toolbar,open";
+ source: "";
+ action: STATE_SET "visible" 0.0;
+ target: "toolbar_bg";
+ transition: LINEAR 0.2;
+ }
+ program {
+ name: "toolbar_close";
+ signal: "elm,state,toolbar,close";
+ source: "";
+ action: STATE_SET "default" 0.0;
+ target: "toolbar_bg";
+ transition: LINEAR 0.2;
+ }
+
+ program {
+ name: "show_finished";
+ action: SIGNAL_EMIT "elm,action,show,finished" "";
+ }
+ program {
+ name: "hide_finished";
+ action: SIGNAL_EMIT "elm,action,hide,finished" "";
+ }
+
+ program {
+ name: "pushed_finished";
+ action: SIGNAL_EMIT "elm,action,pushed,finished" "";
+ }
+ program {
+ name: "popped_finished";
+ action: SIGNAL_EMIT "elm,action,popped,finished" "";
+ }
+ program {
+ name: "title_clicked";
+ signal: "mouse,clicked,1";
+ source: "click_event_area";
+ action: SIGNAL_EMIT "elm,action,title,clicked" "";
+ }
+ program {
+ name: "display_mode_compress";
+ signal: "display,mode,compress";
+ source: "";
+ action: SIGNAL_EMIT "elm,state,toolbar,instant_close" "";
+ }
+ program {
+ name: "display_mode_default";
+ signal: "display,mode,default";
+ source: "";
+ action: SIGNAL_EMIT "elm,state,toolbar,instant_open" "";
+ }
+ }
+}
+
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES 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 */
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES 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 */
+
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "pv-image.edc"
+
+#define FONT_BOLD_TYPE "Tizen:style=Bold"
+
+#define FONT_VOLUME_COLOR 255 255 255 255
+
+
+collections {
+ base_scale : 1.6;
+ group {
+ name: "pv.brightness.popup";
+ parts {
+ part {
+ name: "pv.brightness.popup.rect";
+ type: RECT;
+ mouse_events: 1;
+ repeat_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible : 1;
+ min: 58 286;
+ fixed: 1 1;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 0.0 0.5;}
+ color: 0 0 0 0;
+ }
+ }
+
+ part {
+ name: "pv.brightness.popup.bg";
+ type: IMAGE;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible : 1;
+ min: 58 286;
+ fixed: 1 1;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 0.0 0.5;}
+ color: 255 255 255 255;
+ image { normal: "volume/T01_2_volume_popup_bg.png"; border: 0 0 29 29;}
+ }
+ }
+
+ part {
+ name: "pv.brightness.popup.icon.padding";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible : 0;
+ min: 0 12;
+ fixed: 1 1;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 0.0; to: "pv.brightness.popup.bg";}
+ rel2 { relative: 1.0 0.0; to: "pv.brightness.popup.bg";}
+ color: 255 0 0 255;
+
+ }
+ }
+
+ part {
+ name: "pv.brightness.popup.icon";
+ type: SWALLOW;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible : 1;
+ min: 22 22;
+ fixed: 1 1;
+ align: 0.5 0.0;
+ rel1 { relative: 0.5 1.0; to_x: "pv.brightness.popup.bg"; to_y: "pv.brightness.popup.icon.padding";}
+ rel2 { relative: 0.5 1.0; to_x: "pv.brightness.popup.bg"; to_y: "pv.brightness.popup.icon.padding";}
+ }
+ }
+
+ part {
+ name: "pv.brightness.popup.top.padding";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible : 0;
+ min: 0 11;
+ fixed: 1 1;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 1.0; to: "pv.brightness.popup.icon";}
+ rel2 { relative: 1.0 1.0; to: "pv.brightness.popup.icon";}
+ color: 255 0 0 255;
+
+ }
+ }
+
+ part {
+ name: "pv.brightness.popup.bottom.padding";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible : 0;
+ min: 0 18;
+ fixed: 1 1;
+ align: 0.0 1.0;
+ rel1 { relative: 0.0 1.0; to: "pv.brightness.popup.bg";}
+ rel2 { relative: 1.0 1.0; to: "pv.brightness.popup.bg";}
+ color: 255 0 0 255;
+
+ }
+ }
+
+ part {
+ name: "pv.brightness.popup.txt";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ effect: FAR_SHADOW BOTTOM;
+ description {
+ state: "default" 0.0;
+ visible : 1;
+ min: 0 23;
+ fixed: 1 1;
+ align: 0.5 1.0;
+ rel1 { relative: 0.0 0.0; to: "pv.brightness.popup.bottom.padding";}
+ rel2 { relative: 1.0 0.0; to: "pv.brightness.popup.bottom.padding";}
+ color: FONT_VOLUME_COLOR;
+ color3: 51 57 72 255;
+ text {
+ font: FONT_BOLD_TYPE;
+ size: 21;
+ text: "3";
+ align: 0.5 0.5;
+ }
+
+ }
+ }
+
+ part {
+ name: "pv.brightness.popup.txt.padding";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible : 0;
+ min: 0 11;
+ fixed: 0 1;
+ align: 0.0 1.0;
+ rel1 { relative: 0.0 0.0; to: "pv.brightness.popup.txt";}
+ rel2 { relative: 1.0 0.0; to: "pv.brightness.popup.txt";}
+ color: 255 0 0 255;
+
+ }
+ }
+
+ part {
+ name: "pv.brightness.popup.bar.bg";
+ type: IMAGE;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 6 0;
+ fixed: 1 0;
+ align: 0.5 0.5;
+ rel1 { relative: 0.5 1.0; to_x : "pv.brightness.popup.bg"; to_y : "pv.brightness.popup.top.padding";}
+ rel2 { relative: 0.5 0.0; to_x : "pv.brightness.popup.bg"; to_y : "pv.brightness.popup.txt.padding";}
+ image { normal: "volume/T01_2_volume_popup_progress_bg.png"; border: 0 0 19 19;}
+ color: 255 255 255 255;
+ }
+ }
+
+ part {
+ name: "pv.brightness.popup.bar.bg.top.padding";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 0 22;
+ fixed: 0 1;
+ align: 0.5 0.0;
+ rel1 { relative: 0.0 0.0; to : "pv.brightness.popup.bar.bg"; }
+ rel2 { relative: 1.0 0.0; to : "pv.brightness.popup.bar.bg"; }
+ color: 255 255 255 255;
+ }
+ }
+
+ part {
+ name: "pv.brightness.popup.bar.bg.bottom.padding";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 0 22;
+ fixed: 0 1;
+ align: 0.5 1.0;
+ rel1 { relative: 0.0 1.0; to : "pv.brightness.popup.bar.bg"; }
+ rel2 { relative: 1.0 1.0; to : "pv.brightness.popup.bar.bg"; }
+ color: 255 255 255 255;
+ }
+ }
+
+ part {
+ name: "pv.brightness.popup.bar.rect";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 0 13;
+ fixed: 0 1;
+ align: 0.5 1.0;
+ rel1 { relative: 0.0 1.0; to_x : "pv.brightness.popup.bar.bg"; to_y : "pv.brightness.popup.bar.bg.top.padding";}
+ rel2 { relative: 1.0 0.0; to_x : "pv.brightness.popup.bar.bg"; to_y : "pv.brightness.popup.bar.bg.bottom.padding";}
+ color: 255 255 255 255;
+ }
+ }
+
+
+ part {
+ name: "pv.brightness.popup.step";
+ type: IMAGE;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 6 0;
+ fixed: 1 0;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 0.5; to_x : "pv.brightness.popup.bar.bg"; to_y: "pv.brightness.popup.circle"; }
+ rel2 { relative: 1.0 1.0; to_x : "pv.brightness.popup.bar.bg"; to_y: "pv.brightness.popup.bar.bg"; offset: 0 2; }
+ color: 255 255 255 255;
+ image { normal: "volume/T01_2_volume_popup_progress_bar.png"; border: 0 0 10 10;}
+ color: 255 255 255 255;
+ }
+ }
+ part {
+ name: "pv.brightness.popup.confine.rect";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ align: 0.5 0.0;
+ min: 24 0;
+ rel1 { relative: 0.5 0.0; to: "pv.brightness.popup.bar.bg"; offset: 0 -11; }
+ rel2 { relative: 0.5 1.0; to: "pv.brightness.popup.bar.bg"; offset: 0 11; }
+ color: 255 255 255 0;
+ }
+ }
+
+ part {
+ name: "pv.brightness.popup.circle";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 24 24;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ rel1 { relative: 0.5 0.5; to_x: "pv.brightness.popup.bar.rect"; to_y: "pv.brightness.popup.playing"; }
+ rel2 { relative: 0.5 0.5; to_x: "pv.brightness.popup.bar.rect"; to_y: "pv.brightness.popup.playing"; }
+ color: 255 255 255 255;
+ }
+ }
+ part {
+ name: "pv.brightness.popup.playing";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 24 24;
+ fixed: 0 0;
+ align: 0.0 0.0;
+ }
+ dragable {
+ confine: "pv.brightness.popup.confine.rect";
+ x: 0 0 0;
+ y: -1 1 0;
+ }
+ }
+
+
+ part {
+ name: "pv.brightness.popup.point";
+ type: IMAGE;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 24 24;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ rel1 { relative: 0.5 0.5; to: "pv.brightness.popup.playing"; }
+ rel2 { relative: 0.5 0.5; to: "pv.brightness.popup.playing"; }
+ image { normal: "volume/T01_2_volume_popup_progress_handle.png";}
+ color: 255 255 255 255;
+ }
+ }
+ } /* parts */
+ } /* group */
+} /* collections */
+
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES 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 */
+
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES 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 */
+
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES 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"
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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;}
+ }
+ }
+ }
+}
+
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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;
+}
+
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+//#include "mp-defines.h"
+
+#define LOCKSCREEN_MINI_W 300
+#define LOCKSCREEN_MINI_H 93
+#define LOCKSCREEN_TOP_PADDING 19.2
+#define LOCKSCREEN_LEFT_PADDING 24
+#define LOCKSCREEN_RIGHT_PADDING 22.5
+#define LOCKSCREEN_BOTTOM_PADDING 36.8
+#define ALBUM_ART_SIZE 120 120
+
+#define LOCKSCREEN_BUTTON_SIZE_MIN_MAX 99 105
+#define LOCKSCREEN_BIG_BTN_SIZE_MIN_MAX 126 134
+
+#define MC_LOCKSCREEN_BG 30 28 28 0
+
+#define MC_LOCKSCREEN_PREVIOUS "lock_screen/control_circle_icon_rewind.png"
+#define MC_LOCKSCREEN_PREVIOUS_PRESS "lock_screen/control_circle_icon_rewind_press.png"
+#define MC_LOCKSCREEN_NEXT "lock_screen/control_circle_icon_ff.png"
+#define MC_LOCKSCREEN_NEXT_PRESS "lock_screen/control_circle_icon_ff_press.png"
+
+#define MC_LOCKSCREEN_PLAY "lock_screen/control_circle_icon_play.png"
+#define MC_LOCKSCREEN_PAUSE "lock_screen/control_circle_icon_pause.png"
+#define MC_LOCKSCREEN_PLAY_PRESS "lock_screen/control_circle_icon_play_press.png"
+#define MC_LOCKSCREEN_PAUSE_PRESS "lock_screen/control_circle_icon_pause_press.png"
+#define MC_MUSIC_STOP_BTN "lock_screen/control_circle_icon_stop.png"
+#define MC_MUSIC_ALBUM_FRAME "lock_screen/album_frame.png"
+
+
+#define LOCKSCREEN_INTERVAL 34.5
+#define MC_LOCKSCREEN_FOCUSED_COVER(__name, __over_part_bg) \
+part { \
+ name: __name"_focus"; \
+ type: SWALLOW; \
+ mouse_events: 1; \
+ scale: 1; \
+ repeat_events: 1; \
+ description { \
+ state: "default" 0.0; \
+ align: 0 0; \
+ visible:1; \
+ rel1 { \
+ relative: 0 0; \
+ to: __over_part_bg; \
+ } \
+ rel2 { \
+ relative: 1 1; \
+ to: __over_part_bg; \
+ } \
+ } \
+}
+
+#define MC_LOCKSCREEN_PART_AREA_FROM_LEFT(__name, __left_part, __width, __height) \
+part { name: __name; \
+ type: SPACER; \
+ scale: 1; \
+ mouse_events: 0; \
+ description { state: "default" 0.0; \
+ rel1 { relative: 1.0 0.5; to: __left_part; } \
+ rel2 { relative: 1.0 0.5; to: __left_part; } \
+ min: __width __height; \
+ fixed: 1 1; \
+ align: 0.0 0.5; \
+ } \
+}
+/*
+#define MC_LOCKSCREEN_PROGRAM_PLAY_TOUCH_SOUND \
+program { name: "play_sound"; \
+ action: RUN_PLUGIN "touch_sound_plugin"; \
+}
+*/
+#define MC_LOCKSCREEN_PART_ICON_BTN(__name, __to, __normal, __pressed, __btn_min_max) \
+part { name: __name"_clip"; \
+ type: RECT; \
+ scale: 1; \
+ mouse_events: 0; \
+ description { state: "default" 0.0; \
+ rel1.to: __name"_bg"; \
+ rel2.to: __name"_bg"; \
+ color: 255 255 255 255; \
+ } \
+ description { state: "hide" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 0; \
+ } \
+} \
+part { name: __name"_bg"; \
+ type: IMAGE; \
+ scale: 1; \
+ mouse_events: 0; \
+ clip_to: __name"_clip"; \
+ description { state: "default" 0.0; \
+ rel1 { relative: 0.5 0.5; to: __to; } \
+ rel2 { relative: 0.5 0.5; to: __to; }\
+ min: __btn_min_max; \
+ max: __btn_min_max; \
+ image.normal: __normal; \
+ fixed: 1 1; \
+ align: 0.5 0.5; \
+ } \
+ description { state: "pressed" 0.0; \
+ inherit: "default" 0.0; \
+ } \
+} \
+part { name: __name; \
+ type: RECT; \
+ scale: 1; \
+ mouse_events: 1; \
+ clip_to: __name"_clip"; \
+ description { state: "default" 0.0; \
+ rel1.to: __name"_bg"; \
+ rel2.to: __name"_bg"; \
+ color: 0 0 0 0; \
+ } \
+}
+
+#define MC_LOCKSCREEN_PART_BUTTON(__name, __to, __normal, __pressed, __min_max) \
+part { \
+ name: __name"_spacer"; \
+ type: SPACER; \
+ scale: 1; \
+ description { state: "default" 0.0; \
+ rel1 { relative: 0 0; to: __to; } \
+ rel2 { relative: 1 1; to: __to; } \
+ } \
+} \
+part { \
+ name: __name"_bg"; \
+ mouse_events: 0; \
+ type: RECT; \
+ scale: 1; \
+ description { \
+ state: "default" 0.0; \
+ align: 0.5 0.5; \
+ visible: 0; \
+ rel1 { \
+ relative: 0.5 0.5; \
+ to: __name"_spacer"; \
+ } \
+ rel2 { \
+ relative: 0.5 0.5; \
+ to: __name"_spacer"; \
+ } \
+ min: __min_max; \
+ max: __min_max; \
+ fixed: 1 1; \
+ } \
+ description { state: "invisible" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 0; \
+ } \
+} \
+part{ \
+ name : __name"_press_bg"; \
+ type: RECT; \
+ mouse_events:0; \
+ scale : 1; \
+ description { \
+ state: "default" 0.0; \
+ align: 0 0; \
+ visible:1; \
+ color: 0 0 0 0; \
+ rel1 { \
+ relative: 0 0; \
+ to: __name"_bg"; \
+ } \
+ rel2 { \
+ relative: 1 1; \
+ to: __name"_bg"; \
+ } \
+ } \
+ description { \
+ state: "press" 0.0; \
+ inherit: "default" 0.0; \
+ } \
+ description { state: "invisible" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 0; \
+ } \
+} \
+part { \
+ name: __name; \
+ type: IMAGE; \
+ mouse_events: 1; \
+ scale: 1; \
+ description { \
+ state: "default" 0.0; \
+ align: 0 0; \
+ visible:1; \
+ image { normal: __normal; } \
+ rel1 { \
+ relative: 0 0; \
+ to: __name"_bg"; \
+ } \
+ rel2 { \
+ relative: 1 1; \
+ to: __name"_bg"; \
+ } \
+ } \
+ description { \
+ state: "press" 0.0; \
+ inherit: "default" 0.0; \
+ image { normal: __pressed; } \
+ } \
+ description { state: "invisible" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 0; \
+ } \
+}
+
+#define MC_LOCKSCREEN_PAUSE_PART_BUTTON(__name, __to, __normal, __pressed, __min_max) \
+part { \
+ name: __name"_spacer"; \
+ type: SPACER; \
+ scale: 1; \
+ description { state: "default" 0.0; \
+ rel1 { relative: 0 0; to: __to; } \
+ rel2 { relative: 1 1; to: __to; } \
+ } \
+} \
+part { \
+ name: __name"_bg"; \
+ mouse_events: 0; \
+ type: RECT; \
+ scale: 1; \
+ description { \
+ state: "default" 0.0; \
+ align: 0.5 0.5; \
+ visible: 0; \
+ rel1 { \
+ relative: 0.5 0.5; \
+ to: __name"_spacer"; \
+ } \
+ rel2 { \
+ relative: 0.5 0.5; \
+ to: __name"_spacer"; \
+ } \
+ min: __min_max; \
+ max: __min_max; \
+ fixed: 1 1; \
+ color: 0 0 0 0; \
+ } \
+ description { state: "invisible" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 0; \
+ } \
+} \
+part{ \
+ name : __name"_press_bg"; \
+ type: RECT; \
+ mouse_events:0; \
+ scale : 1; \
+ description { \
+ state: "default" 0.0; \
+ align: 0 0; \
+ color: 0 0 0 0; \
+ visible:1; \
+ rel1 { \
+ relative: 0 0; \
+ to: __name"_bg"; \
+ } \
+ rel2 { \
+ relative: 1 1; \
+ to: __name"_bg"; \
+ } \
+ } \
+ description { \
+ state: "press" 0.0; \
+ inherit: "default" 0.0; \
+ } \
+ description { state: "invisible" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 0; \
+ } \
+} \
+part { \
+ name: __name; \
+ type: IMAGE; \
+ mouse_events: 1; \
+ scale: 1; \
+ description { \
+ state: "default" 0.0; \
+ align: 0 0; \
+ visible:1; \
+ image { normal: __normal; } \
+ rel1 { \
+ relative: 0 0; \
+ to: __name"_bg"; \
+ } \
+ rel2 { \
+ relative: 1 1; \
+ to: __name"_bg"; \
+ } \
+ } \
+ description { \
+ state: "press" 0.0; \
+ inherit: "default" 0.0; \
+ image { normal: __pressed; } \
+ } \
+ description { state: "invisible" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 0; \
+ } \
+}
+
+#define MC_LOCKSCREEN_PART_TEXT_BTN(__name, __to, __text_part_name) \
+part { name: __name"_clip"; \
+ type: RECT; \
+ scale: 1; \
+ mouse_events: 0; \
+ description { state: "default" 0.0; \
+ rel1.to: __to; \
+ rel2.to: __to; \
+ color: 255 255 255 255; \
+ } \
+ description { state: "hide" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 0; \
+ } \
+} \
+part { name: __name"_bg"; \
+ type: SPACER; \
+ scale: 1; \
+ mouse_events: 0; \
+ clip_to: __name"_clip"; \
+ description { state: "default" 0.0; \
+ rel1.to: __to; \
+ rel2.to: __to; \
+ } \
+ description { state: "pressed" 0.0; \
+ inherit: "default" 0.0; \
+ } \
+} \
+part { name: __text_part_name; \
+ type: TEXT; \
+ scale: 1; \
+ mouse_events: 0; \
+ clip_to: __name"_clip"; \
+ description { state: "default" 0.0; \
+ rel1.to: __name"_bg"; \
+ rel2.to: __name"_bg"; \
+ text { \
+ font: "Tizen:style=Medium"; \
+ text_class: "tizen"; \
+ size: 28; \
+ align: 0.5 0.5; \
+ } \
+ color: 149 149 149 255; \
+ } \
+} \
+part { name: __name; \
+ type: RECT; \
+ scale: 1; \
+ mouse_events: 1; \
+ clip_to: __name"_clip"; \
+ description { state: "default" 0.0; \
+ rel1.to: __to; \
+ rel2.to: __to; \
+ color: 0 0 0 0; \
+ } \
+}
+
+#define MC_LOCKSCREEN_PART_RECT(__name, __to, __sx, __sy, __ex, __ey) \
+part { \
+ name: __name; \
+ mouse_events: 1; \
+ repeat_events: 1; \
+ type: RECT; \
+ scale: 1; \
+ description { \
+ state: "default" 0.0; \
+ align: 0 0; \
+ visible: 1; \
+ rel1 { \
+ relative: __sx __sy; \
+ to: __to; \
+ } \
+ rel2 { \
+ relative: __ex __ey; \
+ to: __to; \
+ } \
+ color: 0 0 0 0; \
+ }\
+ description { \
+ state: "hide" 0.0; \
+ visible: 0; \
+ }\
+}
+
+#define MC_LOCKSCREEN_PART_SWALLOW(__name, __to, __sx, __sy, __ex, __ey) \
+part { \
+ name: __name; \
+ mouse_events: 1; \
+ type: SWALLOW; \
+ scale: 1; \
+ description { \
+ state: "default" 0.0; \
+ align: 0.5 0.5; \
+ fixed: 1 1; \
+ visible: 1; \
+ fixed:1 1;\
+ rel1 { \
+ relative: __sx __sy; \
+ to: __to; \
+ } \
+ rel2 { \
+ relative: __ex __ey; \
+ to: __to; \
+ } \
+ color: 0 0 0 0; \
+ } \
+}
+
+#define MC_LOCKSCREEN_PROGRAM_BTN_ACTION(__btn, __down_emission, __down_src, __up_emission, __up_src, __clicked_emission, __clicked_src) \
+program { \
+ source: __btn; \
+ signal: "mouse,down,1"; \
+ script { \
+ set_state(PART:__btn"_bg", "pressed", 0.0); \
+ emit(__down_emission, __down_src); \
+ } \
+ transition: ACCELERATE 0.02;\
+} \
+program { \
+ signal: "mouse,up,1"; \
+ source: __btn; \
+ script { \
+ set_state(PART:__btn"_bg", "default", 0.0); \
+ emit(__up_emission, __up_src); \
+ } \
+} \
+program { \
+ signal: "mouse,clicked,1"; \
+ source: __btn; \
+ action: SIGNAL_EMIT __clicked_emission __clicked_src; \
+}
+
+#define MC_LOCKSCREEN_BUTTON_PROGRAM(__name) \
+program { \
+ name: __name"_down"; \
+ source: __name; \
+ signal: "mouse,down,1"; \
+ action: STATE_SET "press" 0.0; \
+ target: __name"_bg"; \
+ target: __name"_press_bg"; \
+ target: __name; \
+ transition: ACCELERATE 0.02;\
+} \
+program { \
+ name: __name"_up"; \
+ source: __name; \
+ signal: "mouse,up,1"; \
+ action: STATE_SET "default" 0.0; \
+ target: __name"_bg"; \
+ target: __name"_press_bg"; \
+ target: __name; \
+ transition: DECELERATE 0.02;\
+} \
+program { \
+ name: __name"_unpressed"; \
+ source: __name; \
+ signal: "signal.button.unpressed"; \
+ action: STATE_SET "default" 0.0; \
+ target: __name"_bg"; \
+ target: __name"_press_bg"; \
+ target: __name; \
+ transition: DECELERATE 0.02;\
+} \
+program { \
+ name: __name"_clicked"; \
+ source: __name; \
+ signal: "mouse,clicked,1"; \
+ action: SIGNAL_EMIT __name"_clicked" 0.0; \
+}
+
+#define MC_LOCKSCREEN_BUTTON_VISIVBLE_PROGRAM(__name) \
+program { \
+ name: __name"_visible" ; \
+ signal: __name"_visible"; \
+ source: __name; \
+ action: STATE_SET "default" 0.0; \
+ target: __name"_bg"; \
+ target: __name"_press_bg"; \
+ target: __name; \
+} \
+program { \
+ name: __name"_invisible" ; \
+ signal: __name"_invisible"; \
+ source: __name; \
+ action: STATE_SET "invisible" 0.0; \
+ target: __name"_bg"; \
+ target: __name"_press_bg"; \
+ target: __name; \
+}
+
+#define MC_LOCKSCREEN_PROGRAM_BTN_VISIBLE(__btn, __show_signal, __hide_signal) \
+program { \
+ signal: __show_signal; \
+ source: "*"; \
+ action: STATE_SET "default" 0.0; \
+ target: __btn"_clip"; \
+} \
+program { \
+ signal: __hide_signal; \
+ source: "*"; \
+ action: STATE_SET "hide" 0.0; \
+ target: __btn"_clip"; \
+}
+
+#define MC_LOCKSCREEN_MINI_CONTROL_HIDE_SWALLOW_OPTION(__name, __to) \
+part { \
+ name: __name; \
+ mouse_events: 1; \
+ type: SWALLOW; \
+ scale: 1; \
+ repeat_events: 1; \
+ description { \
+ state: "default" 0.0; \
+ align: 0.5 0.5; \
+ visible: 0; \
+ rel1 { \
+ relative: 0 0; \
+ to: __to; \
+ } \
+ rel2 { \
+ relative: 1 1; \
+ to: __to; \
+ } \
+ color: 0 0 0 0; \
+ } \
+ description { \
+ state: "visible" 0.0; \
+ inherit: "default"; \
+ visible: 1; \
+ } \
+}
+
+#define MC_LOCKSCREEN_MINI_CONTROL_BUTTON_INVISIVBLE_PROGRAM(__name) \
+program { \
+ name: __name"_visible" ; \
+ signal: __name"_visible"; \
+ source: __name; \
+ action: STATE_SET "visible" 0.0; \
+ target: __name; \
+} \
+program { \
+ name: __name"_invisible" ; \
+ signal: __name"_invisible"; \
+ source: __name; \
+ action: STATE_SET "default" 0.0; \
+ target: __name; \
+}
+
+externals {
+ external: "elm";
+ external: "feedback";
+}
+
+collections {
+base_scale: 2.4;
+/*
+sounds {
+ sample {
+ name: "button-pressed" AS_IS;
+ source: MP_BUTTON_PRESSED_NAME;
+ }
+}
+plugins {
+ plugin {
+ name: "touch_sound_plugin";
+ source: "feedback";
+ param: "FEEDBACK_TYPE_SOUND FEEDBACK_PATTERN_TAP";
+ }
+}
+*/
+group {
+ name: "video-lockscreenmini";
+ images {
+ image: MC_LOCKSCREEN_PREVIOUS COMP;
+ image: MC_LOCKSCREEN_PREVIOUS_PRESS COMP;
+ image: MC_LOCKSCREEN_NEXT COMP;
+ image: MC_LOCKSCREEN_NEXT_PRESS COMP;
+ image: MC_LOCKSCREEN_PLAY COMP;
+ image: MC_LOCKSCREEN_PAUSE COMP;
+ image: MC_LOCKSCREEN_PLAY_PRESS COMP;
+ image: MC_LOCKSCREEN_PAUSE_PRESS COMP;
+ image: MC_MUSIC_ALBUM_FRAME COMP;
+ }
+ parts {
+ part{ name: "bg";
+ type : RECT;
+ scale : 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ min : 0 LOCKSCREEN_MINI_H;
+ fixed: 1 1;
+ rel1{ relative : 0 0;}
+ rel2{ relative : 1 1;}
+ color : MC_LOCKSCREEN_BG;
+ }
+ }
+
+ part { name: "padding.top";
+ type: SPACER;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 0; to: "bg"; }
+ rel2 { relative: 1 0; to: "bg"; }
+ min: 0 LOCKSCREEN_TOP_PADDING;
+ fixed: 0 1;
+ align: 0 0;
+ }
+ }
+
+ part { name: "padding.left";
+ type: SPACER;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 0; to: "bg"; }
+ rel2 { relative: 0 1; to: "bg"; }
+ min: LOCKSCREEN_LEFT_PADDING 0;
+ fixed: 1 0;
+ align: 0 0;
+ }
+ }
+
+ part { name: "padding.right";
+ type: SPACER;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 1 0; to: "bg"; }
+ rel2 { relative: 1 1; to: "bg"; }
+ min: LOCKSCREEN_RIGHT_PADDING 0;
+ fixed: 1 0;
+ align: 1 0;
+ }
+ }
+
+ part { name: "padding.bottom";
+ type: SPACER;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 1; to: "bg"; }
+ rel2 { relative: 1 1; to: "bg"; }
+ min: 0 LOCKSCREEN_BOTTOM_PADDING;
+ fixed: 0 1;
+ align: 0 1;
+ }
+ }
+ part { name: "padding_for_albumart.top";
+ type: SPACER;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: 0 0; to: "bg"; }
+ rel2 { relative: 1 0; to: "bg"; }
+ min: 0 40;
+ fixed: 0 1;
+ align: 0.0 0.0;
+ }
+ }
+
+ part { name: "padding_for_albumart.bottom";
+ type: SPACER;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 1; to: "bg"; }
+ rel2 { relative: 1 1; to: "bg"; }
+ min: 0 15;
+ fixed: 0 1;
+ align: 0 1;
+ }
+ }
+ part { name: "albumarmt_bg";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 1.0 1.0; to_x: "padding.left"; to_y: "padding_for_albumart.top"; }
+ rel2 { relative: 1.0 0.0; to_x: "padding.left"; to_y: "padding_for_albumart.bottom"; }
+ min: ALBUM_ART_SIZE;
+ max: ALBUM_ART_SIZE;
+ fixed: 1 1;
+ align: 0.0 0.5;
+ }
+ }
+ part { name: "albumart_image";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 1;
+ clip_to: "albumarmt_bg";
+ description { state: "default" 0.0;
+ rel1 { relative: 0.5 0.5; to: "albumarmt_bg"; }
+ rel2 { relative: 0.5 0.5; to: "albumarmt_bg"; }
+ min: ALBUM_ART_SIZE;
+ max: ALBUM_ART_SIZE;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ }
+ }
+
+ part { name: "albumarmt_frame";
+ type: IMAGE;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 0.0 0.0; to: "albumarmt_bg";}
+ rel2 { relative: 1.0 1.0; to: "albumarmt_bg";}
+ min: ALBUM_ART_SIZE;
+ image.normal: MC_MUSIC_ALBUM_FRAME;
+ color_class:"AO009";
+ }
+ }
+ part { name: "elm.text";
+ type: SWALLOW;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 1.0 1.0; to_x: "padding.left"; to_y: "padding.top";}
+ rel2 { relative: 0 1.0; to_x: "padding.right"; to_y: "padding.top"; offset: 0 45;}
+ fixed: 1 1;
+ }
+ }
+
+ part { name: "control_area";
+ type: SPACER;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 1.0 1.0; to_x: "padding.left"; to_y: "elm.text"; }
+ rel2 { relative: 0.0 0.0; to_x: "padding.right"; to_y: "padding.bottom"; }
+ min: 0 134.4;
+ fixed: 0 1;
+ align: 0.5 0.5;
+ }
+ }
+
+ part { name: "rew_btn_area";
+ type: SPACER;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 0.27 0.45; to_x: "control_area"; to_y: "control_area";}
+ rel2 { relative: 0.27 0.45; to_x: "control_area"; to_y: "control_area";}
+ min: 99 134;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ }
+ }
+
+ part { name: "left_area";
+ type: SPACER;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 0.0 0.0; to: "rew_btn_area"; }
+ rel2 { relative: 1.0 1.0; to: "rew_btn_area"; }
+ min: LOCKSCREEN_BUTTON_SIZE_MIN_MAX;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ }
+ }
+
+ MC_LOCKSCREEN_PART_BUTTON("rew_btn", "left_area", MC_LOCKSCREEN_PREVIOUS, MC_LOCKSCREEN_PREVIOUS_PRESS, LOCKSCREEN_BUTTON_SIZE_MIN_MAX)
+ MC_LOCKSCREEN_FOCUSED_COVER("rew", "left_area");
+
+ MC_LOCKSCREEN_PART_AREA_FROM_LEFT("rew_right_padding", "left_area", LOCKSCREEN_INTERVAL, 134)
+
+ MC_LOCKSCREEN_PART_AREA_FROM_LEFT("play_pause_btn_area", "rew_right_padding", 126, 134)
+
+ MC_LOCKSCREEN_PART_BUTTON("play_btn", "play_pause_btn_area", MC_LOCKSCREEN_PAUSE, MC_LOCKSCREEN_PAUSE_PRESS, LOCKSCREEN_BIG_BTN_SIZE_MIN_MAX)
+ MC_LOCKSCREEN_PAUSE_PART_BUTTON("pause_btn", "play_pause_btn_area", MC_LOCKSCREEN_PLAY, MC_LOCKSCREEN_PLAY_PRESS, LOCKSCREEN_BIG_BTN_SIZE_MIN_MAX)
+
+ MC_LOCKSCREEN_FOCUSED_COVER("play_pause", "play_pause_btn_area");
+
+ MC_LOCKSCREEN_PART_AREA_FROM_LEFT("play_pause_right_padding", "play_pause_btn_area", LOCKSCREEN_INTERVAL, 134)
+
+ MC_LOCKSCREEN_PART_AREA_FROM_LEFT("ff_btn_area", "play_pause_right_padding", 99, 105)
+
+ MC_LOCKSCREEN_PART_BUTTON("ff_btn", "ff_btn_area", MC_LOCKSCREEN_NEXT, MC_LOCKSCREEN_NEXT_PRESS, LOCKSCREEN_BUTTON_SIZE_MIN_MAX)
+ MC_LOCKSCREEN_FOCUSED_COVER("ff", "ff_btn_area");
+
+ }
+
+ programs {
+/* MC_LOCKSCREEN_PROGRAM_PLAY_TOUCH_SOUND*/
+
+ MC_LOCKSCREEN_BUTTON_PROGRAM("rew_btn")
+ MC_LOCKSCREEN_BUTTON_PROGRAM("ff_btn")
+
+ MC_LOCKSCREEN_BUTTON_PROGRAM("play_btn")
+ MC_LOCKSCREEN_BUTTON_VISIVBLE_PROGRAM("play_btn")
+ MC_LOCKSCREEN_BUTTON_PROGRAM("pause_btn")
+ MC_LOCKSCREEN_BUTTON_VISIVBLE_PROGRAM("pause_btn")
+
+ program { name: "set_pause_icon";
+ signal: "set_pause";
+ source: "*";
+ script{
+ emit("hide_play_btn", "edje");
+ emit("show_pause_btn", "edje");
+ }
+ }
+ program { name: "set_play_icon";
+ signal: "set_play";
+ source: "*";
+ script{
+ emit("show_play_btn", "edje");
+ emit("hide_pause_btn", "edje");
+ }
+ }
+ }
+
+}
+
+group {
+ name: "video-lockscreenmini-live-streaming";
+ images {
+ image: MC_LOCKSCREEN_PLAY COMP;
+ image: MC_MUSIC_STOP_BTN COMP;
+ image: MC_LOCKSCREEN_PLAY_PRESS COMP;
+ image: MC_MUSIC_ALBUM_FRAME COMP;
+ }
+ parts {
+ part{ name: "bg";
+ type : RECT;
+ scale : 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ min : 0 LOCKSCREEN_MINI_H;
+ fixed: 1 1;
+ rel1{ relative : 0 0;}
+ rel2{ relative : 1 1;}
+ color : MC_LOCKSCREEN_BG;
+ }
+ }
+
+ part { name: "padding.top";
+ type: SPACER;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 0; to: "bg"; }
+ rel2 { relative: 1 0; to: "bg"; }
+ min: 0 LOCKSCREEN_TOP_PADDING;
+ fixed: 0 1;
+ align: 0 0;
+ }
+ }
+
+ part { name: "padding.left";
+ type: SPACER;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 0; to: "bg"; }
+ rel2 { relative: 0 1; to: "bg"; }
+ min: LOCKSCREEN_LEFT_PADDING 0;
+ fixed: 1 0;
+ align: 0 0;
+ }
+ }
+
+ part { name: "padding.right";
+ type: SPACER;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 1 0; to: "bg"; }
+ rel2 { relative: 1 1; to: "bg"; }
+ min: LOCKSCREEN_RIGHT_PADDING 0;
+ fixed: 1 0;
+ align: 1 0;
+ }
+ }
+
+ part { name: "padding.bottom";
+ type: SPACER;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 1; to: "bg"; }
+ rel2 { relative: 1 1; to: "bg"; }
+ min: 0 LOCKSCREEN_BOTTOM_PADDING;
+ fixed: 0 1;
+ align: 0 1;
+ }
+ }
+ part { name: "padding_for_albumart.top";
+ type: SPACER;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: 0 0; to: "bg"; }
+ rel2 { relative: 1 0; to: "bg"; }
+ min: 0 40;
+ fixed: 0 1;
+ align: 0.0 0.0;
+ }
+ }
+
+ part { name: "padding_for_albumart.bottom";
+ type: SPACER;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 1; to: "bg"; }
+ rel2 { relative: 1 1; to: "bg"; }
+ min: 0 15;
+ fixed: 0 1;
+ align: 0 1;
+ }
+ }
+ part { name: "albumarmt_bg";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 1.0 1.0; to_x: "padding.left"; to_y: "padding_for_albumart.top"; }
+ rel2 { relative: 1.0 0.0; to_x: "padding.left"; to_y: "padding_for_albumart.bottom"; }
+ min: ALBUM_ART_SIZE;
+ max: ALBUM_ART_SIZE;
+ fixed: 1 1;
+ align: 0.0 0.5;
+ }
+ }
+ part { name: "albumart_image";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 1;
+ clip_to: "albumarmt_bg";
+ description { state: "default" 0.0;
+ rel1 { relative: 0.5 0.5; to: "albumarmt_bg"; }
+ rel2 { relative: 0.5 0.5; to: "albumarmt_bg"; }
+ min: ALBUM_ART_SIZE;
+ max: ALBUM_ART_SIZE;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ }
+ }
+
+ part { name: "albumarmt_frame";
+ type: IMAGE;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 0.0 0.0; to: "albumarmt_bg";}
+ rel2 { relative: 1.0 1.0; to: "albumarmt_bg";}
+ min: ALBUM_ART_SIZE;
+ image.normal: MC_MUSIC_ALBUM_FRAME;
+ color_class:"AO009";
+ }
+ }
+ part { name: "elm.text";
+ type: SWALLOW;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 1.0 1.0; to_x: "padding.left"; to_y: "padding.top";}
+ rel2 { relative: 0 1.0; to_x: "padding.right"; to_y: "padding.top"; offset: 0 45;}
+ fixed: 1 1;
+ }
+ }
+
+ part { name: "control_area";
+ type: SPACER;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 1.0 1.0; to_x: "padding.left"; to_y: "elm.text"; }
+ rel2 { relative: 0.0 0.0; to_x: "padding.right"; to_y: "padding.bottom"; }
+ min: 0 134.4;
+ fixed: 0 1;
+ align: 0.5 0.5;
+ }
+ }
+
+ part { name: "left_side_area";
+ type: SPACER;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 0.27 0.45; to_x: "control_area"; to_y: "control_area";}
+ rel2 { relative: 0.27 0.45; to_x: "control_area"; to_y: "control_area";}
+ min: 99 134;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ }
+ }
+
+ part { name: "left_area";
+ type: SPACER;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 0.0 0.0; to: "left_side_area"; }
+ rel2 { relative: 1.0 1.0; to: "left_side_area"; }
+ min: LOCKSCREEN_BUTTON_SIZE_MIN_MAX;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ }
+ }
+
+ MC_LOCKSCREEN_PART_AREA_FROM_LEFT("left_area_padding", "left_area", LOCKSCREEN_INTERVAL, 134)
+
+ MC_LOCKSCREEN_PART_AREA_FROM_LEFT("play_pause_btn_area", "left_area_padding", 126, 134)
+
+ MC_LOCKSCREEN_PART_BUTTON("play_btn", "play_pause_btn_area", MC_MUSIC_STOP_BTN, MC_MUSIC_STOP_BTN, LOCKSCREEN_BIG_BTN_SIZE_MIN_MAX)
+ MC_LOCKSCREEN_PAUSE_PART_BUTTON("pause_btn", "play_pause_btn_area", MC_LOCKSCREEN_PLAY, MC_LOCKSCREEN_PLAY_PRESS, LOCKSCREEN_BIG_BTN_SIZE_MIN_MAX)
+
+ MC_LOCKSCREEN_FOCUSED_COVER("play_pause", "play_pause_btn_area");
+
+ MC_LOCKSCREEN_PART_AREA_FROM_LEFT("play_pause_right_padding", "play_pause_btn_area", LOCKSCREEN_INTERVAL, 134)
+ }
+
+ programs {
+ MC_LOCKSCREEN_BUTTON_PROGRAM("play_btn")
+ MC_LOCKSCREEN_BUTTON_VISIVBLE_PROGRAM("play_btn")
+ MC_LOCKSCREEN_BUTTON_PROGRAM("pause_btn")
+ MC_LOCKSCREEN_BUTTON_VISIVBLE_PROGRAM("pause_btn")
+
+ program { name: "set_pause_icon";
+ signal: "set_pause";
+ source: "*";
+ script{
+ emit("hide_play_btn", "edje");
+ emit("show_pause_btn", "edje");
+ }
+ }
+ program { name: "set_play_icon";
+ signal: "set_play";
+ source: "*";
+ script{
+ emit("show_play_btn", "edje");
+ emit("hide_pause_btn", "edje");
+ }
+ }
+ }
+
+}
+
+} // collection
+
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#define MINI_H 70
+#define MINI_H_PORT 70
+#define TOP_PADDING 4
+#define LEFT_PADDING 12
+#define RIGHT_PADDING 4
+#define BOTTOM_PADDING 6
+#define ALBUM_ART_SIZE 120 120
+#define BUTTON_SIZE_MIN_MAX 80 80
+#define BIG_BTN_SIZE_MIN_MAX 80 80
+#define BUTTON_EXPAND_OFFSET 0
+#define BUTTON_CLOSE_SIZE_MAX 30 30
+#define PLAY_BTN_SIZE_MIN_MAX 80 80
+#define FF_BTN_SIZE_MIN_MAX 80 80
+
+
+#define MC_BG 30 28 28 0
+
+
+#define MC_MUSIC_LAGRE_BTN_EF "mini_controller/bg_btn_player_01_ef.png"
+#define MC_MUSIC_LAGRE_BTN_BG "mini_controller/bg_btn_player_01.png"
+#define MC_MUSIC_PLAY_BTN "mini_controller/music_btn_player_play_nor.png"
+#define MC_MUSIC_PAUSE_BTN "mini_controller/music_btn_player_pause_nor.png"
+#define MC_MUSIC_STOP_BTN "mini_controller/control_circle_icon_stop.png"
+
+#define MC_MUSIC_SMALL_BTN_EF "mini_controller/bg_btn_player_02_ef.png"
+#define MC_MUSIC_SMALL_BTN_BG "mini_controller/bg_btn_player_02.png"
+
+#define MC_MUSIC_CLOSE_BTN "mini_controller/btn_controller_close.png"
+#define MC_MUSIC_PREV_BTN "mini_controller/music_btn_player_prev_nor.png"
+#define MC_MUSIC_NEXT_BTN "mini_controller/music_btn_player_next_nor.png"
+
+#define MC_MUSIC_ALBUM_FRAME "mini_controller/album_frame.png"
+
+#define MC_IMG_REW_NORMAL "mini_controller/btn_video_prev_nor.png"
+#define MC_IMG_REW_PRESSED "mini_controller/btn_video_prev_press.png"
+#define MC_IMG_PLAY_NORMAL "mini_controller/btn_video_play_nor.png"
+#define MC_IMG_PLAY_PRESSED "mini_controller/btn_video_play_press.png"
+#define MC_IMG_PAUSE_NORMAL "mini_controller/btn_video_pause_nor.png"
+#define MC_IMG_PAUSE_PRESSED "mini_controller/btn_video_pause_press.png"
+#define MC_IMG_FF_NORMAL "mini_controller/btn_video_next_nor.png"
+#define MC_IMG_FF_PRESSED "mini_controller/btn_video_next_press.png"
+#define MC_IMG_CLOSE_NORMAL "mini_controller/btn_close_nor.png"
+#define MC_IMG_CLOSE_PRESSED "mini_controller/btn_close_press.png"
+#define MC_IMG_PROGRESS_BG "mini_controller/video_progress_bg.png"
+#define MC_IMG_PROGRESS_BAR "mini_controller/video_progress.png"
+
+
+
+#define MC_FOCUSED_COVER(__name, __over_part_bg) \
+part { \
+ name: __name"_focus"; \
+ type: SWALLOW; \
+ mouse_events: 1; \
+ scale: 1; \
+ repeat_events: 1; \
+ description { \
+ state: "default" 0.0; \
+ align: 0 0; \
+ visible:1; \
+ fixed: 1 1;\
+ rel1 { \
+ relative: 0 0; \
+ to: __over_part_bg; \
+ } \
+ rel2 { \
+ relative: 1 1; \
+ to: __over_part_bg; \
+ } \
+ } \
+}
+
+#define MC_PART_AREA_FROM_LEFT(__name, __left_part, __width, __height) \
+part { name: __name; \
+ type: SPACER; \
+ scale: 1; \
+ mouse_events: 0; \
+ description { state: "default" 0.0; \
+ rel1 { relative: 1.0 0.5; to: __left_part; } \
+ rel2 { relative: 1.0 0.5; to: __left_part; } \
+ min: __width __height; \
+ fixed: 1 1; \
+ align: 0.0 0.5; \
+ } \
+}
+
+#define MC_PART_AREA_FROM_SWALLOW_LEFT(__name, __left_part, __width, __height) \
+part { name: __name; \
+ type: SWALLOW; \
+ scale: 1; \
+ mouse_events: 1; \
+ description { state: "default" 0.0; \
+ rel1 { relative: 1.0 0.5; to: __left_part; } \
+ rel2 { relative: 1.0 0.5; to: __left_part; } \
+ min: __width __height; \
+ fixed: 1 1; \
+ align: 0.0 0.5; \
+ } \
+}
+#define MC_IMAGE_PART_FOCUS(__name,__to,__image,__btn_min_max)\
+part { name: __name;\
+ type: IMAGE;\
+ scale: 1;\
+ mouse_events: 1;\
+ description { state: "default" 0.0;\
+ rel1 { relative: 0.5 0.5; to: __to; }\
+ rel2 { relative: 0.5 0.5; to: __to; }\
+ min: __btn_min_max;\
+ max: __btn_min_max;\
+ image.normal: __image;\
+ fixed: 1 1;\
+ align: 0.5 0.5;\
+ color: 41 215 255 255;\
+ }\
+ description { state: "pressed" 0.0;\
+ inherit: "default" 0.0;\
+ color: 41 215 255 255;\
+ }\
+ description { state: "focus" 0.0;\
+ inherit: "default" 0.0;\
+ color: 6 119 194 255;\
+ }\
+ description { state: "hide" 0.0;\
+ inherit: "default" 0.0;\
+ visible: 0;\
+ }\
+ }
+
+
+#define MC_IMAGE_PART(__name,__to,__image,__normal_code_red_component,__normal_code_green_component,__normal_code_blue_component,__normal_code_alpha_component,__press_code_red_component,__press_code_green_component,__press_code_blue_component,__press_code_alpha_component,__btn_min_max)\
+part { name: __name;\
+ type: IMAGE;\
+ scale: 1;\
+ mouse_events: 1;\
+ description { state: "default" 0.0;\
+ rel1 { relative: 0.5 0.5; to: __to; }\
+ rel2 { relative: 0.5 0.5; to: __to; }\
+ min: __btn_min_max;\
+ max: __btn_min_max;\
+ image.normal: __image;\
+ fixed: 1 1;\
+ align: 0.5 0.5;\
+ color: __normal_code_red_component __normal_code_green_component __normal_code_blue_component __normal_code_alpha_component;\
+ }\
+ description { state: "pressed" 0.0;\
+ inherit: "default" 0.0;\
+ color: __press_code_red_component __press_code_green_component __press_code_blue_component __press_code_alpha_component;\
+ }\
+ description { state: "hide" 0.0;\
+ inherit: "default" 0.0;\
+ visible: 0;\
+ }\
+ }
+
+#define MC_PROGRAM_IMAGE_VISIBLE(__btn, __show_signal, __hide_signal) \
+program { \
+ signal: __show_signal; \
+ source: "*"; \
+ action: STATE_SET "default" 0.0; \
+ target: __btn; \
+} \
+program { \
+ signal: __hide_signal; \
+ source: "*"; \
+ action: STATE_SET "hide" 0.0; \
+ target: __btn; \
+}
+
+
+#define MC_PART_ICON_BTN(__name, __to, __normal, __pressed, __btn_min_max) \
+part { name: __name"_clip"; \
+ type: RECT; \
+ scale: 1; \
+ mouse_events: 0; \
+ description { state: "default" 0.0; \
+ rel1.to: __name"_bg"; \
+ rel2.to: __name"_bg"; \
+ color: 255 255 255 255; \
+ } \
+ description { state: "hide" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 0; \
+ } \
+} \
+part { name: __name"_bg"; \
+ type: IMAGE; \
+ scale: 1; \
+ mouse_events: 0; \
+ clip_to: __name"_clip"; \
+ description { state: "default" 0.0; \
+ rel1 { relative: 0.5 0.5; to: __to; } \
+ rel2 { relative: 0.5 0.5; to: __to; }\
+ min: __btn_min_max; \
+ max: __btn_min_max; \
+ image.normal: __normal; \
+ fixed: 1 1; \
+ align: 0.5 0.5; \
+ } \
+ description { state: "pressed" 0.0; \
+ inherit: "default" 0.0; \
+ image.normal: __pressed; \
+ } \
+} \
+part { name: __name; \
+ type: RECT; \
+ scale: 1; \
+ mouse_events: 1; \
+ clip_to: __name"_clip"; \
+ description { state: "default" 0.0; \
+ rel1.to: __name"_bg"; \
+ rel2.to: __name"_bg"; \
+ color: 0 0 0 0; \
+ } \
+}
+
+#define MC_PART_TEXT_BTN(__name, __to, __text_part_name) \
+part { name: __name"_clip"; \
+ type: RECT; \
+ scale: 1; \
+ mouse_events: 0; \
+ description { state: "default" 0.0; \
+ rel1.to: __to; \
+ rel2.to: __to; \
+ color: 255 255 255 255; \
+ } \
+ description { state: "hide" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 0; \
+ } \
+} \
+part { name: __name"_bg"; \
+ type: SPACER; \
+ scale: 1; \
+ mouse_events: 0; \
+ clip_to: __name"_clip"; \
+ description { state: "default" 0.0; \
+ rel1.to: __to; \
+ rel2.to: __to; \
+ } \
+ description { state: "pressed" 0.0; \
+ inherit: "default" 0.0; \
+ } \
+} \
+part { name: __text_part_name; \
+ type: TEXT; \
+ scale: 1; \
+ mouse_events: 0; \
+ clip_to: __name"_clip"; \
+ description { state: "default" 0.0; \
+ rel1.to: __name"_bg"; \
+ rel2.to: __name"_bg"; \
+ text { \
+ font: "Tizen:style=Medium"; \
+ size: 28; \
+ align: 0.5 0.5; \
+ } \
+ color: 149 149 149 255; \
+ } \
+} \
+part { name: __name; \
+ type: RECT; \
+ scale: 1; \
+ mouse_events: 1; \
+ clip_to: __name"_clip"; \
+ description { state: "default" 0.0; \
+ rel1.to: __to; \
+ rel2.to: __to; \
+ color: 0 0 0 0; \
+ } \
+}
+
+#define MC_PART_RECT(__name, __to, __sx, __sy, __ex, __ey) \
+part { \
+ name: __name; \
+ mouse_events: 1; \
+ repeat_events: 1; \
+ type: RECT; \
+ scale: 1; \
+ description { \
+ state: "default" 0.0; \
+ align: 0 0; \
+ visible: 1; \
+ rel1 { \
+ relative: __sx __sy; \
+ to: __to; \
+ } \
+ rel2 { \
+ relative: __ex __ey; \
+ to: __to; \
+ } \
+ color: 0 0 0 0; \
+ }\
+ description { \
+ state: "hide" 0.0; \
+ visible: 0; \
+ }\
+}
+
+#define MC_PART_SWALLOW(__name, __to, __sx, __sy, __ex, __ey) \
+part { \
+ name: __name; \
+ mouse_events: 1; \
+ type: SWALLOW; \
+ scale: 1; \
+ description { \
+ state: "default" 0.0; \
+ align: 0.5 0.5; \
+ fixed: 1 1; \
+ visible: 1; \
+ fixed:1 1;\
+ rel1 { \
+ relative: __sx __sy; \
+ to: __to; \
+ } \
+ rel2 { \
+ relative: __ex __ey; \
+ to: __to; \
+ } \
+ color: 0 0 0 0; \
+ } \
+}
+
+#define MC_PROGRAM_BTN_ACTION(__btn, __down_emission, __down_src, __up_emission, __up_src, __clicked_emission, __clicked_src) \
+program { \
+ name: __btn"_after_down"; \
+ signal: "mouse,down,1"; \
+ source: __btn; \
+ script { \
+ set_state(PART:__btn"_bg", "pressed", 0.0); \
+ emit(__down_emission, __down_src); \
+ } \
+} \
+program { \
+ source: __btn; \
+ signal: "mouse,down,1"; \
+ action: PLAY_SAMPLE "button-pressed" 1.0; \
+ after: __btn"_after_down"; \
+ transition: ACCELERATE 0.02;\
+} \
+program { \
+ signal: "mouse,up,1"; \
+ source: __btn; \
+ script { \
+ set_state(PART:__btn"_bg", "default", 0.0); \
+ emit(__up_emission, __up_src); \
+ } \
+} \
+program { \
+ signal: "mouse,clicked,1"; \
+ source: __btn; \
+ action: SIGNAL_EMIT __clicked_emission __clicked_src; \
+}
+
+#define MC_PROGRAM_BTN_VISIBLE(__btn, __show_signal, __hide_signal) \
+program { \
+ signal: __show_signal; \
+ source: "*"; \
+ action: STATE_SET "default" 0.0; \
+ target: __btn"_clip"; \
+} \
+program { \
+ signal: __hide_signal; \
+ source: "*"; \
+ action: STATE_SET "hide" 0.0; \
+ target: __btn"_clip"; \
+}
+
+#define MINI_CONTROL_HIDE_SWALLOW_OPTION(__name, __to) \
+part { \
+ name: __name; \
+ mouse_events: 1; \
+ type: SWALLOW; \
+ scale: 1; \
+ repeat_events: 1; \
+ description { \
+ state: "default" 0.0; \
+ align: 0.5 0.5; \
+ visible: 0; \
+ rel1 { \
+ relative: 0 0; \
+ to: __to; \
+ } \
+ rel2 { \
+ relative: 1 1; \
+ to: __to; \
+ } \
+ color: 0 0 0 0; \
+ } \
+ description { \
+ state: "visible" 0.0; \
+ inherit: "default"; \
+ visible: 1; \
+ } \
+}
+
+#define MINI_CONTROL_BUTTON_INVISIVBLE_PROGRAM(__name) \
+program { \
+ name: __name"_visible" ; \
+ signal: __name"_visible"; \
+ source: __name; \
+ action: STATE_SET "visible" 0.0; \
+ target: __name; \
+} \
+program { \
+ name: __name"_invisible" ; \
+ signal: __name"_invisible"; \
+ source: __name; \
+ action: STATE_SET "default" 0.0; \
+ target: __name; \
+}
+
+externals {
+ external: "elm";
+ external: "feedback";
+}
+
+collections {
+base_scale: 2.4;
+/*
+sounds {
+ sample {
+ name: "button-pressed" AS_IS;
+ source: MP_BUTTON_PRESSED_NAME;
+ }
+}
+
+plugins {
+ plugin {
+ name: "touch_sound_plugin";
+ source: "feedback";
+ param: "FEEDBACK_TYPE_SOUND FEEDBACK_PATTERN_TAP";
+ }
+}
+*/
+group {
+ name: "video-minicontroller";
+ images {
+ image: MC_MUSIC_LAGRE_BTN_EF COMP;
+ image: MC_MUSIC_LAGRE_BTN_BG COMP;
+ image: MC_MUSIC_PLAY_BTN COMP;
+ image: MC_MUSIC_PAUSE_BTN COMP;
+ image: MC_MUSIC_SMALL_BTN_EF COMP;
+ image: MC_MUSIC_SMALL_BTN_BG COMP;
+
+ image: MC_MUSIC_CLOSE_BTN COMP;
+ image: MC_MUSIC_PREV_BTN COMP;
+ image: MC_MUSIC_NEXT_BTN COMP;
+
+ image: MC_MUSIC_ALBUM_FRAME COMP;
+ }
+ parts {
+ part{ name: "bg";
+ type : RECT;
+ scale : 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ min : 0 MINI_H_PORT;
+ fixed: 1 1;
+ rel1{ relative : 0 0;}
+ rel2{ relative : 1 1;}
+ color: MC_BG;
+ }
+ }
+
+ part { name: "event_box";
+ type : SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1 {
+ relative: 0 0;
+ to: "bg";
+ }
+ rel2 {
+ relative: 1 1;
+ to: "bg";
+ }
+ }
+ }
+
+ part { name: "padding.top";
+ type: SPACER;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 0; to: "bg"; }
+ rel2 { relative: 1 0; to: "bg"; }
+ min: 0 TOP_PADDING;
+ fixed: 0 1;
+ align: 0 0;
+ }
+ }
+
+ part { name: "padding.left";
+ type: SPACER; scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 0; to: "bg"; }
+ rel2 { relative: 0 1; to: "bg"; }
+ min: LEFT_PADDING 0;
+ fixed: 1 0;
+ align: 0 0;
+ }
+ }
+
+ part { name: "padding.right";
+ type: SPACER;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 1 0; to: "bg"; }
+ rel2 { relative: 1 1; to: "bg"; }
+ min: RIGHT_PADDING 0;
+ fixed: 1 0;
+ align: 1 0;
+ }
+ }
+
+ part { name: "padding.bottom";
+ type: SPACER;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 1; to: "bg"; }
+ rel2 { relative: 1 1; to: "bg"; }
+ min: 0 BOTTOM_PADDING;
+ fixed: 0 1;
+ align: 0 1;
+ }
+ }
+
+ part { name: "padding_for_albumart.top";
+ type: SPACER;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: 0 0; to: "bg"; }
+ rel2 { relative: 1 0; to: "bg"; }
+ min: 0 15;
+ fixed: 0 1;
+ align: 0.0 0.0;
+ }
+ }
+
+ part { name: "padding_for_albumart.bottom";
+ type: SPACER;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 1; to: "bg"; }
+ rel2 { relative: 1 1; to: "bg"; }
+ min: 0 15;
+ fixed: 0 1;
+ align: 0 1;
+ }
+ }
+
+ part { name: "albumarmt_bg";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 1.0 1.0; to_x: "padding.left"; to_y: "padding_for_albumart.top"; }
+ rel2 { relative: 1.0 0.0; to_x: "padding.left"; to_y: "padding_for_albumart.bottom"; }
+ min: ALBUM_ART_SIZE;
+ max: ALBUM_ART_SIZE;
+ fixed: 1 1;
+ align: 0.0 0.5;
+ }
+ }
+
+ part { name: "albumart_image";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 1;
+ clip_to: "albumarmt_bg";
+ description { state: "default" 0.0;
+ rel1 { relative: 0.5 0.5; to: "albumarmt_bg"; }
+ rel2 { relative: 0.5 0.5; to: "albumarmt_bg"; }
+ min: ALBUM_ART_SIZE;
+ max: ALBUM_ART_SIZE;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ }
+ }
+
+ part { name: "albumarmt_frame";
+ type: IMAGE;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 0.0 0.0; to: "albumarmt_bg";}
+ rel2 { relative: 1.0 1.0; to: "albumarmt_bg";}
+ min: ALBUM_ART_SIZE;
+ image.normal: MC_MUSIC_ALBUM_FRAME;
+ color_class:"AO009";
+ }
+ }
+
+ part { name: "right_area";
+ type: SPACER;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 1.0 1.0; to_x: "albumarmt_bg"; to_y: "padding.top"; }
+ rel2 { relative: 0.0 0.0; to_x: "padding.right"; to_y: "padding.bottom"; }
+ align: 0.0 0.0;
+ }
+ }
+
+ part { name: "elm.text"; // title
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0.0 1.0; to_x: "right_area"; to_y: "padding.top"; offset: 38 0;}
+ rel2 { relative: 0.83 1.0; to_x: "right_area"; to_y: "padding.top";}
+ min: 143 17;
+ fixed: 1 1;
+ align: 0.5 0.0;
+ }
+ }
+
+ part { name: "close_btn_area";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 0.0 1.0; to_x: "padding.right"; to_y: "elm.text";offset: -25 1;}
+ rel2 { relative: 0.0 0.0; to_x: "padding.right"; to_y: "elm.text"; offset: -25 1;}
+ min: BUTTON_CLOSE_SIZE_MAX;
+ max: BUTTON_CLOSE_SIZE_MAX;
+ color: 255 0 0 0;
+ fixed: 1 1;
+ }
+ }
+ MC_IMAGE_PART("close_btn","close_btn_area",MC_MUSIC_CLOSE_BTN,61,185,204,255,61,185,204,255,BUTTON_CLOSE_SIZE_MAX)
+ part { name: "close_btn_touch_area";
+ type: RECT;
+ scale: 1;
+ mouse_events: 1;
+ repeat_events: 1;
+ description { state: "default" 0.0;
+ rel1 { to: "close_btn_area"; offset: -7 -7; }
+ rel2 { to: "close_btn_area"; offset: 7 7; }
+ color: 0 0 0 0;
+ }
+ }
+
+ part { name: "mid_padding";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description
+ { state: "default" 0.0;
+ rel1 { relative: 0.0 1.0; to_x: "right_area"; to_y: "elm.text"; offset: 40 0; }
+ rel2 { relative: 1.0 1.0; to_x: "padding.right"; to_y: "elm.text"; offset: 0 0; }
+ align: 0.0 0.0;
+ color: 255 0 0 0;
+ }
+ }
+
+ part { name: "button_area";
+ type: RECT;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 1; to: "mid_padding";}
+ rel2 { relative: 1 0; to_x: "elm.text"; to_y: "padding.bottom"; }
+ visible: 1;
+ }
+ }
+
+ part { name: "rew_btn_area";
+ type: RECT;
+ scale: 1;
+ mouse_events: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0.0 0.5; to: "button_area"; offset: 10 0;}
+ rel2 { relative: 0.0 0.5; to: "button_area"; offset: 10 -16;}
+ min: BUTTON_SIZE_MIN_MAX;
+ fixed: 1 1;
+ align: 0.0 0.5;
+ visible: 0;
+ }
+ }
+
+ MC_IMAGE_PART("rew_btn_bg","rew_btn_area",MC_MUSIC_SMALL_BTN_BG,0,0,0,0,0,0,0,0,BUTTON_SIZE_MIN_MAX)
+ MC_IMAGE_PART("rew_btn_ef","rew_btn_area",MC_MUSIC_SMALL_BTN_EF,0,0,0,0,0,0,0,0,BUTTON_SIZE_MIN_MAX)
+ MC_IMAGE_PART("rew_btn","rew_btn_area",MC_MUSIC_PREV_BTN,61,185,204,255,34,104,115,255,FF_BTN_SIZE_MIN_MAX)
+ part { name: "rew_btn_touch_area";
+ type: RECT;
+ scale: 1;
+ mouse_events: 1;
+ repeat_events: 1;
+ description { state: "default" 0.0;
+ rel1 { to: "rew_btn_area"; }
+ rel2 { to: "rew_btn_area";}
+ color: 0 0 0 0;
+ }
+ }
+ MC_FOCUSED_COVER("rew_btn", "rew_btn_area");
+
+ part { name: "play_pause_btn_area";
+ type: SPACER;
+ scale: 1;
+ mouse_events: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0.4 0.5; to: "button_area"; offset: 0 0;}
+ rel2 { relative: 0.4 0.5; to: "button_area"; offset: 0 -16; }
+ min: BUTTON_SIZE_MIN_MAX;
+ max: BUTTON_SIZE_MIN_MAX;
+ fixed: 1 1;
+ align:0.0 0.5;
+ }
+ }
+
+ MC_IMAGE_PART("play_btn_bg","play_pause_btn_area",MC_MUSIC_LAGRE_BTN_BG,61,185,204,255,34,104,115,255,BIG_BTN_SIZE_MIN_MAX)
+ MC_IMAGE_PART_FOCUS("play_btn_ef","play_pause_btn_area",MC_MUSIC_LAGRE_BTN_EF,BIG_BTN_SIZE_MIN_MAX)
+ MC_IMAGE_PART("play_btn","play_pause_btn_area",MC_MUSIC_PLAY_BTN,255,255,255,255,255,255,255,255,PLAY_BTN_SIZE_MIN_MAX)
+ MC_IMAGE_PART("pause_btn","play_pause_btn_area",MC_MUSIC_PAUSE_BTN,255,255,255,255,255,255,255,255,PLAY_BTN_SIZE_MIN_MAX)
+ part { name: "play_btn_touch_area";
+ type: RECT;
+ scale: 1;
+ mouse_events: 1;
+ repeat_events: 1;
+ description { state: "default" 0.0;
+ rel1 { to: "play_pause_btn_area"; }
+ rel2 { to: "play_pause_btn_area"; }
+ color: 0 0 0 0;
+ }
+ }
+ MC_FOCUSED_COVER("play_pause", "play_pause_btn_area");
+
+ part { name: "ff_btn_area";
+ type: SPACER;
+ scale: 1;
+ mouse_events: 1;
+ description { state: "default" 0.0;
+ rel1 { relative:0.8 0.5; to: "button_area";offset: -10 0;}
+ rel2 { relative:0.8 0.5; to: "button_area";offset: -10 -16;}
+ min: FF_BTN_SIZE_MIN_MAX;
+ max: FF_BTN_SIZE_MIN_MAX;
+ fixed: 1 1;
+ align:0.0 0.5;
+ }
+ }
+ MC_IMAGE_PART("ff_btn_bg","ff_btn_area",MC_MUSIC_SMALL_BTN_BG,0,0,0,0,0,0,0,0,BUTTON_SIZE_MIN_MAX)
+ MC_IMAGE_PART("ff_btn_ef","ff_btn_area",MC_MUSIC_SMALL_BTN_EF,0,0,0,0,0,0,0,0,BUTTON_SIZE_MIN_MAX)
+ MC_IMAGE_PART("ff_btn","ff_btn_area",MC_MUSIC_NEXT_BTN,61,185,204,255,34,104,115,255,FF_BTN_SIZE_MIN_MAX)
+ part { name: "ff_btn_touch_area";
+ type: RECT;
+ scale: 1;
+ mouse_events: 1;
+ repeat_events: 1;
+ description { state: "default" 0.0;
+ rel1 { to: "ff_btn_area"; }
+ rel2 { to: "ff_btn_area";}
+ color: 0 0 0 0;
+ }
+ }
+ MC_FOCUSED_COVER("ff_btn", "ff_btn_area");
+ }
+
+ programs {
+ MC_PROGRAM_IMAGE_VISIBLE("play_btn", "show_play_btn", "hide_play_btn")
+ MC_PROGRAM_IMAGE_VISIBLE("pause_btn", "show_pause_btn", "hide_pause_btn")
+
+ program { name: "albumart_cb";
+ signal: "mouse,down,1";
+ source: "albumart_image";
+ script{
+ emit("albumart_clicked", "edje");
+ }
+ }
+
+ program { name: "close_area_btn_down";
+ signal: "mouse,down,1";
+ source: "close_btn_touch_area";
+ script{
+ set_state(PART:"close_btn", "pressed", 0.0);
+ emit("close_btn_down", "edje");
+ }
+ }
+
+ program { name: "close_area_btn_up";
+ signal: "mouse,up,1";
+ source: "close_btn_touch_area";
+ script{
+ set_state(PART:"close_btn", "default", 0.0);
+ emit("close_btn_up", "edje");
+ }
+ }
+
+ program { name: "play_pause_btn_area_press";
+ signal: "mouse,down,1";
+ source: "play_btn_touch_area";
+ script{
+ set_state(PART:"play_btn_bg", "pressed", 0.0);
+ set_state(PART:"play_btn_ef", "pressed", 0.0);
+ }
+ }
+
+ program { name: "play_pause_btn_area_up";
+ signal: "mouse,up,1";
+ source: "play_btn_touch_area";
+ script{
+ set_state(PART:"play_btn_bg", "default", 0.0);
+ set_state(PART:"play_btn_ef", "default", 0.0);
+ }
+ }
+
+ program { name: "rew_btn_touch_area_press";
+ signal: "mouse,down,1";
+ source: "rew_btn_touch_area";
+ script{
+ set_state(PART:"rew_btn_bg", "pressed", 0.0);
+ set_state(PART:"rew_btn_ef", "pressed", 0.0);
+ set_state(PART:"rew_btn", "pressed", 0.0);
+ }
+ }
+
+ program { name: "rew_btn_touch_area_up";
+ signal: "mouse,up,1";
+ source: "rew_btn_touch_area";
+ script{
+ set_state(PART:"rew_btn_bg", "default", 0.0);
+ set_state(PART:"rew_btn_ef", "default", 0.0);
+ set_state(PART:"rew_btn", "default", 0.0);
+ }
+ }
+
+ program { name: "ff_btn_touch_area_press";
+ signal: "mouse,down,1";
+ source: "ff_btn_touch_area";
+ script{
+ set_state(PART:"ff_btn_bg", "pressed", 0.0);
+ set_state(PART:"ff_btn_ef", "pressed", 0.0);
+ set_state(PART:"ff_btn", "pressed", 0.0);
+ }
+ }
+
+ program { name: "ff_btn_touch_area_up";
+ signal: "mouse,up,1";
+ source: "ff_btn_touch_area";
+ script{
+ set_state(PART:"ff_btn_bg", "default", 0.0);
+ set_state(PART:"ff_btn_ef", "default", 0.0);
+ set_state(PART:"ff_btn", "default", 0.0);
+ }
+ }
+
+ program { name: "close_area_btn_clicked";
+ signal: "mouse,clicked,1";
+ source: "close_btn_touch_area";
+ script{
+ emit("close_btn_clicked", "edje");
+ }
+ }
+/*
+ program{
+ name: "albumart_cb_after_down";
+ source: "albumart_image";
+ signal: "mouse,down,1";
+ transition: ACCELERATE 0.02;
+ }
+ program {
+ name: "albumart_cb_down";
+ source: "albumart_image";
+ signal: "mouse,down,1";
+ action: PLAY_SAMPLE "button-pressed" 1.0;
+ after: "albumart_cb_after_down";
+ transition: ACCELERATE 0.02;
+ }*/
+
+ program { name: "set_pause_icon";
+ signal: "set_pause";
+ source: "*";
+ script{
+ set_state(PART:"play_btn", "hide", 0.0);
+ set_state(PART:"pause_btn", "default",0.0);
+ set_state(PART:"play_btn_ef", "focus", 0.0);
+ }
+ }
+ program { name: "set_play_icon";
+ signal: "set_play";
+ source: "*";
+ script{
+ set_state(PART:"play_btn", "default", 0.0);
+ set_state(PART:"pause_btn", "hide",0.0);
+ set_state(PART:"play_btn_ef", "default", 0.0);
+ }
+ }
+ program { name: "set_ff_btn_uppressed";
+ signal: "ff_btn_unpressed";
+ source: "*";
+ script{
+ set_state(PART:"ff_btn_bg", "default", 0.0);
+ set_state(PART:"ff_btn_ef", "default", 0.0);
+ set_state(PART:"ff_btn", "default", 0.0);
+ }
+ }
+ program { name: "set_rew_btn_uppressed";
+ signal: "rew_btn_unpressed";
+ source: "*";
+ script{
+ set_state(PART:"rew_btn_bg", "default", 0.0);
+ set_state(PART:"rew_btn_ef", "default", 0.0);
+ set_state(PART:"rew_btn", "default", 0.0);
+ }
+ }
+/*
+ program { name: "touch_snd_rew";
+ signal: "mouse,down,1";
+ source: "rew_btn_touch_area";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+
+ program { name: "touch_snd_ff";
+ signal: "mouse,down,1";
+ source: "ff_btn_touch_area";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ program { name: "touch_snd_play_pause";
+ signal: "mouse,down,1";
+ source: "play_btn_touch_area";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ program { name: "touch_snd_shuffle";
+ signal: "mouse,down,1";
+ source: "shuffle_btn_touch_area";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ program { name: "touch_snd_close";
+ signal: "mouse,down,1";
+ source: "close_btn_touch_area";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ program { name: "touch_snd_repeat";
+ signal: "mouse,down,1";
+ source: "repeat_btn_touch_area";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+*/
+ }
+
+}
+
+group {
+ name: "video-minicontroller-live-streaming";
+ images {
+ image: MC_MUSIC_LAGRE_BTN_EF COMP;
+ image: MC_MUSIC_LAGRE_BTN_BG COMP;
+ image: MC_MUSIC_PLAY_BTN COMP;
+ image: MC_MUSIC_STOP_BTN COMP;
+ image: MC_MUSIC_SMALL_BTN_EF COMP;
+ image: MC_MUSIC_SMALL_BTN_BG COMP;
+ image: MC_MUSIC_CLOSE_BTN COMP;
+ image: MC_MUSIC_ALBUM_FRAME COMP;
+ }
+ parts {
+ part{ name: "bg";
+ type : RECT;
+ scale : 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ min : 0 MINI_H_PORT;
+ fixed: 1 1;
+ rel1{ relative : 0 0;}
+ rel2{ relative : 1 1;}
+ color: MC_BG;
+ }
+ }
+
+ part { name: "event_box";
+ type : SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1 {
+ relative: 0 0;
+ to: "bg";
+ }
+ rel2 {
+ relative: 1 1;
+ to: "bg";
+ }
+ }
+ }
+
+ part { name: "padding.top";
+ type: SPACER;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 0; to: "bg"; }
+ rel2 { relative: 1 0; to: "bg"; }
+ min: 0 TOP_PADDING;
+ fixed: 0 1;
+ align: 0 0;
+ }
+ }
+
+ part { name: "padding.left";
+ type: SPACER; scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 0; to: "bg"; }
+ rel2 { relative: 0 1; to: "bg"; }
+ min: LEFT_PADDING 0;
+ fixed: 1 0;
+ align: 0 0;
+ }
+ }
+
+ part { name: "padding.right";
+ type: SPACER;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 1 0; to: "bg"; }
+ rel2 { relative: 1 1; to: "bg"; }
+ min: RIGHT_PADDING 0;
+ fixed: 1 0;
+ align: 1 0;
+ }
+ }
+
+ part { name: "padding.bottom";
+ type: SPACER;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 1; to: "bg"; }
+ rel2 { relative: 1 1; to: "bg"; }
+ min: 0 BOTTOM_PADDING;
+ fixed: 0 1;
+ align: 0 1;
+ }
+ }
+
+ part { name: "padding_for_albumart.top";
+ type: SPACER;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: 0 0; to: "bg"; }
+ rel2 { relative: 1 0; to: "bg"; }
+ min: 0 15;
+ fixed: 0 1;
+ align: 0.0 0.0;
+ }
+ }
+
+ part { name: "padding_for_albumart.bottom";
+ type: SPACER;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 1; to: "bg"; }
+ rel2 { relative: 1 1; to: "bg"; }
+ min: 0 15;
+ fixed: 0 1;
+ align: 0 1;
+ }
+ }
+
+ part { name: "albumarmt_bg";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 1.0 1.0; to_x: "padding.left"; to_y: "padding_for_albumart.top"; }
+ rel2 { relative: 1.0 0.0; to_x: "padding.left"; to_y: "padding_for_albumart.bottom"; }
+ min: ALBUM_ART_SIZE;
+ max: ALBUM_ART_SIZE;
+ fixed: 1 1;
+ align: 0.0 0.5;
+ }
+ }
+
+ part { name: "albumart_image";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 1;
+ clip_to: "albumarmt_bg";
+ description { state: "default" 0.0;
+ rel1 { relative: 0.5 0.5; to: "albumarmt_bg"; }
+ rel2 { relative: 0.5 0.5; to: "albumarmt_bg"; }
+ min: ALBUM_ART_SIZE;
+ max: ALBUM_ART_SIZE;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ }
+ }
+
+ part { name: "albumarmt_frame";
+ type: IMAGE;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 0.0 0.0; to: "albumarmt_bg";}
+ rel2 { relative: 1.0 1.0; to: "albumarmt_bg";}
+ min: ALBUM_ART_SIZE;
+ image.normal: MC_MUSIC_ALBUM_FRAME;
+ color_class:"AO009";
+ }
+ }
+
+ part { name: "right_area";
+ type: SPACER;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 1.0 1.0; to_x: "albumarmt_bg"; to_y: "padding.top"; }
+ rel2 { relative: 0.0 0.0; to_x: "padding.right"; to_y: "padding.bottom"; }
+ align: 0.0 0.0;
+ }
+ }
+
+ part { name: "elm.text"; // title
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0.0 1.0; to_x: "right_area"; to_y: "padding.top"; offset: 38 0;}
+ rel2 { relative: 0.83 1.0; to_x: "right_area"; to_y: "padding.top";}
+ min: 143 17;
+ fixed: 1 1;
+ align: 0.5 0.0;
+ }
+ }
+
+ part { name: "close_btn_area";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 0.0 1.0; to_x: "padding.right"; to_y: "elm.text";offset: -25 1;}
+ rel2 { relative: 0.0 0.0; to_x: "padding.right"; to_y: "elm.text"; offset: -25 1;}
+ min: BUTTON_CLOSE_SIZE_MAX;
+ max: BUTTON_CLOSE_SIZE_MAX;
+ color: 255 0 0 0;
+ fixed: 1 1;
+ }
+ }
+ MC_IMAGE_PART("close_btn","close_btn_area",MC_MUSIC_CLOSE_BTN,61,185,204,255,61,185,204,255,BUTTON_CLOSE_SIZE_MAX)
+ part { name: "close_btn_touch_area";
+ type: RECT;
+ scale: 1;
+ mouse_events: 1;
+ repeat_events: 1;
+ description { state: "default" 0.0;
+ rel1 { to: "close_btn_area"; offset: -7 -7; }
+ rel2 { to: "close_btn_area"; offset: 7 7; }
+ color: 0 0 0 0;
+ }
+ }
+
+ part { name: "mid_padding";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description
+ { state: "default" 0.0;
+ rel1 { relative: 0.0 1.0; to_x: "right_area"; to_y: "elm.text"; offset: 40 0; }
+ rel2 { relative: 1.0 1.0; to_x: "padding.right"; to_y: "elm.text"; offset: 0 0; }
+ align: 0.0 0.0;
+ color: 255 0 0 0;
+ }
+ }
+
+ part { name: "button_area";
+ type: RECT;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 1; to: "mid_padding";}
+ rel2 { relative: 1 0; to_x: "elm.text"; to_y: "padding.bottom"; }
+ visible: 1;
+ }
+ }
+
+ part { name: "play_pause_btn_area";
+ type: SPACER;
+ scale: 1;
+ mouse_events: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0.4 0.5; to: "button_area"; offset: 0 0;}
+ rel2 { relative: 0.4 0.5; to: "button_area"; offset: 0 -16; }
+ min: BUTTON_SIZE_MIN_MAX;
+ max: BUTTON_SIZE_MIN_MAX;
+ fixed: 1 1;
+ align:0.0 0.5;
+ }
+ }
+
+ MC_IMAGE_PART("play_btn_bg","play_pause_btn_area",MC_MUSIC_LAGRE_BTN_BG,61,185,204,255,34,104,115,255,BIG_BTN_SIZE_MIN_MAX)
+ MC_IMAGE_PART_FOCUS("play_btn_ef","play_pause_btn_area",MC_MUSIC_LAGRE_BTN_EF,BIG_BTN_SIZE_MIN_MAX)
+ MC_IMAGE_PART("play_btn","play_pause_btn_area",MC_MUSIC_PLAY_BTN,255,255,255,255,255,255,255,255,PLAY_BTN_SIZE_MIN_MAX)
+ MC_IMAGE_PART("pause_btn","play_pause_btn_area",MC_MUSIC_STOP_BTN,255,255,255,255,255,255,255,255,PLAY_BTN_SIZE_MIN_MAX)
+ part { name: "play_btn_touch_area";
+ type: RECT;
+ scale: 1;
+ mouse_events: 1;
+ repeat_events: 1;
+ description { state: "default" 0.0;
+ rel1 { to: "play_pause_btn_area"; }
+ rel2 { to: "play_pause_btn_area"; }
+ color: 0 0 0 0;
+ }
+ }
+ MC_FOCUSED_COVER("play_pause", "play_pause_btn_area");
+ }
+
+ programs {
+ MC_PROGRAM_IMAGE_VISIBLE("play_btn", "show_play_btn", "hide_play_btn")
+ MC_PROGRAM_IMAGE_VISIBLE("pause_btn", "show_pause_btn", "hide_pause_btn")
+
+ program { name: "albumart_cb";
+ signal: "mouse,down,1";
+ source: "albumart_image";
+ script{
+ emit("albumart_clicked", "edje");
+ }
+ }
+
+ program { name: "close_area_btn_down";
+ signal: "mouse,down,1";
+ source: "close_btn_touch_area";
+ script{
+ set_state(PART:"close_btn", "pressed", 0.0);
+ emit("close_btn_down", "edje");
+ }
+ }
+
+ program { name: "close_area_btn_up";
+ signal: "mouse,up,1";
+ source: "close_btn_touch_area";
+ script{
+ set_state(PART:"close_btn", "default", 0.0);
+ emit("close_btn_up", "edje");
+ }
+ }
+
+ program { name: "play_pause_btn_area_press";
+ signal: "mouse,down,1";
+ source: "play_btn_touch_area";
+ script{
+ set_state(PART:"play_btn_bg", "pressed", 0.0);
+ set_state(PART:"play_btn_ef", "pressed", 0.0);
+ }
+ }
+
+ program { name: "play_pause_btn_area_up";
+ signal: "mouse,up,1";
+ source: "play_btn_touch_area";
+ script{
+ set_state(PART:"play_btn_bg", "default", 0.0);
+ set_state(PART:"play_btn_ef", "default", 0.0);
+ }
+ }
+
+ program { name: "close_area_btn_clicked";
+ signal: "mouse,clicked,1";
+ source: "close_btn_touch_area";
+ script{
+ emit("close_btn_clicked", "edje");
+ }
+ }
+
+ program { name: "set_pause_icon";
+ signal: "set_pause";
+ source: "*";
+ script{
+ set_state(PART:"play_btn", "hide", 0.0);
+ set_state(PART:"pause_btn", "default",0.0);
+ set_state(PART:"play_btn_ef", "focus", 0.0);
+ }
+ }
+ program { name: "set_play_icon";
+ signal: "set_play";
+ source: "*";
+ script{
+ set_state(PART:"play_btn", "default", 0.0);
+ set_state(PART:"pause_btn", "hide",0.0);
+ set_state(PART:"play_btn_ef", "default", 0.0);
+ }
+ }
+ }
+}
+
+group {
+ name: "video-minicontroller-ld";
+ images {
+ image: MC_MUSIC_LAGRE_BTN_EF COMP;
+ image: MC_MUSIC_LAGRE_BTN_BG COMP;
+ image: MC_MUSIC_PLAY_BTN COMP;
+ image: MC_MUSIC_PAUSE_BTN COMP;
+ image: MC_MUSIC_SMALL_BTN_EF COMP;
+ image: MC_MUSIC_SMALL_BTN_BG COMP;
+
+ image: MC_MUSIC_CLOSE_BTN COMP;
+ image: MC_MUSIC_PREV_BTN COMP;
+ image: MC_MUSIC_NEXT_BTN COMP;
+ }
+ parts {
+ part{ name: "bg";
+ type : RECT;
+ scale : 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ min : 0 MINI_H;
+ fixed: 1 1;
+ rel1{ relative : 0 0;}
+ rel2{ relative : 1 1;}
+ color: MC_BG;
+ }
+ }
+
+ part { name: "padding.top";
+ type: SPACER;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 0; to: "bg"; }
+ rel2 { relative: 1 0; to: "bg"; }
+ min: 0 TOP_PADDING;
+ fixed: 0 1;
+ align: 0 0;
+ }
+ }
+
+ part { name: "padding.left";
+ type: SPACER;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 0; to: "bg"; }
+ rel2 { relative: 0 1; to: "bg"; }
+ min: LEFT_PADDING 0;
+ fixed: 1 0;
+ align: 0 0;
+ }
+ }
+
+ part { name: "padding.right";
+ type: SPACER;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 1 0; to: "bg"; }
+ rel2 { relative: 1 1; to: "bg"; }
+ min: RIGHT_PADDING 0;
+ fixed: 1 0;
+ align: 1 0;
+ }
+ }
+
+ part { name: "padding.bottom";
+ type: SPACER;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 1; to: "bg"; }
+ rel2 { relative: 1 1; to: "bg"; }
+ min: 0 BOTTOM_PADDING;
+ fixed: 0 1;
+ align: 0 1;
+ }
+ }
+
+ part { name: "padding_for_albumart.top";
+ type: SPACER;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel2 { relative: 1.0 0.0; }
+ min: 0 7;
+ fixed: 0 1;
+ align: 0.0 0.0;
+ }
+ }
+
+ part { name: "padding_for_albumart.bottom";
+ type: SPACER;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 1; to: "bg"; }
+ rel2 { relative: 1 1; to: "bg"; }
+ min: 0 7;
+ fixed: 0 1;
+ align: 0 1;
+ }
+ }
+
+ part { name: "albumarmt_bg";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 1.0 1.0; to_x: "padding.left"; to_y: "padding_for_albumart.top"; }
+ rel2 { relative: 1.0 0.0; to_x: "padding.left"; to_y: "padding_for_albumart.bottom"; }
+ min: ALBUM_ART_SIZE;
+ max: ALBUM_ART_SIZE;
+ fixed: 1 1;
+ align: 0.0 0.5;
+ }
+ }
+ part { name: "albumart_image";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 1;
+ clip_to: "albumarmt_bg";
+ description { state: "default" 0.0;
+ rel1 { relative: 0.5 0.5; to: "albumarmt_bg"; }
+ rel2 { relative: 0.5 0.5; to: "albumarmt_bg"; }
+ min: ALBUM_ART_SIZE;
+ max: ALBUM_ART_SIZE;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ }
+ }
+ part { name: "albumarmt_frame";
+ type: IMAGE;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 0.0 0.0; to: "albumarmt_bg";}
+ rel2 { relative: 1.0 1.0; to: "albumarmt_bg";}
+ min: ALBUM_ART_SIZE;
+ image.normal: MC_MUSIC_ALBUM_FRAME;
+ color_class:"AO009";
+ }
+ }
+
+ part { name: "right_area";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 1.0 1.0; to_x: "albumarmt_bg"; to_y: "padding.top"; }
+ rel2 { relative: 0.0 0.0; to_x: "padding.right"; to_y: "padding.bottom"; }
+ align: 0.0 0.0;
+ color:0 255 0 0;
+ }
+ }
+ part { name: "elm.text"; // title
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0.1 1.0; to_x: "right_area"; to_y: "padding.top";}
+ rel2 { relative: 290/329 1.0; to_x: "right_area"; to_y: "padding.top";}
+ fixed: 1 1;
+ align: 0.5 0.0;
+ }
+ }
+
+ part { name: "mid_padding";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description
+ { state: "default" 0.0;
+ //min: 323 3;
+ //max: 323 3;
+ fixed: 1 1;
+ rel1 { relative: 0.0 1.0; to_x: "right_area"; to_y: "elm.text"; offset: 40 0; }
+ rel2 { relative: 1.0 1.0; to_x: "right_area"; to_y: "elm.text"; }
+ fixed: 1 1;
+ align: 0.0 0.0;
+ color: 255 0 0 0;
+ }
+ }
+
+ part { name: "close_btn_area";
+ type: SPACER;
+ scale: 1;
+ mouse_events: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0.0 0.0; to_x: "padding.right"; to_y: "elm.text";offset: -30 15;}
+ rel2 { relative: 0.0 0.0; to: "padding.right";to_y: "elm.text"; offset: -30 15;}
+ min: BUTTON_CLOSE_SIZE_MAX;
+ max: BUTTON_CLOSE_SIZE_MAX;
+ fixed: 1 1;
+ }
+ }
+ MC_IMAGE_PART("close_btn","close_btn_area",MC_MUSIC_CLOSE_BTN,61,185,204,255,61,185,204,255,BUTTON_CLOSE_SIZE_MAX)
+ part { name: "close_btn_touch_area";
+ type: RECT;
+ scale: 1;
+ mouse_events: 1;
+ repeat_events: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { to: "close_btn_area"; offset: -7 -7;}
+ rel2 { to: "close_btn_area"; offset: 7 7;}
+ color: 0 0 0 0;
+ }
+ }
+
+ part { name: "button_area";
+ type: RECT;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 1; to_x:"elm.text"; to_y: "mid_padding";}
+ rel2 { relative: 1 0; to_x: "elm.text"; to_y: "padding.bottom"; }
+ visible: 1;
+ color: 0 255 0 0;
+ }
+ }
+
+ part { name: "rew_btn_area";
+ type: RECT;
+ scale: 1;
+ mouse_events: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0.2 0.5; to: "button_area"; offset: 10 0;}
+ rel2 { relative: 0.2 0.5; to: "button_area"; offset: 10 -16;}
+ min: BUTTON_SIZE_MIN_MAX;
+ fixed: 1 1;
+ align: 0.0 0.5;
+ visible: 0;
+ }
+ }
+
+
+ MC_IMAGE_PART("rew_btn_bg","rew_btn_area",MC_MUSIC_SMALL_BTN_BG,0,0,0,0,0,0,0,0,BUTTON_SIZE_MIN_MAX)
+ MC_IMAGE_PART("rew_btn_ef","rew_btn_area",MC_MUSIC_SMALL_BTN_EF,0,0,0,0,0,0,0,0,BUTTON_SIZE_MIN_MAX)
+ MC_IMAGE_PART("rew_btn","rew_btn_area",MC_MUSIC_PREV_BTN,61,185,204,255,34,104,115,255,FF_BTN_SIZE_MIN_MAX)
+ part { name: "rew_btn_touch_area";
+ type: RECT;
+ scale: 1;
+ mouse_events: 1;
+ repeat_events: 1;
+ description { state: "default" 0.0;
+ rel1 { to: "rew_btn_area"; }
+ rel2 { to: "rew_btn_area";}
+ color: 0 0 0 0;
+ }
+ }
+ MC_FOCUSED_COVER("rew_btn", "rew_btn_area");
+
+
+
+ part { name: "play_pause_btn_area";
+ type: SPACER;
+ scale: 1;
+ mouse_events: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0.5 0.5; to: "button_area";offset: 0 0;}
+ rel2 { relative: 0.5 0.5; to: "button_area";offset: 0 -16;}
+ min: PLAY_BTN_SIZE_MIN_MAX;
+ max: PLAY_BTN_SIZE_MIN_MAX;
+ fixed: 1 1;
+ }
+ }
+
+
+ MC_IMAGE_PART("play_btn_bg","play_pause_btn_area",MC_MUSIC_LAGRE_BTN_BG,61,185,204,255,34,104,115,255,BIG_BTN_SIZE_MIN_MAX)
+ MC_IMAGE_PART_FOCUS("play_btn_ef","play_pause_btn_area",MC_MUSIC_LAGRE_BTN_EF,BIG_BTN_SIZE_MIN_MAX)
+ MC_IMAGE_PART("play_btn","play_pause_btn_area",MC_MUSIC_PLAY_BTN,255,255,255,255,255,255,255,255,PLAY_BTN_SIZE_MIN_MAX)
+ MC_IMAGE_PART("pause_btn","play_pause_btn_area",MC_MUSIC_PAUSE_BTN,255,255,255,255,255,255,255,255,PLAY_BTN_SIZE_MIN_MAX)
+ part { name: "play_btn_touch_area";
+ type: RECT;
+ scale: 1;
+ mouse_events: 1;
+ repeat_events: 1;
+ description { state: "default" 0.0;
+ rel1 { to: "play_pause_btn_area"; }
+ rel2 { to: "play_pause_btn_area";}
+ color: 0 0 0 0;
+ fixed: 1 1;
+ }
+ }
+ MC_FOCUSED_COVER("play_pause", "play_pause_btn_area");
+
+
+ part { name: "ff_btn_area";
+ type: SPACER;
+ scale: 1;
+ mouse_events: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0.7 0.5; to: "button_area";offset: -10 0;}
+ rel2 { relative: 0.7 0.5; to: "button_area";offset: -10 -16;}
+ min: FF_BTN_SIZE_MIN_MAX;
+ max: FF_BTN_SIZE_MIN_MAX;
+ fixed: 1 1;
+ align:0.0 0.5;
+ }
+ }
+
+ MC_IMAGE_PART("ff_btn_bg","ff_btn_area",MC_MUSIC_SMALL_BTN_BG,0,0,0,0,0,0,0,0,BUTTON_SIZE_MIN_MAX)
+ MC_IMAGE_PART("ff_btn_ef","ff_btn_area",MC_MUSIC_SMALL_BTN_EF,0,0,0,0,0,0,0,0,BUTTON_SIZE_MIN_MAX)
+ MC_IMAGE_PART("ff_btn","ff_btn_area",MC_MUSIC_NEXT_BTN,61,185,204,255,34,104,115,255,FF_BTN_SIZE_MIN_MAX)
+ part { name: "ff_btn_touch_area";
+ type: RECT;
+ scale: 1;
+ mouse_events: 1;
+ repeat_events: 1;
+ description { state: "default" 0.0;
+ rel1 { to: "ff_btn_area"; }
+ rel2 { to: "ff_btn_area";}
+ color: 0 0 0 0;
+ fixed: 1 1;
+ }
+ }
+ MC_FOCUSED_COVER("ff_btn", "ff_btn_area");
+ }
+
+ programs {
+
+ MC_PROGRAM_IMAGE_VISIBLE("play_btn", "show_play_btn", "hide_play_btn")
+ MC_PROGRAM_IMAGE_VISIBLE("pause_btn", "show_pause_btn", "hide_pause_btn")
+
+ program { name: "play_pause_btn_area_press";
+ signal: "mouse,down,1";
+ source: "play_btn_touch_area";
+ script{
+ set_state(PART:"play_btn_bg", "pressed", 0.0);
+ set_state(PART:"play_btn_ef", "pressed", 0.0);
+ }
+ }
+
+ program { name: "play_pause_btn_area_up";
+ signal: "mouse,up,1";
+ source: "play_btn_touch_area";
+ script{
+ set_state(PART:"play_btn_bg", "default", 0.0);
+ set_state(PART:"play_btn_ef", "default", 0.0);
+ }
+ }
+
+ program { name: "rew_btn_touch_area_press";
+ signal: "mouse,down,1";
+ source: "rew_btn_touch_area";
+ script{
+ set_state(PART:"rew_btn_bg", "pressed", 0.0);
+ set_state(PART:"rew_btn_ef", "pressed", 0.0);
+ set_state(PART:"rew_btn", "pressed", 0.0);
+ }
+ }
+
+ program { name: "rew_btn_touch_area_up";
+ signal: "mouse,up,1";
+ source: "rew_btn_touch_area";
+ script{
+ set_state(PART:"rew_btn_bg", "default", 0.0);
+ set_state(PART:"rew_btn_ef", "default", 0.0);
+ set_state(PART:"rew_btn", "default", 0.0);
+ }
+ }
+
+ program { name: "ff_btn_touch_area_press";
+ signal: "mouse,down,1";
+ source: "ff_btn_touch_area";
+ script{
+ set_state(PART:"ff_btn_bg", "pressed", 0.0);
+ set_state(PART:"ff_btn_ef", "pressed", 0.0);
+ set_state(PART:"ff_btn", "pressed", 0.0);
+ }
+ }
+
+ program { name: "ff_btn_touch_area_up";
+ signal: "mouse,up,1";
+ source: "ff_btn_touch_area";
+ script{
+ set_state(PART:"ff_btn_bg", "default", 0.0);
+ set_state(PART:"ff_btn_ef", "default", 0.0);
+ set_state(PART:"ff_btn", "default", 0.0);
+ }
+ }
+
+ program { name: "albumart_cb";
+ signal: "mouse,down,1";
+ source: "albumart_image";
+ script{
+ emit("albumart_clicked", "edje");
+ }
+ }
+ /*
+ program{
+ name: "albumart_cb_after_down";
+ source: "albumart_image";
+ signal: "mouse,down,1";
+ transition: ACCELERATE 0.02;
+ }
+ program {
+ name: "albumart_cb_down";
+ source: "albumart_image";
+ signal: "mouse,down,1";
+ action: PLAY_SAMPLE "button-pressed" 1.0;
+ after: "albumart_cb_after_down";
+ transition: ACCELERATE 0.02;
+ }
+*/
+ program { name: "close_area_btn_down";
+ signal: "mouse,down,1";
+ source: "close_btn_touch_area";
+ script{
+ set_state(PART:"close_btn", "pressed", 0.0);
+ emit("close_btn_down", "edje");
+ }
+ }
+
+ program { name: "close_area_btn_up";
+ signal: "mouse,up,1";
+ source: "close_btn_touch_area";
+ script{
+ set_state(PART:"close_btn", "default", 0.0);
+ emit("close_btn_up", "edje");
+ }
+ }
+
+ program { name: "close_area_btn_clicked";
+ signal: "mouse,up,1";
+ source: "close_btn_touch_area";
+ script{
+ emit("close_btn_clicked", "edje");
+ }
+ }
+
+ program { name: "set_pause_icon";
+ signal: "set_pause";
+ source: "*";
+ script{
+ set_state(PART:"play_btn", "hide", 0.0);
+ set_state(PART:"pause_btn", "default",0.0);
+ set_state(PART:"play_btn_ef", "focus", 0.0);
+ }
+ }
+ program { name: "set_play_icon";
+ signal: "set_play";
+ source: "*";
+ script{
+ set_state(PART:"play_btn", "default", 0.0);
+ set_state(PART:"pause_btn", "hide",0.0);
+ set_state(PART:"play_btn_ef", "default", 0.0);
+ }
+ }
+
+ program { name: "set_ff_btn_uppressed";
+ signal: "ff_btn_unpressed";
+ source: "*";
+ script{
+ set_state(PART:"ff_btn_bg", "default", 0.0);
+ set_state(PART:"ff_btn_ef", "default", 0.0);
+ set_state(PART:"ff_btn", "default", 0.0);
+ }
+ }
+ program { name: "set_rew_btn_uppressed";
+ signal: "rew_btn_unpressed";
+ source: "*";
+ script{
+ set_state(PART:"rew_btn_bg", "default", 0.0);
+ set_state(PART:"rew_btn_ef", "default", 0.0);
+ set_state(PART:"rew_btn", "default", 0.0);
+ }
+ }
+ /*
+ program { name: "touch_snd_rew";
+ signal: "mouse,down,1";
+ source: "rew_btn_touch_area";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+
+ program { name: "touch_snd_ff";
+ signal: "mouse,down,1";
+ source: "ff_btn_touch_area";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ program { name: "touch_snd_play_pause";
+ signal: "mouse,down,1";
+ source: "play_btn_touch_area";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ program { name: "touch_snd_shuffle";
+ signal: "mouse,down,1";
+ source: "shuffle_btn_touch_area";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ program { name: "touch_snd_close";
+ signal: "mouse,down,1";
+ source: "close_btn_touch_area";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ program { name: "touch_snd_repeat";
+ signal: "mouse,down,1";
+ source: "repeat_btn_touch_area";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+*/
+ }
+}
+
+group {
+ name: "video-minicontroller-live-streaming-ld";
+ images {
+ image: MC_MUSIC_LAGRE_BTN_EF COMP;
+ image: MC_MUSIC_LAGRE_BTN_BG COMP;
+ image: MC_MUSIC_PLAY_BTN COMP;
+ image: MC_MUSIC_STOP_BTN COMP;
+ image: MC_MUSIC_SMALL_BTN_EF COMP;
+ image: MC_MUSIC_SMALL_BTN_BG COMP;
+ image: MC_MUSIC_CLOSE_BTN COMP;
+ }
+ parts {
+ part{ name: "bg";
+ type : RECT;
+ scale : 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ min : 0 MINI_H;
+ fixed: 1 1;
+ rel1{ relative : 0 0;}
+ rel2{ relative : 1 1;}
+ color: MC_BG;
+ }
+ }
+
+ part { name: "padding.top";
+ type: SPACER;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 0; to: "bg"; }
+ rel2 { relative: 1 0; to: "bg"; }
+ min: 0 TOP_PADDING;
+ fixed: 0 1;
+ align: 0 0;
+ }
+ }
+
+ part { name: "padding.left";
+ type: SPACER;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 0; to: "bg"; }
+ rel2 { relative: 0 1; to: "bg"; }
+ min: LEFT_PADDING 0;
+ fixed: 1 0;
+ align: 0 0;
+ }
+ }
+
+ part { name: "padding.right";
+ type: SPACER;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 1 0; to: "bg"; }
+ rel2 { relative: 1 1; to: "bg"; }
+ min: RIGHT_PADDING 0;
+ fixed: 1 0;
+ align: 1 0;
+ }
+ }
+
+ part { name: "padding.bottom";
+ type: SPACER;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 1; to: "bg"; }
+ rel2 { relative: 1 1; to: "bg"; }
+ min: 0 BOTTOM_PADDING;
+ fixed: 0 1;
+ align: 0 1;
+ }
+ }
+
+ part { name: "padding_for_albumart.top";
+ type: SPACER;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel2 { relative: 1.0 0.0; }
+ min: 0 7;
+ fixed: 0 1;
+ align: 0.0 0.0;
+ }
+ }
+
+ part { name: "padding_for_albumart.bottom";
+ type: SPACER;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 1; to: "bg"; }
+ rel2 { relative: 1 1; to: "bg"; }
+ min: 0 7;
+ fixed: 0 1;
+ align: 0 1;
+ }
+ }
+
+ part { name: "albumarmt_bg";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 1.0 1.0; to_x: "padding.left"; to_y: "padding_for_albumart.top"; }
+ rel2 { relative: 1.0 0.0; to_x: "padding.left"; to_y: "padding_for_albumart.bottom"; }
+ min: ALBUM_ART_SIZE;
+ max: ALBUM_ART_SIZE;
+ fixed: 1 1;
+ align: 0.0 0.5;
+ }
+ }
+ part { name: "albumart_image";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 1;
+ clip_to: "albumarmt_bg";
+ description { state: "default" 0.0;
+ rel1 { relative: 0.5 0.5; to: "albumarmt_bg"; }
+ rel2 { relative: 0.5 0.5; to: "albumarmt_bg"; }
+ min: ALBUM_ART_SIZE;
+ max: ALBUM_ART_SIZE;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ }
+ }
+ part { name: "albumarmt_frame";
+ type: IMAGE;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 0.0 0.0; to: "albumarmt_bg";}
+ rel2 { relative: 1.0 1.0; to: "albumarmt_bg";}
+ min: ALBUM_ART_SIZE;
+ image.normal: MC_MUSIC_ALBUM_FRAME;
+ color_class:"AO009";
+ }
+ }
+
+ part { name: "right_area";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 1.0 1.0; to_x: "albumarmt_bg"; to_y: "padding.top"; }
+ rel2 { relative: 0.0 0.0; to_x: "padding.right"; to_y: "padding.bottom"; }
+ align: 0.0 0.0;
+ color:0 255 0 0;
+ }
+ }
+ part { name: "elm.text"; // title
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0.1 1.0; to_x: "right_area"; to_y: "padding.top";}
+ rel2 { relative: 290/329 1.0; to_x: "right_area"; to_y: "padding.top";}
+ fixed: 1 1;
+ align: 0.5 0.0;
+ }
+ }
+
+ part { name: "mid_padding";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description
+ {
+ state: "default" 0.0;
+ fixed: 1 1;
+ rel1 { relative: 0.0 1.0; to_x: "right_area"; to_y: "elm.text"; offset: 40 0; }
+ rel2 { relative: 1.0 1.0; to_x: "right_area"; to_y: "elm.text"; }
+ fixed: 1 1;
+ align: 0.0 0.0;
+ color: 255 0 0 0;
+ }
+ }
+
+ part { name: "close_btn_area";
+ type: SPACER;
+ scale: 1;
+ mouse_events: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0.0 0.0; to_x: "padding.right"; to_y: "elm.text";offset: -30 15;}
+ rel2 { relative: 0.0 0.0; to: "padding.right";to_y: "elm.text"; offset: -30 15;}
+ min: BUTTON_CLOSE_SIZE_MAX;
+ max: BUTTON_CLOSE_SIZE_MAX;
+ fixed: 1 1;
+ }
+ }
+ MC_IMAGE_PART("close_btn","close_btn_area",MC_MUSIC_CLOSE_BTN,61,185,204,255,61,185,204,255,BUTTON_CLOSE_SIZE_MAX)
+ part { name: "close_btn_touch_area";
+ type: RECT;
+ scale: 1;
+ mouse_events: 1;
+ repeat_events: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { to: "close_btn_area"; offset: -7 -7;}
+ rel2 { to: "close_btn_area"; offset: 7 7;}
+ color: 0 0 0 0;
+ }
+ }
+
+ part { name: "button_area";
+ type: RECT;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 1; to_x:"elm.text"; to_y: "mid_padding";}
+ rel2 { relative: 1 0; to_x: "elm.text"; to_y: "padding.bottom"; }
+ visible: 1;
+ color: 0 255 0 0;
+ }
+ }
+
+ part { name: "play_pause_btn_area";
+ type: SPACER;
+ scale: 1;
+ mouse_events: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0.5 0.5; to: "button_area";offset: 0 0;}
+ rel2 { relative: 0.5 0.5; to: "button_area";offset: 0 -16;}
+ min: PLAY_BTN_SIZE_MIN_MAX;
+ max: PLAY_BTN_SIZE_MIN_MAX;
+ fixed: 1 1;
+ }
+ }
+
+
+ MC_IMAGE_PART("play_btn_bg","play_pause_btn_area",MC_MUSIC_LAGRE_BTN_BG,61,185,204,255,34,104,115,255,BIG_BTN_SIZE_MIN_MAX)
+ MC_IMAGE_PART_FOCUS("play_btn_ef","play_pause_btn_area",MC_MUSIC_LAGRE_BTN_EF,BIG_BTN_SIZE_MIN_MAX)
+ MC_IMAGE_PART("play_btn","play_pause_btn_area",MC_MUSIC_PLAY_BTN,255,255,255,255,255,255,255,255,PLAY_BTN_SIZE_MIN_MAX)
+ MC_IMAGE_PART("pause_btn","play_pause_btn_area",MC_MUSIC_STOP_BTN,255,255,255,255,255,255,255,255,PLAY_BTN_SIZE_MIN_MAX)
+ part { name: "play_btn_touch_area";
+ type: RECT;
+ scale: 1;
+ mouse_events: 1;
+ repeat_events: 1;
+ description { state: "default" 0.0;
+ rel1 { to: "play_pause_btn_area"; }
+ rel2 { to: "play_pause_btn_area";}
+ color: 0 0 0 0;
+ fixed: 1 1;
+ }
+ }
+ MC_FOCUSED_COVER("play_pause", "play_pause_btn_area");
+ }
+
+ programs {
+
+ MC_PROGRAM_IMAGE_VISIBLE("play_btn", "show_play_btn", "hide_play_btn")
+ MC_PROGRAM_IMAGE_VISIBLE("pause_btn", "show_pause_btn", "hide_pause_btn")
+
+ program { name: "play_pause_btn_area_press";
+ signal: "mouse,down,1";
+ source: "play_btn_touch_area";
+ script{
+ set_state(PART:"play_btn_bg", "pressed", 0.0);
+ set_state(PART:"play_btn_ef", "pressed", 0.0);
+ }
+ }
+
+ program { name: "play_pause_btn_area_up";
+ signal: "mouse,up,1";
+ source: "play_btn_touch_area";
+ script{
+ set_state(PART:"play_btn_bg", "default", 0.0);
+ set_state(PART:"play_btn_ef", "default", 0.0);
+ }
+ }
+
+ program { name: "albumart_cb";
+ signal: "mouse,down,1";
+ source: "albumart_image";
+ script{
+ emit("albumart_clicked", "edje");
+ }
+ }
+
+ program { name: "close_area_btn_down";
+ signal: "mouse,down,1";
+ source: "close_btn_touch_area";
+ script{
+ set_state(PART:"close_btn", "pressed", 0.0);
+ emit("close_btn_down", "edje");
+ }
+ }
+
+ program { name: "close_area_btn_up";
+ signal: "mouse,up,1";
+ source: "close_btn_touch_area";
+ script{
+ set_state(PART:"close_btn", "default", 0.0);
+ emit("close_btn_up", "edje");
+ }
+ }
+
+ program { name: "close_area_btn_clicked";
+ signal: "mouse,up,1";
+ source: "close_btn_touch_area";
+ script{
+ emit("close_btn_clicked", "edje");
+ }
+ }
+
+ program { name: "set_pause_icon";
+ signal: "set_pause";
+ source: "*";
+ script{
+ set_state(PART:"play_btn", "hide", 0.0);
+ set_state(PART:"pause_btn", "default",0.0);
+ set_state(PART:"play_btn_ef", "focus", 0.0);
+ }
+ }
+ program { name: "set_play_icon";
+ signal: "set_play";
+ source: "*";
+ script{
+ set_state(PART:"play_btn", "default", 0.0);
+ set_state(PART:"pause_btn", "hide",0.0);
+ set_state(PART:"play_btn_ef", "default", 0.0);
+ }
+ }
+ }
+}
+
+} // collection
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES 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 */
+
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "pv-image.edc"
+
+#define PV_NORMAL_CONTROL_BG "control/T01-2_control_bg.png"
+#define PV_NORMAL_CONTROL_LANDSCAPE_BG "control/T01-2_control_bg_h.png"
+
+externals {
+ external: "elm";
+ external: "feedback";
+ }
+
+collections {
+
+#define PV_PART_DESCRIPTION_HIDE \
+ description { \
+ state: "hide" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 0; \
+ } \
+
+#define PV_PART_DESCRIPTION_SHOW \
+ description { \
+ state: "show" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 1; \
+ } \
+
+ plugins {
+ plugin {
+ name: "touch_sound_plugin";
+ source: "feedback";
+ param: "FEEDBACK_TYPE_SOUND FEEDBACK_PATTERN_TAP";
+ }
+ }
+
+ group {
+ name: "pv.normal.control";
+ images {
+ image: PV_NORMAL_CONTROL_BG COMP;
+ image: PV_NORMAL_CONTROL_LANDSCAPE_BG COMP;
+ }
+
+ parts {
+ part {
+ name: "pv.normal.control.bg";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 1.0 1.0;}
+ color: 255 0 0 255;
+ }
+ }
+
+ part {
+ name: "pv.normal.control.bottom.padding";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 0 12;
+ fixed: 0 1;
+ align: 0.0 1.0;
+ rel1 { relative: 0.0 1.0; to_y : "pv.normal.control.bg"; }
+ rel2 { relative: 1.0 1.0; to_y : "pv.normal.control.bg"; }
+ color: 0 255 0 50;
+ }
+ description {
+ state: "landscape" 0.0;
+ inherit: "default" 0.0;
+ min: 0 6;
+ }
+ }
+ part {
+ name: "pv.normal.control.bg.rect";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ rel1 { relative: 0.0 0.0; to: "pv.normal.control.bg";}
+ rel2 { relative: 1.0 1.0; to: "pv.normal.control.bg";}
+ color: 255 255 255 255;
+ }
+ }
+ part {
+ name: "pv.normal.control.function.top";
+ type: RECT;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 0 0;
+ max: -1 0;
+ fixed: 0 1;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 0.0; to_y: "pv.normal.control.bg";}
+ rel2 { relative: 1.0 0.0; to_y: "pv.normal.control.bg";}
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "pv.normal.control.function";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 0 14;
+ max: -1 14;
+ fixed: 0 1;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 1.0; to_y: "pv.normal.control.function.top"; }
+ rel2 { relative: 1.0 1.0; to_y: "pv.normal.control.function.top"; }
+ }
+ description {
+ state: "landscape" 0.0;
+ inherit: "default" 0.0;
+ min: 0 14;
+ max: -1 14;
+ align: 0.0 0.5;
+ rel1 { relative: 1.0 0.5; to_x: "pv.normal.control.toolbar.volume"; to_y: "pv.normal.control.toolbar.rect";}
+ rel2 { relative: 0.0 0.5; to_x: "pv.normal.control.toolbar.screensize"; to_y: "pv.normal.control.toolbar.rect";}
+ }
+ }
+
+ part {
+ name: "pv.normal.control.progress";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 0 46;//(26+11+12+34);
+ max: -1 46;//(26+11+12+34);
+ fixed: 0 1;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 1.0; to_y: "pv.normal.control.function";}
+ rel2 { relative: 1.0 1.0; to_y: "pv.normal.control.function";}
+ }
+
+ description {
+ state: "landscape" 0.0;
+ inherit: "default" 0.0;
+ min: 0 46;
+ rel1 { relative: 0.0 0.0; to_y: "pv.normal.control.bg.rect";}
+ rel2 { relative: 1.0 0.0; to_y: "pv.normal.control.bg.rect";}
+ }
+ }
+
+ part {
+ name: "pv.normal.control.toolbar.top";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 0 70;//(12+70+26+11+12+(34/2));
+ max: -1 70;//(12+70+26+11+12+(34/2));
+ fixed: 0 1;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 0.0; to_y: "pv.normal.control.bg";}
+ rel2 { relative: 1.0 0.0; to_y: "pv.normal.control.bg";}
+ color: 255 0 0 125;
+ }
+ }
+ part {
+ name: "pv.normal.control.toolbar.rect";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 0 80;
+ max: -1 80;
+ fixed: 0 1;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 0.6; to_y: "pv.normal.control.toolbar.top";}
+ rel2 { relative: 1.0 0.6; to_y: "pv.normal.control.toolbar.top";}
+ color: 255 0 0 255;
+ }
+ description {
+ state: "landscape" 0.0;
+ visible: 0;
+ fixed: 0 1;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 1.0; to_y: "pv.normal.control.toolbar.top";}
+ rel2 { relative: 1.0 1.0; to_y: "pv.normal.control.toolbar.top";}
+ color: 255 0 0 255;
+ }
+ }
+
+ part {
+ name: "pv.normal.control.toolbar.left.padding";
+ type: RECT;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 30 0;
+ fixed: 1 0;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 0.0; to: "pv.normal.control.toolbar.rect";}
+ rel2 { relative: 0.0 1.0; to: "pv.normal.control.toolbar.rect";}
+ color: 0 0 0 0;
+ }
+ description {
+ state: "landscape" 0.0;
+ inherit: "default" 0.0;
+ min: 30 0;
+ }
+ }
+ part {
+ name: "pv.normal.control.toolbar.right.padding";
+ type: RECT;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 30 0;
+ fixed: 1 0;
+ align: 1.0 0.0;
+ rel1 { relative: 1.0 0.0; to: "pv.normal.control.toolbar.rect";}
+ rel2 { relative: 1.0 1.0; to: "pv.normal.control.toolbar.rect";}
+ color: 0 0 0 0;
+ }
+ description {
+ state: "landscape" 0.0;
+ inherit: "default" 0.0;
+ min: 30 0;
+ }
+ }
+ part {
+ name: "pv.normal.control.toolbar.volume";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 46 46;
+ fixed: 1 1;
+ align: 0.0 0.5;
+ rel1 { relative: 1.0 0.5; to_x: "pv.normal.control.toolbar.left.padding"; to_y: "pv.normal.control.toolbar.rect"; }
+ rel2 { relative: 1.0 0.5; to_x: "pv.normal.control.toolbar.left.padding"; to_y: "pv.normal.control.toolbar.rect"; }
+ color: 255 255 255 255;
+ }
+ PV_PART_DESCRIPTION_HIDE
+ PV_PART_DESCRIPTION_SHOW
+ }
+
+ part {
+ name: "pv.normal.control.toolbar.screensize";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 60 60;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ rel1 { relative: 0.05 0.45; to_x: "pv.normal.control.bg"; to_y: "pv.normal.control.toolbar.rect"; offset: +18 0;}
+ rel2 { relative: 0.05 0.45; to_x: "pv.normal.control.bg"; to_y: "pv.normal.control.toolbar.rect"; offset: +78 0;}
+ color: 255 255 255 255;
+ }
+ PV_PART_DESCRIPTION_HIDE
+ PV_PART_DESCRIPTION_SHOW
+ }
+
+ part {
+ name: "pv.normal.control.toolbar.popupPlayer";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 60 60;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ rel1 { relative: 0.95 0.55; to_x: "pv.normal.control.bg"; to_y: "pv.normal.control.toolbar.rect"; offset: -18 0;}
+ rel2 { relative: 0.95 0.55; to_x: "pv.normal.control.bg"; to_y: "pv.normal.control.toolbar.rect"; offset: -78 0;}
+ color: 255 255 255 255;
+ }
+ PV_PART_DESCRIPTION_HIDE
+ PV_PART_DESCRIPTION_SHOW
+ }
+
+ part {
+ name: "pv.normal.control.play";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 80 80;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ rel1 { relative: 0.5 0.0; to_y: "pv.normal.control.toolbar.rect";}
+ rel2 { relative: 0.5 1.0; to_y: "pv.normal.control.toolbar.rect";}
+ color: 255 255 255 255;
+ }
+ PV_PART_DESCRIPTION_HIDE
+ PV_PART_DESCRIPTION_SHOW
+ }
+
+ part {
+ name: "pv.normal.control.play.focus";
+ type: SWALLOW;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ rel1 { relative: 0.0 0.0; to : "pv.normal.control.play";}
+ rel2 { relative: 1.0 1.0; to : "pv.normal.control.play";}
+ color: 255 255 255 255;
+ }
+ PV_PART_DESCRIPTION_HIDE
+ PV_PART_DESCRIPTION_SHOW
+ }
+
+ part {
+ name: "pv.normal.control.play.left.padding";
+ type: RECT;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 16 0;
+ fixed: 1 0;
+ align: 1.0 0.5;
+ rel1 { relative: 0.0 0.0; to_x: "pv.normal.control.play"; to_y: "pv.normal.control.toolbar.rect";}
+ rel2 { relative: 0.0 1.0; to_x: "pv.normal.control.play"; to_y: "pv.normal.control.toolbar.rect";}
+ color: 255 255 0 255;
+ }
+ }
+
+ part {
+ name: "pv.normal.control.play.right.padding";
+ type: RECT;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 16 0;
+ fixed: 1 0;
+ align: 0.0 0.5;
+ rel1 { relative: 1.0 0.0; to_x: "pv.normal.control.play"; to_y: "pv.normal.control.toolbar.rect";}
+ rel2 { relative: 1.0 1.0; to_x: "pv.normal.control.play"; to_y: "pv.normal.control.toolbar.rect";}
+ color: 255 255 0 255;
+ }
+ }
+
+ part {
+ name: "pv.normal.control.rew";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 110 110;
+ fixed: 1 1;
+ align: 1.0 0.5;
+ rel1 { relative: 0.0 0.5; to_x: "pv.normal.control.play.left.padding"; to_y: "pv.normal.control.toolbar.rect";}
+ rel2 { relative: 0.0 0.5; to_x: "pv.normal.control.play.left.padding"; to_y: "pv.normal.control.toolbar.rect";}
+ color: 255 255 255 255;
+ }
+ PV_PART_DESCRIPTION_HIDE
+ PV_PART_DESCRIPTION_SHOW
+ }
+
+ part {
+ name: "pv.normal.control.ff";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 110 110;
+ fixed: 1 1;
+ align: 0.0 0.5;
+ rel1 { relative: 1.0 0.5; to_x: "pv.normal.control.play.right.padding"; to_y: "pv.normal.control.toolbar.rect";}
+ rel2 { relative: 1.0 0.5; to_x: "pv.normal.control.play.right.padding"; to_y: "pv.normal.control.toolbar.rect";}
+ color: 255 255 255 255;
+ }
+ PV_PART_DESCRIPTION_HIDE
+ PV_PART_DESCRIPTION_SHOW
+ }
+
+ part {
+ name: "pv.normal.control.bookmark";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 0 (10+88+32+18);
+ fixed: 0 1;
+ align: 0.0 1.0;
+ rel1 { relative: 0.0 0.0; to_y: "pv.normal.control.bg";}
+ rel2 { relative: 1.0 0.0; to_y: "pv.normal.control.bg";}
+ }
+ }
+
+ } /* parts */
+
+ programs {
+ program {
+ name: "portrait_mode";
+ signal: "signal.pv.normal.control.portrait.mode";
+ source: "*";
+ action: STATE_SET "default" 0.0;
+ target: "pv.normal.control.toolbar.left.padding";
+ target: "pv.normal.control.toolbar.right.padding";
+ target: "pv.normal.control.bottom.padding";
+ target: "pv.normal.control.progress";
+ target: "pv.normal.control.function.top";
+ target: "pv.normal.control.function";
+ target: "pv.normal.control.toolbar.rect";
+ }
+
+ program {
+ name: "landscape_mode";
+ signal: "signal.pv.normal.control.landscape.mode";
+ source: "*";
+ action: STATE_SET "landscape" 0.0;
+ target: "pv.normal.control.toolbar.left.padding";
+ target: "pv.normal.control.toolbar.right.padding";
+ target: "pv.normal.control.bottom.padding";
+ target: "pv.normal.control.progress";
+ target: "pv.normal.control.function.top";
+ target: "pv.normal.control.function";
+ target: "pv.normal.control.toolbar.rect";
+ }
+
+ program {
+ name: "hide_volume_screensize";
+ signal: "signal.pv.normal.control.hide.v.s";
+ source: "*";
+ action: STATE_SET "hide" 0.0;
+ target: "pv.normal.control.toolbar.volume";
+ target: "pv.normal.control.toolbar.screensize";
+ }
+
+ program {
+ name: "hide_volume_screensize_ff_rev";
+ signal: "signal.pv.normal.control.hide.v.s.f.r";
+ source: "*";
+ action: STATE_SET "hide" 0.0;
+ target: "pv.normal.control.toolbar.volume";
+ target: "pv.normal.control.toolbar.screensize";
+ target: "pv.normal.control.rew";
+ target: "pv.normal.control.ff";
+ }
+
+ program {
+ name: "hide_all_button";
+ signal: "signal.pv.normal.control.hide.v.s.f.r.p";
+ source: "*";
+ action: STATE_SET "hide" 0.0;
+ target: "pv.normal.control.toolbar.volume";
+ target: "pv.normal.control.toolbar.screensize";
+ target: "pv.normal.control.rew";
+ target: "pv.normal.control.ff";
+ target: "pv.normal.control.play";
+ }
+
+ program {
+ name: "show_play_button";
+ signal: "signal.pv.normal.control.show.p";
+ source: "*";
+ action: STATE_SET "show" 0.0;
+ target: "pv.normal.control.play";
+ }
+
+ program {
+ name: "show_volume_screensize_ff_rev";
+ signal: "signal.pv.normal.control.show.r.f.p";
+ source: "*";
+ action: STATE_SET "show" 0.0;
+ target: "pv.normal.control.rew";
+ target: "pv.normal.control.ff";
+ target: "pv.normal.control.play";
+ }
+
+ program {
+ name: "show_all_button";
+ signal: "signal.pv.normal.control.show.v.s.f.r.p";
+ source: "*";
+ action: STATE_SET "show" 0.0;
+ target: "pv.normal.control.toolbar.volume";
+ target: "pv.normal.control.toolbar.screensize";
+ target: "pv.normal.control.rew";
+ target: "pv.normal.control.ff";
+ target: "pv.normal.control.play";
+ }
+ program{
+ name: "touch_snd";
+ signal: "mouse,clicked,1";
+ source: "pv.normal.control.ff";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ program{
+ name: "touch_snd1";
+ signal: "mouse,clicked,1";
+ source: "pv.normal.control.rew";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ program{
+ name: "touch_snd2";
+ signal: "mouse,clicked,1";
+ source: "pv.normal.control.toolbar.screensize";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ program{
+ name: "touch_snd3";
+ signal: "mouse,clicked,1";
+ source: "pv.normal.control.play";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ } /* programs */
+ } /* group */
+} /* collections */
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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 */
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "pv-image.edc"
+
+#define FONT_BOLD_TYPE "Tizen:style=Bold"
+#define FONT_COLOR 255 255 255 255
+
+#define MICRO_CONTROL_IMG_UP_1 "micro_control/T01_2_micro_control_up_01.png"
+#define MICRO_CONTROL_IMG_UP_2 "micro_control/T01_2_micro_control_up_02.png"
+#define MICRO_CONTROL_IMG_UP_3 "micro_control/T01_2_micro_control_up_03.png"
+#define MICRO_CONTROL_IMG_BG "micro_control/T01-2_Control_detail_text_bg.png"
+#define JUMP_IMG_L_1 "jump/T01_2_jump_L_01.png"
+#define JUMP_IMG_L_2 "jump/T01_2_jump_L_02.png"
+#define JUMP_IMG_L_3 "jump/T01_2_jump_L_03.png"
+#define JUMP_IMG_R_1 "jump/T01_2_jump_R_01.png"
+#define JUMP_IMG_R_2 "jump/T01_2_jump_R_02.png"
+#define JUMP_IMG_R_3 "jump/T01_2_jump_R_03.png"
+#define LOCK_SCREEN_ICON_SIZE 46
+
+#define SUBTITLE_K_FEATURE
+
+externals {
+ external: "elm";
+ external: "feedback";
+ }
+
+collections {
+ plugins {
+ plugin {
+ name: "touch_sound_plugin";
+ source: "feedback";
+ param: "FEEDBACK_TYPE_SOUND FEEDBACK_PATTERN_TAP";
+ }
+ }
+ group {
+ name: "pv.normal.main";
+
+ parts {
+ part {
+ name: "pv.normal.main.bg";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 1.0 1.0;}
+ color: 8 8 8 255;
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+
+ part {
+ name: "pv.normal.main.no.contents.rect";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 1.0 1.0;}
+ color: 8 8 8 255;
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+
+ part {
+ name: "pv.normal.main.lockscreen.padding";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 20 14 ;
+ fixed: 1 1;
+ align: 0.0 0.0;
+ rel1 { relative: 1.0 0.0; offset: -24 -10;}
+ rel2 { relative: 1.0 0.0; offset: -24 -10;}
+ color: 255 255 255 255;
+ }
+ }
+
+ part {
+ name: "pv.normal.main.image.buffer.bg";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ fixed: 0 1;
+ align: 0.5 0.5;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 1.0 1.0;}
+ color: 0 0 0 0;
+ }
+ description {
+ state: "portrait.show" 0.0;
+ inherit: "default" 0.0;
+ fixed: 0 1;
+ //min: 0 800;
+ align: 0.5 0.5;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 1.0 1.0;}
+ }
+ description {
+ state: "landscape.show" 0.0;
+ inherit: "default" 0.0;
+ fixed: 0 1;
+ //min: 0 480;
+ align: 0.5 0.5;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 1.0 1.0;}
+ }
+ }
+ // _NATIVE_BUFFER_SYNC
+ part {
+ name: "pv.normal.videosink";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 1;
+ repeat_events: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ align: 0.5 0.5;
+ rel1 { relative: 0.0 0.0; to: "pv.normal.main.image.buffer.bg";}
+ rel2 { relative: 1.0 1.0; to: "pv.normal.main.image.buffer.bg";}
+ }
+ }
+
+ part {
+ name: "pv.normal.main.image.buffer";
+ type: SWALLOW;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ align: 0.5 0.5;
+ rel1 { relative: 0.0 0.0; to: "pv.normal.main.image.buffer.bg";}
+ rel2 { relative: 1.0 1.0; to: "pv.normal.main.image.buffer.bg";}
+ }
+ }
+ part {
+ name: "pv.normal.main.no.contents";
+ type: IMAGE;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 270 214;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ rel1 { relative: 0.5 0.0; to_y: "pv.normal.main.no.contents.bottom";}
+ rel2 { relative: 0.5 0.0; to_y: "pv.normal.main.no.contents.bottom";}
+ image { normal: "dmc/T02_player_all_share.png"; }
+ color: 255 255 255 255;
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+
+ part {
+ name: "pv.normal.main.no.contents.bottom";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ align: 0.5 0.5;
+ fixed: 1 1;
+ rel1 { relative: 0.0 0.5; }
+ rel2 { relative: 1.0 0.5; }
+ }
+ description {
+ state: "portrait.show" 0.0;
+ inherit: "default" 0.0;
+ min: 0 640;
+ align: 0.5 1.0;
+ fixed: 1 1;
+ rel1 { relative: 0.0 1.0; }
+ rel2 { relative: 1.0 1.0; }
+ }
+ description {
+ state: "landscape.show" 0.0;
+ inherit: "default" 0.0;
+ min: 0 360;
+ align: 0.5 1.0;
+ fixed: 1 1;
+ rel1 { relative: 0.0 1.0; }
+ rel2 { relative: 1.0 1.0; }
+ }
+ }
+
+ part {
+ name: "pv.normal.main.lockscreen.text.rect";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 16 56 ;
+ fixed: 1 1;
+ align: 0.0 0.0;
+ rel1 { relative: 1.0 0.0; to_x: "pv.normal.main.lockscreen";}
+ rel2 { relative: 0.0 0.0;}
+ color: 255 0 0 255;
+ }
+ }
+
+ part {
+ name: "pv.normal.main.lockscreen.text";
+ type: TEXT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 0 56;
+ fixed: 1 1;
+ align: 0.0 0.0;
+ rel1 { relative: 1.0 1.0; to_x: "pv.normal.main.lockscreen.text.rect"; to_y: "pv.normal.main.lockscreen.padding"; }
+ rel2 { relative: 1.0 0.0; }
+ color: 255 255 255 255;
+ text {
+ font: FONT_BOLD_TYPE;
+ size: 32;
+ text: "Press hold key to unlock";
+ align: 0.0 0.5;
+ }
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+
+ part {
+ name: "pv.normal.allshare.dmc";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 0 414;
+ fixed: 0 1;
+ align: 0.0 0.5;
+ rel1 { relative: 0.0 0.4; }
+ rel2 { relative: 1.0 0.4; }
+ color: 255 255 255 255;
+ }
+ }
+
+
+ part {
+ name: "pv.normal.top.control";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 0 0;
+ fixed: 0 1;
+ align: 0.5 0.0;
+ rel1 { relative: 0.0 0.0; }
+ rel2 { relative: 1.0 0.0; }
+ color: 0 0 0 0;
+ }
+ description {
+ state: "portrait.show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ min: 0 113;
+ }
+ description {
+ state: "landscape.show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ min: 0 113;
+ }
+ }
+
+ part {
+ name: "pv.allshare.voice.control";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 0 0;
+ fixed: 0 1;
+ align: 0.5 0.0;
+ rel1 {
+ relative: 0.0 0.0;
+ }
+ rel2 {
+ relative: 1.0 0.0;
+ }
+ }
+
+ description {
+ state: "show" 0.0;
+ visible: 1;
+ min: 0 63;
+ fixed: 0 1;
+ align: 0.5 0.0;
+ rel1 {
+ relative: 0.0 0.0;
+ }
+ rel2 {
+ relative: 1.0 0.0;
+ }
+ }
+ }
+
+ part {
+ name: "pv.normal.main.zoom.guide.top";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 0 1280-144-210; // total height - zoom guide height - top margin height(portrait)
+ fixed: 0 1;
+ align: 0.0 1.0;
+ rel1 { relative: 0.0 1.0; }
+ rel2 { relative: 1.0 1.0; }
+ color: 0 255 0 255;
+ }
+ description {
+ state: "portrait.show" 0.0;
+ inherit: "default" 0.0;
+ min: 0 1280-144-210; // total height - zoom guide height - top margin height(portrait)
+ fixed: 0 1;
+ align: 0.0 1.0;
+ rel1 { relative: 0.0 1.0; }
+ rel2 { relative: 1.0 1.0; }
+ }
+ description {
+ state: "landscape.show" 0.0;
+ inherit: "default" 0.0;
+ min: 0 720-144-104; // total height - zoom guide height - top margin height(landscape)
+ fixed: 0 1;
+ align: 0.0 1.0;
+ rel1 { relative: 0.0 1.0; }
+ rel2 { relative: 1.0 1.0; }
+ }
+ }
+
+ part {
+ name: "pv.normal.main.zoom.guide.left";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 16 0;
+ fixed: 1 0;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 0.0; }
+ rel2 { relative: 0.0 1.0; }
+ color: 0 0 255 255;
+ }
+ }
+
+ part {
+ name: "pv.normal.main.zoom.guide.rect";
+ type: SWALLOW;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 256 144;
+ fixed: 1 1;
+ align: 0.0 1.0;
+ rel1 { relative: 1.0 0.0; to_x: "pv.normal.main.zoom.guide.left"; to_y: "pv.normal.main.zoom.guide.top"; }
+ rel2 { relative: 1.0 0.0; to_x: "pv.normal.main.zoom.guide.left"; to_y: "pv.normal.main.zoom.guide.top"; }
+ }
+ }
+
+#ifndef SUBTITLE_K_FEATURE
+ part {
+ name: "pv.normal.main.subtitle.top";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 0 0;
+ fixed: 0 1;
+ align: 0.5 1.0;
+ rel1 { relative: 0.0 1.0; }
+ rel2 { relative: 1.0 1.0; }
+ }
+ description {
+ state: "portrait.show" 0.0;
+ inherit: "default" 0.0;
+ min: 0 290;
+ }
+ description {
+ state: "landscape.show" 0.0;
+ inherit: "default" 0.0;
+ min: 0 190;
+ }
+ }
+
+ part {
+ name: "pv.normal.main.subtitle.bottom";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 0.0; to_y : "pv.normal.main.subtitle.top"; }
+ rel2 { relative: 1.0 0.0; to_y : "pv.normal.main.subtitle.top"; }
+ color: 0 255 0 128;
+ }
+ description {
+ state: "bookmark.on" 0.0;
+ inherit: "default" 0.0;
+ align: 0.0 1.0;
+ fixed: 0 1;
+ min: 0 146;
+ }
+ }
+
+ part {
+ name: "pv.normal.main.subtitle";
+ type: SWALLOW;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 0.0; }
+ rel2 { relative: 1.0 0.0; to_y : "pv.normal.main.subtitle.bottom"; }
+ }
+ }
+#endif
+ part {
+ name: "pv.normal.main.control";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 0 0;
+ fixed: 0 1;
+ align: 0.5 1.0;
+ rel1 { relative: 0.0 1.0; }
+ rel2 { relative: 1.0 1.0; }
+ }
+ description {
+ state: "portrait.show" 0.0;
+ inherit: "default" 0.0;
+ min: 0 110;
+ }
+ description {
+ state: "landscape.show" 0.0;
+ inherit: "default" 0.0;
+ min: 0 100;
+ }
+ }
+
+ part {
+ name: "pv.normal.main.lockscreen";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: LOCK_SCREEN_ICON_SIZE LOCK_SCREEN_ICON_SIZE;
+ fixed: 1 1;
+ align: 1.0 0.0;
+ rel1 { relative: 0.0 1.0; to: "pv.normal.main.lockscreen.padding"; }
+ rel2 { relative: 0.0 1.0; to: "pv.normal.main.lockscreen.padding"; }
+ color: 255 0 0 255;
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+
+ part {
+ name: "pv.normal.main.rotate.icon";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 60 60;
+ fixed: 1 1;
+ align: 0.0 1.0;
+ visible: 0;
+ rel1 { relative: 0.0 -0.02; to_y : "pv.normal.main.control";}
+ rel2 { relative: 0.1 -0.02; to_y : "pv.normal.main.control";}
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+
+ part {
+ name: "pv.normal.main.volume.icon";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 60 60;
+ fixed: 1 1;
+ align: 0.0 1.0;
+ visible: 0;
+ rel1 { relative: 1.0 -0.02; to_y : "pv.normal.main.control"; offset: -134 0;}
+ rel2 { relative: 1.0 -0.02; to_y : "pv.normal.main.control"; offset: -194 0;}
+ }
+ description {
+ state: "portrait.show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ description {
+ state: "landscape.show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+
+ part {
+ name: "pv.normal.main.speed.rect";
+ type: RECT;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 0 80;
+ fixed: 1 1;
+ align: 0.0 1.0;
+ rel1 { relative: 0.0 0.0; to_y : "pv.normal.main.control"; }
+ rel2 { relative: 1.0 0.0; to_y : "pv.normal.main.control"; }
+ color: 0 0 0 102;
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+
+ part {
+ name: "pv.normal.main.speed.txt";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 0.0; to : "pv.normal.main.speed.rect";}
+ rel2 { relative: 1.0 1.0; to : "pv.normal.main.speed.rect";}
+ color: FONT_COLOR;
+ text {
+ font: FONT_BOLD_TYPE;
+ size: 48;
+ text: "";
+ align: 0.5 0.5;
+ }
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+
+ part {
+ name: "pv.normal.main.playingspeed.rect";
+ type: RECT;
+ mouse_events: 1;
+ repeat_events : 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 100 25;
+ fixed: 1 1;
+ align: 0.5 1.0;
+ rel1 { relative: 0.4 0.0; to_y : "pv.normal.main.control"; offset : 0 -20; }
+ rel2 { relative: 0.6 0.0; to_y : "pv.normal.main.control"; offset : 0 -20; }
+ color: 0 0 0 102;
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+
+ part {
+ name: "pv.normal.main.playingspeed.txt";
+ type: TEXT;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 0.0; to : "pv.normal.main.playingspeed.rect";}
+ rel2 { relative: 1.0 1.0; to : "pv.normal.main.playingspeed.rect";}
+ color: FONT_COLOR;
+ text {
+ font: FONT_BOLD_TYPE;
+ size: 24;
+ text: "";
+ align: 0.5 0.5;
+ }
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+
+ part {
+ name: "pv.normal.main.screenshot.portrait.bottom";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 0 200;
+ fixed: 0 1;
+ align: 0.0 1.0;
+ rel1 { relative: 0.0 1.0; }
+ rel2 { relative: 1.0 1.0; }
+ }
+ }
+
+ part {
+ name: "pv.normal.main.screenshot.landscape.bottom";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 0 100;
+ fixed: 0 1;
+ align: 0.0 1.0;
+ rel1 { relative: 0.0 1.0; }
+ rel2 { relative: 1.0 1.0; }
+ }
+ }
+
+ part {
+ name: "pv.normal.main.screenshot.portrait.line";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 0 0;
+ fixed: 1 1;
+ align: 0.5 1.0;
+ rel1 { relative: 0.5 0.0; to_y: "pv.normal.main.screenshot.portrait.bottom";}
+ rel2 { relative: 0.5 0.0; to_y: "pv.normal.main.screenshot.portrait.bottom";}
+ color: 255 255 255 255;
+
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ min: 324 244;
+ }
+ }
+
+ part {
+ name: "pv.normal.main.screenshot.portrait.rect";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 0 0;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ rel1 { relative: 0.5 0.5; to: "pv.normal.main.screenshot.portrait.line";}
+ rel2 { relative: 0.5 0.5; to: "pv.normal.main.screenshot.portrait.line";}
+ color: 0 0 0 255;
+
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ min: 320 240;
+ }
+ }
+
+ part {
+ name: "pv.normal.main.screenshot.landscape.line";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 0 0;
+ fixed: 1 1;
+ align: 0.5 1.0;
+ rel1 { relative: 0.7 0.0; to_y: "pv.normal.main.screenshot.landscape.bottom";}
+ rel2 { relative: 0.7 0.0; to_y: "pv.normal.main.screenshot.landscape.bottom";}
+ color: 255 255 255 255;
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ min: 324 244;
+ }
+ }
+
+ part {
+ name: "pv.normal.main.screenshot.landscape.rect";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 0 0;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ rel1 { relative: 0.5 0.5; to: "pv.normal.main.screenshot.landscape.line";}
+ rel2 { relative: 0.5 0.5; to: "pv.normal.main.screenshot.landscape.line";}
+ color: 0 0 0 255;
+ }
+
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ min: 320 240;
+ }
+ }
+
+ part {
+ name: "pv.normal.main.screenshot.portrait";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 320 240;
+ fixed: 1 1;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 0.0; to: "pv.normal.main.screenshot.portrait.rect";}
+ rel2 { relative: 1.0 1.0; to: "pv.normal.main.screenshot.portrait.rect";}
+
+ }
+ }
+
+ part {
+ name: "pv.normal.main.screenshot.landscape";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 320 240;
+ fixed: 1 1;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 0.0; to: "pv.normal.main.screenshot.landscape.rect";}
+ rel2 { relative: 1.0 1.0; to: "pv.normal.main.screenshot.landscape.rect";}
+ }
+ }
+
+ part {
+ name: "pv.normal.main.error.image";
+ type: SWALLOW;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 130 130;
+ max: 130 130;
+ visible: 1;
+ fixed: 1 1;
+ color: 255 255 255 255;
+ align: 0.5 0.5;
+ rel1 { relative: 0.0 0.0; to_y: "pv.normal.main.bg"; }
+ rel2 { relative: 1.0 0.0; to_y: "pv.normal.main.control"; }
+ }
+ }
+
+ part {
+ name: "pv.normal.main.loading.top";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 0 0;
+ fixed: 0 1;
+ align: 0.5 0.5;
+ rel1 { relative: 0.0 0.5; }
+ rel2 { relative: 1.0 0.5; }
+ }
+ description {
+ state: "portrait.show" 0.0;
+ inherit: "default" 0.0;
+ min: 0 400;
+ fixed: 0 1;
+ align: 0.5 1.0;
+ rel1 { relative: 0.0 1.0; }
+ rel2 { relative: 1.0 1.0; }
+
+ }
+ description {
+ state: "landscape.show" 0.0;
+ inherit: "default" 0.0;
+ min: 0 240;
+ fixed: 0 1;
+ align: 0.5 0.5;
+ rel1 { relative: 0.0 1.0; }
+ rel2 { relative: 1.0 1.0; }
+ }
+ }
+
+ part {
+ name: "pv.normal.main.loading.bottom";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 0.0; to_y : "pv.normal.main.loading.top"; }
+ rel2 { relative: 1.0 0.0; to_y : "pv.normal.main.loading.top"; }
+ color: 0 255 0 128;
+ }
+ }
+
+ part {
+ name: "pv.normal.main.loading";
+ type: SWALLOW;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ fixed: 1 1;
+ rel1 { relative: 0.0 0.0; to_y : "pv.normal.main.loading.bottom"; }
+ rel2 { relative: 1.0 0.0; to_y : "pv.normal.main.loading.bottom"; }
+ }
+ }
+
+ /*subtitle area*/
+ part {
+ name: "pv.normal.main.subtitle";
+ type: SWALLOW;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ align: 0.5 1.0;
+ fixed: 1 1;
+ rel1 { relative: 0.1 0.0; }
+ rel2 { relative: 0.9 0.0; to_y: "pv.normal.main.control";}
+ }
+ description {
+ state: "portrait.show" 0.0;
+ inherit: "default" 0.0;
+ rel1 { relative: 0.1 0.0; }
+ rel2 { relative: 0.9 0.0; to_y: "pv.normal.main.volume.icon";}
+ visible: 1;
+ }
+ description {
+ state: "landscape.show" 0.0;
+ inherit: "default" 0.0;
+ rel1 { relative: 0.1 0.0; }
+ rel2 { relative: 0.9 0.0; to_y: "pv.normal.main.volume.icon";}
+ visible: 1;
+ }
+ }
+ } /* parts */
+
+ programs {
+ program {
+ name: "video_off";
+ signal: "signal.pv.normal.main.video.off";
+ source: "*";
+ action: STATE_SET "show" 0.0;
+ target: "pv.normal.main.bg";
+ }
+ program {
+ name: "video_on";
+ signal: "signal.pv.normal.main.video.on";
+ source: "*";
+ action: STATE_SET "default" 0.0;
+ target: "pv.normal.main.bg";
+ }
+
+ program {
+ name: "control_portait_show";
+ signal: "signal.pv.normal.main.portrait.show";
+ source: "*";
+ action: STATE_SET "portrait.show" 0.0;
+ target: "pv.normal.main.control";
+ target: "pv.normal.top.control";
+#ifndef SUBTITLE_K_FEATURE
+ target: "pv.normal.main.subtitle.top";
+#endif
+ transition: LINEAR 0.2;
+ after: "control_show_finished";
+ }
+
+ program {
+ name: "control_landscape_show";
+ signal: "signal.pv.normal.main.landscape.show";
+ source: "*";
+ action: STATE_SET "landscape.show" 0.0;
+ target: "pv.normal.main.control";
+ target: "pv.normal.top.control";
+#ifdef SUBTITLE_K_FEATURE
+ target: "pv.normal.main.subtitle";
+#endif
+ transition: LINEAR 0.2;
+ after: "control_show_finished";
+ }
+
+ program {
+ name: "no_effect_portait_show";
+ signal: "signal.pv.normal.main.no.effect.portrait.show";
+ source: "*";
+ action: STATE_SET "portrait.show" 0.0;
+ target: "pv.normal.main.loading.top";
+ target: "pv.normal.main.zoom.guide.top";
+ target: "pv.normal.main.no.contents.bottom";
+ target: "pv.normal.main.image.buffer.bg";
+ }
+
+ program {
+ name: "no_effect_landscape_show";
+ signal: "signal.pv.normal.main.no.effect.landscape.show";
+ source: "*";
+ action: STATE_SET "landscape.show" 0.0;
+ target: "pv.normal.main.loading.top";
+ target: "pv.normal.main.zoom.guide.top";
+ target: "pv.normal.main.no.contents.bottom";
+ target: "pv.normal.main.image.buffer.bg";
+ }
+
+ program {
+ name: "no_effect_control_hide";
+ signal : "signal.pv.normal.main.no.effect.hide";
+ source: "*";
+ action: STATE_SET "default" 0.0;
+ target: "pv.normal.main.control";
+ target: "pv.normal.top.control";
+ target: "pv.normal.main.image.buffer";
+ transition: LINEAR 0.0;
+ after: "control_hide_finished";
+ }
+
+ program {
+ name: "control_hide";
+ signal: "signal.pv.normal.main.control.hide";
+ source: "*";
+ action: STATE_SET "default" 0.0;
+ target: "pv.normal.main.control";
+ target: "pv.normal.top.control";
+ transition: LINEAR 0.2;
+ after: "control_hide_finished";
+ }
+#ifdef SUBTITLE_K_FEATURE
+ program {
+ name: "subtitle_portrait_show";
+ signal: "signal.pv.normal.main.portrait.subtitle";
+ source: "*";
+ action: STATE_SET "portrait.show" 0.0;
+ target: "pv.normal.main.subtitle";
+ }
+ program {
+ name: "subtitle_landscape_show";
+ signal: "signal.pv.subtitle.main.landscape.show";
+ source: "*";
+ action: STATE_SET "landscape.show" 0.0;
+ target: "pv.normal.main.subtitle";
+ }
+ program {
+ name: "subtitle_normal_hide";
+ signal: "signal.pv.normal.main.subtitle.hide";
+ source: "*";
+ action: STATE_SET "default" 0.0;
+ target: "pv.normal.main.subtitle";
+ }
+#endif
+ program {
+ name: "voice_control_show";
+ signal: "signal.pv.allshare.voice.control.show";
+ source: "pv.allshare.voice.control";
+ action: STATE_SET "show" 0.0;
+ target: "pv.allshare.voice.control";
+ transition: LINEAR 0.6;
+ }
+
+ program {
+ name: "voice_control_hide";
+ signal: "signal.pv.allshare.voice.control.hide";
+ source: "pv.allshare.voice.control";
+ action: STATE_SET "default" 0.0;
+ target: "pv.allshare.voice.control";
+ transition: LINEAR 0.6;
+ }
+
+ program {
+ name: "no_effect_voice_control_hide";
+ signal: "signal.pv.allshare.noeffect.voice.control.hide";
+ source: "pv.allshare.voice.control";
+ action: STATE_SET "default" 0.0;
+ target: "pv.allshare.voice.control";
+ transition: LINEAR 0.0;
+ }
+ program {
+ name: "rotate_icon_show";
+ signal: "signal.pv.normal.main.rotate.icon.show";
+ source: "*";
+ action: STATE_SET "show" 0.0;
+ target: "pv.normal.main.rotate.icon";
+ }
+ program {
+ name: "volume_icon_show";
+ signal: "signal.pv.normal.main.volume.icon.portrait.show";
+ source: "*";
+ action: STATE_SET "portrait.show" 0.0;
+ target: "pv.normal.main.volume.icon";
+ //target: "pv.normal.main.subtitle";
+ }
+ program {
+ name: "volume_icon_show_landscape";
+ signal: "signal.pv.normal.main.volume.icon.landscape.show";
+ source: "*";
+ action: STATE_SET "landscape.show" 0.0;
+ target: "pv.normal.main.volume.icon";
+ //target: "pv.normal.main.subtitle";
+ }
+ program {
+ name: "rotate_icon_hide";
+ signal: "signal.pv.normal.main.rotate.icon.hide";
+ source: "*";
+ action: STATE_SET "default" 0.0;
+ target: "pv.normal.main.rotate.icon";
+ }
+ program {
+ name: "volume_icon_hide";
+ signal: "signal.pv.normal.main.volume.icon.hide";
+ source: "*";
+ action: STATE_SET "default" 0.0;
+ target: "pv.normal.main.volume.icon";
+ //target: "pv.normal.main.subtitle";
+ }
+ program{
+ name: "touch_snd";
+ signal: "mouse,clicked,1";
+ source: "pv.normal.main.rotate.icon";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ program{
+ name: "touch_snd1";
+ signal: "mouse,clicked,1";
+ source: "pv.normal.main.volume.icon";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ program{
+ name: "touch_snd2";
+ signal: "mouse,clicked,1";
+ source: "pv.normal.main.lockscreen";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ program {
+ name: "speed_on";
+ signal: "signal.pv.normal.main.speed.show";
+ source: "*";
+ action: STATE_SET "show" 0.0;
+ target: "pv.normal.main.speed.rect";
+ target: "pv.normal.main.speed.txt";
+ }
+
+ program {
+ name: "speed_off";
+ signal: "signal.pv.normal.main.speed.hide";
+ source: "*";
+ action: STATE_SET "default" 0.0;
+ target: "pv.normal.main.speed.rect";
+ target: "pv.normal.main.speed.txt";
+ }
+
+ program {
+ name: "speed_changed";
+ signal: "signal.pv.normal.main.playingspeed.show";
+ source: "*";
+ action: STATE_SET "show" 0.0;
+ target: "pv.normal.main.playingspeed.rect";
+ target: "pv.normal.main.playingspeed.txt";
+ }
+
+ program {
+ name: "speed_normal";
+ signal: "signal.pv.normal.main.playingspeed.hide";
+ source: "*";
+ action: STATE_SET "default" 0.0;
+ target: "pv.normal.main.playingspeed.rect";
+ target: "pv.normal.main.playingspeed.txt";
+ }
+ program {
+ name: "clicked_event";
+ signal: "mouse,clicked,1";
+ source: "pv.normal.main.playingspeed.rect";
+ source: "pv.normal.main.playingspeed.txt";
+ action: SIGNAL_EMIT "elm,action,click" "";
+ }
+
+ program {
+ name: "screen_portrait_on";
+ signal: "signal.pv.normal.main.screenshot.portrait.show";
+ source: "*";
+ action: STATE_SET "show" 0.0;
+ target: "pv.normal.main.screenshot.portrait.line";
+ target: "pv.normal.main.screenshot.portrait.rect";
+ }
+
+ program {
+ name: "screen_landscape_on";
+ signal: "signal.pv.normal.main.screenshot.landscape.show";
+ source: "*";
+ action: STATE_SET "show" 0.0;
+ target: "pv.normal.main.screenshot.landscape.line";
+ target: "pv.normal.main.screenshot.landscape.rect";
+ }
+
+ program {
+ name: "screen_mode_off";
+ signal: "signal.pv.normal.main.screenshot.hide";
+ source: "*";
+ action: STATE_SET "default" 0.0;
+ target: "pv.normal.main.screenshot.landscape.line";
+ target: "pv.normal.main.screenshot.landscape.rect";
+ target: "pv.normal.main.screenshot.portrait.line";
+ target: "pv.normal.main.screenshot.portrait.rect";
+ }
+#ifndef SUBTITLE_K_FEATURE
+ program {
+ name: "bookmark_on";
+ signal: "signal.pv.normal.main.bookmark.on";
+ source: "*";
+ action: STATE_SET "bookmark.on" 0.0;
+ target: "pv.normal.main.subtitle.bottom";
+ }
+
+ program {
+ name: "bookmark_off";
+ signal: "signal.pv.normal.main.bookmark.off";
+ source: "*";
+ action: STATE_SET "default" 0.0;
+ target: "pv.normal.main.subtitle.bottom";
+ }
+#endif
+ program {
+ name: "control_show_finished";
+ action: SIGNAL_EMIT "signal.pv.normal.main.control.show.finish" "*";
+ }
+
+ program {
+ name: "control_hide_finished";
+ action: SIGNAL_EMIT "signal.pv.normal.main.control.hide.finish" "*";
+ }
+
+ program {
+ signal: "signal.pv.normal.lockscreen.show";
+ source: "*";
+ script {
+ set_state(PART:"pv.normal.main.lockscreen", "show", 0.0);
+ set_state(PART:"pv.normal.main.lockscreen.text", "show", 0.0);
+
+ }
+ }
+ program {
+ signal: "signal.pv.normal.lockscreen.hide";
+ source: "*";
+ script {
+ set_state(PART:"pv.normal.main.lockscreen", "default", 0.0);
+ set_state(PART:"pv.normal.main.lockscreen.text", "default", 0.0);
+ }
+ }
+
+ program {
+ signal: "signal.pv.normal.no.contents.show";
+ source: "*";
+ script {
+ set_state(PART:"pv.normal.main.no.contents", "show", 0.0);
+ set_state(PART:"pv.normal.main.no.contents.rect", "show", 0.0);
+ }
+ }
+ program {
+ signal: "signal.pv.normal.no.contents.hide";
+ source: "*";
+ script {
+ set_state(PART:"pv.normal.main.no.contents", "default", 0.0);
+ set_state(PART:"pv.normal.main.no.contents.rect", "default", 0.0);
+ }
+ }
+ } /* programs */
+
+ } /* group */
+
+ group {
+ name: "pv.normal.main.microseek.text";
+ images {
+ image: MICRO_CONTROL_IMG_BG COMP;
+ }
+ parts {
+ part {
+ name: "pv.normal.main.microseek.text.bg";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 1 46;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 1.0 1.0;}
+ color: 255 0 0 0;
+ }
+ }
+
+ part {
+ name: "pv.normal.main.microseek.speed.text.bg";
+ type: IMAGE;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ align: 0.5 0.5;
+ rel1 { relative: 0.0 0.0; to_x: "pv.normal.main.microseek.text.bg"; to_y: "pv.normal.main.microseek.speed.text.left.padding";}
+ rel2 { relative: 1.0 1.0; to_x: "pv.normal.main.microseek.text.bg"; to_y: "pv.normal.main.microseek.speed.text.left.padding";}
+ image { normal: MICRO_CONTROL_IMG_BG; border: 9 9 0 0; }
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+
+ part {
+ name: "pv.normal.main.microseek.speed.text.left.padding";
+ type: SPACER;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 16 46;
+ align: 0.0 0.0;
+ fixed: 1 1;
+ rel1 { relative: 0.0 0.0; to : "pv.normal.main.microseek.text.bg";}
+ rel2 { relative: 0.0 46/(46+6+70); to : "pv.normal.main.microseek.text.bg";}
+ }
+ }
+
+ part {
+ name: "pv.normal.main.microseek.speed.text";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ rel1 { relative: 1.0 0.0; to : "pv.normal.main.microseek.speed.text.left.padding";}
+ rel2 { relative: 0.0 1.0; to : "pv.normal.main.microseek.speed.text.right.padding";}
+ color: 255 255 255 255;
+ text {
+ min: 1 0;
+ size: 32;
+ text: "";
+ }
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+
+
+ part {
+ name: "pv.normal.main.microseek.speed.text.right.padding";
+ type: SPACER;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 16 46;
+ align: 1.0 0.0;
+ fixed: 1 1;
+ rel1 { relative: 1.0 0.0; to : "pv.normal.main.microseek.text.bg";}
+ rel2 { relative: 1.0 46/(46+6+70); to : "pv.normal.main.microseek.text.bg";}
+ }
+ }
+ } /* parts */
+ programs {
+ program {
+ name: "microseek_text_show";
+ signal: "signal.pv.normal.main.microseek.text.show";
+ source: "*";
+ action: STATE_SET "show" 0.0;
+ target: "pv.normal.main.microseek.speed.text";
+ target: "pv.normal.main.microseek.speed.text.bg";
+ }
+ program {
+ name: "microseek_text_hide";
+ signal: "signal.pv.normal.main.microseek.text.hide";
+ source: "*";
+ action: STATE_SET "default" 0.0;
+ target: "pv.normal.main.microseek.speed.text";
+ target: "pv.normal.main.microseek.speed.text.bg";
+ }
+ } /* programs */
+ } /* group */
+
+ group {
+ name: "pv.normal.main.microseek.image";
+ images {
+ image: MICRO_CONTROL_IMG_UP_1 COMP;
+ image: MICRO_CONTROL_IMG_UP_2 COMP;
+ image: MICRO_CONTROL_IMG_UP_3 COMP;
+ }
+ parts {
+ part {
+ name: "pv.normal.main.microseek.image.bg";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 46 70;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 1.0 1.0;}
+ color: 255 0 0 0;
+ }
+ }
+
+ part {
+ name: "pv.normal.main.microseek.image.1";
+ type: IMAGE;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 46 24;
+ max: 46 24;
+ fixed: 1 1;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 0.0; to : "pv.normal.main.microseek.image.bg";}
+ rel2 { relative: 1.0 0.0; to : "pv.normal.main.microseek.image.bg";}
+ image.normal: MICRO_CONTROL_IMG_UP_1;
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+
+ part {
+ name: "pv.normal.main.microseek.image.2";
+ type: IMAGE;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 46 24;
+ max: 46 24;
+ fixed: 1 1;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 1.0; to_x : "pv.normal.main.microseek.image.bg"; to_y : "pv.normal.main.microseek.image.1"; offset: 0 -1;}
+ rel2 { relative: 1.0 1.0; to_x : "pv.normal.main.microseek.image.bg"; to_y : "pv.normal.main.microseek.image.1"; offset: 0 -1;}
+ image.normal: MICRO_CONTROL_IMG_UP_2;
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+
+ part {
+ name: "pv.normal.main.microseek.image.3";
+ type: IMAGE;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 46 24;
+ max: 46 24;
+ fixed: 1 1;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 1.0; to_x : "pv.normal.main.microseek.image.bg"; to_y : "pv.normal.main.microseek.image.2"; offset: 0 -1;}
+ rel2 { relative: 1.0 1.0; to_x : "pv.normal.main.microseek.image.bg"; to_y : "pv.normal.main.microseek.image.2"; offset: 0 -1;}
+ image.normal: MICRO_CONTROL_IMG_UP_3;
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ } /* parts */
+ programs {
+ program {
+ name: "microseek_image_show";
+ signal: "signal.pv.normal.main.microseek.image.show";
+ source: "*";
+ action: STATE_SET "show" 0.0;
+ target: "pv.normal.main.microseek.image.1";
+ target: "pv.normal.main.microseek.image.2";
+ target: "pv.normal.main.microseek.image.3";
+ }
+ program {
+ name: "microseek_image_hide";
+ signal: "signal.pv.normal.main.microseek.image.hide";
+ source: "*";
+ action: STATE_SET "default" 0.0;
+ target: "pv.normal.main.microseek.image.1";
+ target: "pv.normal.main.microseek.image.2";
+ target: "pv.normal.main.microseek.image.3";
+ }
+ } /* programs */
+ } /* group */
+
+#ifdef FLICK_JUMP
+ group {
+ name: "pv.normal.main.flickjump.seek";
+ images {
+ image: JUMP_IMG_L_1 COMP;
+ image: JUMP_IMG_L_2 COMP;
+ image: JUMP_IMG_L_3 COMP;
+ image: JUMP_IMG_R_1 COMP;
+ image: JUMP_IMG_R_2 COMP;
+ image: JUMP_IMG_R_3 COMP;
+ }
+ parts {
+ part {
+ name: "pv.normal.main.flickjump.seek.bg";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 80 60;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 1.0 1.0;}
+ color: 255 0 0 0;
+ }
+ }
+
+ part {
+ name: "pv.normal.main.flickjump.seek.img";
+ type: IMAGE;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ fixed: 1 1;
+ rel1 { relative: 0.0 0.0; to : "pv.normal.main.flickjump.seek.bg"; }
+ rel2 { relative: 1.0 1.0; to : "pv.normal.main.flickjump.seek.bg"; }
+ image.normal: JUMP_IMG_L_3;
+ }
+ description {
+ state: "ff_default" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ image.normal: JUMP_IMG_L_3;
+ }
+ description {
+ state: "rew_default" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ image.normal: JUMP_IMG_R_3;
+ }
+ description {
+ state: "ff.jump3" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ image.normal: JUMP_IMG_L_3;
+ }
+ description {
+ state: "ff.jump2" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ image.normal: JUMP_IMG_L_2;
+ }
+ description {
+ state: "ff.jump1" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ image.normal: JUMP_IMG_L_1;
+ }
+ description {
+ state: "rew.jump3" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ image.normal: JUMP_IMG_R_3;
+ }
+ description {
+ state: "rew.jump3" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ image.normal: JUMP_IMG_R_3;
+ }
+ description {
+ state: "rew.jump2" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ image.normal: JUMP_IMG_R_2;
+ }
+ description {
+ state: "rew.jump1" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ image.normal: JUMP_IMG_R_1;
+ }
+ }
+ part {
+ name: "pv.normal.main.flickjump.seek.rewtext";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 88 34;
+ fixed: 1 1;
+ align: 1.0 0.5;
+ rel1 { relative: 0.0 ((60-34)/2)/60; to_x : "pv.normal.main.flickjump.seek.img"; to_y : "pv.normal.main.flickjump.seek.bg";}
+ rel2 { relative: 0.0 (60-((60-34)/2))/60; to_x : "pv.normal.main.flickjump.seek.img"; to_y : "pv.normal.main.flickjump.seek.bg";}
+ color: 255 255 255 255;
+ text {
+ min: 1 0;
+ size: 32;
+ text: "";
+ }
+ }
+ description {
+ state: "rew_default" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ part {
+ name: "pv.normal.main.flickjump.seek.fftext";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 88 34;
+ fixed: 1 1;
+ align: 0.0 0.5;
+ rel1 { relative: 1.0 ((60-34)/2)/60; to_x : "pv.normal.main.flickjump.seek.img"; to_y : "pv.normal.main.flickjump.seek.bg";}
+ rel2 { relative: 1.0 (60-((60-34)/2))/60; to_x : "pv.normal.main.flickjump.seek.img"; to_y : "pv.normal.main.flickjump.seek.bg";}
+ color: 255 255 255 255;
+ text {
+ min: 1 0;
+ size: 32;
+ text: "5 sec";
+ }
+ }
+ description {
+ state: "ff_default" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ } /* parts */
+ programs {
+ program {
+ name: "jump.ff.step3";
+ signal: "signal.jump.ff.step3";
+ source: "*";
+ action: STATE_SET "ff.jump3" 0.0;
+ target: "pv.normal.main.flickjump.seek.img";
+ transition: LINEAR 0.2;
+ after: "jump.ff.step2";
+ }
+ program {
+ name: "jump.ff.step2";
+ signal: "signal.jump.ff.step2";
+ source: "*";
+ action: STATE_SET "ff.jump2" 0.0;
+ target: "pv.normal.main.flickjump.seek.img";
+ transition: LINEAR 0.2;
+ after: "jump.ff.step1";
+ }
+ program {
+ name: "jump.ff.step1";
+ signal: "signal.jump.ff.step1";
+ source: "*";
+ action: STATE_SET "ff.jump1" 0.0;
+ target: "pv.normal.main.flickjump.seek.img";
+ transition: LINEAR 0.2;
+ after: "jump.ff.end";
+ }
+ program {
+ name: "jump.ff.end";
+ signal: "signal.jump.ff.end";
+ source: "*";
+ action: STATE_SET "ff_default" 0.0;
+ target: "pv.normal.main.flickjump.seek.img";
+ script{
+ emit("ff_animation_done", "edje");
+ }
+ }
+ program {
+ name: "pv.normal.main.flickjump.ff";
+ signal: "signal.pv.normal.main.flickjump.ff";
+ source: "*";
+ action: STATE_SET "ff_default" 0.0;
+ target: "pv.normal.main.flickjump.seek.img";
+ target: "pv.normal.main.flickjump.seek.fftext";
+ after: "jump.ff.step3";
+ }
+
+ program {
+ name: "jump.rew.step3";
+ signal: "signal.jump.rew.step3";
+ source: "*";
+ action: STATE_SET "rew.jump3" 0.0;
+ target: "pv.normal.main.flickjump.seek.img";
+ transition: LINEAR 0.2;
+ after: "jump.rew.step2";
+ }
+ program {
+ name: "jump.rew.step2";
+ signal: "signal.jump.rew.step2";
+ source: "*";
+ action: STATE_SET "rew.jump2" 0.0;
+ target: "pv.normal.main.flickjump.seek.img";
+ transition: LINEAR 0.2;
+ after: "jump.rew.step1";
+ }
+ program {
+ name: "jump.rew.step1";
+ signal: "signal.jump.rew.step1";
+ source: "*";
+ action: STATE_SET "rew.jump1" 0.0;
+ target: "pv.normal.main.flickjump.seek.img";
+ transition: LINEAR 0.2;
+ after: "jump.rew.end";
+ }
+ program {
+ name: "jump.rew.end";
+ signal: "signal.jump.rew.end";
+ source: "*";
+ action: STATE_SET "rew_default" 0.0;
+ target: "pv.normal.main.flickjump.seek.img";
+ script{
+ emit("rew_animation_done", "edje");
+ }
+ }
+ program {
+ name: "pv.normal.main.flickjump.rew";
+ signal: "signal.pv.normal.main.flickjump.rew";
+ source: "*";
+ action: STATE_SET "rew_default" 0.0;
+ target: "pv.normal.main.flickjump.seek.img";
+ target: "pv.normal.main.flickjump.seek.rewtext";
+ after: "jump.rew.step3";
+ }
+ } /* programs */
+ } /* group */
+#endif
+
+} /* collections */
+
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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 */
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "pv-image.edc"
+
+#define PV_POPUP_PROGRESSVIEW_CONTENT_MIN 0 93
+#define PV_POPUP_PROGRESSVIEW_WIDTH_HEIGHT_MIN 0 163
+#define PV_POPUP_PROGRESSVIEW_TEXT_LEFT_RIGHT_MAX 120 60
+
+#define PV_POPUP_ENTRY_CONTENT_MIN 0 100
+
+#define PV_POPUP_CAPTION_WIDTH_HEIGHT_MIN 614 135
+#define PV_POPUP_CAPTION_WIN_WIDTH_HEIGHT_MIN 514 95
+#define PV_POPUP_BG_WIDTH_HEIGHT_MIN 270 60
+#define PV_POPUP_LANDSCAPE_BG_WIDTH_HEIGHT_MIN 760 60
+#define PV_POPUP_LINE_WIDTH_HEIGHT_MIN 0 1
+#define PV_POPUP_TITLE_WIDTH_HEIGHT_MIN 0 72
+#define PV_GENLIST_LIST_LINE1_POPUP_COLOR 211 209 203 255
+
+#define POPUP_BASE_DEFAULT_TEXT_FONT_SIZE_INC 20
+collections {
+ group {
+ name: "pv.popup.progress";
+ parts {
+ part {
+ name:"bg";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: PV_POPUP_PROGRESSVIEW_WIDTH_HEIGHT_MIN;
+ color: 0 0 0 0;
+ }
+ }
+
+ part {
+ name: "pad_l";
+ type: SPACER;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 20 0;
+ max: 20 0;
+ fixed: 1 0;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 0.0; to: "bg";}
+ rel2 { relative: 0.0 1.0; to: "bg";}
+ }
+ }
+
+ part {
+ name: "pad_r";
+ type: SPACER;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 20 0;
+ max: 20 0;
+ fixed: 1 0;
+ align: 1.0 1.0;
+ rel1 { relative: 1.0 0.0; to: "bg";}
+ rel2 { relative: 1.0 1.0; to: "bg";}
+ }
+ }
+
+ part {
+ name: "elm.swallow.content";
+ type: SWALLOW;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: PV_POPUP_PROGRESSVIEW_CONTENT_MIN;
+ fixed: 0 1;
+ align: 0.5 0.0;
+ rel1 { relative: 1.0 0.0; to_x: "pad_l"; to_y: "bg"; }
+ rel2 { relative: 0.0 0.0; to_x: "pad_r"; to_y: "bg"; }
+ }
+ }
+
+ part {
+ name: "elm.text.right";
+ type: TEXT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: PV_POPUP_PROGRESSVIEW_TEXT_LEFT_RIGHT_MAX;
+ fixed: 1 1;
+ color: 0 0 0 255;
+ align: 1.0 0.0;
+ rel1 { relative: 0.0 1.0; to_x: "pad_r"; to_y: "elm.swallow.content"; }
+ rel2 { relative: 0.0 1.0; to_x: "pad_r"; to_y: "elm.swallow.content"; }
+ text {
+ font: "Tizen:style=Medium";
+ size: 36;
+ min: 0 0;
+ align: 1.0 0.0;
+ }
+
+ }
+ }
+
+ }
+ } /* group */
+
+ group {
+ name: "pv.popup.entry";
+ parts {
+ part {
+ name:"bg";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: PV_POPUP_PROGRESSVIEW_WIDTH_HEIGHT_MIN;
+ color: 0 0 0 0;
+ }
+ }
+
+ part {
+ name: "pad_l";
+ type: SPACER;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 26 0;
+ max: 32 0;
+ fixed: 1 0;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 0.0; to: "bg";}
+ rel2 { relative: 0.0 1.0; to: "bg";}
+ }
+ }
+
+ part {
+ name: "pad_r";
+ type: SPACER;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 26 0;
+ max: 26 0;
+ fixed: 1 0;
+ align: 1.0 1.0;
+ rel1 { relative: 1.0 0.0; to: "bg";}
+ rel2 { relative: 1.0 1.0; to: "bg";}
+ }
+ }
+ part {
+ name: "elm.swallow.content";
+ type: SWALLOW;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: PV_POPUP_PROGRESSVIEW_CONTENT_MIN;
+ fixed: 0 1;
+ align: 0.0 0.5;
+ rel1 { relative: 1.0 0.5; to_x: "pad_l"; to_y: "bg"; }
+ rel2 { relative: 0.0 0.5; to_x: "pad_r"; to_y: "bg"; }
+ }
+ }
+
+ }
+ } /* group */
+
+ group {
+ name: "pv.popup.caption";
+ parts {
+ part {
+ name:"bg";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: PV_POPUP_BG_WIDTH_HEIGHT_MIN;
+ color: 0 0 0 0;
+ }
+ description {
+ state: "landscape" 0.0;
+ min: PV_POPUP_LANDSCAPE_BG_WIDTH_HEIGHT_MIN;
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "elm.caption.preview.bg";
+ type: IMAGE;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ align: 0.0 0.5;
+ //rel1 { relative: 1.0 0.0; to_x: "pad_l"; to_y: "bg"; }
+ //rel2 { relative: 0.0 1.0; to_x: "pad_r"; to_y: "bg"; }
+ rel1 { relative: 0.0 0.0; to: "bg";}
+ rel2 { relative: 0.85 1.0; to: "bg";}
+ image { normal: "genlist/preview_settings_bg.png";}
+ }
+ description {
+ state: "landscape" 0.0;
+ inherit: "default" 0.0;
+ }
+ }
+ part {
+ name: "elm.swallow.content";
+ type: SWALLOW;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ align: 0.5 0.5;
+ //rel1 { relative: 1.0 0.0; to_x: "pad_l"; to_y: "bg"; }
+ //rel2 { relative: 0.0 1.0; to_x: "pad_r"; to_y: "bg"; }
+ rel1 { relative: 0.0 0.0; to: "elm.caption.preview.bg";}
+ rel2 { relative: 1.0 1.0; to: "elm.caption.preview.bg";}
+ }
+ description {
+ state: "landscape" 0.0;
+ inherit: "default" 0.0;
+ }
+ }
+ } /* parts*/
+ }
+ group
+ {
+ name: "navi_texts";
+ styles {
+ style { name: "navi_title_style";
+ base: "font=Tizen:style=Regular font_size=15 align=center color=#FFFFFF wrap=mixed ellipsis=1.0";
+ tag: "br" "\n";
+ tag: "tab" "\t";
+ }
+ }
+ parts{
+ part{
+ name: "navi_bg";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ color: 115 167 191 255;
+ rel1 {
+ relative: 0.0 0.0;
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ }
+ }
+ }
+ part { name: "navi_text";
+ type: TEXTBLOCK;
+ mouse_events: 1;
+ scale:1;
+ description { state: "default" 0.0;
+ text {
+ style: "navi_title_style";
+ align: 0.5 0.5;
+ }
+ rel1 {
+ relative: 0.0 0.0;
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ }
+ align: 0.5 0.5;
+ }
+ }
+ } /* parts */
+ programs
+ {
+ program
+ {
+ name: "state_changer";
+ signal: "mouse,down,1";
+ source: "navi_text";
+ action: SIGNAL_EMIT "elm,action,click1" "navi_text";
+ }
+ } /* programs */
+ }
+ group {
+ name: "pv.popup.title";
+ styles {
+ style { name: "popup_title_style";
+ base: "font=Tizen:style=Regular align=center font_size="POPUP_BASE_DEFAULT_TEXT_FONT_SIZE_INC" color=#FFFFFF wrap=mixed ellipsis=1.0";
+ tag: "br" "\n";
+ tag: "tab" "\t";
+ }
+ }
+
+ parts {
+ part {
+ name:"elm.bg.title";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 50;
+ max:440 50;
+ color: 61 185 204 255;
+ }
+ }
+ part {
+ name: "pad_l";
+ type: SPACER;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 8 0;
+ max: 8 0;
+ fixed: 1 0;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 0.0; to: "elm.bg.title";}
+ rel2 { relative: 0.0 1.0; to: "elm.bg.title";}
+ }
+ }
+
+ part {
+ name: "pad_r";
+ type: SPACER;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 8 0;
+ max: 8 0;
+ fixed: 1 0;
+ align: 1.0 1.0;
+ rel1 { relative: 1.0 0.0; to: "elm.bg.title";}
+ rel2 { relative: 1.0 1.0; to: "elm.bg.title";}
+ }
+ }
+
+ part { name: "elm.swallow.title.left.icon";
+ type: SWALLOW;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 0; to: "elm.bg.title";}
+ rel2 { relative: 0.25 1; to: "elm.bg.title";}
+ min: 30 0;
+ fixed: 1 0;
+ align: 0.5 0.5;
+ }
+ }
+
+ part { name: "elm.swallow.title.right.icon";
+ type: SWALLOW;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0.75 0; to: "elm.bg.title";}
+ rel2 { relative: 1 1; to: "elm.bg.title";}
+ min: 30 0;
+ fixed: 1 0;
+ align: 1.0 0.5;
+ }
+ }
+
+ part { name: "elm.text.title";
+ type: TEXTBLOCK;
+ scale:1;
+ description { state: "default" 0.0;
+ fixed: 1 1;
+ text {
+ style: "popup_title_style";
+ size: POPUP_BASE_DEFAULT_TEXT_FONT_SIZE_INC;
+ align: 0.5 0.5;
+ }
+ rel1 {
+ relative: 1.0 0.0;
+ to_x: "elm.swallow.title.left.icon";
+ to_y: "elm.bg.title";
+ }
+ rel2 {
+ relative: 0.0 1.0;
+ to_x: "elm.swallow.title.right.icon";
+ to_y: "elm.bg.title";
+ }
+ align: 0.5 0.5;
+ }
+ }
+ } /* parts*/
+ }
+} /* collections */
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES 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 */
+
+
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES 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);
+}
+
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES 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 */
+
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "pv-image.edc"
+
+
+
+#define SPEED_POPUP_WIDTH_HEIGHT_MIN 0 100
+#define SPEED_POPUP_CONTENT_MIN 0 50
+#define SPEED_POPUP_BUTTON_MIN 40 40
+externals {
+ external: "elm";
+ external: "feedback";
+ }
+collections {
+ plugins {
+ plugin {
+ name: "touch_sound_plugin";
+ source: "feedback";
+ param: "FEEDBACK_TYPE_SOUND FEEDBACK_PATTERN_TAP";
+ }
+ }
+ group {
+ name: "pv.play.speed.popup";
+ parts {
+ part {
+ name:"bg";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: SPEED_POPUP_WIDTH_HEIGHT_MIN;
+ color: 0 0 0 0;
+ }
+ }
+
+ part {
+ name: "pad_l";
+ type: SPACER;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 10 0;
+ max: 10 0;
+ fixed: 1 0;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 0.0; to: "bg";}
+ rel2 { relative: 0.0 1.0; to: "bg";}
+ }
+ }
+
+ part {
+ name: "pad_r";
+ type: SPACER;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 10 0;
+ max: 10 0;
+ fixed: 1 0;
+ align: 1.0 1.0;
+ rel1 { relative: 1.0 0.0; to: "bg";}
+ rel2 { relative: 1.0 1.0; to: "bg";}
+ }
+ }
+
+ part {
+ name: "pad_t";
+ type: SPACER;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 10;
+ fixed: 0 1;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 0.0; to: "bg";}
+ rel2 { relative: 0.0 0.0; to: "bg";}
+ }
+ }
+
+ part {
+ name: "elm.text.title";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 0 54;
+ fixed: 0 1;
+ align: 0.5 0.0;
+ rel1 { relative: 0.0 1.0; to_y: "pad_t";}
+ rel2 { relative: 1.0 1.0; to_y: "pad_t";}
+ color: 0 0 0 255;
+ text {
+ font: "Tizen:style=Bold";
+ size: 25;
+ align: 0.5 0.5;
+ }
+ }
+ }
+
+ part {
+ name: "elm.swallow.icon.1";
+ type: SWALLOW;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: SPEED_POPUP_BUTTON_MIN;
+ fixed: 1 1;
+ align: 0.0 0.0;
+ rel1 { relative: 1.0 0.2; to_x: "pad_l"; to_y: "elm.text.title"; }
+ rel2 { relative: 1.0 0.2; to_x: "pad_l"; to_y: "elm.text.title"; }
+ }
+ }
+
+ part {
+ name: "elm.swallow.icon.left";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 6 0;
+ max: 6 0;
+ fixed: 1 0;
+ align: 0.0 0.5;
+ rel1 { relative: 1.0 1.0; to_x: "elm.swallow.icon.1"; to_y: "elm.text.title"; }
+ rel2 { relative: 1.0 1.0; to_x: "elm.swallow.icon.1"; to_y: "elm.text.title"; }
+ }
+ }
+ part {
+ name: "elm.swallow.icon.right";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 6 0;
+ max: 6 0;
+ fixed: 1 0;
+ align: 1.0 0.5;
+ rel1 { relative: 0.0 1.0; to_x: "elm.swallow.icon.2"; to_y: "elm.text.title"; }
+ rel2 { relative: 0.0 1.0; to_x: "elm.swallow.icon.2"; to_y: "elm.text.title"; }
+ }
+ }
+
+ part {
+ name: "elm.swallow.icon.2";
+ type: SWALLOW;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: SPEED_POPUP_BUTTON_MIN;
+ fixed: 1 1;
+ align: 1.0 0.0;
+ rel1 { relative: 0.0 0.2; to_x: "pad_r"; to_y: "elm.text.title"; }
+ rel2 { relative: 0.0 0.2; to_x: "pad_r"; to_y: "elm.text.title"; }
+ }
+ }
+
+ part {
+ name: "elm.swallow.content";
+ type: SWALLOW;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: SPEED_POPUP_CONTENT_MIN;
+ fixed: 0 1;
+ align: 0.5 0.0;
+ rel1 { relative: 1.0 1.0; to_x: "pad_l"; to_y: "elm.swallow.icon.1"; }
+ rel2 { relative: 0.0 1.0; to_x: "pad_r"; to_y: "elm.swallow.icon.1"; }
+ }
+ }
+ } /* parts */
+ programs {
+ program{
+ name: "touch_snd";
+ source: "elm.swallow.icon.1";
+ signal: "mouse,clicked,1";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ program{
+ name: "touch_snd2";
+ source: "elm.swallow.icon.2";
+ signal: "mouse,clicked,1";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ } /* programs*/
+ } /* group */
+} /* collections */
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+//#include "pv-image.edc"
+#define SUBTITLE_TEXT_OFFSET 20
+collections {
+ group {
+ name: "pv.subtitle-color-popup";
+ styles {
+ style { name: "caption_style";
+ base: "font=Tizen:style=Regular align=center font_size=16 color=#FFFFFF";
+ tag: "br" "\n";
+ tag: "tab" "\t";
+ }
+ }
+ parts{
+ part {
+ name: "pv.subtitle-color-popup.main.bg";
+ type: SPACER;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 160;
+ rel1 { relative: 0.0 0.0; }
+ rel2 { relative: 1.0 1.0; }
+ }
+ }
+ part {
+ name: "pv.subtitle-color-popup.title";
+ type: SPACER;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 10;
+ fixed: 0 1;
+ rel1 { relative: 0.0 0.0; to: "pv.subtitle-color-popup.main.bg"; }
+ rel2 { relative: 1.0 0.0; to: "pv.subtitle-color-popup.main.bg"; }
+ align: 0.0 0.0;
+ }
+ }
+ part { name: "pv.subtitle-color-group.text.bg";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 60;
+ fixed: 0 1;
+ rel1 { relative: 0.0 1.0; offset: 0 0; to: "pv.subtitle-color-popup.title"; }
+ rel2 { relative: 1.0 1.0; offset: 0 0; to: "pv.subtitle-color-popup.title"; }
+ align: 0.0 0.0;
+ color: 243 243 243 255;
+ }
+ }
+ part {
+ name: "pv.subtitle-color-popup.subject";
+ type: TEXTBLOCK;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 60;
+ fixed: 0 1;
+ rel1 { relative: 0.0 0.0; offset: SUBTITLE_TEXT_OFFSET 0; to: "pv.subtitle-color-group.text.bg";}
+ rel2 { relative: 1.0 1.0; offset: SUBTITLE_TEXT_OFFSET 0; to: "pv.subtitle-color-group.text.bg";}
+ align: 0.0 0.0;
+ text {
+ style: "caption_style";
+ align: 0.5 0.5;
+ min: 0 1;
+ size: 16;
+ }
+ color: 255 255 255 255;
+ }
+ }
+ /*part {
+ name: "pv.subtitle-color-popup.divideline";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 3;
+ fixed: 0 1;
+ rel1 { relative: 0.0 1.0; offset: -SUBTITLE_TEXT_OFFSET 0; to: "pv.subtitle-color-popup.subject";}
+ rel2 { relative: 1.0 1.0; offset: -SUBTITLE_TEXT_OFFSET 0; to: "pv.subtitle-color-popup.subject";}
+ align: 0.0 0.0;
+ color: 217 217 217 255;
+ }
+ }*/
+ part {
+ name: "pv.subtitle-color-popup.colorpalette.top";
+ type: SPACER;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 10;
+ fixed: 0 1;
+ rel1 { relative: 0.0 1.0; to: "pv.subtitle-color-popup.subject";}
+ rel2 { relative: 1.0 1.0; to: "pv.subtitle-color-popup.subject";}
+ align: 0.0 0.0;
+ }
+ }
+
+ part {
+ name: "pv.subtitle-color-popup.colorpalette.swallow";
+ type: SWALLOW;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: 0.0 1.0; to: "pv.subtitle-color-popup.colorpalette.top"; }
+ rel2 { relative: 1.0 1.0; to: "pv.subtitle-color-popup.colorpalette.top"; }
+ align: 0.0 0.0;
+ }
+ }
+ /*part {
+ name: "pv.subtitle-color-popup.opacity.text";
+ type: TEXT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 50;
+ fixed: 0 1;
+ rel1 { relative: 0.0 1.0; offset: SUBTITLE_TEXT_OFFSET 0; to: "pv.subtitle-color-popup.colorpalette.swallow";}
+ rel2 { relative: 1.0 1.0; offset: SUBTITLE_TEXT_OFFSET 0; to: "pv.subtitle-color-popup.colorpalette.swallow";}
+ align: 0.0 0.0;
+ text {
+ align: 0.0 1.0;
+ min: 0 1;
+ size: 27;
+ }
+ color: 21 108 148 255;
+ }
+ }
+ part {
+ name: "pv.subtitle-color-popup.opacity.divideline";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 3;
+ fixed: 0 1;
+ rel1 { relative: 0.0 1.0; offset: -SUBTITLE_TEXT_OFFSET 0; to: "pv.subtitle-color-popup.opacity.text";}
+ rel2 { relative: 1.0 1.0; offset: -SUBTITLE_TEXT_OFFSET 0; to: "pv.subtitle-color-popup.opacity.text";}
+ align: 0.0 0.0;
+ color: 217 217 217 255;
+ }
+ }
+ part {
+ name: "pv.subtitle-color-popup.opacity.percent";
+ type: TEXT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 100;
+ fixed: 0 1;
+ rel1 { relative: 0.0 1.0; to: "pv.subtitle-color-popup.opacity.divideline";}
+ rel2 { relative: 1.0 1.0; to: "pv.subtitle-color-popup.opacity.divideline";}
+ align: 0.0 0.0;
+ text {
+ align: 0.5 1.0;
+ min: 0 1;
+ size: 27;
+ }
+ color: 21 108 148 255;
+ }
+ }
+
+ part {
+ name: "pad_l";
+ type: SPACER;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 24 0;
+ max: 24 0;
+ fixed: 1 0;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 0.0; to: "pv.subtitle-color-popup.main.bg";}
+ rel2 { relative: 0.0 1.0; to: "pv.subtitle-color-popup.main.bg";}
+ }
+ }
+ part {
+ name: "pad_r";
+ type: SPACER;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 24 0;
+ max: 24 0;
+ fixed: 1 0;
+ align: 1.0 1.0;
+ rel1 { relative: 1.0 0.0; to: "pv.subtitle-color-popup.main.bg";}
+ rel2 { relative: 1.0 1.0; to: "pv.subtitle-color-popup.main.bg";}
+ }
+ }
+
+ part {
+ name: "elm.swallow.icon.1";
+ type: SWALLOW;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 63 78;
+ fixed: 1 1;
+ align: 0.0 0.0;
+ rel1 { relative: 1.0 1.0; to_x: "pad_l"; to_y: "pv.subtitle-color-popup.opacity.percent"; }
+ rel2 { relative: 1.0 1.0; to_x: "pad_l"; to_y: "pv.subtitle-color-popup.opacity.percent"; }
+ }
+ }
+ part {
+ name: "elm.swallow.icon.left";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 6 0;
+ max: 6 0;
+ fixed: 1 0;
+ align: 0.0 0.5;
+ rel1 { relative: 1.0 1.0; to_x: "elm.swallow.icon.1"; to_y: "pv.subtitle-color-popup.opacity.percent"; }
+ rel2 { relative: 1.0 1.0; to_x: "elm.swallow.icon.1"; to_y: "pv.subtitle-color-popup.opacity.percent"; }
+ }
+ }
+ part {
+ name: "elm.swallow.icon.right";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 6 0;
+ max: 6 0;
+ fixed: 1 0;
+ align: 1.0 0.5;
+ rel1 { relative: 0.0 1.0; to_x: "elm.swallow.icon.2"; to_y: "pv.subtitle-color-popup.opacity.percent"; }
+ rel2 { relative: 0.0 1.0; to_x: "elm.swallow.icon.2"; to_y: "pv.subtitle-color-popup.opacity.percent"; }
+ }
+ }
+ part {
+ name: "elm.swallow.icon.2";
+ type: SWALLOW;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 63 78;
+ fixed: 1 1;
+ align: 1.0 0.0;
+ rel1 { relative: 0.0 1.0; to_x: "pad_r"; to_y: "pv.subtitle-color-popup.opacity.percent"; }
+ rel2 { relative: 0.0 1.0; to_x: "pad_r"; to_y: "pv.subtitle-color-popup.opacity.percent"; }
+ }
+ }
+ part {
+ name: "elm.swallow.content";
+ type: SWALLOW;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 78;
+ fixed: 0 1;
+ align: 0.5 0.0;
+ rel1 { relative: 1.0 1.0; to_x: "elm.swallow.icon.left"; to_y: "pv.subtitle-color-popup.opacity.percent"; }
+ rel2 { relative: 0.0 1.0; to_x: "elm.swallow.icon.right"; to_y: "pv.subtitle-color-popup.opacity.percent"; }
+ }
+ }*/
+
+ /*part {
+ name: "colorpalette_bottom_padding";
+ type: SPACER;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 12;
+ fixed: 0 1;
+ rel1 {
+ relative: 0.0 1.0;
+ to_y: "colorpalette";
+ to_x: "bg";
+ }
+ rel2 {
+ to_x: "bg";
+ to_y: "colorpalette";
+ }
+ align: 0.0 0.0;
+ }
+ }*/
+
+ }//end parts
+ } //end group
+ group { name: "pv.subtitle.scroller.layout";
+ parts {
+ part { name: "elm.swallow.content";
+ type: SWALLOW;
+ scale: 1;
+ description { state: "default" 0.0;
+ fixed: 1 0;
+ min: 0 160;
+ }
+ }
+ }
+ }
+ group { name: "pv.subtitle.scroller.layout.landscape";
+ parts {
+ part { name: "elm.swallow.content";
+ type: SWALLOW;
+ scale: 1;
+ description { state: "default" 0.0;
+ fixed: 1 0;
+ min: 0 160;
+ }
+ }
+ }
+ }
+}
+
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES 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 */
+
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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;}
+ }
+ }
+ }
+ }
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES 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 */
+
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES 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 */
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES 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
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES 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 */
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "pv-image.edc"
+
+#define FONT_BOLD_TYPE "Tizen:style=Bold"
+
+#define FONT_VOLUME_COLOR 255 255 255 255
+#define VOLUME_POPUP_BUTTON_HEIGHT 24
+#define VOLUME_POPUP_BUTTON_WIDTH 24
+
+collections {
+ base_scale : 1.6;
+ group {
+ name: "pv.volume.popup";
+ parts {
+ part {
+ name: "pv.volume.popup.rect";
+ type: RECT;
+ mouse_events: 1;
+ repeat_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible : 1;
+ min: 58 286;
+ fixed: 1 1;
+ align: 0.0 0.0;
+ rel1 { relative: 0.5 0.5;}
+ rel2 { relative: 0.5 0.5;}
+ color: 0 0 0 0;
+ }
+ }
+
+ part {
+ name: "pv.volume.popup.bg";
+ type: IMAGE;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible : 1;
+ min: 58 286;
+ fixed: 1 1;
+ align: 0.0 0.0;
+ rel1 { relative: 0.5 0.5;}
+ rel2 { relative: 0.5 0.5;}
+ color: 255 255 255 255;
+ image { normal: "volume/T01_2_volume_popup_bg.png"; border: 0 0 15 15;}
+ }
+ }
+
+ part {
+ name: "pv.volume.popup.icon.padding";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible : 0;
+ min: 0 12;
+ fixed: 1 1;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 0.0; to: "pv.volume.popup.bg";}
+ rel2 { relative: 1.0 0.0; to: "pv.volume.popup.bg";}
+ color: 255 0 0 255;
+
+ }
+ }
+ part {
+ name: "pv.volume.popup.icon";
+ type: IMAGE;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible : 1;
+ min: 22 22;
+ fixed: 1 1;
+ align: 0.5 0.0;
+ rel1 { relative: 0.5 1.0; to_x: "pv.volume.popup.bg"; to_y: "pv.volume.popup.icon.padding";}
+ rel2 { relative: 0.5 1.0; to_x: "pv.volume.popup.bg"; to_y: "pv.volume.popup.icon.padding";}
+ color: 255 255 255 255;
+ image { normal: "popup/T01-2_volume_popup_icon_volume01.png"; }
+ }
+ description {
+ state: "mute" 0.0;
+ inherit: "default" 0.0;
+ image { normal: "popup/T01-2_volume_popup_icon_volume02.png"; }
+ }
+ }
+
+ part {
+ name: "pv.volume.popup.top.padding";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible : 0;
+ min: 0 11;
+ fixed: 1 1;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 1.0; to: "pv.volume.popup.icon";}
+ rel2 { relative: 1.0 1.0; to: "pv.volume.popup.icon";}
+ color: 255 0 0 255;
+
+ }
+ }
+
+ part {
+ name: "pv.volume.popup.bottom.padding";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible : 0;
+ min: 0 18;
+ fixed: 1 1;
+ align: 0.0 1.0;
+ rel1 { relative: 0.0 1.0; to: "pv.volume.popup.bg";}
+ rel2 { relative: 1.0 1.0; to: "pv.volume.popup.bg";}
+ color: 255 0 0 255;
+
+ }
+ }
+
+ part {
+ name: "pv.volume.popup.txt";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ effect: FAR_SHADOW BOTTOM;
+ description {
+ state: "default" 0.0;
+ visible : 1;
+ min: 0 23;
+ fixed: 1 1;
+ align: 0.5 1.0;
+ rel1 { relative: 0.0 0.0; to: "pv.volume.popup.bottom.padding";}
+ rel2 { relative: 1.0 0.0; to: "pv.volume.popup.bottom.padding";}
+ color: FONT_VOLUME_COLOR;
+ color3: 51 57 72 255;
+ text {
+ font: FONT_BOLD_TYPE;
+ size: 21;
+ text: "3";
+ align: 0.5 0.5;
+ }
+
+ }
+ }
+
+ part {
+ name: "pv.volume.popup.txt.padding";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible : 0;
+ min: 0 11;
+ fixed: 0 1;
+ align: 0.0 1.0;
+ rel1 { relative: 0.0 0.0; to: "pv.volume.popup.txt";}
+ rel2 { relative: 1.0 0.0; to: "pv.volume.popup.txt";}
+ color: 255 0 0 255;
+
+ }
+ }
+
+ part {
+ name: "pv.volume.popup.bar.bg";
+ type: IMAGE;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 6 0;
+ fixed: 1 0;
+ align: 0.5 0.0;
+ rel1 { relative: 0.5 1.0; to_x : "pv.volume.popup.bg"; to_y : "pv.volume.popup.top.padding";}
+ rel2 { relative: 0.5 0.0; to_x : "pv.volume.popup.bg"; to_y : "pv.volume.popup.txt.padding";}
+ image { normal: "volume/T01_2_volume_popup_progress_bg.png"; border: 0 0 10 10;}
+ color: 255 255 255 255;
+ }
+ }
+
+ part {
+ name: "pv.volume.popup.step";
+ type: IMAGE;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 6 0;
+ fixed: 1 0;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 0.5; to_x : "pv.volume.popup.bar.bg"; to_y: "pv.volume.popup.point";}
+ rel2 { relative: 1.0 1.0; to : "pv.volume.popup.bar.bg";offset: 0 2;}
+ color: 255 255 255 255;
+ image { normal: "volume/T01_2_volume_popup_progress_bar.png"; border: 0 0 10 10;}
+ }
+ }
+
+ part { name: "pv.volume.popup.dragable";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description{ state: "default" 0.0;
+ rel1 { relative: 0.5 0.0; to: "pv.volume.popup.bar.bg";offset: 0 -11; }
+ rel2 { relative: 0.5 1.0; to: "pv.volume.popup.bar.bg";offset: 0 11;}
+ min: VOLUME_POPUP_BUTTON_WIDTH 0;
+ fixed: 1 0;
+ align: 0.5 0.0;
+ visible: 0;
+ }
+ }
+
+ part { name: "pv.volume.popup.playing";
+ type: RECT;
+ scale: 1;
+ repeat_events: 0;
+ description {
+ state: "default" 0.0;
+ min: VOLUME_POPUP_BUTTON_WIDTH VOLUME_POPUP_BUTTON_HEIGHT;
+ max: VOLUME_POPUP_BUTTON_WIDTH VOLUME_POPUP_BUTTON_HEIGHT;
+ fixed: 1 1;
+ align: 0 0;
+ color: 0 0 0 0;
+ }
+
+ dragable {
+ x: 0 0 0;
+ y: -1 1 0;
+ confine: "pv.volume.popup.dragable";
+ }
+ }
+
+ part {
+ name: "pv.volume.popup.point";
+ type: IMAGE;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: VOLUME_POPUP_BUTTON_WIDTH VOLUME_POPUP_BUTTON_HEIGHT;
+ max: VOLUME_POPUP_BUTTON_WIDTH VOLUME_POPUP_BUTTON_HEIGHT;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ rel1 { relative: 0.5 0.5; to: "pv.volume.popup.playing";}
+ rel2 { relative: 0.5 0.5; to: "pv.volume.popup.playing";}
+ image { normal: "volume/T01_2_volume_popup_progress_handle.png";}
+ color: 255 255 255 255;
+ }
+ description {
+ state: "press" 0.0;
+ inherit: "default";
+ image { normal: "volume/T01_2_volume_popup_progress_handle_press.png";}
+ }
+ }
+ } /* parts */
+
+ programs {
+ program { name: "set_mute";
+ signal: "set,mute";
+ source: "volume.popup.icon";
+ action: STATE_SET "mute" 0.0;
+ target: "pv.volume.popup.icon";
+ }
+ program { name: "set_volume";
+ signal: "set,volume";
+ source: "volume.popup.icon";
+ action: STATE_SET "default" 0.0;
+ target: "pv.volume.popup.icon";
+ }
+ program {
+ name: "pv.volume.down";
+ source: "pv.volume.popup.point";
+ signal: "mouse,down,1";
+ action: STATE_SET "press" 0.0;
+ target: "pv.volume.popup.point";
+ }
+ program {
+ name: "pv.volume.up";
+ source: "pv.volume.popup.point";
+ signal: "mouse,up,1";
+ action: STATE_SET "default" 0.0;
+ target: "pv.volume.popup.point";
+ }
+ } /* programs */
+ } /* group */
+} /* collections */
+
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "pv-image.edc"
+
+#define FONT_BOLD_TYPE "Tizen:style=Bold"
+
+#define FONT_VOLUME_COLOR 255 255 255 255
+
+#define VOLUME_WIDGET_WIDTH 72
+#define VOLUME_WIDGET_PORTRAIT_HEIGHT 486
+#define VOLUME_WIDGET_LANDSCAPE_HEIGHT 264
+
+#define VOLUME_BUTTON_HEIGHT 40
+#define VOLUME_BUTTON_WIDTH 25
+#define VOLUME_PROGRESS_WIDTH 15
+
+externals {
+ external: "elm";
+ external: "feedback";
+ }
+
+collections {
+ base_scale : 2.6;
+ plugins {
+ plugin {
+ name: "touch_sound_plugin";
+ source: "feedback";
+ param: "FEEDBACK_TYPE_SOUND FEEDBACK_PATTERN_TAP";
+ }
+ }
+ group {
+ name: "pv.volume";
+ parts {
+ part {
+ name: "pv.volume.bg";
+ type: IMAGE;
+ mouse_events: 0;
+ repeat_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible : 1;
+ min: VOLUME_WIDGET_WIDTH VOLUME_WIDGET_PORTRAIT_HEIGHT;
+ max: VOLUME_WIDGET_WIDTH VOLUME_WIDGET_PORTRAIT_HEIGHT;
+ fixed: 1 1;
+ align: 0.2 0.0;
+ rel1 { relative: 0.5 0.5;}
+ rel2 { relative: 0.5 0.5;}
+ image { normal: "volume/T01_2_volume_popup_bg.png"; border: 0 0 15 15; }
+ }
+
+ description {
+ state: "landscape" 0.0;
+ inherit: "default" 0.0;
+ min: VOLUME_WIDGET_WIDTH VOLUME_WIDGET_LANDSCAPE_HEIGHT;
+ max: VOLUME_WIDGET_WIDTH VOLUME_WIDGET_LANDSCAPE_HEIGHT;
+ image { normal: "volume/T01_2_volume_popup_bg.png"; border: 0 0 15 15; }
+ }
+ }
+
+ part {
+ name: "pv.volume.top.padding";
+ type: SPACER;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 32;
+ fixed: 1 1;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 0.0; to: "pv.volume.bg";}
+ rel2 { relative: 1.0 0.0; to: "pv.volume.bg";}
+ }
+ description {
+ state: "landscape" 0.0;
+ inherit: "default" 0.0;
+ min: 0 16;
+ }
+ }
+
+ part {
+ name: "pv.volume.bottom.padding";
+ type: SPACER;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 21;
+ fixed: 1 1;
+ align: 0.0 1.0;
+ rel1 { relative: 0.0 1.0; to: "pv.volume.bg";}
+ rel2 { relative: 1.0 1.0; to: "pv.volume.bg";}
+ }
+ description {
+ state: "landscape" 0.0;
+ inherit: "default" 0.0;
+ min: 0 12;
+ }
+ }
+
+ part {
+ name: "pv.volume.txt";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ effect: FAR_SHADOW BOTTOM;
+ description {
+ state: "default" 0.0;
+ visible : 1;
+ min: 0 16;
+ fixed: 1 1;
+ align: 0.5 1.0;
+ rel1 { relative: 0.0 0.0; to: "pv.volume.bottom.padding";}
+ rel2 { relative: 1.0 0.0; to: "pv.volume.bottom.padding";}
+ text {
+ size: 38;
+ }
+
+ }
+ }
+
+ part {
+ name: "pv.volume.txt.padding";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible : 0;
+ min: 0 21;
+ fixed: 1 1;
+ align: 0.0 1.0;
+ rel1 { relative: 0.0 0.0; to: "pv.volume.txt";}
+ rel2 { relative: 1.0 0.0; to: "pv.volume.txt";}
+ }
+ description {
+ state: "landscape" 0.0;
+ inherit: "default" 0.0;
+ min: 0 20;
+ }
+ }
+
+ part {
+ name: "pv.volume.touch.area";
+ type: RECT;
+ scale: 1;
+ mouse_events: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: 0.0 0.0; to: "pv.volume.bar.bg"; offset: -10 0; }
+ rel2 { relative: 1.0 1.0; to: "pv.volume.bar.bg"; offset: 10 0; }
+ color: 0 0 0 0;
+ }
+ }
+
+ part {
+ name: "pv.volume.bar.bg";
+ type: IMAGE;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: VOLUME_PROGRESS_WIDTH 0;
+ fixed: 1 0;
+ align: 0.5 0.0;
+ rel1 { relative: 0.5 1.0; to_x : "pv.volume.bg"; to_y : "pv.volume.top.padding";}
+ rel2 { relative: 0.5 0.0; to_x : "pv.volume.bg"; to_y : "pv.volume.txt.padding";}
+ image { normal: "volume/T01_2_volume_popup_progress_bg.png"; border: 0 0 5 5;}
+ }
+ }
+
+ part {
+ name: "pv.volume.step";
+ type: IMAGE;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: VOLUME_PROGRESS_WIDTH 0;
+ fixed: 1 0;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 0.5; to_x : "pv.volume.bar.bg"; to_y: "pv.volume.point"; }
+ rel2 { relative: 1.0 1.0; to : "pv.volume.bar.bg"; offset: 0 1;}
+ image { normal: "volume/T01_2_volume_popup_progress_bar.png"; border: 0 0 5 5;}
+ }
+ }
+
+ part { name: "pv.volume.dragable";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description{ state: "default" 0.0;
+ rel1 { relative: 0.5 0.0; to: "pv.volume.bar.bg"; offset: 0 -7; }
+ rel2 { relative: 0.5 1.0; to: "pv.volume.bar.bg"; offset: 0 7;}
+ min: VOLUME_BUTTON_WIDTH 0;
+ fixed: 1 0;
+ align: 0.5 0.0;
+ visible: 0;
+ }
+ }
+
+ part { name: "pv.volume.playing";
+ type: RECT;
+ scale: 1;
+ repeat_events: 0;
+ description {
+ state: "default" 0.0;
+ min: VOLUME_BUTTON_WIDTH VOLUME_BUTTON_HEIGHT;
+ max: VOLUME_BUTTON_WIDTH VOLUME_BUTTON_HEIGHT;
+ fixed: 1 1;
+ align: 0 0;
+ color: 0 0 0 0;
+ }
+
+ dragable {
+ x: 0 0 0;
+ y: -1 1 0;
+ confine: "pv.volume.dragable";
+ }
+ }
+
+ part {
+ name: "pv.volume.point";
+ type: IMAGE;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: VOLUME_BUTTON_WIDTH VOLUME_BUTTON_HEIGHT;
+ max: VOLUME_BUTTON_WIDTH VOLUME_BUTTON_HEIGHT;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ rel1 { relative: 0.5 0.5; to: "pv.volume.playing";}
+ rel2 { relative: 0.5 0.5; to: "pv.volume.playing";}
+ image { normal: "volume/T01_2_volume_popup_progress_handle.png";}
+ color: 255 255 255 255;
+ }
+ description {
+ state: "press" 0.0;
+ inherit: "default";
+ image { normal: "volume/T01_2_volume_popup_progress_handle_press.png";}
+ }
+ }
+
+ part {
+ name: "pv.volume.point.focus";
+ type: SWALLOW;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: VOLUME_BUTTON_WIDTH VOLUME_BUTTON_HEIGHT;
+ fixed: 1 1;
+ rel1 { relative: 0.0 0.0; to: "pv.volume.point"; }
+ rel2 { relative: 1.0 1.0; to: "pv.volume.point"; }
+ color: 255 255 255 0;
+ }
+ }
+ } /* parts */
+
+ programs {
+ program {
+ name: "portrait_mode";
+ signal: "signal.pv.volume.portrait.mode";
+ source: "*";
+ action: STATE_SET "default" 0.0;
+ target: "pv.volume.bg";
+ target: "pv.volume.top.padding";
+ target: "pv.volume.bottom.padding";
+ target: "pv.volume.txt.padding";
+ }
+
+ program {
+ name: "landscape_mode";
+ signal: "signal.pv.volume.landscape.mode";
+ source: "*";
+ action: STATE_SET "landscape" 0.0;
+ target: "pv.volume.bg";
+ target: "pv.volume.top.padding";
+ target: "pv.volume.bottom.padding";
+ target: "pv.volume.txt.padding";
+ }
+ program {
+ name: "pv.volume.down";
+ source: "pv.volume.point";
+ signal: "mouse,down,1";
+ action: STATE_SET "press" 0.0;
+ target: "pv.volume.point";
+ }
+ program {
+ name: "pv.volume.up";
+ source: "pv.volume.point";
+ signal: "mouse,up,1";
+ action: STATE_SET "default" 0.0;
+ target: "pv.volume.point";
+ }
+ program{
+ name: "touch_snd";
+ signal: "mouse,clicked,1";
+ source: "pv.volume.touch.area";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ } /* programs */
+ } /* group */
+} /* collections */
+
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES 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 */
+
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+#include <system_settings.h>
+#include <runtime_info.h>
+#include <network/wifi-manager.h>
+
+
+typedef void (*KeyChangedCbFunc) (void *pNode, void *pUserData);
+
+
+bool vp_play_config_get_rotate_lock_status(bool * bLocked);
+bool vp_play_config_get_subtitle_show_key(bool * bShow);
+bool vp_play_config_set_subtitle_show_key(bool bShow);
+bool vp_play_config_set_subtitle_font_name_key(const char *szFontName);
+bool vp_play_config_get_subtitle_font_name_key(char **szFontName);
+bool vp_play_config_get_subtitle_size_key(int *nSize);
+bool vp_play_config_set_subtitle_size_key(int nSize);
+bool vp_play_config_set_subtitle_edge_key(int nEdge);
+bool vp_play_config_get_subtitle_edge_key(int *nEdge);
+
+bool vp_play_config_get_subtitle_font_color_key(int *nColor);
+bool vp_play_config_set_subtitle_font_color_key(int nColor);
+bool vp_play_config_get_subtitle_bg_color_key(int *nColor);
+bool vp_play_config_set_subtitle_bg_color_key(int nColor);
+bool vp_play_config_set_subtitle_alignment_key(int nAlignment);
+bool vp_play_config_get_subtitle_alignment_key(int *nAlignment);
+bool vp_play_config_get_subtitle_font_color_hex_key(char **szColorHex);
+bool vp_play_config_set_subtitle_font_color_hex_key(const char
+ *szColorHex);
+bool vp_play_config_set_subtitle_bg_color_hex_key(const char *szColorHex);
+bool vp_play_config_get_subtitle_bg_color_hex_key(char **szColorHex);
+bool vp_play_config_set_subtitle_caption_win_color_hex_key(const char
+ *szColorHex);
+bool vp_play_config_get_subtitle_caption_win_color_hex_key(char
+ **szColorHex);
+
+bool vp_play_config_get_repeat_mode_key(int *nMode);
+bool vp_play_config_set_repeat_mode_key(int nMode);
+bool vp_play_config_set_screen_mode_key(int nMode);
+bool vp_play_config_get_screen_mode_key(int *nMode);
+bool vp_play_config_get_capture_on_key(bool * bEnable);
+bool vp_play_config_set_capture_on_key(bool bEnable);
+bool vp_play_config_get_tag_active_key(bool * bEnable);
+bool vp_play_config_set_tag_active_key(bool bEnable);
+bool vp_play_config_get_tag_weather_key(bool * bEnable);
+bool vp_play_config_set_tag_weather_key(bool bEnable);
+bool vp_play_config_get_tag_location_key(bool * bEnable);
+bool vp_play_config_set_tag_location_key(bool bEnable);
+bool vp_play_config_get_tag_edit_weather_key(int *nWeather);
+bool vp_play_config_set_tag_edit_weather_key(int nWeather);
+
+bool vp_play_config_get_sort_type_key(int *nType);
+bool vp_play_config_set_preview_url_videos(const char *szMediaURL);
+bool vp_play_config_get_preview_url_videos(char **szMediaURL);
+bool vp_play_config_set_preview_url_records(const char *szMediaURL);
+bool vp_play_config_get_preview_url_records(char **szMediaURL);
+bool vp_play_config_set_preview_audio_track(int nAudioTrack);
+bool vp_play_config_get_preview_audio_track(int *nAudioTrack);
+
+bool vp_play_telephony_initialize(void *pUserData);
+bool vp_play_telephony_deinitialize(void);
+bool vp_play_config_get_call_state(bool * bCallOn);
+bool vp_play_config_get_battery_charge_state(bool * bCharge);
+bool vp_play_config_get_wifi_direct_connect_status(bool * bConnect);
+bool vp_play_config_get_wifi_direct_active_status(bool * bConnect);
+bool vp_play_config_get_lcd_off_state(bool * bLCDOff);
+
+bool
+vp_play_config_set_rotate_state_key_changed_cb(system_settings_changed_cb
+ pFunc, void *pUserData);
+bool
+vp_play_config_set_lock_state_key_changed_cb(system_settings_changed_cb
+ pFunc, void *pUserData);
+bool vp_play_config_ignore_rotate_state_key_changed_cb(void);
+bool
+vp_play_config_set_battery_charge_state_key_changed_cb
+(runtime_info_changed_cb pFunc, void *pUserData);
+bool vp_play_config_ignore_battery_charge_state_key_changed_cb(void);
+bool vp_play_wifi_initialize();
+bool
+vp_play_config_set_wifi_state_key_changed_cb
+(wifi_manager_connection_state_changed_cb pFunc, void *pUserData);
+bool vp_play_config_ignore_wifi_state_key_changed_cb(void);
+void vp_play_wifi_deinitialize();
+
+bool vp_play_config_get_allow_dock_connect_key(bool * bEnable);
+bool vp_play_config_get_extern_mode_key(bool * bEnable);
+bool vp_play_config_set_allow_dock_connect_key(bool bEnable);
+bool vp_play_config_set_extern_mode_key(bool bEnable);
+
+bool vp_play_config_set_multi_play_status(bool bMultiPlay);
+bool vp_play_config_get_multi_play_status(bool * bMultiPlay);
+bool vp_play_config_set_mirroring_warning_status(bool bMultiPlay);
+bool vp_play_config_get_mirroring_warning_status(bool * bMultiPlay);
+
+bool vp_play_config_get_sound_alive_status(int *nStatus);
+bool vp_play_config_set_sound_alive_status(int nStatus);
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+void vp_play_preference_init();
+
+bool vp_play_preference_set_multi_play_status(bool bMultiPlay);
+bool vp_play_preference_get_multi_play_status(bool * bMultiPlay);
+bool vp_play_preference_set_mirroring_warning_status(bool bMultiPlay);
+bool vp_play_preference_get_mirroring_warning_status(bool * bWarning);
+bool vp_play_preference_get_subtitle_show_key(bool * bShow);
+bool vp_play_preference_set_subtitle_show_key(bool bShow);
+bool vp_play_preference_set_subtitle_font_name_key(const char *szFontName);
+bool vp_play_preference_get_subtitle_font_name_key(char **szFontName);
+bool vp_play_preference_get_subtitle_size_key(int *nSize);
+bool vp_play_preference_set_subtitle_size_key(int nSize);
+
+
+bool vp_play_preference_get_subtitle_edge_key(int *nEdge);
+bool vp_play_preference_set_subtitle_edge_key(int nEdge);
+bool vp_play_preference_set_subtitle_alignment_key(int nAlignment);
+bool vp_play_preference_get_subtitle_alignment_key(int *nAlignment);
+bool vp_play_preference_set_subtitle_font_color_key(int nColor);
+bool vp_play_preference_get_subtitle_font_color_key(int *nColor);
+bool vp_play_preference_set_subtitle_font_color_hex_key(const char
+ *szColorHex);
+bool vp_play_preference_get_subtitle_font_color_hex_key(char **szColorHex);
+bool vp_play_preference_set_subtitle_bg_color_hex_key(const char
+ *szColorHex);
+bool vp_play_preference_get_subtitle_bg_color_hex_key(char **szColorHex);
+bool vp_play_preference_set_subtitle_caption_win_color_hex_key(const char
+ *szColorHex);
+bool vp_play_preference_get_subtitle_caption_win_color_hex_key(char
+ **szColorHex);
+bool vp_play_preference_get_subtitle_bg_color_key(int *nColor);
+bool vp_play_preference_set_subtitle_bg_color_key(int nColor);
+bool vp_play_preference_get_repeat_mode_key(int *nMode);
+bool vp_play_preference_set_repeat_mode_key(int nMode);
+bool vp_play_preference_get_screen_mode_key(int *nMode);
+bool vp_play_preference_set_screen_mode_key(int nMode);
+bool vp_play_preference_get_capture_on_key(bool * bEnable);
+bool vp_play_preference_set_capture_on_key(bool bEnable);
+
+bool vp_play_preference_get_tag_active_key(bool * bEnable);
+bool vp_play_preference_set_tag_active_key(bool bEnable);
+
+bool vp_play_preference_get_tag_weather_key(bool * bEnable);
+bool vp_play_preference_set_tag_weather_key(bool bEnable);
+bool vp_play_preference_get_tag_location_key(bool * bEnable);
+bool vp_play_preference_set_tag_location_key(bool bEnable);
+bool vp_play_preference_get_tag_edit_weather_key(int *nWeather);
+bool vp_play_preference_set_tag_edit_weather_key(int nWeather);
+
+
+bool vp_play_preference_get_sort_type_key(int *nType);
+bool vp_play_preference_set_preview_url_videos(const char *szMediaURL);
+bool vp_play_preference_get_preview_url_videos(char **szMediaURL);
+bool vp_play_preference_set_preview_audio_track(int nAudioTrack);
+bool vp_play_preference_get_preview_audio_track(int *nAudioTrack);
+bool vp_play_preference_get_sensor_asked_state(bool * bAsked);
+bool vp_play_preference_set_sensor_asked_state(bool bAsked);
+bool vp_play_preference_get_easy_mode(bool * bEnable);
+bool vp_play_preference_get_allow_dock_connect_key(bool * bEnable);
+bool vp_play_preference_set_allow_dock_connect_key(bool bEnable);
+bool vp_play_preference_get_extern_mode_key(bool * bEnable);
+bool vp_play_preference_set_extern_mode_key(bool bEnable);
+bool vp_play_preference_get_sound_alive_status(int *nStatus);
+bool vp_play_preference_set_sound_alive_status(int nStatus);
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+bool vp_play_app_launch_share_panel(Evas_Object * pWin,
+ const char *szMediaURL,
+ app_control_h * pServiceShare,
+ void *pUserData);
+bool vp_play_app_launch_videos(Evas_Object * pWin, bool bRaise,
+ void *pUserData);
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#pragma once
+
+#include <glib.h>
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+char *vp_play_util_get_title_from_path(char *szFilePath);
+char *vp_play_util_get_filename_from_path(char *szFilePath);
+char *vp_play_util_get_folder_from_path(char *szFilePath);
+bool vp_play_util_key_grab(Elm_Win * pWin, const char *szKeyName);
+bool vp_play_util_key_ungrab(Elm_Win * pWin, const char *szKeyName);
+void vp_play_util_fb_visible_off(Evas_Object * pWin, bool bVisible);
+bool vp_play_util_get_landscape_check(int nRotateVal);
+bool vp_play_util_local_file_check(char *szMediaURL);
+bool vp_play_util_get_subtitle_path(const char *szMediaURL,
+ char **szSubtitle);
+double vp_play_util_get_sys_time(void);
+bool vp_play_util_status_noti_show(const char *szStr);
+char *vp_play_util_remove_prefix_to_url(char *szURL);
+void vp_play_util_convert_file_size(long long lSize, char **szSize);
+void vp_play_util_get_convert_time(double dtime, char **szFileDate);
+bool vp_play_util_get_file_info(const char *szMediaURL, char **szFileSize,
+ char **szFileDate, char **szFileExtention);
+bool vp_play_util_check_streaming(const char *szURL);
+bool vp_play_util_rtsp_url_check(const char *szURL);
+bool vp_play_util_calculator_position(Evas_Coord_Rectangle rtSrc,
+ Evas_Coord_Rectangle rtDst,
+ Evas_Coord_Rectangle * rtResult,
+ int nType);
+bool vp_play_util_check_sdp_url(const char *szUri);
+char *vp_play_util_get_sdp_url(const char *szUri);
+bool vp_play_util_save_file(const char *szFileName, char *szBuffer,
+ int nSize);
+bool vp_play_util_get_network_status(void);
+bool vp_play_util_is_exist_subtitle_from_path(const char *szPath);
+bool vp_play_util_get_subtitle_path_list(GList ** subtitleList);
+bool vp_play_util_check_personal_status(const char *szPreviewUrl);
+
+int vp_play_util_get_root_window_angle(Evas_Object * pWin);
+
+bool vp_play_util_app_resume(void);
+bool vp_play_util_check_white_space(char *szText);
+unsigned long long vp_play_util_get_disk_available_space(const char
+ *szFilePath);
+bool vp_play_util_get_city(const char *szLocation, char **szCity);
+bool vp_play_util_is_Xwindow_focused(Ecore_X_Window nXwinID);
+
+char *vp_play_util_convert_rgba_to_hex(int r, int g, int b, int a);
+bool vp_play_util_convert_hex_to_rgba(char *pColorHex, int *r, int *g,
+ int *b, int *a);
+void vp_play_util_set_object_size(Evas_Object * obj, int w, int h, int id);
+void vp_play_util_set_object_color(Evas_Object * obj, int r, int g, int b,
+ int a, int id);
+void vp_play_util_set_object_offset(Evas_Object * obj, int left, int top,
+ int id);
+
+void vp_play_util_set_lock_power_key();
+void vp_play_util_set_unlock_power_key();
+
+void vp_play_util_focus_next_object_set(Evas_Object * obj,
+ Evas_Object * next,
+ Elm_Focus_Direction dir);
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include <app_preference.h>
+#include <telephony.h>
+#include <wifi-direct.h>
+#include <device/display.h>
+#include "vp-play-config.h"
+
+/* check temp */
+#include "vp-play-log.h"
+#include "vp-play-normal-view.h"
+
+#define PREF_VP_VIDEO_PREVIEW_URL_VIDEOS "preference/org.tizen.videos/preview_url_videos"
+#define PREF_VP_SORT_TYPE "preference/org.tizen.videos/sort_type"
+#define PREF_VP_MULTI_PLAY_FLAG "preference/org.tizen.videos/multi_play"
+
+static wifi_manager_h g_WifiManager = NULL;
+
+static int
+voice_call_noti_tbl[] = {
+ TELEPHONY_NOTI_VOICE_CALL_STATUS_IDLE,
+ TELEPHONY_NOTI_VOICE_CALL_STATUS_ACTIVE,
+ TELEPHONY_NOTI_VOICE_CALL_STATUS_HELD,
+ TELEPHONY_NOTI_VOICE_CALL_STATUS_DIALING,
+ TELEPHONY_NOTI_VOICE_CALL_STATUS_ALERTING,
+ TELEPHONY_NOTI_VOICE_CALL_STATUS_INCOMING,
+};
+
+static int
+video_call_noti_tbl[] = {
+ TELEPHONY_NOTI_VIDEO_CALL_STATUS_IDLE,
+ TELEPHONY_NOTI_VIDEO_CALL_STATUS_ACTIVE,
+ TELEPHONY_NOTI_VIDEO_CALL_STATUS_DIALING,
+ TELEPHONY_NOTI_VIDEO_CALL_STATUS_ALERTING,
+ TELEPHONY_NOTI_VIDEO_CALL_STATUS_INCOMING,
+};
+
+telephony_handle_list_s tel_list;
+
+/**
+ *
+ * @param bMultiPlay
+ * @return
+ */
+bool vp_play_config_set_multi_play_status(bool bMultiPlay)
+{
+ int nErr = 0;
+
+ nErr = preference_set_boolean(PREF_VP_MULTI_PLAY_FLAG, bMultiPlay);
+ if (nErr != 0) {
+ VideoLogError("failed to set MULTI PLAY FLAG [0x%x]", nErr);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param bMultiPlay
+ * @return
+ */
+bool vp_play_config_get_multi_play_status(bool * bMultiPlay)
+{
+ int nErr = 0;
+ bool nVal = 0;
+
+ nErr = preference_get_boolean(PREF_VP_MULTI_PLAY_FLAG, &nVal);
+ if (nErr != 0) {
+ VideoLogError("failed to get MULTI PLAY FLAG [0x%x]", nErr);
+ return FALSE;
+ }
+
+ *bMultiPlay = (nVal == 0) ? FALSE : TRUE;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param bStatus
+ * @return
+ */
+bool vp_play_config_get_rotate_lock_status(bool * bStatus)
+{
+ bool bLocked = FALSE;
+ int nErr = -1;
+ nErr =
+ system_settings_get_value_bool
+ (SYSTEM_SETTINGS_KEY_DISPLAY_SCREEN_ROTATION_AUTO, &bLocked);
+ if (nErr != SYSTEM_SETTINGS_ERROR_NONE) {
+ VideoLogError("failed to get screen rotation status [0x%x]", nErr);
+ return FALSE;
+ }
+
+ *bStatus = bLocked;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param nType
+ * @return
+ */
+bool vp_play_config_get_sort_type_key(int *nType)
+{
+
+ int nErr = 0;
+ int nVal = 0;
+
+ nErr = preference_get_int(PREF_VP_SORT_TYPE, &nVal);
+ if (nErr != 0) {
+ VideoLogError("failed to get sort type details [0x%x]", nErr);
+ return FALSE;
+ }
+
+ *nType = nVal;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param szMediaURL
+ * @return
+ */
+bool vp_play_config_set_preview_url_videos(const char *szMediaURL)
+{
+ if (!szMediaURL) {
+ VideoLogError("szMediaURL is null");
+ return FALSE;
+ }
+
+ int nErr = 0;
+ const char *pStorePath = ".video-store";
+
+ if (strstr(szMediaURL, pStorePath) == NULL) {
+ nErr =
+ preference_set_string(PREF_VP_VIDEO_PREVIEW_URL_VIDEOS,
+ szMediaURL);
+ if (nErr != 0) {
+ VideoLogError("failed to set preview url [0x%x]", nErr);
+ return FALSE;
+ }
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param szMediaURL
+ * @return
+ */
+bool vp_play_config_get_preview_url_videos(char **szMediaURL)
+{
+ int nErr =
+ preference_get_string(PREF_VP_VIDEO_PREVIEW_URL_VIDEOS,
+ szMediaURL);
+ if (nErr != 0 || *szMediaURL == NULL) {
+ VideoLogError("failed to get preview url [0x%x]", nErr);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param bConnect
+ * @return
+ */
+bool vp_play_config_get_wifi_direct_connect_status(bool * bConnect)
+{
+ int nErr = -1;
+ wifi_manager_connection_state_e nwifistate =
+ WIFI_MANAGER_CONNECTION_STATE_FAILURE;
+ wifi_direct_state_e nwifidirectstate = WIFI_DIRECT_STATE_DEACTIVATED;
+ bool bWifiState = FALSE;
+
+ nErr = wifi_manager_get_connection_state(g_WifiManager, &nwifistate);
+ if (nErr != WIFI_MANAGER_ERROR_NONE) {
+ VideoLogError("failed to get connection details [0x%x]", nErr);
+ return FALSE;
+ }
+
+ if (nwifistate == WIFI_MANAGER_CONNECTION_STATE_CONNECTED) {
+ bWifiState = TRUE;
+ }
+
+ nErr = wifi_direct_get_state(&nwifidirectstate);
+ if (nErr != WIFI_DIRECT_ERROR_NONE) {
+ VideoLogError("failed to get wifi-direct state [0x%x]", nErr);
+ return FALSE;
+ }
+
+ if (nwifidirectstate >= WIFI_DIRECT_STATE_CONNECTED) {
+ bWifiState = TRUE;
+ }
+ VideoLogError(" == %d == ", nwifidirectstate);
+
+ *bConnect = bWifiState;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param bConnect
+ * @return
+ */
+bool vp_play_config_get_wifi_direct_active_status(bool * bConnect)
+{
+ int nErr = 0;
+ wifi_direct_state_e nVal = 0;
+ bool bWifiState = FALSE;
+
+ nErr = wifi_direct_get_state(&nVal);
+ if (nErr != WIFI_DIRECT_ERROR_NONE) {
+ VideoLogError("failed to get wifi direct state [0x%x]", nErr);
+ return FALSE;
+ }
+
+ if (nVal >= WIFI_DIRECT_STATE_ACTIVATED) {
+ bWifiState = TRUE;
+ }
+ VideoLogError(" == %d == ", nVal);
+
+ *bConnect = bWifiState;
+
+ return TRUE;
+
+}
+
+/**
+ *
+ * @param bCallOn
+ * @return
+ */
+bool vp_play_config_get_call_state(bool * bCallOn)
+{
+ VideoLogInfo("start");
+ telephony_call_h *call_list_sim1, *call_list_sim2;
+ unsigned int count_sim1 = 0, count_sim2 = 0;
+ telephony_error_e ret_sim1, ret_sim2;
+
+ ret_sim1 =
+ telephony_call_get_call_list(tel_list.handle[0], &count_sim1,
+ &call_list_sim1);
+ if (ret_sim1 != TELEPHONY_ERROR_NONE) {
+ VideoLogError("Cannot get call list information for primary sim");
+ }
+
+ telephony_call_release_call_list(count_sim1, &call_list_sim1);
+
+ if (tel_list.count > 1) {
+ ret_sim2 =
+ telephony_call_get_call_list(tel_list.handle[1], &count_sim2,
+ &call_list_sim2);
+ if (ret_sim2 != TELEPHONY_ERROR_NONE) {
+ VideoLogError
+ ("Cannot get call list information for secondey sim");
+ }
+ telephony_call_release_call_list(count_sim2, &call_list_sim2);
+ }
+
+ if (count_sim1 == 0 && count_sim2 == 0) {
+ *bCallOn = FALSE;
+ return false;
+ } else {
+ *bCallOn = TRUE;
+ return true;
+ }
+
+ return false;
+}
+
+/**
+ *
+ * @param handle
+ * @param noti_id
+ * @param data
+ * @param user_data
+ */
+static void _call_async_event_callback(telephony_h handle,
+ telephony_noti_e noti_id,
+ void *data, void *user_data)
+{
+ VideoLogDebug("call interrupt cb called");
+
+ PlayView *pPlayView = (PlayView *) user_data;
+ int ret = TELEPHONY_ERROR_NONE;
+ telephony_call_h *call_list_sim;
+ telephony_call_status_e status = TELEPHONY_CALL_STATUS_IDLE;
+ telephony_error_e ret_sim;
+ unsigned int count_sim = 0;
+
+ VideoLogDebug("Noti!!! Call Status [%d]!!!", noti_id);
+
+ ret_sim =
+ telephony_call_get_call_list(handle, &count_sim,
+ &call_list_sim);
+ if (ret_sim != TELEPHONY_ERROR_NONE) {
+ VideoLogError("Cannot get call list information for the sim");
+ return;
+ }
+
+ if (call_list_sim) {
+ ret = telephony_call_get_status(*call_list_sim, &status);
+ if (ret != TELEPHONY_ERROR_NONE) {
+ VideoLogError("getting call status failed");
+ return;
+ }
+ }
+ VideoLogDebug("call status = %d", status);
+
+ telephony_call_release_call_list(count_sim, &call_list_sim);
+
+ if (status != TELEPHONY_CALL_STATUS_IDLE) {
+ if (!vp_play_normal_view_pause(pPlayView->pNormalView)) {
+ VideoLogError("vp_play_normal_view_pause fail");
+ }
+ } else if (status == TELEPHONY_CALL_STATUS_IDLE) {
+ bool bManualPause = FALSE;
+ vp_play_normal_view_get_manual_pause(pPlayView->pNormalView,
+ &bManualPause);
+ if (!bManualPause)
+ vp_play_normal_view_set_resume_or_pause(pPlayView->
+ pNormalView);
+ }
+ return;
+}
+
+/**
+ *
+ *
+ * @param pUserData
+ * @return
+ */
+bool vp_play_telephony_initialize(void *pUserData)
+{
+ if (pUserData == NULL) {
+ VideoLogError("User Data is NULL hence telephony not initialized");
+ return FALSE;
+ }
+
+ int tel_valid = telephony_init(&tel_list);
+ if (tel_valid != TELEPHONY_ERROR_NONE) {
+ VideoLogError("telephony is not initialized. ERROR Code is %d",
+ tel_valid);
+ return FALSE;
+ }
+
+ int voice_call_noti_tbl_sz = (sizeof(voice_call_noti_tbl) / sizeof(int));
+ int video_call_noti_tbl_sz = (sizeof(video_call_noti_tbl) / sizeof(int));
+
+ /*setting callbacks */
+ for (int i = 0; i < tel_list.count; i++) {
+
+ int api_err;
+
+ for (int j = 0; j < voice_call_noti_tbl_sz; j++) {
+ api_err =
+ telephony_set_noti_cb(tel_list.handle[i], voice_call_noti_tbl[j],
+ (telephony_noti_cb)
+ _call_async_event_callback,
+ (void *) pUserData);
+ if (api_err != TELEPHONY_ERROR_NONE) {
+ VideoLogError
+ ("tel_register_noti_event for voice call failed ( api_err : %d ) !!",
+ api_err);
+ }
+ }
+
+ for (int j = 0; j < video_call_noti_tbl_sz; j++) {
+ api_err =
+ telephony_set_noti_cb(tel_list.handle[i], video_call_noti_tbl[j],
+ (telephony_noti_cb)
+ _call_async_event_callback,
+ (void *) pUserData);
+ if (api_err != TELEPHONY_ERROR_NONE) {
+ VideoLogError
+ ("tel_register_noti_event for video call failed ( api_err : %d ) !!",
+ api_err);
+ }
+ }
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @return
+ */
+bool vp_play_telephony_deinitialize(void)
+{
+ telephony_h *newhandle = tel_list.handle;
+ int nErr = -1;
+ int voice_call_noti_tbl_sz = (sizeof(voice_call_noti_tbl) / sizeof(int));
+ int video_call_noti_tbl_sz = (sizeof(video_call_noti_tbl) / sizeof(int));
+
+ for (int i = 0; i < voice_call_noti_tbl_sz; i++) {
+ nErr =
+ telephony_unset_noti_cb(*newhandle,
+ voice_call_noti_tbl[i]);
+ if (nErr != TELEPHONY_ERROR_NONE) {
+ VideoLogError("telephony_unset_noti_cb is fail [0x%x] for voice call type %d",
+ nErr, voice_call_noti_tbl[i]);
+ }
+ }
+
+ for (int i = 0; i < video_call_noti_tbl_sz; i++) {
+ nErr =
+ telephony_unset_noti_cb(*newhandle,
+ video_call_noti_tbl[i]);
+ if (nErr != TELEPHONY_ERROR_NONE) {
+ VideoLogError("telephony_unset_noti_cb is fail [0x%x] for video call type %d",
+ nErr, video_call_noti_tbl[i]);
+ }
+ }
+
+ nErr = telephony_deinit(&tel_list);
+ if (nErr != TELEPHONY_ERROR_NONE) {
+ VideoLogError("telephony_deinit is fail [0x%x]", nErr);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param bChargeState
+ * @return
+ */
+bool vp_play_config_get_battery_charge_state(bool * bChargeState)
+{
+ int nErr = -1;
+ int nVal = 0;
+ nErr =
+ runtime_info_get_value_int(RUNTIME_INFO_KEY_BATTERY_IS_CHARGING,
+ &nVal);
+ if (nErr != RUNTIME_INFO_ERROR_NONE) {
+ VideoLogError("failed to get charging status [0x%x]", nErr);
+ return FALSE;
+ }
+
+ *bChargeState =
+ (nVal == RUNTIME_INFO_KEY_CHARGER_CONNECTED) ? TRUE : FALSE;
+ VideoLogInfo("bChargeState: %d", *bChargeState);
+ return TRUE;
+}
+
+/**
+ *
+ * @param bLCDOff
+ * @return
+ */
+bool vp_play_config_get_lcd_off_state(bool * bLCDOff)
+{
+ int nErr = 0;
+ display_state_e state = DISPLAY_STATE_NORMAL;
+ nErr = device_display_get_state(&state);
+ if (nErr != DEVICE_ERROR_NONE) {
+ VideoLogError("device_display_get_state is fail [0x%x]", nErr);
+ return FALSE;
+ }
+
+ if (state >= DISPLAY_STATE_SCREEN_DIM) {
+ *bLCDOff = TRUE;
+ } else {
+ *bLCDOff = FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pFunc
+ * @param pUserData
+ * @return
+ */
+bool
+vp_play_config_set_rotate_state_key_changed_cb(system_settings_changed_cb
+ pFunc, void *pUserData)
+{
+ int nErr = -1;
+ nErr =
+ system_settings_set_changed_cb
+ (SYSTEM_SETTINGS_KEY_DISPLAY_SCREEN_ROTATION_AUTO, pFunc,
+ pUserData);
+ if (nErr != SYSTEM_SETTINGS_ERROR_NONE) {
+ VideoLogError("failed to register rotation callback [0x%x]", nErr);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pFunc
+ * @param pUserData
+ * @return
+ */
+bool
+vp_play_config_set_lock_state_key_changed_cb(system_settings_changed_cb
+ pFunc, void *pUserData)
+{
+ int nErr = -1;
+ nErr =
+ system_settings_set_changed_cb(SYSTEM_SETTINGS_KEY_LOCK_STATE,
+ pFunc, pUserData);
+ if (nErr != SYSTEM_SETTINGS_ERROR_NONE) {
+ VideoLogError("failed to register lock state callback [0x%x]",
+ nErr);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @return
+ */
+bool vp_play_config_ignore_rotate_state_key_changed_cb()
+{
+ int nErr = -1;
+ nErr =
+ system_settings_unset_changed_cb
+ (SYSTEM_SETTINGS_KEY_DISPLAY_SCREEN_ROTATION_AUTO);
+ if (nErr != SYSTEM_SETTINGS_ERROR_NONE) {
+ VideoLogError("failed to un-register rotation callback [0x%x]",
+ nErr);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pFunc
+ * @param pUserData
+ * @return
+ */
+bool
+vp_play_config_set_battery_charge_state_key_changed_cb
+(runtime_info_changed_cb pFunc, void *pUserData)
+{
+ int nErr = -1;
+ nErr =
+ runtime_info_set_changed_cb(RUNTIME_INFO_KEY_BATTERY_IS_CHARGING,
+ pFunc, pUserData);
+ if (nErr != RUNTIME_INFO_ERROR_NONE) {
+ VideoLogError
+ ("failed to register battery charging callback [0x%x]", nErr);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @return
+ */
+bool vp_play_wifi_initialize()
+{
+ int nErr = -1;
+
+ if (g_WifiManager) {
+ vp_play_wifi_deinitialize();
+ }
+
+ nErr = wifi_manager_initialize(&g_WifiManager);
+ if (nErr != WIFI_MANAGER_ERROR_NONE) {
+ VideoLogError("wifi_initialize is fail [0x%x]", nErr);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pFunc
+ * @param pUserData
+ * @return
+ */
+bool
+vp_play_config_set_wifi_state_key_changed_cb
+(wifi_manager_connection_state_changed_cb pFunc, void *pUserData)
+{
+ int nErr = -1;
+
+ if (!g_WifiManager) {
+ VideoLogWarning("Wifi manager not initialized");
+ return FALSE;
+ }
+ nErr =
+ wifi_manager_set_connection_state_changed_cb(g_WifiManager, pFunc,
+ pUserData);
+ if (nErr != WIFI_MANAGER_ERROR_NONE) {
+ VideoLogError
+ ("failed to register wifi state changed callback [0x%x]",
+ nErr);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @return
+ */
+bool vp_play_config_ignore_battery_charge_state_key_changed_cb()
+{
+ int nErr = -1;
+ nErr =
+ runtime_info_unset_changed_cb
+ (RUNTIME_INFO_KEY_BATTERY_IS_CHARGING);
+ if (nErr != RUNTIME_INFO_ERROR_NONE) {
+ VideoLogError
+ ("failed to un-register battery charging callback [0x%x]",
+ nErr);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @return
+ */
+bool vp_play_config_ignore_wifi_state_key_changed_cb()
+{
+ int nErr = -1;
+ nErr = wifi_manager_unset_connection_state_changed_cb(g_WifiManager);
+ if (nErr != WIFI_MANAGER_ERROR_NONE) {
+ VideoLogError
+ ("failed to un-register wifi state changed callback [0x%x]",
+ nErr);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ */
+void vp_play_wifi_deinitialize()
+{
+ int nErr = -1;
+
+ if (g_WifiManager) {
+ nErr = wifi_manager_deinitialize(g_WifiManager);
+ if (nErr != WIFI_MANAGER_ERROR_NONE) {
+ VideoLogError("wifi_deinitialize is fail [0x%x]", nErr);
+ }
+ g_WifiManager = NULL;
+ }
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include <app_preference.h>
+
+#include "vp-play-preference.h"
+
+/* check temp */
+#include "vp-play-log.h"
+#include "vp-play-type-define.h"
+
+
+#define VP_PREFERENCE_KEY_GENERAL_BACKGROUND_PLAYING "preference/org.tizen.videos/backgroud_playing"
+#define VP_PREFERENCE_KEY_SUBTILE_SHOW "preference/org.tizen.videos/show_subtitle"
+#define VP_PREFERENCE_KEY_SUBTILE_SIZE "preference/org.tizen.videos/subtitle_size"
+#define VP_PREFERENCE_KEY_SUBTILE_EDGE "preference/org.tizen.videos/subtitle_edge"
+
+#define VP_PREFERENCE_KEY_SUBTILE_FONT "preference/org.tizen.videos/subtitle_font"
+#define VP_PREFERENCE_KEY_SUBTILE_FONT_COLOR "preference/org.tizen.videos/subtitle_font_color"
+#define VP_PREFERENCE_KEY_SUBTILE_FONT_COLOR_HEX "preference/org.tizen.videos/subtitle_font_color_hex"
+#define VP_PREFERENCE_KEY_SUBTILE_BG_COLOR "preference/org.tizen.videos/subtitle_bg_color"
+#define VP_PREFERENCE_KEY_SUBTILE_BG_COLOR_HEX "preference/org.tizen.videos/subtitle_bg_color_hex"
+#define VP_PREFERENCE_KEY_SUBTILE_CAPTION_WIN_COLOR_HEX "preference/org.tizen.videos/subtitle_caption_win_color_hex"
+#define VP_PREFERENCE_KEY_SUBTILE_ALIGNMENT "preference/org.tizen.videos/subtitle_alignment"
+
+#define VP_PREFERENCE_KEY_REPEAT_MODE "preference/org.tizen.videos/repeat_mode"
+#define VP_PREFERENCE_KEY_SCREEN_MODE "preference/org.tizen.videos/screen_mode"
+#define VP_PREFERENCE_KEY_PREVIEW_URL_VIDEOS "preference/org.tizen.videos/preview_url_videos"
+#define VP_PREFERENCE_KEY_PREVIEW_AUDIO_TRACK "preference/org.tizen.videos/preview_audio_track"
+
+#define VP_PREFERENCE_KEY_SENSOR_ASKED "preference/org.tizen.videos/motion_asked"
+#define VP_PREFERENCE_KEY_VIDEOS_SORT_TYPE "preference/org.tizen.videos/sort_type"
+#define VP_PREFERENCE_KEY_CAPTURE_MODE_ON "preference/org.tizen.videos/capture_on"
+
+#define VP_PREFERENCE_KEY_TAG_ACTIVE "preference/org.tizen.videos/tag_active"
+#define VP_PREFERENCE_KEY_TAG_WEATHER "preference/org.tizen.videos/tag_weather"
+#define VP_PREFERENCE_KEY_TAG_LOCATION "preference/org.tizen.videos/tag_location"
+#define VP_PREFERENCE_KEY_TAG_EDIT_WEATHER "preference/org.tizen.videos/tag_edit_weather"
+
+#define VP_PREFERENCE_KEY_ALLOW_DOCK_CONNECT "preference/org.tizen.videos/allow_dock_connect"
+#define VP_PREFERENCE_KEY_EXTERN_MODE "preference/org.tizen.videos/extern_mode"
+#define VP_PREFERENCE_KEY_MULTI_PLAY_FLAG "preference/org.tizen.videos/multi_play"
+#define VP_PREFERENCE_KEY_SCREEN_MIRRORING_WARNING "preference/org.tizen.videos/mirroring_warning"
+
+
+/*for saving sound alive value*/
+#define VP_PREFERENCE_KEY_SOUND_ALIVE "preference/org.tizen.videos/sound_alive"
+
+/**
+ *
+ */
+void vp_play_preference_init()
+{
+ VideoLogInfo("");
+
+ int nErr = PREFERENCE_ERROR_NONE;
+ bool exist;
+
+ nErr =
+ preference_is_existing
+ (VP_PREFERENCE_KEY_GENERAL_BACKGROUND_PLAYING, &exist);
+ if (nErr != 0) {
+ VideoLogError("preference_is_existing is fail [%d]", nErr);
+ } else {
+ if (!exist) {
+ nErr =
+ preference_set_int
+ (VP_PREFERENCE_KEY_GENERAL_BACKGROUND_PLAYING, 0);
+ if (nErr != 0) {
+ VideoLogError
+ ("VP_PREFERENCE_KEY_GENERAL_BACKGROUND_PLAYING is fail [%d]",
+ nErr);
+ }
+ }
+ }
+
+ nErr = preference_is_existing(VP_PREFERENCE_KEY_SUBTILE_SHOW, &exist);
+ if (nErr != 0) {
+ VideoLogError("preference_is_existing is fail [%d]", nErr);
+ } else {
+ if (!exist) {
+ nErr =
+ preference_set_boolean(VP_PREFERENCE_KEY_SUBTILE_SHOW, 1);
+ if (nErr != 0) {
+ VideoLogError
+ ("SET VP_PREFERENCE_KEY_SUBTILE_SHOW is fail [%d]",
+ nErr);
+ }
+ }
+ }
+
+ nErr = preference_is_existing(VP_PREFERENCE_KEY_SUBTILE_SIZE, &exist);
+ if (nErr != 0) {
+ VideoLogError("preference_is_existing is fail [%d]", nErr);
+ } else {
+ if (!exist) {
+ nErr = preference_set_int(VP_PREFERENCE_KEY_SUBTILE_SIZE, 1);
+ if (nErr != 0) {
+ VideoLogError
+ ("SET VP_PREFERENCE_KEY_SUBTILE_SIZE is fail [%d]",
+ nErr);
+ }
+ }
+ }
+
+ nErr = preference_is_existing(VP_PREFERENCE_KEY_SUBTILE_EDGE, &exist);
+ if (nErr != 0) {
+ VideoLogError("preference_is_existing is fail [%d]", nErr);
+ } else {
+ if (!exist) {
+ nErr = preference_set_int(VP_PREFERENCE_KEY_SUBTILE_EDGE, 1);
+ if (nErr != 0) {
+ VideoLogError
+ ("SET VP_PREFERENCE_KEY_SUBTILE_EDGE is fail [%d]",
+ nErr);
+ }
+ }
+ }
+
+ nErr = preference_is_existing(VP_PREFERENCE_KEY_SUBTILE_FONT, &exist);
+ if (nErr != 0) {
+ VideoLogError("preference_is_existing is fail [%d]", nErr);
+ } else {
+ if (!exist) {
+ nErr =
+ preference_set_string(VP_PREFERENCE_KEY_SUBTILE_FONT,
+ "Tizen");
+ if (nErr != 0) {
+ VideoLogError
+ ("SET VP_PREFERENCE_KEY_SUBTILE_FONT is fail [%d]",
+ nErr);
+ }
+ }
+ }
+
+ nErr =
+ preference_is_existing(VP_PREFERENCE_KEY_SUBTILE_FONT_COLOR,
+ &exist);
+ if (nErr != 0) {
+ VideoLogError("preference_is_existing is fail [%d]", nErr);
+ } else {
+ if (!exist) {
+ nErr =
+ preference_set_int(VP_PREFERENCE_KEY_SUBTILE_FONT_COLOR,
+ 0);
+ if (nErr != 0) {
+ VideoLogError
+ ("SET VP_PREFERENCE_KEY_SUBTILE_FONT_COLOR is fail [%d]",
+ nErr);
+ }
+ }
+ }
+
+ nErr =
+ preference_is_existing(VP_PREFERENCE_KEY_SUBTILE_FONT_COLOR_HEX,
+ &exist);
+ if (nErr != 0) {
+ VideoLogError("preference_is_existing is fail [%d]", nErr);
+ } else {
+ if (!exist) {
+ nErr =
+ preference_set_string
+ (VP_PREFERENCE_KEY_SUBTILE_FONT_COLOR_HEX, "#ffffffff");
+ if (nErr != 0) {
+ VideoLogError
+ ("SET VP_PREFERENCE_KEY_SUBTILE_FONT_COLOR_HEX is fail [%d]",
+ nErr);
+ }
+ }
+ }
+
+ nErr =
+ preference_is_existing(VP_PREFERENCE_KEY_SUBTILE_BG_COLOR, &exist);
+ if (nErr != 0) {
+ VideoLogError("preference_is_existing is fail [%d]", nErr);
+ } else {
+ if (!exist) {
+ nErr =
+ preference_set_int(VP_PREFERENCE_KEY_SUBTILE_BG_COLOR, 1);
+ if (nErr != 0) {
+ VideoLogError
+ ("SET VP_PREFERENCE_KEY_SUBTILE_BG_COLOR is fail [%d]",
+ nErr);
+ }
+ }
+ }
+
+ nErr =
+ preference_is_existing(VP_PREFERENCE_KEY_SUBTILE_BG_COLOR_HEX,
+ &exist);
+ if (nErr != 0) {
+ VideoLogError("preference_is_existing is fail [%d]", nErr);
+ } else {
+ if (!exist) {
+ nErr =
+ preference_set_string
+ (VP_PREFERENCE_KEY_SUBTILE_BG_COLOR_HEX, "#00000000");
+ if (nErr != 0) {
+ VideoLogError
+ ("SET VP_PREFERENCE_KEY_SUBTILE_BG_COLOR_HEX is fail [%d]",
+ nErr);
+ }
+ }
+ }
+
+ nErr =
+ preference_is_existing
+ (VP_PREFERENCE_KEY_SUBTILE_CAPTION_WIN_COLOR_HEX, &exist);
+ if (nErr != 0) {
+ VideoLogError("preference_is_existing is fail [%d]", nErr);
+ } else {
+ if (!exist) {
+ nErr =
+ preference_set_string
+ (VP_PREFERENCE_KEY_SUBTILE_CAPTION_WIN_COLOR_HEX,
+ "#00000000");
+ if (nErr != 0) {
+ VideoLogError
+ ("SET VP_PREFERENCE_KEY_SUBTILE_CAPTION_WIN_COLOR_HEX is fail [%d]",
+ nErr);
+ }
+ }
+ }
+
+ nErr =
+ preference_is_existing(VP_PREFERENCE_KEY_SUBTILE_ALIGNMENT,
+ &exist);
+ if (nErr != 0) {
+ VideoLogError("preference_is_existing is fail [%d]", nErr);
+ } else {
+ if (!exist) {
+ nErr =
+ preference_set_int(VP_PREFERENCE_KEY_SUBTILE_ALIGNMENT, 1);
+ if (nErr != 0) {
+ VideoLogError
+ ("SET VP_PREFERENCE_KEY_SUBTILE_ALIGNMENT is fail [%d]",
+ nErr);
+ }
+ }
+ }
+
+ nErr = preference_is_existing(VP_PREFERENCE_KEY_REPEAT_MODE, &exist);
+ if (nErr != 0) {
+ VideoLogError("preference_is_existing is fail [%d]", nErr);
+ } else {
+ if (!exist) {
+ nErr = preference_set_int(VP_PREFERENCE_KEY_REPEAT_MODE, 1);
+ if (nErr != 0) {
+ VideoLogError
+ ("SET VP_PREFERENCE_KEY_REPEAT_MODE is fail [%d]",
+ nErr);
+ }
+ }
+ }
+
+ nErr = preference_is_existing(VP_PREFERENCE_KEY_SCREEN_MODE, &exist);
+ if (nErr != 0) {
+ VideoLogError("preference_is_existing is fail [%d]", nErr);
+ } else {
+ if (!exist) {
+ nErr = preference_set_int(VP_PREFERENCE_KEY_SCREEN_MODE, 0);
+ if (nErr != 0) {
+ VideoLogError
+ ("SET VP_PREFERENCE_KEY_SCREEN_MODE is fail [%d]",
+ nErr);
+ }
+ }
+ }
+
+ nErr =
+ preference_is_existing(VP_PREFERENCE_KEY_PREVIEW_URL_VIDEOS,
+ &exist);
+ if (nErr != 0) {
+ VideoLogError("preference_is_existing is fail [%d]", nErr);
+ } else {
+ if (!exist) {
+ nErr =
+ preference_set_string
+ (VP_PREFERENCE_KEY_PREVIEW_URL_VIDEOS, "");
+ if (nErr != 0) {
+ VideoLogError
+ ("SET VP_PREFERENCE_KEY_PREVIEW_URL_VIDEOS is fail [%d]",
+ nErr);
+ }
+ }
+ }
+
+ nErr =
+ preference_is_existing(VP_PREFERENCE_KEY_PREVIEW_AUDIO_TRACK,
+ &exist);
+ if (nErr != 0) {
+ VideoLogError("preference_is_existing is fail [%d]", nErr);
+ } else {
+ if (!exist) {
+ nErr =
+ preference_set_int(VP_PREFERENCE_KEY_PREVIEW_AUDIO_TRACK,
+ 0);
+ if (nErr != 0) {
+ VideoLogError
+ ("SET VP_PREFERENCE_KEY_PREVIEW_AUDIO_TRACK is fail [%d]",
+ nErr);
+ }
+ }
+ }
+
+ nErr = preference_is_existing(VP_PREFERENCE_KEY_SENSOR_ASKED, &exist);
+ if (nErr != 0) {
+ VideoLogError("preference_is_existing is fail [%d]", nErr);
+ } else {
+ if (!exist) {
+ nErr =
+ preference_set_boolean(VP_PREFERENCE_KEY_SENSOR_ASKED, 0);
+ if (nErr != 0) {
+ VideoLogError
+ ("SET VP_PREFERENCE_KEY_SENSOR_ASKED is fail [%d]",
+ nErr);
+ }
+ }
+ }
+
+ nErr =
+ preference_is_existing(VP_PREFERENCE_KEY_VIDEOS_SORT_TYPE, &exist);
+ if (nErr != 0) {
+ VideoLogError("preference_is_existing is fail [%d]", nErr);
+ } else {
+ if (!exist) {
+ nErr =
+ preference_set_int(VP_PREFERENCE_KEY_VIDEOS_SORT_TYPE, 0);
+ if (nErr != 0) {
+ VideoLogError
+ ("SET VP_PREFERENCE_KEY_VIDEOS_SORT_TYPE is fail [%d]",
+ nErr);
+ }
+ }
+ }
+
+ nErr =
+ preference_is_existing(VP_PREFERENCE_KEY_CAPTURE_MODE_ON, &exist);
+ if (nErr != 0) {
+ VideoLogError("preference_is_existing is fail [%d]", nErr);
+ } else {
+ if (!exist) {
+ nErr =
+ preference_set_boolean(VP_PREFERENCE_KEY_CAPTURE_MODE_ON,
+ 0);
+ if (nErr != 0) {
+ VideoLogError
+ ("SET VP_PREFERENCE_KEY_CAPTURE_MODE_ON is fail [%d]",
+ nErr);
+ }
+ }
+ }
+
+ nErr = preference_is_existing(VP_PREFERENCE_KEY_TAG_ACTIVE, &exist);
+ if (nErr != 0) {
+ VideoLogError("preference_is_existing is fail [%d]", nErr);
+ } else {
+ if (!exist) {
+ nErr = preference_set_boolean(VP_PREFERENCE_KEY_TAG_ACTIVE, 1);
+ if (nErr != 0) {
+ VideoLogError
+ ("SET VP_PREFERENCE_KEY_TAG_ACTIVE is fail [%d]",
+ nErr);
+ }
+ }
+ }
+
+ nErr = preference_is_existing(VP_PREFERENCE_KEY_TAG_WEATHER, &exist);
+ if (nErr != 0) {
+ VideoLogError("preference_is_existing is fail [%d]", nErr);
+ } else {
+ if (!exist) {
+ nErr =
+ preference_set_boolean(VP_PREFERENCE_KEY_TAG_WEATHER, 1);
+ if (nErr != 0) {
+ VideoLogError
+ ("SET VP_PREFERENCE_KEY_TAG_WEATHER is fail [%d]",
+ nErr);
+ }
+ }
+ }
+
+ nErr = preference_is_existing(VP_PREFERENCE_KEY_TAG_LOCATION, &exist);
+ if (nErr != 0) {
+ VideoLogError("preference_is_existing is fail [%d]", nErr);
+ } else {
+ if (!exist) {
+ nErr =
+ preference_set_boolean(VP_PREFERENCE_KEY_TAG_LOCATION, 1);
+ if (nErr != 0) {
+ VideoLogError
+ ("SET VP_PREFERENCE_KEY_TAG_LOCATION is fail [%d]",
+ nErr);
+ }
+ }
+ }
+
+ nErr =
+ preference_is_existing(VP_PREFERENCE_KEY_TAG_EDIT_WEATHER, &exist);
+ if (nErr != 0) {
+ VideoLogError("preference_is_existing is fail [%d]", nErr);
+ } else {
+ if (!exist) {
+ nErr =
+ preference_set_int(VP_PREFERENCE_KEY_TAG_EDIT_WEATHER, 0);
+ if (nErr != 0) {
+ VideoLogError
+ ("SET VP_PREFERENCE_KEY_TAG_EDIT_WEATHER is fail [%d]",
+ nErr);
+ }
+ }
+ }
+
+ nErr =
+ preference_is_existing(VP_PREFERENCE_KEY_ALLOW_DOCK_CONNECT,
+ &exist);
+ if (nErr != 0) {
+ VideoLogError("preference_is_existing is fail [%d]", nErr);
+ } else {
+ if (!exist) {
+ nErr =
+ preference_set_boolean
+ (VP_PREFERENCE_KEY_ALLOW_DOCK_CONNECT, 1);
+ if (nErr != 0) {
+ VideoLogError
+ ("SET VP_PREFERENCE_KEY_ALLOW_DOCK_CONNECT is fail [%d]",
+ nErr);
+ }
+ }
+ }
+
+ nErr = preference_is_existing(VP_PREFERENCE_KEY_EXTERN_MODE, &exist);
+ if (nErr != 0) {
+ VideoLogError("preference_is_existing is fail [%d]", nErr);
+ } else {
+ if (!exist) {
+ nErr =
+ preference_set_boolean(VP_PREFERENCE_KEY_EXTERN_MODE, 0);
+ if (nErr != 0) {
+ VideoLogError
+ ("SET VP_PREFERENCE_KEY_EXTERN_MODE is fail [%d]",
+ nErr);
+ }
+ }
+ }
+
+ nErr =
+ preference_is_existing(VP_PREFERENCE_KEY_MULTI_PLAY_FLAG, &exist);
+ if (nErr != 0) {
+ VideoLogError("preference_is_existing is fail [%d]", nErr);
+ } else {
+ if (!exist) {
+ nErr =
+ preference_set_boolean(VP_PREFERENCE_KEY_MULTI_PLAY_FLAG,
+ 0);
+ if (nErr != 0) {
+ VideoLogError
+ ("SET VP_PREFERENCE_KEY_MULTI_PLAY_FLAG is fail [%d]",
+ nErr);
+ }
+ }
+ }
+
+ nErr =
+ preference_is_existing(VP_PREFERENCE_KEY_SCREEN_MIRRORING_WARNING,
+ &exist);
+ if (nErr != 0) {
+ VideoLogError("preference_is_existing is fail [%d]", nErr);
+ } else {
+ if (!exist) {
+ nErr =
+ preference_set_boolean
+ (VP_PREFERENCE_KEY_SCREEN_MIRRORING_WARNING, 1);
+ if (nErr != 0) {
+ VideoLogError
+ ("SET VP_PREFERENCE_KEY_SCREEN_MIRRORING_WARNING is fail [%d]",
+ nErr);
+ }
+ }
+ }
+
+ nErr = preference_is_existing(VP_PREFERENCE_KEY_SOUND_ALIVE, &exist);
+ if (nErr != 0) {
+ VideoLogError("preference_is_existing is fail [%d]", nErr);
+ } else {
+ if (!exist) {
+ nErr = preference_set_int(VP_PREFERENCE_KEY_SOUND_ALIVE, 1);
+ if (nErr != 0) {
+ VideoLogError
+ ("SET VP_PREFERENCE_KEY_SOUND_ALIVE is fail [%d]",
+ nErr);
+ }
+ }
+ }
+}
+
+/**
+ *
+ * @param bMultiPlay
+ * @return
+ */
+bool vp_play_preference_set_multi_play_status(bool bMultiPlay)
+{
+ int nErr = 0;
+
+ nErr =
+ preference_set_boolean(VP_PREFERENCE_KEY_MULTI_PLAY_FLAG,
+ bMultiPlay);
+ if (nErr != 0) {
+ VideoLogError
+ ("SET VP_PREFERENCE_KEY_MULTI_PLAY_FLAG is fail [%d]", nErr);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param bMultiPlay
+ * @return
+ */
+bool vp_play_preference_get_multi_play_status(bool * bMultiPlay)
+{
+ int nErr = 0;
+ bool nVal = 0;
+
+ nErr =
+ preference_get_boolean(VP_PREFERENCE_KEY_MULTI_PLAY_FLAG, &nVal);
+ if (nErr != 0) {
+ VideoLogError("GET preference_get_boolean is fail [%d]", nErr);
+ return FALSE;
+ }
+
+ *bMultiPlay = (nVal == 0) ? FALSE : TRUE;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param bMultiPlay
+ * @return
+ */
+bool vp_play_preference_set_mirroring_warning_status(bool bMultiPlay)
+{
+ int nErr = 0;
+
+ nErr =
+ preference_set_boolean(VP_PREFERENCE_KEY_SCREEN_MIRRORING_WARNING,
+ bMultiPlay);
+ if (nErr != 0) {
+ VideoLogError
+ ("SET VP_PREFERENCE_KEY_SCREEN_MIRRORING_WARNING is fail [%d]",
+ nErr);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param bWarning
+ * @return
+ */
+bool vp_play_preference_get_mirroring_warning_status(bool * bWarning)
+{
+ int nErr = 0;
+ bool nVal = 0;
+
+ nErr =
+ preference_get_boolean(VP_PREFERENCE_KEY_SCREEN_MIRRORING_WARNING,
+ &nVal);
+ if (nErr != 0) {
+ VideoLogError
+ ("GET VP_PREFERENCE_KEY_SCREEN_MIRRORING_WARNING is fail [%d]",
+ nErr);
+ return FALSE;
+ }
+
+ *bWarning = (nVal == 0) ? FALSE : TRUE;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param bShow
+ * @return
+ */
+bool vp_play_preference_get_subtitle_show_key(bool * bShow)
+{
+ int nErr = 0;
+ bool nVal = 0;
+
+ nErr = preference_get_boolean(VP_PREFERENCE_KEY_SUBTILE_SHOW, &nVal);
+ if (nErr != 0) {
+ VideoLogError("VP_PREFERENCE_KEY_SUBTILE_SHOW is fail [%d]", nErr);
+ return FALSE;
+ }
+
+ *bShow = (nVal == 0) ? FALSE : TRUE;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param bShow
+ * @return
+ */
+bool vp_play_preference_set_subtitle_show_key(bool bShow)
+{
+ int nErr = 0;
+
+ nErr = preference_set_boolean(VP_PREFERENCE_KEY_SUBTILE_SHOW, bShow);
+ if (nErr != 0) {
+ VideoLogError("VP_PREFERENCE_KEY_SUBTILE_SHOW is fail [%d]", nErr);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param szFontName
+ * @return
+ */
+bool vp_play_preference_set_subtitle_font_name_key(const char *szFontName)
+{
+ int nErr = 0;
+
+ nErr =
+ preference_set_string(VP_PREFERENCE_KEY_SUBTILE_FONT, szFontName);
+ if (nErr != 0) {
+ VideoLogError("VP_PREFERENCE_KEY_SUBTILE_FONT is fail [%d]", nErr);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param szFontName
+ * @return
+ */
+bool vp_play_preference_get_subtitle_font_name_key(char **szFontName)
+{
+ int nErr = 0;
+ nErr =
+ preference_get_string(VP_PREFERENCE_KEY_SUBTILE_FONT, szFontName);
+ if (nErr != 0) {
+ VideoLogError("VP_PREFERENCE_KEY_SUBTILE_FONT is fail [%d]", nErr);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param nSize
+ * @return
+ */
+bool vp_play_preference_get_subtitle_size_key(int *nSize)
+{
+ int nErr = 0;
+ int nVal = 0;
+
+ nErr = preference_get_int(VP_PREFERENCE_KEY_SUBTILE_SIZE, &nVal);
+ if (nErr != 0) {
+ VideoLogError("VP_PREFERENCE_KEY_SUBTILE_SIZE is fail [%d]", nErr);
+ return FALSE;
+ }
+
+ *nSize = nVal;
+
+ return TRUE;
+
+}
+
+/**
+ *
+ * @param nSize
+ * @return
+ */
+bool vp_play_preference_set_subtitle_size_key(int nSize)
+{
+ int nErr = 0;
+
+ nErr = preference_set_int(VP_PREFERENCE_KEY_SUBTILE_SIZE, nSize);
+ if (nErr != 0) {
+ VideoLogError("VP_PREFERENCE_KEY_SUBTILE_SIZE is fail [%d]", nErr);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param nEdge
+ * @return
+ */
+bool vp_play_preference_get_subtitle_edge_key(int *nEdge)
+{
+ int nErr = 0;
+ int nVal = 0;
+
+ nErr = preference_get_int(VP_PREFERENCE_KEY_SUBTILE_EDGE, &nVal);
+ if (nErr != 0) {
+ VideoLogError("VP_PREFERENCE_KEY_SUBTILE_EDGE is fail [%d]", nErr);
+ return FALSE;
+ }
+
+ *nEdge = nVal;
+
+ return TRUE;
+
+}
+
+/**
+ *
+ * @param nEdge
+ * @return
+ */
+bool vp_play_preference_set_subtitle_edge_key(int nEdge)
+{
+ int nErr = 0;
+
+ nErr = preference_set_int(VP_PREFERENCE_KEY_SUBTILE_EDGE, nEdge);
+ if (nErr != 0) {
+ VideoLogError("VP_PREFERENCE_KEY_SUBTILE_EDGE is fail [%d]", nErr);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param nAlignment
+ * @return
+ */
+bool vp_play_preference_set_subtitle_alignment_key(int nAlignment)
+{
+ int nErr = 0;
+
+ nErr =
+ preference_set_int(VP_PREFERENCE_KEY_SUBTILE_ALIGNMENT,
+ nAlignment);
+ if (nErr != 0) {
+ VideoLogError("VP_PREFERENCE_KEY_SUBTILE_SIZE is fail [%d]", nErr);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param nAlignment
+ * @return
+ */
+bool vp_play_preference_get_subtitle_alignment_key(int *nAlignment)
+{
+ int nErr = 0;
+ int nVal = 0;
+
+ nErr = preference_get_int(VP_PREFERENCE_KEY_SUBTILE_ALIGNMENT, &nVal);
+ if (nErr != 0) {
+ VideoLogError("VP_PREFERENCE_KEY_SUBTILE_SIZE is fail [%d]", nErr);
+ return FALSE;
+ }
+
+ *nAlignment = nVal;
+
+ return TRUE;
+
+}
+
+/**
+ *
+ * @param nColor
+ * @return
+ */
+bool vp_play_preference_set_subtitle_font_color_key(int nColor)
+{
+ int nErr = 0;
+
+ nErr =
+ preference_set_int(VP_PREFERENCE_KEY_SUBTILE_FONT_COLOR, nColor);
+ if (nErr != 0) {
+ VideoLogError("VP_PREFERENCE_KEY_SUBTILE_SIZE is fail [%d]", nErr);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param nColor
+ * @return
+ */
+bool vp_play_preference_get_subtitle_font_color_key(int *nColor)
+{
+ int nErr = 0;
+ int nVal = 0;
+
+ nErr = preference_get_int(VP_PREFERENCE_KEY_SUBTILE_FONT_COLOR, &nVal);
+ if (nErr != 0) {
+ VideoLogError("VP_PREFERENCE_KEY_SUBTILE_SIZE is fail [%d]", nErr);
+ return FALSE;
+ }
+
+ *nColor = nVal;
+
+ return TRUE;
+
+}
+
+/**
+ *
+ * @param szColorHex
+ * @return
+ */
+bool vp_play_preference_set_subtitle_font_color_hex_key(const char
+ *szColorHex)
+{
+ int nErr = 0;
+
+ nErr =
+ preference_set_string(VP_PREFERENCE_KEY_SUBTILE_FONT_COLOR_HEX,
+ szColorHex);
+ if (nErr != 0) {
+ VideoLogError
+ ("VP_PREFERENCE_KEY_SUBTILE_FONT_COLOR_HEX is fail [%d]",
+ nErr);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param szColorHex
+ * @return
+ */
+bool vp_play_preference_get_subtitle_font_color_hex_key(char **szColorHex)
+{
+ int nErr = 0;
+ nErr =
+ preference_get_string(VP_PREFERENCE_KEY_SUBTILE_FONT_COLOR_HEX,
+ szColorHex);
+ if (nErr != 0) {
+ VideoLogError
+ ("VP_PREFERENCE_KEY_SUBTILE_FONT_COLOR_HEX is fail [%d]",
+ nErr);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param szColorHex
+ * @return
+ */
+bool vp_play_preference_set_subtitle_bg_color_hex_key(const char
+ *szColorHex)
+{
+ int nErr = 0;
+
+ nErr =
+ preference_set_string(VP_PREFERENCE_KEY_SUBTILE_BG_COLOR_HEX,
+ szColorHex);
+ if (nErr != 0) {
+ VideoLogError
+ ("VP_PREFERENCE_KEY_SUBTILE_BG_COLOR_HEX is fail [%d]", nErr);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param szColorHex
+ * @return
+ */
+bool vp_play_preference_get_subtitle_bg_color_hex_key(char **szColorHex)
+{
+ int nErr = 0;
+ nErr =
+ preference_get_string(VP_PREFERENCE_KEY_SUBTILE_BG_COLOR_HEX,
+ szColorHex);
+ if (nErr != 0) {
+ VideoLogError
+ ("VP_PREFERENCE_KEY_SUBTILE_BG_COLOR_HEX is fail [%d]", nErr);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param szColorHex
+ * @return
+ */
+bool vp_play_preference_set_subtitle_caption_win_color_hex_key(const char
+ *szColorHex)
+{
+ int nErr = 0;
+
+ nErr =
+ preference_set_string
+ (VP_PREFERENCE_KEY_SUBTILE_CAPTION_WIN_COLOR_HEX, szColorHex);
+ if (nErr != 0) {
+ VideoLogError
+ ("VP_PREFERENCE_KEY_SUBTILE_CAPTION_WIN_COLOR_HEX is fail [%d]",
+ nErr);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param szColorHex
+ * @return
+ */
+bool vp_play_preference_get_subtitle_caption_win_color_hex_key(char
+ **szColorHex)
+{
+ int nErr = 0;
+ nErr =
+ preference_get_string
+ (VP_PREFERENCE_KEY_SUBTILE_CAPTION_WIN_COLOR_HEX, szColorHex);
+ if (nErr != 0) {
+ VideoLogError
+ ("VP_PREFERENCE_KEY_SUBTILE_CAPTION_WIN_COLOR_HEX is fail [%d]",
+ nErr);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param nColor
+ * @return
+ */
+bool vp_play_preference_get_subtitle_bg_color_key(int *nColor)
+{
+ int nErr = 0;
+ int nVal = 0;
+
+ nErr = preference_get_int(VP_PREFERENCE_KEY_SUBTILE_BG_COLOR, &nVal);
+ if (nErr != 0) {
+ VideoLogError("VP_PREFERENCE_KEY_SUBTILE_BG_COLOR is fail [%d]",
+ nErr);
+ return FALSE;
+ }
+
+ *nColor = nVal;
+
+ return TRUE;
+
+}
+
+/**
+ *
+ * @param nColor
+ * @return
+ */
+bool vp_play_preference_set_subtitle_bg_color_key(int nColor)
+{
+ int nErr = 0;
+
+ nErr = preference_set_int(VP_PREFERENCE_KEY_SUBTILE_BG_COLOR, nColor);
+ if (nErr != 0) {
+ VideoLogError("VP_PREFERENCE_KEY_SUBTILE_BG_COLOR is fail [%d]",
+ nErr);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param nMode
+ * @return
+ */
+bool vp_play_preference_get_repeat_mode_key(int *nMode)
+{
+ int nErr = 0;
+ int nVal = 0;
+
+ nErr = preference_get_int(VP_PREFERENCE_KEY_REPEAT_MODE, &nVal);
+ if (nErr != 0) {
+ VideoLogError("VP_PREFERENCE_KEY_REPEAT_MODE is fail [%d]", nErr);
+ return FALSE;
+ }
+
+ *nMode = nVal;
+
+ return TRUE;
+
+}
+
+/**
+ *
+ * @param nMode
+ * @return
+ */
+bool vp_play_preference_set_repeat_mode_key(int nMode)
+{
+ int nErr = 0;
+
+ nErr = preference_set_int(VP_PREFERENCE_KEY_REPEAT_MODE, nMode);
+ if (nErr != 0) {
+ VideoLogError("VP_PREFERENCE_KEY_REPEAT_MODE is fail [%d]", nErr);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param nMode
+ * @return
+ */
+bool vp_play_preference_get_screen_mode_key(int *nMode)
+{
+ int nErr = 0;
+ int nVal = 0;
+
+ nErr = preference_get_int(VP_PREFERENCE_KEY_SCREEN_MODE, &nVal);
+ if (nErr != 0) {
+ VideoLogError("VP_PREFERENCE_KEY_SCREEN_MODE is fail [%d]", nErr);
+ return FALSE;
+ }
+
+ *nMode = nVal;
+
+ return TRUE;
+
+}
+
+/**
+ *
+ * @param nMode
+ * @return
+ */
+bool vp_play_preference_set_screen_mode_key(int nMode)
+{
+ int nErr = 0;
+
+ nErr = preference_set_int(VP_PREFERENCE_KEY_SCREEN_MODE, nMode);
+ if (nErr != 0) {
+ VideoLogError("VP_PREFERENCE_KEY_SCREEN_MODE is fail [%d]", nErr);
+ return FALSE;
+ }
+
+ VideoLogInfo("== SCRENN MODE SET : %d", nMode);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param bEnable
+ * @return
+ */
+bool vp_play_preference_get_capture_on_key(bool * bEnable)
+{
+ int nErr = 0;
+ bool nVal = 0;
+
+ nErr =
+ preference_get_boolean(VP_PREFERENCE_KEY_CAPTURE_MODE_ON, &nVal);
+ if (nErr != 0) {
+ VideoLogError("VP_PREFERENCE_KEY_CAPTURE_MODE_ON is fail [%d]",
+ nErr);
+ return FALSE;
+ }
+
+ *bEnable = (nVal == 0) ? FALSE : TRUE;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param bEnable
+ * @return
+ */
+bool vp_play_preference_set_capture_on_key(bool bEnable)
+{
+ int nErr = 0;
+
+ nErr =
+ preference_set_boolean(VP_PREFERENCE_KEY_CAPTURE_MODE_ON, bEnable);
+ if (nErr != 0) {
+ VideoLogError("VP_PREFERENCE_KEY_CAPTURE_MODE_ON is fail [%d]",
+ nErr);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param bEnable
+ * @return
+ */
+bool vp_play_preference_get_tag_active_key(bool * bEnable)
+{
+ int nErr = 0;
+ bool nVal = 0;
+
+ nErr = preference_get_boolean(VP_PREFERENCE_KEY_TAG_ACTIVE, &nVal);
+ if (nErr != 0) {
+ VideoLogError("VP_PREFERENCE_KEY_TAG_ACTIVE is fail [%d]", nErr);
+ return FALSE;
+ }
+
+ *bEnable = (nVal == 0) ? FALSE : TRUE;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param bEnable
+ * @return
+ */
+bool vp_play_preference_set_tag_active_key(bool bEnable)
+{
+ int nErr = 0;
+
+ nErr = preference_set_boolean(VP_PREFERENCE_KEY_TAG_ACTIVE, bEnable);
+ if (nErr != 0) {
+ VideoLogError("VP_PREFERENCE_KEY_TAG_ACTIVE is fail [%d]", nErr);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param bEnable
+ * @return
+ */
+bool vp_play_preference_get_tag_weather_key(bool * bEnable)
+{
+ int nErr = 0;
+ bool nVal = 0;
+
+ nErr = preference_get_boolean(VP_PREFERENCE_KEY_TAG_WEATHER, &nVal);
+ if (nErr != 0) {
+ VideoLogError("VP_PREFERENCE_KEY_TAG_WEATHER is fail [%d]", nErr);
+ return FALSE;
+ }
+
+ *bEnable = (nVal == 0) ? FALSE : TRUE;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param bEnable
+ * @return
+ */
+bool vp_play_preference_set_tag_weather_key(bool bEnable)
+{
+ int nErr = 0;
+
+ nErr = preference_set_boolean(VP_PREFERENCE_KEY_TAG_WEATHER, bEnable);
+ if (nErr != 0) {
+ VideoLogError("VP_PREFERENCE_KEY_TAG_WEATHER is fail [%d]", nErr);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param bEnable
+ * @return
+ */
+bool vp_play_preference_get_tag_location_key(bool * bEnable)
+{
+ int nErr = 0;
+ bool nVal = 0;
+
+ nErr = preference_get_boolean(VP_PREFERENCE_KEY_TAG_LOCATION, &nVal);
+ if (nErr != 0) {
+ VideoLogError("VP_PREFERENCE_KEY_TAG_LOCATION is fail [%d]", nErr);
+ return FALSE;
+ }
+
+ *bEnable = (nVal == 0) ? FALSE : TRUE;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param bEnable
+ * @return
+ */
+bool vp_play_preference_set_tag_location_key(bool bEnable)
+{
+ int nErr = 0;
+
+ nErr = preference_set_boolean(VP_PREFERENCE_KEY_TAG_LOCATION, bEnable);
+ if (nErr != 0) {
+ VideoLogError("VP_PREFERENCE_KEY_TAG_LOCATION is fail [%d]", nErr);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param nWeather
+ * @return
+ */
+bool vp_play_preference_get_tag_edit_weather_key(int *nWeather)
+{
+
+ int nErr = 0;
+ int nVal = 0;
+
+ nErr = preference_get_int(VP_PREFERENCE_KEY_TAG_EDIT_WEATHER, &nVal);
+ if (nErr != 0) {
+ VideoLogError("VP_PREFERENCE_KEY_TAG_EDIT_WEATHER is fail [%d]",
+ nErr);
+ return FALSE;
+ }
+
+ *nWeather = nVal;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param nWeather
+ * @return
+ */
+bool vp_play_preference_set_tag_edit_weather_key(int nWeather)
+{
+ int nErr = 0;
+
+ nErr =
+ preference_set_int(VP_PREFERENCE_KEY_TAG_EDIT_WEATHER, nWeather);
+ if (nErr != 0) {
+ VideoLogError("VP_PREFERENCE_KEY_TAG_EDIT_WEATHER is fail [%d]",
+ nErr);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param nType
+ * @return
+ */
+bool vp_play_preference_get_sort_type_key(int *nType)
+{
+
+ int nErr = 0;
+ int nVal = 0;
+
+ nErr = preference_get_int(VP_PREFERENCE_KEY_VIDEOS_SORT_TYPE, &nVal);
+ if (nErr != 0) {
+ VideoLogError("VP_PREFERENCE_KEY_VIDEOS_SORT_TYPE is fail [%d]",
+ nErr);
+ return FALSE;
+ }
+
+ *nType = nVal;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param szMediaURL
+ * @return
+ */
+bool vp_play_preference_set_preview_url_videos(const char *szMediaURL)
+{
+ if (!szMediaURL) {
+ VideoLogError("szMediaURL is null");
+ return FALSE;
+ }
+
+ int nErr = 0;
+ const char *pStorePath = ".video-store";
+
+ if (strstr(szMediaURL, pStorePath) == NULL) {
+ nErr =
+ preference_set_string(VP_PREFERENCE_KEY_PREVIEW_URL_VIDEOS,
+ szMediaURL);
+ if (nErr != 0) {
+ VideoLogError
+ ("VP_PREFERENCE_KEY_PREVIEW_URL_VIDEOS is fail [%d]",
+ nErr);
+ return FALSE;
+ }
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param szMediaURL
+ * @return
+ */
+bool vp_play_preference_get_preview_url_videos(char **szMediaURL)
+{
+ int nErr = 0;
+
+ nErr =
+ preference_get_string(VP_PREFERENCE_KEY_PREVIEW_URL_VIDEOS,
+ szMediaURL);
+ if (nErr != 0) {
+ VideoLogError("VP_PREFERENCE_KEY_PREVIEW_URL_VIDEOS is fail [%d]",
+ nErr);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param nAudioTrack
+ * @return
+ */
+bool vp_play_preference_set_preview_audio_track(int nAudioTrack)
+{
+ int nErr = 0;
+
+ nErr =
+ preference_set_int(VP_PREFERENCE_KEY_PREVIEW_AUDIO_TRACK,
+ nAudioTrack);
+ if (nErr != 0) {
+ VideoLogError
+ ("VP_PREFERENCE_KEY_PREVIEW_AUDIO_TRACK is fail [%d]", nErr);
+ return FALSE;
+ }
+ return TRUE;
+}
+
+/**
+ *
+ * @param nAudioTrack
+ * @return
+ */
+bool vp_play_preference_get_preview_audio_track(int *nAudioTrack)
+{
+ int nErr = 0;
+ int nVal = 0;
+
+ nErr =
+ preference_get_int(VP_PREFERENCE_KEY_PREVIEW_AUDIO_TRACK, &nVal);
+ if (nErr != 0) {
+ VideoLogError
+ ("VP_PREFERENCE_KEY_PREVIEW_AUDIO_TRACK is fail [%d]", nErr);
+ return FALSE;
+ }
+
+ *nAudioTrack = nVal;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param bAsked
+ * @return
+ */
+bool vp_play_preference_get_sensor_asked_state(bool * bAsked)
+{
+ int nErr = 0;
+ bool nVal = 0;
+
+ nErr = preference_get_boolean(VP_PREFERENCE_KEY_SENSOR_ASKED, &nVal);
+ if (nErr != 0) {
+ VideoLogError("VP_PREFERENCE_KEY_SENSOR_ASKED is fail [%d]", nErr);
+ return FALSE;
+ }
+
+ *bAsked = (nVal == 0) ? FALSE : TRUE;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param bAsked
+ * @return
+ */
+bool vp_play_preference_set_sensor_asked_state(bool bAsked)
+{
+ int nErr = 0;
+
+ nErr = preference_set_boolean(VP_PREFERENCE_KEY_SENSOR_ASKED, bAsked);
+ if (nErr != 0) {
+ VideoLogError("VP_PREFERENCE_KEY_SENSOR_ASKED is fail [%d]", nErr);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param bEnable
+ * @return
+ */
+bool vp_play_preference_get_allow_dock_connect_key(bool * bEnable)
+{
+ int nErr = 0;
+ bool nVal = 0;
+
+ nErr =
+ preference_get_boolean(VP_PREFERENCE_KEY_ALLOW_DOCK_CONNECT,
+ &nVal);
+ if (nErr != 0) {
+ VideoLogError("VP_PREFERENCE_KEY_ALLOW_DOCK_CONNECT is fail [%d]",
+ nErr);
+ return FALSE;
+ }
+
+ *bEnable = (nVal == 0) ? FALSE : TRUE;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param bEnable
+ * @return
+ */
+bool vp_play_preference_set_allow_dock_connect_key(bool bEnable)
+{
+ int nErr = 0;
+
+ nErr =
+ preference_set_boolean(VP_PREFERENCE_KEY_ALLOW_DOCK_CONNECT,
+ bEnable);
+ if (nErr != 0) {
+ VideoLogError("VP_PREFERENCE_KEY_ALLOW_DOCK_CONNECT is fail [%d]",
+ nErr);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param bEnable
+ * @return
+ */
+bool vp_play_preference_get_extern_mode_key(bool * bEnable)
+{
+ int nErr = 0;
+ bool nVal = 0;
+
+ nErr = preference_get_boolean(VP_PREFERENCE_KEY_EXTERN_MODE, &nVal);
+ if (nErr != 0) {
+ VideoLogError("VP_PREFERENCE_KEY_EXTERN_MODE is fail [%d]", nErr);
+ return FALSE;
+ }
+
+ *bEnable = (nVal == 0) ? FALSE : TRUE;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param bEnable
+ * @return
+ */
+bool vp_play_preference_set_extern_mode_key(bool bEnable)
+{
+ int nErr = 0;
+
+ nErr = preference_set_boolean(VP_PREFERENCE_KEY_EXTERN_MODE, bEnable);
+ if (nErr != 0) {
+ VideoLogError("VP_PREFERENCE_KEY_EXTERN_MODE is fail [%d]", nErr);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param nStatus
+ * @return
+ */
+bool vp_play_preference_get_sound_alive_status(int *nStatus)
+{
+ int nErr = 0;
+ int nVal = 0;
+
+ nErr = preference_get_int(VP_PREFERENCE_KEY_SOUND_ALIVE, &nVal);
+ if (nErr != 0) {
+ VideoLogError("VP_PREFERENCE_KEY_SOUND_ALIVE is fail [%d]", nErr);
+ return FALSE;
+ }
+
+ *nStatus = nVal;
+
+ return TRUE;
+
+}
+
+/**
+ *
+ * @param nStatus
+ * @return
+ */
+bool vp_play_preference_set_sound_alive_status(int nStatus)
+{
+ int nErr = 0;
+
+ nErr = preference_set_int(VP_PREFERENCE_KEY_SOUND_ALIVE, nStatus);
+ if (nErr != 0) {
+ VideoLogError("VP_PREFERENCE_KEY_SOUND_ALIVE is fail [%d]", nErr);
+ return FALSE;
+ }
+
+ return TRUE;
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "vp-play-macro-define.h"
+#include "vp-play-string-define.h"
+#include "vp-play-value-define.h"
+
+/* check temp */
+#include "vp-play-log.h"
+#include "vp-play-normal-view.h"
+
+
+#define MESSAGE_UG_NAME "msg-composer-efl"
+#define EMAIL_UG_NAME "email-composer-efl"
+#define BLUETOOTH_UG_NAME "setting-bluetooth-efl"
+#define FTM_UG_NAME "fileshare-efl"
+#define VIDEOS_APP_NAME "org.tizen.videos"
+#define BROWSER_APP_NAME "org.tizen.browser"
+#define VIDEO_STORE_DOWNLOAD_SVC "org.tizen.video-store-download-svc"
+
+
+#define VP_VIDEOS_VALUE_TRUE "true"
+#define VP_VIDEOS_VALUE_FALSE "false"
+
+#define VP_VIDEOS_ONLY_RAISE "raise"
+
+/* callback functions */
+
+/**
+ *
+ * @param pRequest
+ * @param pReply
+ * @param nResult
+ * @param pUserData
+ */
+static void __vp_play_ug_reply_cb(app_control_h pRequest,
+ app_control_h pReply,
+ app_control_result_e nResult,
+ void *pUserData)
+{
+ if (pRequest) {
+ char *appId;
+ app_control_get_app_id(pRequest, &appId);
+ VideoLogWarning("Request : %s", appId);
+ VP_FREE(appId);
+ }
+
+ if (pReply) {
+ char *appId;
+ app_control_get_app_id(pReply, &appId);
+ VideoLogWarning("Reply : %s", appId);
+ VP_FREE(appId);
+ }
+ vp_play_normal_view_set_share_panel_state(pUserData);
+}
+
+
+/**
+ *
+ * @param pWin
+ * @param bRaise
+ * @param pUserData
+ * @return
+ */
+bool vp_play_app_launch_videos(Evas_Object * pWin, bool bRaise,
+ void *pUserData)
+{
+ app_control_h pService = NULL;
+
+ int nRet = 0;
+ nRet = app_control_create(&pService);
+ if (nRet != APP_CONTROL_ERROR_NONE) {
+ VideoLogError("app_control_create is fail [0x%x]", nRet);
+ goto Execption;
+ }
+
+ nRet = app_control_set_operation(pService, APP_CONTROL_OPERATION_VIEW);
+ if (nRet != APP_CONTROL_ERROR_NONE) {
+ VideoLogError("app_control_set_operation is fail [0x%x]", nRet);
+ goto Execption;
+ }
+ if (bRaise) {
+ nRet =
+ app_control_add_extra_data(pService, VP_VIDEOS_ONLY_RAISE,
+ VP_VIDEOS_VALUE_TRUE);
+ if (nRet != APP_CONTROL_ERROR_NONE) {
+ VideoLogError("app_control_add_extra_data is fail [0x%x]",
+ nRet);
+ goto Execption;
+ }
+ } else {
+ nRet =
+ app_control_add_extra_data(pService, VP_VIDEOS_ONLY_RAISE,
+ VP_VIDEOS_VALUE_FALSE);
+ if (nRet != APP_CONTROL_ERROR_NONE) {
+ VideoLogError("app_control_add_extra_data is fail [0x%x]",
+ nRet);
+ goto Execption;
+ }
+ }
+
+ nRet = app_control_set_app_id(pService, VIDEOS_APP_NAME);
+ if (nRet != APP_CONTROL_ERROR_NONE) {
+ VideoLogError("app_control_set_app_id is fail [0x%x]", nRet);
+ goto Execption;
+ }
+
+ nRet =
+ app_control_send_launch_request(pService, __vp_play_ug_reply_cb,
+ pUserData);
+ if (nRet != APP_CONTROL_ERROR_NONE) {
+ VideoLogError("app_control_send_launch_request is fail [0x%x]",
+ nRet);
+ goto Execption;
+ }
+
+ app_control_destroy(pService);
+ pService = NULL;
+
+ return TRUE;
+
+ Execption:
+ if (pService) {
+ app_control_destroy(pService);
+ pService = NULL;
+ }
+ return FALSE;
+}
+
+/**
+ *
+ * @param pWin
+ * @param szMediaURL
+ * @param pServiceShare
+ * @param pUserData
+ * @return
+ */
+bool vp_play_app_launch_share_panel(Evas_Object * pWin,
+ const char *szMediaURL,
+ app_control_h * pServiceShare,
+ void *pUserData)
+{
+ if (szMediaURL == NULL) {
+ VideoLogError("szMediaURL is NULL");
+ return FALSE;
+ }
+
+ char *szFileName = NULL;
+
+ int nRet = 0;
+ if (*pServiceShare == NULL) {
+ nRet = app_control_create(pServiceShare);
+ if (nRet != APP_CONTROL_ERROR_NONE) {
+ VideoLogError("app_control_create is fail [0x%x]", nRet);
+ goto Execption;
+ }
+ }
+
+ nRet =
+ app_control_set_operation(*pServiceShare,
+ VP_SHARE_OPERATION_SINGLE);
+ if (nRet != APP_CONTROL_ERROR_NONE) {
+ VideoLogError("app_control_add_extra_data is fail [0x%x]", nRet);
+ goto Execption;
+ }
+ nRet =
+ app_control_add_extra_data(*pServiceShare,
+ "http://tizen.org/appcontrol/data/path",
+ szMediaURL);
+ if (nRet != APP_CONTROL_ERROR_NONE) {
+ VideoLogError("app_control_add_extra_data is fail [0x%x]", nRet);
+ goto Execption;
+ }
+ if (!strstr(szMediaURL, VP_PLAY_FILE_PREFIX)) {
+ szFileName = g_strdup_printf("file://%s", szMediaURL);
+ } else {
+ szFileName = g_strdup_printf("%s", szMediaURL);
+ }
+
+ VideoSecureLogInfo("file : %s", szFileName);
+
+ nRet = app_control_set_uri(*pServiceShare, szFileName);
+ if (nRet != APP_CONTROL_ERROR_NONE) {
+ VideoLogError("app_control_add_extra_data is fail [0x%x]", nRet);
+ goto Execption;
+ }
+
+ nRet = app_control_enable_app_started_result_event(*pServiceShare);
+ if (nRet != APP_CONTROL_ERROR_NONE) {
+ VideoLogError
+ ("app_control_enable_app_started_result_event is fail [0x%x]",
+ nRet);
+ goto Execption;
+ }
+
+ nRet =
+ app_control_send_launch_request(*pServiceShare,
+ __vp_play_ug_reply_cb, pUserData);
+ if (nRet != APP_CONTROL_ERROR_NONE) {
+ VideoLogError("app_control_send_launch_request is fail [0x%x]",
+ nRet);
+ goto Execption;
+ }
+ VP_FREE(szFileName);
+
+ return TRUE;
+
+ Execption:
+ VP_FREE(szFileName);
+
+ if (*pServiceShare) {
+ app_control_destroy(*pServiceShare);
+ *pServiceShare = NULL;
+ }
+ return FALSE;
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <efl_extension.h>
+#include <errno.h>
+#include <notification.h>
+#include <mime_type.h>
+#include <net_connection.h>
+#include <app.h>
+#include <app_manager.h>
+#include <glib/gstdio.h>
+#include <system_settings.h>
+
+#include <sys/statvfs.h>
+#include <unicode/uloc.h>
+
+#include "vp-play-type-define.h"
+#include "vp-play-string-define.h"
+#include "vp-play-value-define.h"
+#include "vp-play-macro-define.h"
+
+/* Dbus Replacement */
+#include <gio/gio.h>
+
+#ifdef ENABLE_DRM_FEATURE
+#include "vp-drm.h"
+#endif
+#include "vp-play-util.h"
+
+/* check temp */
+#include "vp-play-log.h"
+#include "vp-media-contents.h"
+#include "vp-file-util.h"
+#include "utils_i18n.h"
+
+#define FILE_SIZE_LEN_MAX 64
+#define UG_DATE_FORMAT_12 "yMMMdhms"
+#define UG_DATE_FORMAT_24 "yMMMdHms"
+#define EXT_SIZE 128
+#define EXT_SPLITTER '.'
+#define VP_PLAY_NAME_PATTERN "[\\<>:;*\"|?/]"
+
+enum VP_FILE_SIZE_TYPE {
+ SIZE_BYTE = 0,
+ SIZE_KB,
+ SIZE_MB,
+ SIZE_GB
+};
+
+/**
+ *
+ * @param szLocale
+ * @param szCustomSkeleton
+ * @param szTimezone
+ * @param st_Date
+ * @return
+ */
+static char *_vp_play_util_convert_string(const char *szLocale,
+ const char *szCustomSkeleton,
+ const char *szTimezone,
+ UDate st_Date)
+{
+#define UG_ICU_ARR_LENGTH 256
+
+ // Copy a byte string encoded in the default codepage to a ustring.
+ // Copies at most n characters. The result will be null terminated if the length of src is less than n.
+ // Performs a host byte to UChar conversion.
+
+ i18n_uchar ucustomSkeleton[UG_ICU_ARR_LENGTH] = { 0, };
+
+ if (i18n_ustring_copy_ua_n
+ (ucustomSkeleton, szCustomSkeleton, UG_ICU_ARR_LENGTH) == NULL) {
+ VideoLogInfo("i18n_ustring_copy_au_n() error.");
+ return NULL;
+ }
+
+ i18n_uchar utimezone[UG_ICU_ARR_LENGTH] = { 0, };
+
+ if (i18n_ustring_copy_ua_n(utimezone, szTimezone, UG_ICU_ARR_LENGTH)
+ == NULL) {
+ VideoLogInfo("i18n_ustring_copy_au_n() error.");
+ return NULL;
+ }
+
+ i18n_error_code_e status = I18N_ERROR_NONE;
+ i18n_udatepg_h generator;
+ i18n_udate_format_h formatter;
+
+ i18n_uchar bestPattern[UG_ICU_ARR_LENGTH] = { 0, };
+ i18n_uchar formatted[UG_ICU_ARR_LENGTH] = { 0, };
+ char formattedString[UG_ICU_ARR_LENGTH] = { 0, };
+ int32_t bestPatternLength, formattedLength;
+
+ status = i18n_ucalendar_set_default_timezone(utimezone);
+ if (status != I18N_ERROR_NONE) {
+ VideoLogInfo("i18n_timezone_set_default() is failed.");
+ return NULL;
+ }
+
+ status = i18n_ulocale_set_default(getenv("LC_TIME"));
+ if (status != I18N_ERROR_NONE) {
+ VideoLogInfo("i18n_ulocale_set_default() is failed.");
+ return NULL;
+ }
+
+ status = i18n_udatepg_create(szLocale, &generator);
+ if (generator == NULL || status != I18N_ERROR_NONE) {
+ return NULL;
+ }
+
+ status =
+ i18n_udatepg_get_best_pattern(generator, ucustomSkeleton,
+ i18n_ustring_get_length
+ (ucustomSkeleton), bestPattern,
+ UG_ICU_ARR_LENGTH,
+ &bestPatternLength);
+ if (bestPatternLength <= 0 || status != I18N_ERROR_NONE) {
+ i18n_udatepg_destroy(generator);
+ return NULL;
+ }
+
+ status =
+ i18n_udate_create(I18N_UDATE_MEDIUM, I18N_UDATE_MEDIUM, szLocale,
+ NULL, -1, bestPattern, -1, &formatter);
+ if (formatter == NULL || status != I18N_ERROR_NONE) {
+ i18n_udatepg_destroy(generator);
+ return NULL;
+ }
+
+ status =
+ i18n_udate_format_date(formatter, st_Date, formatted,
+ UG_ICU_ARR_LENGTH, NULL, &formattedLength);
+ if (formattedLength <= 0 || status != I18N_ERROR_NONE) {
+ VideoLogInfo("i18n_udate_format_date() is failed.");
+ i18n_udate_destroy(formatter);
+ i18n_udatepg_destroy(generator);
+ return NULL;
+ }
+
+ i18n_ustring_copy_au(formattedString, formatted);
+ status = i18n_udatepg_destroy(generator);
+ status = i18n_udate_destroy(formatter);
+
+ if (strlen(formattedString) == 0) {
+ return NULL;
+ }
+
+ return strdup(formattedString);
+}
+
+/**
+ *
+ * @param szFilePath
+ * @return
+ */
+char *vp_play_util_get_title_from_path(char *szFilePath)
+{
+ if (szFilePath == NULL || strlen(szFilePath) <= 0) {
+ VideoLogError("File Path is NULL");
+ return NULL;
+ }
+
+ char *szTitle = NULL;
+ const char *filename = vp_file_get(szFilePath);
+ if (filename == NULL) {
+ return NULL;
+ }
+ szTitle = vp_strip_ext(filename);
+
+ return szTitle;
+}
+
+/**
+ *
+ * @param szFilePath
+ * @return
+ */
+char *vp_play_util_get_filename_from_path(char *szFilePath)
+{
+ if (szFilePath == NULL || strlen(szFilePath) <= 0) {
+ VideoLogError("File Path is NULL");
+ return NULL;
+ }
+ const char *filename = vp_file_get(szFilePath);
+ if (filename) {
+ return g_strdup(filename);
+ }
+ return NULL;
+}
+
+/**
+ *
+ * @param szFilePath
+ * @return
+ */
+char *vp_play_util_get_folder_from_path(char *szFilePath)
+{
+ if (szFilePath == NULL) {
+ VideoLogError("File Path is NULL");
+ return NULL;
+ }
+ char *szFile = NULL;
+ char *szTitleName = NULL;
+ int nLength = 0;
+
+ nLength = strlen(szFilePath);
+
+ if (nLength <= 0) {
+ VideoLogError("Invalid buffer length");
+ return NULL;
+ }
+
+ szTitleName = strrchr(szFilePath, '/');
+
+ if (szTitleName) {
+ szTitleName++;
+ } else {
+ szTitleName = szFilePath;
+ }
+
+ if (nLength > strlen(szTitleName)) {
+ szFile = calloc(1, nLength - strlen(szTitleName));
+
+ if (szFile != NULL) {
+ strncpy(szFile, szFilePath, nLength - strlen(szTitleName) - 1);
+ }
+ }
+
+ return szFile;
+}
+
+/**
+ *
+ * @param pWin
+ * @param szKeyName
+ * @return
+ */
+bool vp_play_util_key_grab(Elm_Win * pWin, const char *szKeyName)
+{
+ if (!pWin) {
+ VideoLogInfo("Invalid window handle.");
+ return FALSE;
+ }
+
+ Eina_Bool ret = eext_win_keygrab_set(pWin, szKeyName);
+ VideoLogInfo("%s key grab retruns: %d", szKeyName, ret);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pWin
+ * @param szKeyName
+ * @return
+ */
+bool vp_play_util_key_ungrab(Elm_Win * pWin, const char *szKeyName)
+{
+ if (!pWin) {
+ VideoLogInfo("Invalid window handle.");
+ return FALSE;
+ }
+
+ Eina_Bool ret = eext_win_keygrab_unset(pWin, szKeyName);
+ VideoLogInfo("%s key ungrab retruns: %d", szKeyName, ret);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pWin
+ * @param bVisible
+ */
+void vp_play_util_fb_visible_off(Evas_Object * pWin, bool bVisible)
+{
+ VideoLogInfo("");
+
+ if (pWin == NULL) {
+ VideoLogError("Window handle is NULL");
+ return;
+ }
+ const char *pProfile = elm_win_profile_get(pWin);
+ if (!pProfile) {
+ VideoLogError("pProfile is NULL");
+ return;
+ }
+
+ VideoLogWarning("Skip for open : %s", pProfile);
+
+ return;
+}
+
+/**
+ *
+ * @param nRotateVal
+ * @return
+ */
+bool vp_play_util_get_landscape_check(int nRotateVal)
+{
+ video_play_rotate_t nRotate = VIDEO_PLAY_ROTATE_NONE;
+
+ nRotate = (video_play_rotate_t) nRotateVal;
+
+ if (nRotate == VIDEO_PLAY_ROTATE_90 ||
+ nRotate == VIDEO_PLAY_ROTATE_270) {
+ return TRUE;
+ }
+ return FALSE;
+}
+
+/**
+ *
+ * @param pWin
+ * @return
+ */
+int vp_play_util_get_root_window_angle(Evas_Object * pWin)
+{
+ int nAngle = 0;
+ unsigned char *pProp_data = NULL;
+ if (pWin == NULL) {
+ VideoLogError("Window handle is NULL");
+ return nAngle;
+ }
+
+ VP_FREE(pProp_data);
+ return nAngle;
+}
+
+/**
+ *
+ * @param szMediaURL
+ * @return
+ */
+bool vp_play_util_local_file_check(char *szMediaURL)
+{
+ if (szMediaURL == NULL) {
+ VideoLogError("Invalid path!!");
+ return FALSE;
+ }
+
+ char *path = szMediaURL;
+
+ if (strstr(szMediaURL, VP_PLAY_FILE_PREFIX) != NULL) {
+ path += strlen(VP_PLAY_FILE_PREFIX);
+ }
+
+ if (!g_file_test(path, G_FILE_TEST_EXISTS | G_FILE_TEST_IS_REGULAR)) {
+ g_access(path, R_OK);
+ char *error_msg = calloc(1, 1024);
+ if (error_msg) {
+ strerror_r(errno, error_msg, 1024);
+ VideoLogError("failed to access file: %d %s", errno,
+ error_msg);
+ free(error_msg);
+ }
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param szMediaURL
+ * @param szSubtitle
+ * @return
+ */
+bool vp_play_util_get_subtitle_path(const char *szMediaURL,
+ char **szSubtitle)
+{
+ if (!szMediaURL) {
+ VideoLogError("szMediaURL is NULL");
+ return FALSE;
+ }
+
+ if (strlen(szMediaURL) < 1) {
+ VideoLogError("szMediaURL is invalid Length");
+ return FALSE;
+ }
+
+ struct stat buf;
+ int nCount = 0;
+ int nStrLength = 0;
+ int nOutputLen = 0;
+
+ char *szExt = NULL;
+ char szExtWildkey[6][5] = { ".srt", ".sub", ".smi", ".SRT", ".SUB", ".SMI" };
+ char *szCheckFilePath = NULL;
+
+ *szSubtitle = NULL;
+
+ nOutputLen = strlen(szMediaURL) + 5;
+ szCheckFilePath = calloc(1, sizeof(char) * nOutputLen);
+ if (!szCheckFilePath) {
+ VideoLogError("failed to allocate memory");
+ return FALSE;
+ }
+
+ szExt = strrchr(szMediaURL, '.');
+ if (szExt) {
+ nStrLength = strlen(szMediaURL) - strlen(szExt);
+ } else {
+ nStrLength = strlen(szMediaURL);
+ }
+
+ for (nCount = 0; nCount < 6; nCount++) {
+ memset(szCheckFilePath, 0, nOutputLen);
+ strncpy(szCheckFilePath, szMediaURL, nStrLength);
+ strncat(szCheckFilePath, szExtWildkey[nCount],
+ strlen(szExtWildkey[nCount] + 1));
+
+ if (!stat(szCheckFilePath, &buf)) {
+ VideoLogWarning("Success finding subtitle file. - %d, %s",
+ nCount, szCheckFilePath);
+ VP_STRDUP(*szSubtitle, szCheckFilePath);
+ break;
+ }
+ }
+
+ VP_FREE(szCheckFilePath);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @return
+ */
+double vp_play_util_get_sys_time(void)
+{
+ struct timeval tv;
+
+ gettimeofday(&tv, NULL);
+ return (double) tv.tv_sec + (double) tv.tv_usec / 1E6;
+}
+
+/**
+ *
+ * @param szStr
+ * @return
+ */
+bool vp_play_util_status_noti_show(const char *szStr)
+{
+ if (!szStr) {
+ VideoLogError("szStr is NULL.");
+ return FALSE;
+ }
+
+ VideoLogInfo("");
+
+ int nRet = notification_status_message_post(szStr);
+ if (nRet != 0) {
+ VideoLogError("notification_status_message_post() : [0x%x]", nRet);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param szURL
+ * @return
+ */
+char *vp_play_util_remove_prefix_to_url(char *szURL)
+{
+ if (szURL == NULL) {
+ VideoLogError("szURL is NULL");
+ return NULL;
+ }
+
+ if (strstr(szURL, VP_PLAY_FILE_PREFIX)) {
+ char *szTemp =
+ calloc(1, strlen(szURL) - strlen(VP_PLAY_FILE_PREFIX) + 1);
+ if (szTemp) {
+ snprintf(szTemp,
+ strlen(szURL) - strlen(VP_PLAY_FILE_PREFIX) + 1, "%s",
+ szURL + strlen(VP_PLAY_FILE_PREFIX));
+ }
+ return szTemp;
+ }
+
+ return NULL;
+}
+
+/**
+ *
+ * @param szUri
+ * @return
+ */
+bool vp_play_util_check_sdp_url(const char *szUri)
+{
+ if (!szUri) {
+ VideoLogInfo("szUri IS null");
+ return FALSE;
+ }
+ char *szResult = strstr(szUri, ".sdp");
+ if (szResult) {
+ return TRUE;
+ }
+ return FALSE;
+}
+
+/**
+ *
+ * @param szUri
+ * @return
+ */
+char *vp_play_util_get_sdp_url(const char *szUri)
+{
+ if (!szUri) {
+ VideoLogInfo("szUri IS null");
+ return NULL;
+ }
+
+ char *szTokenUrl = g_strdup(szUri);
+ char **splited_str = eina_str_split(szTokenUrl, "?", 0);
+
+ int uri_idx = 0;
+ char *parsed_url = NULL;
+
+ for (uri_idx = 0; splited_str[uri_idx]; uri_idx++) {
+ VideoLogInfo("szUrl = %s", splited_str[uri_idx]);
+ if (eina_str_has_prefix(splited_str[uri_idx], "http")) { // http(or https)
+ parsed_url = g_strdup(splited_str[uri_idx]);
+ VideoLogInfo("parsed_url = %s", parsed_url);
+ break;
+ }
+ }
+
+ VP_FREE(splited_str[0]);
+ VP_FREE(splited_str);
+ VP_FREE(szTokenUrl);
+
+ return parsed_url;
+}
+
+/**
+ *
+ * @param lSize
+ * @param szSize
+ */
+void vp_play_util_convert_file_size(long long lSize, char **szSize)
+{
+ unsigned long int size = (unsigned long int) lSize;
+
+ int nCount = 0;
+ while (size >= (BYTE_SIZE)) {
+ size /= BYTE_SIZE;
+ nCount++;
+ }
+
+ if (nCount == SIZE_BYTE) {
+ *szSize = g_strdup_printf("%ld %s", size, VP_COM_BODY_B);
+ } else if (nCount == SIZE_KB) {
+ *szSize = g_strdup_printf("%ld %s", size, VP_COM_BODY_KB);
+ } else if (nCount == SIZE_MB) {
+ *szSize = g_strdup_printf("%ld %s", size, VP_COM_BODY_MB);
+ } else if (nCount == SIZE_GB) {
+ *szSize = g_strdup_printf("%ld %s", size, VP_COM_BODY_GB);
+ }
+}
+
+/**
+ *
+ * @param dtime
+ * @param szFileDate
+ */
+void vp_play_util_get_convert_time(double dtime, char **szFileDate)
+{
+ char *szSkeleton = NULL;
+
+ szSkeleton = UG_DATE_FORMAT_24;
+
+ char *szLocale = NULL; // eg en_US.UTF-8
+ int retcode =
+ system_settings_get_value_string
+ (SYSTEM_SETTINGS_KEY_LOCALE_COUNTRY, &szLocale);
+ if ((retcode != SYSTEM_SETTINGS_ERROR_NONE) || (szLocale == NULL)) {
+ VideoLogInfo("Cannot get region format.");
+ VP_STRDUP(szLocale, "en_US"); //// Default value.
+ } else {
+ char *find = strstr(szLocale, "UTF-8");
+ if (find) {
+ int diff = find - szLocale;
+ if (diff > 0) {
+ szLocale[diff - 1] = '\0';
+ }
+ }
+ }
+
+ char *szTimezone = NULL;
+ retcode =
+ system_settings_get_value_string
+ (SYSTEM_SETTINGS_KEY_LOCALE_TIMEZONE, &szTimezone);
+ if ((retcode != SYSTEM_SETTINGS_ERROR_NONE) || (szTimezone == NULL)) {
+ VideoLogWarning("Cannot get time zone.");
+ VP_STRDUP(szTimezone, VP_PLAY_STRING_COM_UNKNOWN);
+ }
+
+ *szFileDate =
+ _vp_play_util_convert_string(szLocale, szSkeleton, szTimezone,
+ (UDate) dtime * 1000);
+ if (*szFileDate == NULL) {
+ VideoLogWarning("Cannot get time string.");
+ VP_STRDUP(*szFileDate, VP_PLAY_STRING_COM_UNKNOWN);
+ }
+ VP_FREE(szTimezone);
+ VP_FREE(szLocale);
+}
+
+/**
+ *
+ * @param szMediaURL
+ * @param szFileSize
+ * @param szFileDate
+ * @param szFileExtention
+ * @return
+ */
+bool vp_play_util_get_file_info(const char *szMediaURL, char **szFileSize,
+ char **szFileDate, char **szFileExtention)
+{
+ if (!szMediaURL) {
+ VideoLogError("szMediaURL is NULL.");
+ return FALSE;
+ }
+
+ struct stat statbuf;
+ if (stat(szMediaURL, &statbuf) == -1) {
+ VideoSecureLogError("%s file is NULL", szMediaURL);
+ return FALSE;
+ }
+
+ int nCount = 0;
+ size_t size = statbuf.st_size;
+ unsigned long int lsize = (unsigned long int) size;
+
+ vp_play_util_get_convert_time((double) statbuf.st_mtime, szFileDate);
+
+ while (size >= (BYTE_SIZE)) {
+ lsize = size;
+ size /= BYTE_SIZE;
+ nCount++;
+ }
+
+ if (nCount == SIZE_BYTE) {
+ *szFileSize = g_strdup_printf("%zu %s", size, VP_COM_BODY_B);
+ } else if (nCount == SIZE_KB) {
+ *szFileSize = g_strdup_printf("%zu %s", size, VP_COM_BODY_KB);
+ } else if (nCount == SIZE_MB) {
+ *szFileSize = g_strdup_printf("%zu %s", size, VP_COM_BODY_MB);
+ } else if (nCount == SIZE_GB) {
+ *szFileSize = g_strdup_printf("%zu %s", size, VP_COM_BODY_GB);
+ }
+
+ VideoLogInfo("Size = %lu, OrigSize=%zu", lsize, size);
+
+ char *szExt = NULL;
+#ifdef ENABLE_DRM_FEATURE
+ char *szMime = NULL;
+ char **dTempExt = NULL;
+
+ int nArrayLen = 0;
+ int nErr = 0;
+ if (vp_drm_get_file_mime_type(szMediaURL, &szMime)) {
+ nErr = mime_type_get_file_extension(szMime, &dTempExt, &nArrayLen);
+
+ VP_FREE(szMime);
+
+ if (nErr == MIME_TYPE_ERROR_NONE && nArrayLen > 0) {
+ if (dTempExt[0] != NULL) {
+ szExt = strrchr(dTempExt[0], EXT_SPLITTER);
+ }
+
+ if (szExt == NULL) {
+ *szFileExtention =
+ g_strdup_printf(VP_PLAY_STRING_COM_UNKNOWN);
+ } else {
+ VP_STRDUP(*szFileExtention, (szExt + 1));
+ }
+
+ int i = 0;
+ for (; i < nArrayLen; i++) {
+ if (dTempExt[i] != NULL) {
+ free(dTempExt[i]);
+ }
+ }
+ } else {
+ *szFileExtention = g_strdup_printf(VP_PLAY_STRING_COM_UNKNOWN);
+ }
+ VP_FREE(dTempExt);
+ } else
+#endif
+ {
+
+ szExt = strrchr(szMediaURL, EXT_SPLITTER);
+ if (szExt == NULL) {
+ *szFileExtention = g_strdup_printf(VP_PLAY_STRING_COM_UNKNOWN);
+ } else {
+ VP_STRDUP(*szFileExtention, (szExt + 1));
+ }
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param szURL
+ * @return
+ */
+bool vp_play_util_check_streaming(const char *szURL)
+{
+ if (szURL == NULL) {
+ VideoLogInfo("szURL is NULL");
+ return FALSE;
+ }
+
+ VideoSecureLogInfo("szURL : %s", szURL);
+
+ if (strstr(szURL, "rtp") != NULL) {
+ return TRUE;
+ } else if (strstr(szURL, "rtsp") != NULL) {
+ return TRUE;
+ } else if (strstr(szURL, "http") != NULL) {
+ return TRUE;
+ } else if (strstr(szURL, "https") != NULL) {
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+/**
+ *
+ * @param szURL
+ * @return
+ */
+bool vp_play_util_rtsp_url_check(const char *szURL)
+{
+ if (szURL == NULL) {
+ VideoLogInfo("szURL is NULL");
+ return FALSE;
+ }
+
+ VideoSecureLogInfo("szURL : %s", szURL);
+
+ static const char *rtsp_protocal_name[] = {
+ "rtsp://",
+ "rtp://",
+ NULL,
+ };
+
+ int i = 0;
+ while (rtsp_protocal_name[i] != NULL) {
+ if (strlen(szURL) > strlen(rtsp_protocal_name[i])) {
+ if (strncmp
+ (szURL, rtsp_protocal_name[i],
+ strlen(rtsp_protocal_name[i])) == 0) {
+ return true;
+ }
+ }
+
+ i++;
+ }
+
+ return FALSE;
+}
+
+/**
+ *
+ * @param rtSrc
+ * @param rtDst
+ * @param rtResult
+ * @param nType
+ * @return
+ */
+bool vp_play_util_calculator_position(Evas_Coord_Rectangle rtSrc,
+ Evas_Coord_Rectangle rtDst,
+ Evas_Coord_Rectangle * rtResult,
+ int nType)
+{
+ video_play_display_mode_t nMode = (video_play_display_mode_t) nType;
+
+ double src_ratio = 0;
+ double dst_ratio = 0;
+
+ if (nMode == VIDEO_DISPLAY_LETTER_BOX) {
+ src_ratio = (double) rtSrc.w / rtSrc.h;
+ dst_ratio = (double) rtDst.w / rtDst.h;
+ if (src_ratio > dst_ratio) {
+ rtResult->w = rtDst.w;
+ rtResult->h = rtDst.w / src_ratio;
+ rtResult->x = 0;
+ rtResult->y = (rtDst.h - rtResult->h) / 2;
+ } else if (src_ratio < dst_ratio) {
+ rtResult->w = rtDst.h * src_ratio;
+ rtResult->h = rtDst.h;
+ rtResult->x = (rtDst.w - rtResult->w) / 2;
+ rtResult->y = 0;
+ } else {
+ rtResult->x = 0;
+ rtResult->y = 0;
+ rtResult->w = rtDst.w;
+ rtResult->h = rtDst.h;
+ }
+ } else if (nMode == VIDEO_DISPLAY_ORIGIN) {
+ rtResult->w = (((rtSrc.w) < (rtDst.w)) ? (rtSrc.w) : (rtDst.w));
+ rtResult->h = (((rtSrc.h) < (rtDst.h)) ? (rtSrc.h) : (rtDst.h));
+ rtResult->x = (rtDst.w - rtResult->w) / 2;
+ rtResult->y = (rtDst.h - rtResult->h) / 2;
+
+ } else if ((nMode == VIDEO_DISPLAY_FULL)
+ || (nMode == VIDEO_DISPLAY_CROPPED_FULL)) {
+ rtResult->w = rtDst.w;
+ rtResult->h = rtDst.h;
+ rtResult->x = 0;
+ rtResult->y = 0;
+
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param szFileName
+ * @param szBuffer
+ * @param nSize
+ * @return
+ */
+bool vp_play_util_save_file(const char *szFileName, char *szBuffer,
+ int nSize)
+{
+ if (!szFileName) {
+ VideoLogError("szFileName is NULL");
+ return FALSE;
+ }
+
+ if (!szBuffer) {
+ VideoLogError("szBuffer is NULL");
+ return FALSE;
+ }
+ if (g_file_test(szFileName, G_FILE_TEST_EXISTS)) {
+ int flag = g_remove(szFileName);
+ if (flag != 0) {
+ VideoLogError("g_remove is fail");
+ }
+ }
+
+ if (!g_file_set_contents
+ (szFileName, (const char *) szBuffer, nSize, NULL)) {
+ VideoLogError("g_file_set_contents is fail");
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ * .
+ * @return
+ */
+bool vp_play_util_get_network_status(void)
+{
+ connection_h connection;
+ connection_type_e net_state;
+ bool bSuccessful = true;
+
+ int err = 0;
+
+ err = connection_create(&connection);
+ if (err != CONNECTION_ERROR_NONE) {
+ VideoLogWarning("connection_create error. err is [%d]", err);
+ bSuccessful = false;
+ }
+
+ if (connection) {
+ err = connection_get_type(connection, &net_state);
+ connection_destroy(connection);
+
+ if (err != CONNECTION_ERROR_NONE) {
+ VideoLogWarning("connection_get_type error. err is [%d]", err);
+ bSuccessful = false;
+ }
+
+ VideoLogInfo("net_state is [%d]", net_state);
+
+ if (net_state == CONNECTION_TYPE_DISCONNECTED) {
+ bSuccessful = false;
+ }
+ }
+
+
+ return bSuccessful;
+}
+
+/**
+ *
+ * @param szPreviewUrl
+ * @return
+ */
+bool vp_play_util_check_personal_status(const char *szPreviewUrl)
+{
+ Eina_Bool bRet = EINA_FALSE;
+ if (szPreviewUrl) {
+ bRet =
+ eina_str_has_prefix(szPreviewUrl, VP_PLAY_PERSONAL_HEAD_STR);
+ }
+ VideoSecureLogInfo("eina_str_has_prefix=%s:%d", szPreviewUrl,
+ (int) bRet);
+ return (bool) bRet;
+}
+
+/**
+ *
+ * @param szPath
+ * @return
+ */
+bool vp_play_util_is_exist_subtitle_from_path(const char *szPath)
+{
+
+ if (szPath == NULL) {
+ VideoLogError("szPath is NULL");
+ return FALSE;
+ }
+
+ Eina_List *pFileList = NULL;
+ Eina_List *pItemList = NULL;
+ char *szFileName = NULL;
+ char szExtWildkey[6][5] = { ".srt", ".sub", ".smi", ".SRT", ".SUB", ".SMI" };
+ int nCount = 0;
+
+
+ pFileList = vp_file_ls(szPath);
+
+ if (pFileList == NULL) {
+ VideoLogError("pFileList is NULL");
+ return FALSE;
+ }
+
+ EINA_LIST_FOREACH(pFileList, pItemList, szFileName) {
+ if (szFileName == NULL) {
+ continue;
+ } else {
+ char *szName = vp_strip_ext(szFileName);
+ char *szExt = NULL;
+
+ int nIdx = 0;
+ if (szName == NULL) {
+ continue;
+ }
+ szExt = szFileName + strlen(szName);
+
+ for (nIdx = 0; nIdx < 6; nIdx++) {
+ if (strcmp(szExt, szExtWildkey[nIdx]) == 0) {
+ nCount++;
+ }
+ }
+ VP_FREE(szName);
+ }
+ }
+
+ eina_list_free(pFileList);
+
+ if (nCount > 0) {
+ return TRUE;
+ }
+ return FALSE;
+}
+
+/**
+ *
+ * @param subtitleList
+ * @return
+ */
+bool vp_play_util_get_subtitle_path_list(GList ** subtitleList)
+{
+ if (NULL == subtitleList) {
+ VideoLogError("subtitleList is NULL");
+ return FALSE;
+ }
+
+ if (!vp_media_contents_subtitle_list_get(subtitleList)) {
+ VideoLogError("vp_media_contents_subtitle_list_get failed.");
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @return
+ */
+bool vp_play_util_app_resume(void)
+{
+ char *app_id = NULL;
+ int ret = app_get_id(&app_id);
+ if (ret != APP_ERROR_NONE || !app_id) {
+ VideoLogError("app_get_id().. [0x%x], app_id[%s]", ret, app_id);
+ return FALSE;
+ }
+
+ app_context_h context = NULL;
+ ret = app_manager_get_app_context(app_id, &context);
+ if (ret != APP_MANAGER_ERROR_NONE) {
+ VideoLogError("app_manager_get_app_context().. [0x%x]", ret);
+ VP_FREE(app_id);
+ return FALSE;
+ }
+
+ ret = app_manager_resume_app(context);
+ if (ret != APP_MANAGER_ERROR_NONE) {
+ VideoLogError("app_manager_resume_app().. [0x%x]", ret);
+ VP_FREE(app_id);
+ return FALSE;
+ }
+
+ VP_FREE(app_id);
+ app_context_destroy(context);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param szText
+ * @return
+ */
+bool vp_play_util_check_white_space(char *szText)
+{
+ if (szText == NULL) {
+ return TRUE;
+ }
+ bool bIsWhiteSpace = FALSE;
+
+ if (strlen(szText) == 2) {
+ if (szText[0] == 0xc2 && szText[1] == 0xa0) {
+ VideoLogError("== No Break Space ==");
+ bIsWhiteSpace = TRUE;
+ }
+ }
+
+ g_strstrip(szText);
+ if (strlen(szText) == 0) {
+ VideoLogError("== NULL String ==");
+ bIsWhiteSpace = TRUE;
+ }
+
+ return bIsWhiteSpace;
+}
+
+/**
+ *
+ * @param szFilePath
+ */
+unsigned long long vp_play_util_get_disk_available_space(const char
+ *szFilePath)
+{
+ if (szFilePath == NULL) {
+ VideoLogError("szFilePath is NULL");
+ return 0;
+ }
+ int nRet = 0;
+ struct statvfs info;
+ if (szFilePath
+ && 0 == strncmp(szFilePath, VP_ROOT_PATH_MMC,
+ strlen(VP_ROOT_PATH_MMC))) {
+ if (-1 == statvfs(VP_ROOT_PATH_MMC, &info)) {
+ return 0;
+ }
+ } else {
+ if (vp_is_dir(szFilePath)) {
+ nRet = statvfs(szFilePath, &info);
+ VideoLogInfo("this is folder");
+ } else {
+ nRet = statvfs(VP_PLAY_MEDIA_DIR, &info);
+ }
+ if (nRet < 0) {
+ return 0;
+ }
+ }
+
+ return (info.f_bsize) * ((unsigned long long) info.f_bavail);
+}
+
+/**
+ *
+ * @param szLocation
+ * @param szCity
+ * @return
+ */
+bool vp_play_util_get_city(const char *szLocation, char **szCity)
+{
+#define LOCATION_MAX_LEN 256
+
+ if (!szLocation) {
+ VideoLogError("szLocation is invalid");
+ return FALSE;
+ }
+
+ char *pTemp = strstr(szLocation, "CITY[");
+ if (!pTemp) {
+ VideoLogError("pTemp is invalid");
+ return FALSE;
+ }
+ int len = strlen("CITY[");
+ char *pTemp1 = strstr(pTemp + len, "]");
+ char city_temp[LOCATION_MAX_LEN] = { 0, };
+
+ if (pTemp1 - (pTemp + len) > 0) {
+ strncpy(city_temp, pTemp + len, pTemp1 - (pTemp + len));
+ *szCity = strdup(city_temp);
+ }
+
+ return true;
+}
+
+/**
+ *
+ * @param nXwinID
+ * @return
+ */
+bool vp_play_util_is_Xwindow_focused(Ecore_X_Window nXwinID)
+{
+ return TRUE;
+}
+
+/**
+ *
+ * @param r
+ * @param g
+ * @param b
+ * @param a
+ * @return
+ */
+char *vp_play_util_convert_rgba_to_hex(int r, int g, int b, int a)
+{
+ char *pColorHex;
+
+ pColorHex =
+ g_strdup_printf("#%08lx",
+ (long unsigned int) (r << 24 | g << 16 | b << 8 |
+ a));
+
+ return pColorHex;
+}
+
+/**
+ *
+ * @param pColorHex
+ * @param r
+ * @param g
+ * @param b
+ * @param a
+ * @return
+ */
+bool vp_play_util_convert_hex_to_rgba(char *pColorHex, int *r, int *g,
+ int *b, int *a)
+{
+ if (pColorHex == NULL) {
+ return FALSE;
+ }
+
+ char *szColor = g_strndup(pColorHex + 1, 8);
+
+ unsigned long lColor = strtoul(szColor, NULL, 16);
+
+ int tr, tg, tb, ta;
+ tr = lColor >> 24;
+
+ if (tr < 0) {
+ tr += 0x100;
+ }
+ tg = (lColor >> 16) & 0xff;
+ tb = (lColor >> 8) & 0xff;
+ ta = lColor & 0xff;
+
+ *r = tr;
+ *g = tg;
+ *b = tb;
+ *a = ta;
+ free(szColor);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param obj
+ * @param w
+ * @param h
+ * @param id
+ */
+void vp_play_util_set_object_size(Evas_Object * obj, int w, int h, int id)
+{
+ Edje_Message_Int_Set *msg =
+ (Edje_Message_Int_Set *) malloc(sizeof(Edje_Message_Int_Set) +
+ 3 * sizeof(int));
+ if (!msg) {
+ return;
+ }
+ msg->count = 2;
+ msg->val[0] = w;
+ msg->val[1] = h;
+ edje_object_message_send(obj, EDJE_MESSAGE_INT_SET, id, msg);
+ free(msg);
+}
+
+/**
+ *
+ * @param obj
+ * @param r
+ * @param g
+ * @param b
+ * @param a
+ * @param id
+ */
+void vp_play_util_set_object_color(Evas_Object * obj, int r, int g, int b,
+ int a, int id)
+{
+ Edje_Message_Int_Set *msg =
+ (Edje_Message_Int_Set *) malloc(sizeof(Edje_Message_Int_Set) +
+ 4 * sizeof(int));
+ if (!msg) {
+ return;
+ }
+ msg->count = 4;
+ msg->val[0] = r;
+ msg->val[1] = g;
+ msg->val[2] = b;
+ msg->val[3] = a;
+
+ edje_object_message_send(obj, EDJE_MESSAGE_INT_SET, id, msg);
+ free(msg);
+}
+
+/**
+ *
+ * @param obj
+ * @param left
+ * @param top
+ * @param id
+ */
+void vp_play_util_set_object_offset(Evas_Object * obj, int left, int top,
+ int id)
+{
+ Edje_Message_Int_Set *msg =
+ (Edje_Message_Int_Set *) malloc(sizeof(Edje_Message_Int_Set) +
+ 2 * sizeof(float));
+ if (!msg) {
+ return;
+ }
+ msg->count = 2;
+ msg->val[0] = left;
+ msg->val[1] = top;
+ edje_object_message_send(obj, EDJE_MESSAGE_INT_SET, id, msg);
+ free(msg);
+}
+
+/**
+ *
+ * @param msg
+ * @param sig
+ * @param param
+ * @return
+ */
+static int __vp_play_util_append_variant(GDBusMessage * msg,
+ const char *sig,
+ const char *param[])
+{
+ GVariant *var = NULL;
+
+ if (!sig || !param) {
+ VideoLogInfo("!sig || !param");
+ return 0;
+ }
+
+ if (strcmp(sig, "sssi") == 0) {
+ VideoLogError("Signature is sssi type");
+ var =
+ g_variant_new("(sssi)", param[0], param[1], param[2],
+ atoi(param[3]));
+ } else if (strcmp(sig, "ss") == 0) {
+ VideoLogError("Signature is ss type");
+ var = g_variant_new("(ss)", param[0], param[1]);
+ }
+ g_dbus_message_set_body(msg, var);
+ return 0;
+}
+
+#define GDBUS_REPLY_TIMEOUT (-1)
+/**
+ *
+ * @param dest
+ * @param path
+ * @param interface
+ * @param method
+ * @param sig
+ * @param param
+ * @return
+ */
+GDBusMessage *vp_play_util_invoke_dbus_method(const char *dest,
+ const char *path,
+ const char *interface,
+ const char *method,
+ const char *sig,
+ const char *param[])
+{
+ VideoLogInfo("");
+
+ GDBusConnection *conn = NULL;
+ GDBusMessage *msg = NULL;
+ GDBusMessage *reply = NULL;
+ GError *err = NULL;
+ int r;
+
+ conn = g_bus_get_sync(G_BUS_TYPE_SYSTEM, NULL, &err);
+ if (!conn) {
+ VideoLogError("e_dbus_bus_get error: %s",
+ err ? err->message : "none");
+ g_error_free(err);
+ return NULL;
+ }
+
+ msg = g_dbus_message_new_method_call(dest, path, interface, method);
+ if (!msg) {
+ VideoLogError("dbus_message_new_method_call error!");
+ g_object_unref(conn);
+ return NULL;
+ }
+
+ r = __vp_play_util_append_variant(msg, sig, param);
+ if (r < 0) {
+ VideoLogError("append_variant error(%d)", r);
+ g_object_unref(msg);
+ return NULL;
+ }
+
+ reply =
+ g_dbus_connection_send_message_with_reply_sync(conn, msg,
+ G_DBUS_SEND_MESSAGE_FLAGS_NONE,
+ GDBUS_REPLY_TIMEOUT,
+ NULL, NULL, &err);
+ if (!reply) {
+ VideoLogError
+ ("g_dbus_connection_send_message_with_reply_sync error : (%s) %s %s:%s-%s",
+ err ? err->message : "none", dest, path, interface, method);
+ g_error_free(err);
+ g_object_unref(msg);
+ g_object_unref(conn);
+ } else {
+ VideoLogInfo
+ ("g_dbus_connection_send_message_with_reply_sync success");
+ }
+
+ return reply;
+}
+
+/**
+ *
+ */
+void vp_play_util_set_lock_power_key()
+{
+ VideoLogDebug("lock power key pressed");
+ const char *arr[] = { "lcdon", "gotostatenow", "holdkeyblock", "0" };
+
+
+ GDBusMessage *msg;
+
+ msg =
+ vp_play_util_invoke_dbus_method("org.tizen.system.deviced",
+ "/Org/Tizen/System/DeviceD/Display",
+ "org.tizen.system.deviced.display",
+ "lockstate", "sssi", arr);
+
+ if (!msg) {
+ VideoLogError("vp_play_util_invoke_dbus_method failed");
+ return;
+ }
+}
+
+/**
+ *
+ *
+ */
+void vp_play_util_set_unlock_power_key()
+{
+ VideoLogDebug("unlock power key pressed");
+ const char *arr[] = { "lcdon", "resettimer" };
+
+ GDBusMessage *msg = NULL;
+
+ msg =
+ vp_play_util_invoke_dbus_method("org.tizen.system.deviced",
+ "/Org/Tizen/System/DeviceD/Display",
+ "org.tizen.system.deviced.display",
+ "unlockstate", "ss", arr);
+
+ if (!msg) {
+ VideoLogError("vp_play_util_invoke_dbus_method failed");
+ return;
+ }
+}
+
+/**
+ *
+ * @param obj
+ * @param next
+ * @param dir
+ */
+void vp_play_util_focus_next_object_set(Evas_Object * obj,
+ Evas_Object * next,
+ Elm_Focus_Direction dir)
+{
+ if (obj) {
+ elm_object_focus_next_object_set(obj, next, dir);
+ }
+
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+#include "vp-mm-player.h"
+#include "vp-play-type-define.h"
+
+
+bool vp_avrcp_initialize(PlayView * pViewHandle);
+bool vp_avrcp_deinitialize();
+bool vp_avrcp_noti_track(const char *title, const char *artist,
+ const char *album, const char *genre,
+ unsigned int duration);
+bool vp_avrcp_noti_track_position(unsigned int position);
+bool vp_avrcp_noti_player_state(vp_mm_player_state_t nState);
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+void vp_language_list_create();
+void vp_language_list_destroy();
+
+char *vp_language_get_name(const char *szCode);
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+
+bool vp_device_display_lcd_lock(void);
+bool vp_device_display_lcd_unlock(void);
+bool vp_device_set_frame_rate(int nRate);
+bool vp_device_set_brightness(int nVal);
+bool vp_device_get_brightness(int *nCurVal);
+bool vp_device_get_max_brightness(int *nMaxVal);
+bool vp_device_get_min_brightness(int *nMinVal);
+bool vp_device_set_screen_off(bool bLock);
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+typedef void (*HollICEventCbFunc) (bool bCoverState, void *pUserData);
+
+typedef void *hollic_handle;
+
+
+hollic_handle vp_hollic_create_handle(HollICEventCbFunc pEventCb,
+ void *pUserData);
+void vp_hollic_destroy_handle(hollic_handle pHollICHandle);
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+
+
+#pragma once
+
+#include <stdbool.h>
+#include <glib.h>
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+
+#pragma once
+
+#include <stdbool.h>
+#include <glib.h>
+#include <Elementary.h>
+
+
+typedef void (*MediaUpdateCb) (void *pUserData);
+
+
+
+bool vp_media_contents_connect();
+bool vp_media_contents_disconnect();
+
+/* common functions */
+bool vp_media_contents_get_video_id(const char *szFilePath,
+ char **szVideoID);
+bool vp_media_contents_get_video_thumbnail_path(const char *szFilePath,
+ char **szThumbnailPath);
+bool vp_media_contents_scan_file(const char *szFilePath);
+bool vp_media_contents_update_db(const char *szMediaURL);
+bool vp_media_contents_refresh_db(const char *szMediaID);
+
+bool vp_media_contents_get_content_info(const char *szFilePath,
+ char **szTitle, int *nWidth,
+ int *nHeight, int *nDuration,
+ double *dLatitude,
+ double *dLongitude,
+ char **szTmpLastModified);
+bool vp_media_metadata_get_gps_info(const char *szFilePath,
+ double *dLatitude, double *dLongitude);
+bool vp_media_metadata_get_duration(const char *szFilePath,
+ int *nDuration);
+bool vp_media_metadata_get_width(const char *szFilePath, int *nWidth);
+bool vp_media_metadata_get_height(const char *szFilePath, int *nHeight);
+bool vp_media_contents_get_cloud_attribute(const char *szFilePath,
+ bool * bCloud);
+
+/* bookmark functions */
+bool vp_media_contents_bookmark_list_get(const char *szMediaID,
+ GList ** list);
+bool vp_media_contents_bookmark_list_clear(GList * pList);
+bool vp_media_contents_bookmark_insert(const char *szMediaID,
+ int nPosition,
+ const char *szFilePath);
+bool vp_media_contents_bookmark_delete(const char *szMediaID,
+ int nPosition);
+bool vp_media_contents_bookmark_get_item_info(void *pItem,
+ char **szFilePath,
+ int *nPosition);
+bool vp_media_contents_bookmark_delete_all(const char *szMediaID);
+
+bool vp_media_contents_get_video_items_to_folder(int nSortType,
+ char *szFolder,
+ GList ** pList);
+bool vp_media_contents_get_video_items(int nSortType, GList ** pList);
+bool vp_media_contents_free_video_items(GList * pList);
+
+bool vp_media_contents_get_next_file_path(const char *szMediaURL,
+ char **szNextURL, bool bLoop,
+ GList * pList);
+bool vp_media_contents_get_prev_file_path(const char *szMediaURL,
+ char **szPrevURL, bool bLoop,
+ GList * pList);
+
+bool vp_media_contents_set_update_cb(MediaUpdateCb pFunc, void *pUserData);
+void vp_media_contents_unset_update_cb();
+
+/*tag buddy */
+bool vp_media_contents_set_location_tag(const char *szFilePath,
+ const char *city);
+bool vp_media_contents_get_location_tag(const char *szFilePath,
+ char **szLocationTag);
+bool vp_media_contents_set_weahter_tag(const char *szFilePath,
+ const char *weather);
+bool vp_media_contents_get_weahter_tag(const char *szFilePath,
+ char **szWeatherTag);
+
+/*subtitle file*/
+bool vp_media_contents_subtitle_list_get(GList ** list);
+
+bool vp_media_contents_file_is_exist(const char *szFilePath);
+bool vp_media_contents_del_video(const char *szFilePath);
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+
+typedef enum {
+ VP_MEDIA_KEY_PLAY = 0x00,
+ VP_MEDIA_KEY_PAUSE,
+ VP_MEDIA_KEY_PLAYPAUSE,
+ VP_MEDIA_KEY_PREVIOUS,
+ VP_MEDIA_KEY_REWIND,
+ VP_MEDIA_KEY_NEXT,
+ VP_MEDIA_KEY_FASTFORWARD,
+ VP_MEDIA_KEY_STOP,
+} vp_media_key_event_t;
+
+
+typedef void (*MediaKeyEventCbFunc) (vp_media_key_event_t nKey,
+ bool bRelease, void *pUserData);
+
+
+typedef void *media_key_handle;
+
+
+media_key_handle vp_media_key_create(Evas_Object * pWin,
+ MediaKeyEventCbFunc pEventCb);
+void vp_media_key_destroy(media_key_handle pMediaKeyHandle);
+bool vp_media_key_realize(media_key_handle pMediaKeyHandle);
+bool vp_media_key_unrealize(media_key_handle pMediaKeyHandle);
+bool vp_media_key_set_user_data(media_key_handle pMediaKeyHandle,
+ void *pUserData);
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#pragma once
+
+#include <stdbool.h>
+#include <player.h>
+
+
+typedef void *mm_player_handle;
+
+typedef enum {
+ VP_MM_PLAYER_FILTER_NONE = 0x00,
+ VP_MM_PLAYER_FILTER_VOICE,
+ VP_MM_PLAYER_FILTER_MOVIE,
+ VP_MM_PLAYER_FILTER_VITUAL_71,
+} vp_mm_player_sound_filter_t;
+
+typedef enum {
+ VP_MM_PLAYER_VIDEO_TYPE_X11 = 0x00,
+ VP_MM_PLAYER_VIDEO_TYPE_EVAS
+} vp_mm_player_video_sink_t;
+
+typedef enum {
+ VP_MM_PLAYER_ROTATE_0 = 0x00,
+ VP_MM_PLAYER_ROTATE_90,
+ VP_MM_PLAYER_ROTATE_180,
+ VP_MM_PLAYER_ROTATE_270
+} vp_mm_player_rotate_t;
+
+typedef enum {
+ VP_MM_PLAYER_REALIZE_ASYNC_CB = 0x00,
+ VP_MM_PLAYER_SEEK_COMPLETE_CB,
+ VP_MM_PLAYER_END_OF_STREAM_CB,
+ VP_MM_PLAYER_INTERRUPT_CB,
+ VP_MM_PLAYER_ERROR_CB,
+ VP_MM_PLAYER_BUFFERING_CB,
+ VP_MM_PLAYER_SUBTITLE_UPDATE_CB,
+ VP_MM_PLAYER_PD_MESSAGE_CB,
+ VP_MM_PLAYER_CAPTURE_VIDEO_CB,
+ VP_MM_PLAYER_MISSED_PLUGIN_CB,
+ VP_MM_PLAYER_IMAGE_BUFFER_CB,
+} vp_mm_player_callback_t;
+
+
+typedef enum {
+ VP_MM_PLYAER_ERR_NONE = 0x00,
+ VP_MM_PLAYER_ERR_OUT_OF_MEMORY,
+ VP_MM_PLAYER_ERR_INVALID_PARAMETER,
+ VP_MM_PLAYER_ERR_NO_SUCH_FILE,
+ VP_MM_PLAYER_ERR_INVALID_OPERATION,
+ VP_MM_PLAYER_ERR_FILE_NO_SPACE_ON_DEVICE,
+ VP_MM_PLAYER_ERR_SEEK_FAILED,
+ VP_MM_PLAYER_ERR_INVALID_STATE,
+ VP_MM_PLAYER_ERR_NOT_SUPPORTED_FILE,
+ VP_MM_PLAYER_ERR_INVALID_URI,
+ VP_MM_PLAYER_ERR_SOUND_POLICY,
+ VP_MM_PLAYER_ERR_CONNECTION_FAILED,
+ VP_MM_PLAYER_ERR_VIDEO_CAPTUR_FAILED,
+ VP_MM_PLAYER_ERR_DRM_EXPIRED,
+ VP_MM_PLAYER_ERR_DRM_NO_LICENSE,
+ VP_MM_PLAYER_ERR_DRM_FUTURE_USE
+} vp_mm_player_error_t;
+
+typedef enum {
+ VP_MM_PLAYER_INTERRUPTED_COMPLETED = 0x00,
+ VP_MM_PLAYER_INTERRUPTED_BY_MEDIA,
+ VP_MM_PLAYER_INTERRUPTED_BY_CALL,
+ VP_MM_PLAYER_INTERRUPTED_BY_EARJACK_UNPLUG,
+ VP_MM_PLAYER_INTERRUPTED_BY_RESOURCE_CONFLICT,
+ VP_MM_PLAYER_INTERRUPTED_BY_ALARM,
+ VP_MM_PLAYER_INTERRUPTED_BY_EMERGENCY,
+ VP_MM_PLAYER_INTERRUPTED_RESUMABLE_MEDIA,
+ VP_MM_PLAYER_INTERRUPTED_NOTIFICATION
+} vp_mm_player_interrupt_t;
+
+typedef enum {
+ VP_MM_PLAYER_PD_STARTED = 0x00,
+ VP_MM_PLAYER_PD_COMPLETED
+} vp_mm_player_pd_message_t;
+
+typedef enum {
+ VP_MM_PLAYER_STATE_NONE = 0x00,
+ VP_MM_PLAYER_STATE_IDLE,
+ VP_MM_PLAYER_STATE_READY,
+ VP_MM_PLAYER_STATE_PLAYING,
+ VP_MM_PLAYER_STATE_PAUSED,
+ VP_MM_PLAYER_STATE_STOP, // define for AVRCP
+} vp_mm_player_state_t;
+
+typedef enum {
+ VP_MM_PLAYER_DISPLAY_LETTER_BOX = 0x00,
+ VP_MM_PLAYER_DISPLAY_ORIGIN_OR_LETTER,
+ VP_MM_PLAYER_DISPLAY_FULL_SCREEN,
+ VP_MM_PLAYER_DISPLAY_CROPPED_FULL,
+ VP_MM_PLAYER_DISPLAY_ORIGIN_SIZE,
+} vp_mm_player_display_mode_t;
+
+typedef enum {
+ VP_MM_PLAYER_MISSED_PLUGIN_UNKNOWN = 0x00,
+ VP_MM_PLAYER_MISSED_PLUGIN_AUDIO,
+ VP_MM_PLAYER_MISSED_PLUGIN_VIDEO,
+} vp_mm_player_missed_plugin_t;
+
+typedef enum {
+ VP_MM_PLAYER_SUBTITLE_HALIGN_LEFT = 0x00,
+ VP_MM_PLAYER_SUBTITLE_HALIGN_CENTER,
+ VP_MM_PLAYER_SUBTITLE_HALIGN_RIGHT
+} vp_mm_player_subtitle_halign_t;
+
+typedef void (*vp_mm_player_prepare_cb) (void *pUserData);
+typedef void (*vp_mm_player_completed_cb) (void *pUserData);
+typedef void (*vp_mm_player_seek_completed_cb) (void *pUserData);
+typedef void (*vp_mm_player_interrupted_cb) (vp_mm_player_interrupt_t
+ nCode, void *pUserData);
+typedef void (*vp_mm_player_error_cb) (vp_mm_player_error_t nError,
+ void *pUserData);
+typedef void (*vp_mm_player_buffering_cb) (int nPercent, void *pUserData);
+typedef void (*vp_mm_player_subtitle_updated_cb) (unsigned long nDuration,
+ char *text,
+ void *pUserData);
+typedef void (*vp_mm_player_pd_message_cb) (vp_mm_player_pd_message_t
+ nType, void *pUserData);
+typedef void (*vp_mm_player_video_captured_cb) (unsigned char *pFrame,
+ int nWidth, int nHeight,
+ unsigned int nSize,
+ void *pUserData);
+typedef void (*vp_mm_player_missed_plugin_cb) (vp_mm_player_missed_plugin_t
+ nMissedType,
+ void *pUserData);
+typedef void (*vp_mm_player_image_buffer_updated_cb) (char *pBuffer,
+ int nSize,
+ void *pUserData);
+
+
+typedef struct _MMPlayerCbFunc {
+ vp_mm_player_prepare_cb pPrepareCb;
+ vp_mm_player_completed_cb pEndOfStreamCb;
+ vp_mm_player_seek_completed_cb pSeekCompleteCb;
+ vp_mm_player_interrupted_cb pInterruptedCb;
+ vp_mm_player_error_cb pErrorCb;
+ vp_mm_player_buffering_cb pBufferingCb;
+ vp_mm_player_subtitle_updated_cb pSubtitleUpdateCb;
+ vp_mm_player_pd_message_cb pPDMessageCb;
+ vp_mm_player_video_captured_cb pCapturedCb;
+ vp_mm_player_missed_plugin_cb pMissedPluginCb;
+ vp_mm_player_image_buffer_updated_cb pImageBufferCb;
+} MMPlayerCbFunc;
+
+
+typedef struct _MMPlayerCbPipe {
+ Ecore_Pipe *pPreparePipe;
+ Ecore_Pipe *pEndOfStreamPipe;
+ Ecore_Pipe *pSeekCompletePipe;
+ Ecore_Pipe *pInterruptedPipe;
+ Ecore_Pipe *pErrorPipe;
+ Ecore_Pipe *pBufferingPipe;
+ Ecore_Pipe *pSubtitleUpdatePipe;
+ Ecore_Pipe *pPDMessagePipe;
+ Ecore_Pipe *pCapturedPipe;
+ Ecore_Pipe *pMissedPluginPipe;
+ Ecore_Pipe *pImageBufferPipe;
+} MMPlayerCbPipe;
+
+
+typedef struct _MMPlayerCaptureParam {
+ unsigned char *pFrame;
+ int nWidth;
+ int nHeight;
+ unsigned int nSize;
+ void *pParam;
+} MMPlayerCaptureParam;
+
+typedef struct _MMPlayerSubtitleParam {
+ unsigned long nDuration;
+ char *txt;
+ void *pParam;
+} MMPlayerSubtitleParam;
+
+typedef struct _MMPlayerInterruptParam {
+ vp_mm_player_interrupt_t nInterrupt;
+ void *pParam;
+} MMPlayerInterruptParam;
+
+typedef struct _MMPlayerErrorParam {
+ vp_mm_player_interrupt_t nError;
+ void *pParam;
+} MMPlayerErrorParam;
+
+typedef struct _MMPlayerBufferingParam {
+ int nPercent;
+ void *pParam;
+} MMPlayerBufferingParam;
+
+
+typedef struct _MMPlayerPDParam {
+ vp_mm_player_pd_message_t nMessage;
+ void *pParam;
+} MMPlayerPDParam;
+
+typedef struct _MMPlayerMissedPluginParam {
+ vp_mm_player_missed_plugin_t nMissedType;
+ void *pParam;
+} MMPlayerMissedPluginParam;
+
+
+typedef struct _MMPlayerImageBufferParam {
+ char *pBuffer;
+ int nSize;
+ void *pParam;
+} MMPlayerImageBufferParam;
+
+typedef struct _MMPlayer {
+ player_h pPlayer;
+
+ char *szURL;
+ char *szSubtitleURL;
+ char *szCookie;
+ char *szProxy;
+
+ bool bIsRealize;
+ bool bDeactivateSubtitle;
+ bool bIsMute;
+ bool bIsScaling;
+ bool bIsLooping;
+ bool bIsClosedCaption;
+ bool bIsCapturing;
+
+ float fLeftVol;
+ float fRightVol;
+
+ vp_mm_player_sound_filter_t nSoundFilter;
+ vp_mm_player_video_sink_t nVideoSink;
+ vp_mm_player_rotate_t nRotate;
+ vp_mm_player_state_t nState;
+ vp_mm_player_display_mode_t nDisplayMode;
+ sound_stream_info_h stream_info;
+
+ int nDuration;
+ int nVideoWidth;
+ int nVidehHeight;
+
+ MMPlayerCbFunc *pCbFunc;
+ MMPlayerCbPipe *pCbPipe;
+ void *pParam;
+
+ MMPlayerCaptureParam *pCaptureParam;
+ MMPlayerSubtitleParam *pSubtitleParam;
+ MMPlayerInterruptParam *pInterruptParam;
+ MMPlayerErrorParam *pErrorParam;
+ MMPlayerPDParam *pPDParam;
+ MMPlayerBufferingParam *pBufferingParam;
+ MMPlayerMissedPluginParam *pMissedParam;
+ MMPlayerImageBufferParam *pImageBufferParam;
+
+ int nZoomPosX;
+ int nZoomPosY;
+ bool reacquire_state;
+
+ void *pVideoSink;
+} MMPlayer;
+
+mm_player_handle vp_mm_player_create();
+void vp_mm_player_destroy(mm_player_handle pPlayerHandle);
+bool vp_mm_player_realize(mm_player_handle pPlayerHandle, char *szPath);
+bool vp_mm_player_realize_async(mm_player_handle pPlayerHandle,
+ char *szPath);
+
+
+bool vp_mm_player_unrealize(mm_player_handle pPlayerHandle);
+bool vp_mm_player_is_realize(mm_player_handle pPlayerHandle);
+
+bool vp_mm_player_set_callback(mm_player_handle pPlayerHandle,
+ vp_mm_player_callback_t nCallbackType,
+ void *pCallback);
+bool vp_mm_player_set_user_param(mm_player_handle pPlayerHandle,
+ void *pParam);
+bool vp_mm_player_set_stream_info(mm_player_handle pPlayerHandle,
+ void *stream_info);
+
+bool vp_mm_player_play(mm_player_handle pPlayerHandle);
+bool vp_mm_player_stop(mm_player_handle pPlayerHandle);
+bool vp_mm_player_pause(mm_player_handle pPlayerHandle);
+bool vp_mm_player_get_state(mm_player_handle pPlayerHandle,
+ vp_mm_player_state_t * nState);
+
+bool vp_mm_player_get_position(mm_player_handle pPlayerHandle,
+ int *nPosition);
+bool vp_mm_player_set_position(mm_player_handle pPlayerHandle,
+ int nPosition);
+bool vp_mm_player_set_position_by_key_frame(mm_player_handle pPlayerHandle,
+ int nPosition);
+
+bool vp_mm_player_get_buffering_position(mm_player_handle pPlayerHandle,
+ int *nPosition);
+
+
+bool vp_mm_player_set_scaling(mm_player_handle pPlayerHandle, bool bScale);
+bool vp_mm_player_set_loop(mm_player_handle pPlayerHandle, bool bLoop);
+
+bool vp_mm_player_set_mute(mm_player_handle pPlayerHandle, bool bMute);
+bool vp_mm_player_get_mute(mm_player_handle pPlayerHandle, bool * bMute);
+bool vp_mm_player_get_duration(mm_player_handle pPlayerHandle,
+ int *nDuration);
+bool vp_mm_player_get_codecinfo(mm_player_handle pPlayerHandle,
+ char **audio_codec, char **video_codec);
+
+bool vp_mm_player_set_video_sink(mm_player_handle pPlayerHandle, int nType,
+ void *pSink);
+bool vp_mm_player_set_video_rotate(mm_player_handle pPlayerHandle,
+ int nRotate);
+bool vp_mm_player_set_display_mode(mm_player_handle pPlayerHandle,
+ vp_mm_player_display_mode_t
+ nDisplayMode);
+
+bool vp_mm_player_get_resolution(mm_player_handle pPlayerHandle,
+ int *nWidth, int *nHeight);
+
+bool vp_mm_player_set_subtitle_url(mm_player_handle pPlayerHandle,
+ char *szSubtitlePath);
+bool vp_mm_player_get_subtitle_url(mm_player_handle pPlayerHandle,
+ char **szSubtitlePath);
+bool vp_mm_player_set_subtitle_position(mm_player_handle pPlayerHandle,
+ int nPosition);
+bool vp_mm_player_set_subtitle_font(mm_player_handle pPlayerHandle,
+ char *szFamilyName, char *szStyle,
+ int nSize);
+bool vp_mm_player_set_subtitle_font_color(mm_player_handle pPlayerHandle,
+ unsigned int nForegroundColor,
+ unsigned int nBGColor);
+bool vp_mm_player_subtitle_ignore_markup_tags(mm_player_handle
+ pPlayerHandle,
+ bool bIgnoreMarkup);
+bool vp_mm_player_subtitle_set_alignment_in_line(mm_player_handle
+ pPlayerHandle,
+ vp_mm_player_subtitle_halign_t
+ type);
+bool vp_mm_player_subtitle_set_alignment_horizontal(mm_player_handle
+ pPlayerHandle,
+ vp_mm_player_subtitle_halign_t
+ type);
+bool vp_mm_player_subtitle_apply_alignment_right_away(mm_player_handle
+ pPlayerHandle);
+bool vp_mm_player_set_deactivate_subtitle(mm_player_handle pPlayerHandle,
+ bool bDeactivate);
+
+bool vp_mm_player_set_volume(mm_player_handle pPlayerHandle, float fLeft,
+ float fRight);
+bool vp_mm_player_get_volume(mm_player_handle pPlayerHandle, float *fLeft,
+ float *fRight);
+
+bool vp_mm_player_set_sound_filter(mm_player_handle pPlayerHandle,
+ vp_mm_player_sound_filter_t nFilter);
+bool vp_mm_player_get_sound_filter(mm_player_handle pPlayerHandle,
+ vp_mm_player_sound_filter_t * nFilter);
+
+bool vp_mm_player_capture_start(mm_player_handle pPlayerHandle);
+bool vp_mm_player_is_closed_caption_exist(mm_player_handle pPlayerHandle);
+
+bool vp_mm_player_get_audio_track_count(mm_player_handle pPlayerHandle,
+ int *nCount);
+bool vp_mm_player_get_audio_track_language_code(mm_player_handle
+ pPlayerHandle, int nIndex,
+ char **szCode);
+bool vp_mm_player_set_audio_track(mm_player_handle pPlayerHandle,
+ int nIndex);
+
+bool vp_mm_player_get_subtitle_track_count(mm_player_handle pPlayerHandle,
+ int *nCount);
+bool vp_mm_player_get_subtitle_track_language_code(mm_player_handle
+ pPlayerHandle,
+ int nIndex,
+ char **szCode);
+bool vp_mm_player_set_subtitle_track(mm_player_handle pPlayerHandle,
+ int nIndex);
+#ifdef _SUBTITLE_MULTI_LANGUAGE
+bool vp_mm_player_add_subtitle_language(mm_player_handle pPlayerHandle,
+ int nIndex);
+bool vp_mm_player_remove_subtitle_language(mm_player_handle pPlayerHandle,
+ int nIndex);
+bool vp_mm_player_track_foreach_selected_subtitle_language(mm_player_handle
+ pPlayerHandle,
+ void *pCallback,
+ void
+ *pUserData);
+#endif
+bool vp_mm_player_set_cookie(mm_player_handle pPlayerHandle,
+ const char *szCookie);
+bool vp_mm_player_set_proxy(mm_player_handle pPlayerHandle,
+ const char *szProxy);
+
+bool vp_mm_player_set_hw_decoder(bool bEnable);
+bool vp_mm_player_set_rate(mm_player_handle pPlayerHandle, float fRate);
+
+
+bool vp_mm_player_set_zoom(mm_player_handle pPlayerHandle, float fZoom,
+ int nPosX, int nPosY);
+bool vp_mm_player_get_zoom_start_position(mm_player_handle pPlayerHandle,
+ int *nPosX, int *nPosY);
+bool vp_mm_player_set_visible(mm_player_handle pPlayerHandle,
+ bool bVisible);
+bool vp_mm_player_set_hub_download_mode(mm_player_handle pPlayerHandle,
+ bool bDownload);
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+
+#pragma once
+
+#include <stdbool.h>
+#include <glib.h>
+
+
+bool vp_multi_path_add_item(GList ** pList, const char *szURL,
+ char *szTitle, char *szSubTitle, int nPosition,
+ int nDuration, bool bIsSameAP);
+bool vp_multi_path_clear_item(GList * pList);
+bool vp_multi_path_set_item_subtitle(const char *szMediaURL,
+ char *szSubtitleURL, GList * pList);
+bool vp_multi_path_set_item_position(const char *szMediaURL, int nPosition,
+ GList * pList);
+bool vp_multi_path_get_current_item(const char *szMediaURL, char **szURL,
+ char **szTitle, char **szSubtitle,
+ int *nPosition, int *nDuration,
+ bool * bIsSameAP, GList * pList);
+bool vp_multi_path_get_next_item(const char *szMediaURL, char **szURL,
+ char **szSubtitle, int *nPosition,
+ int *nDuration, bool bLoop,
+ GList * pList);
+bool vp_multi_path_get_prev_item(const char *szMediaURL, char **szURL,
+ char **szSubtitle, int *nPosition,
+ int *nDuration, bool bLoop,
+ GList * pList);
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifdef OLD_SENSOR_API
+
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+
+typedef enum {
+ VP_SENSOR_TYPE_NONE = 0x00,
+ VP_SENSOR_TYPE_FACEDOWN,
+ VP_SENSOR_TYPE_DOUBLETAP,
+} vp_sensor_type_t;
+
+
+typedef void (*SensorEventCbFunc) (vp_sensor_type_t nType,
+ unsigned long long timestamp,
+ void *pUserData);
+
+
+typedef void *sensor_handle;
+
+
+sensor_handle vp_sensor_create(SensorEventCbFunc pEventCb);
+void vp_sensor_destroy(sensor_handle pSensorHandle);
+bool vp_sensor_realize(sensor_handle pSensorHandle);
+bool vp_sensor_unrealize(sensor_handle pSensorHandle);
+bool vp_sensor_set_user_data(sensor_handle pSensorHandle, void *pUserData);
+
+#endif
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+
+typedef enum {
+ VP_SOUND_DEVICE_NONE = 0x00,
+ VP_SOUND_DEVICE_SPEAKER,
+ VP_SOUND_DEVICE_EARJACK,
+ VP_SOUND_DEVICE_BLUETOOTH,
+ VP_SOUND_DEVICE_HDMI,
+ VP_SOUND_DEVICE_MIRRORING,
+ VP_SOUND_DEVICE_USB_AUDIO,
+ VP_SOUND_DEVICE_MAX,
+} video_sound_device_type_t;
+
+typedef void (*vp_sound_route_change_cb) (int nRoute, bool bAvailable,
+ void *pUserData);
+typedef void (*vp_sound_volume_change_cb) (int nType, int nVolume,
+ void *pUserData);
+
+bool vp_sound_init_session();
+bool vp_sound_deinit_session();
+bool vp_sound_get_volume(int *nValue);
+bool vp_sound_set_volume(int nValue);
+bool vp_sound_get_max_volume(int *nMaxValue);
+bool vp_sound_get_active_device(video_sound_device_type_t * nDeviceType);
+bool vp_sound_is_sound_path_enable(bool * bIsSoundPath);
+bool vp_sound_get_a2dp_name(char **szBTName);
+bool vp_sound_set_active_route(video_sound_device_type_t nDeviceType);
+bool vp_sound_set_route_change_cb(vp_sound_route_change_cb func,
+ void *pUserData);
+bool vp_sound_set_volume_change_cb(vp_sound_volume_change_cb func,
+ void *pUserData);
+bool vp_sound_device_is_enable(video_sound_device_type_t nDeviceType,
+ void *pUserData);
+void vp_sound_set_earjack_connection_changed_cb(void *pUserData);
+void vp_sound_unset_earjack_connection_changed_cb();
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <network/bluetooth.h>
+
+#include "vp-play-macro-define.h"
+#include "vp-play-normal-view.h"
+#include "vp-play-view.h"
+#include "vp-avrcp.h"
+
+/* check temp */
+#include "vp-play-log.h"
+
+
+/* callback functions */
+
+/* internal functions */
+/**
+ *
+ * @param connected
+ * @param remote_address
+ * @param user_data
+ */
+void _vp_avrcp_connection_state_changed_cb(bool connected,
+ const char *remote_address,
+ void *user_data)
+{
+ if (!user_data) {
+ return;
+ }
+ PlayView *pPlayView = (PlayView *) user_data;
+ VideoLogInfo("Bluetooth device!!");
+ vp_play_normal_view_show_volume_popup(pPlayView);
+ if (!connected) {
+ vp_play_normal_view_pause_player(pPlayView);
+ }
+}
+
+/* external functions */
+/**
+ *
+ * @param pViewHandle
+ * @return
+ */
+bool vp_avrcp_initialize(PlayView * pViewHandle)
+{
+ VideoLogInfo("vp_avrcp_initialize start");
+
+ PlayView *pPlayView = (PlayView *) pViewHandle;
+ if (!pPlayView) {
+ return FALSE;
+ }
+ int nRet = bt_initialize();
+ if (nRet != BT_ERROR_NONE) {
+ VideoLogError("bt_initialize fail. nRet[%d]", nRet);
+ return FALSE;
+ }
+
+ nRet =
+ bt_avrcp_target_initialize(_vp_avrcp_connection_state_changed_cb,
+ pPlayView);
+ if (nRet != BT_ERROR_NONE) {
+ VideoLogError("bt_avrcp_target_initialize fail. nRet[%d]", nRet);
+ bt_deinitialize();
+ return FALSE;
+ }
+
+ VideoLogInfo("vp_avrcp_initialize end");
+
+ return TRUE;
+}
+
+/**
+ *
+ * @return
+ */
+bool vp_avrcp_deinitialize()
+{
+ VideoLogInfo("vp_avrcp_deinitialize start");
+
+ int nRet = BT_ERROR_NONE;
+
+ nRet = bt_avrcp_target_deinitialize();
+ if (nRet != BT_ERROR_NONE) {
+ VideoLogError("bt_avrcp_target_deinitialize fail. nRet[%d]", nRet);
+ return FALSE;
+ }
+
+ nRet = bt_deinitialize();
+ if (nRet != BT_ERROR_NONE) {
+ VideoLogError("bt_deinitialize fail. nRet[%d]", nRet);
+ return FALSE;
+ }
+
+
+ VideoLogInfo("vp_avrcp_deinitialize end");
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param title
+ * @param artist
+ * @param album
+ * @param genre
+ * @param duration
+ * @return
+ */
+bool vp_avrcp_noti_track(const char *title, const char *artist,
+ const char *album, const char *genre,
+ unsigned int duration)
+{
+ VideoLogInfo("vp_avrcp_noti_track start");
+
+ int nRet = BT_ERROR_NONE;
+ VideoLogWarning("set avrcp noti tack. title[%s]", title);
+ VideoLogWarning("set avrcp noti tack. duration[%d]", duration);
+
+ nRet =
+ bt_avrcp_target_notify_track(title, artist, album, genre, 1, 1,
+ duration);
+ if (nRet != BT_ERROR_NONE) {
+ VideoLogError("bt_avrcp_target_notify_track fail. nRet[%d]", nRet);
+ return FALSE;
+ }
+
+ VideoLogInfo("vp_avrcp_noti_track end");
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param position
+ * @return
+ */
+bool vp_avrcp_noti_track_position(unsigned int position)
+{
+ VideoLogInfo("vp_avrcp_noti_track_position start");
+
+ int nRet = BT_ERROR_NONE;
+ VideoLogWarning("set avrcp noti track position. duration[%d]",
+ position);
+ nRet = bt_avrcp_target_notify_position(position);
+ if (nRet != BT_ERROR_NONE) {
+ VideoLogError("bt_avrcp_target_notify_position fail. nRet[%d]",
+ nRet);
+ return FALSE;
+ }
+
+ VideoLogInfo("vp_avrcp_noti_track_position end");
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param nState
+ * @return
+ */
+bool vp_avrcp_noti_player_state(vp_mm_player_state_t nState)
+{
+ VideoLogInfo("vp_avrcp_noti_player_state start");
+ if (nState == VP_MM_PLAYER_STATE_NONE
+ || nState == VP_MM_PLAYER_STATE_IDLE) {
+ VideoLogWarning
+ ("player state : [%d]. don't need to send player state",
+ nState);
+ return TRUE;
+ }
+
+ bt_avrcp_player_state_e player_state = BT_AVRCP_PLAYER_STATE_STOPPED;
+ switch (nState) {
+ case VP_MM_PLAYER_STATE_PLAYING:
+ player_state = BT_AVRCP_PLAYER_STATE_PLAYING;
+ break;
+ case VP_MM_PLAYER_STATE_READY:
+ case VP_MM_PLAYER_STATE_PAUSED:
+ player_state = BT_AVRCP_PLAYER_STATE_PAUSED;
+ break;
+ case VP_MM_PLAYER_STATE_STOP:
+ player_state = BT_AVRCP_PLAYER_STATE_STOPPED;
+ break;
+ default:
+ break;
+ }
+ VideoLogWarning("set avrcp noti player state. player_state[%d]",
+ player_state);
+
+ int nRet = BT_ERROR_NONE;
+ nRet = bt_avrcp_target_notify_player_state(player_state);
+ if (nRet != BT_ERROR_NONE) {
+ VideoLogError
+ ("bt_avrcp_target_notify_player_state fail. nRet[%d]", nRet);
+ return FALSE;
+ }
+
+ VideoLogInfo("vp_avrcp_noti_player_state end");
+
+ return TRUE;
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <glib.h>
+#include <stdlib.h>
+#include <libxml/parser.h>
+
+#include "vp-play-macro-define.h"
+#include "vp-device-language.h"
+
+/* check temp */
+#include "vp-play-log.h"
+
+
+#define VP_LANGLIST_FILE_PATH "/opt/usr/data/setting/langlist.xml"
+
+
+typedef struct {
+ char *szLanguageCode; // ex) "en_US.UTF"
+ char *szLanguageName; // "United Kingdom"
+ char *szMcc;
+} stLanguage;
+
+static Eina_List *g_pLanglist = NULL; // internal
+
+/**
+ *
+ * @return
+ */
+bool _vp_language_list_destroy(void)
+{
+ stLanguage *szNode = NULL;
+ if (!g_pLanglist) {
+ VideoLogError("g_pLanglist is NULL");
+ return FALSE;
+ }
+ EINA_LIST_FREE(g_pLanglist, szNode) {
+ if (szNode) {
+ VP_FREE(szNode->szLanguageCode);
+ VP_FREE(szNode->szLanguageName);
+ VP_FREE(szNode->szMcc);
+ VP_FREE(szNode);
+ }
+ }
+ g_pLanglist = NULL;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param cur
+ */
+static void _vp_language_get_list(xmlNodePtr cur)
+{
+ xmlNode *cur_node = NULL;
+ char *pId = NULL;
+ char *pName = NULL;
+ char *pMcc = NULL;
+
+ for (cur_node = cur; cur_node; cur_node = cur_node->next) {
+ if (cur_node->type == XML_ELEMENT_NODE) {
+ pId = (char *) g_strdup((char *)
+ xmlGetProp(cur_node,
+ (const xmlChar *) "id"));
+ pName = (char *) g_strdup((char *)
+ xmlGetProp(cur_node,
+ (const xmlChar *)
+ "string"));
+ pMcc = (char *) g_strdup((char *)
+ xmlGetProp(cur_node,
+ (const xmlChar *) "mcc"));
+ stLanguage *szNode =
+ (stLanguage *) calloc(1, sizeof(stLanguage));
+ if (szNode) {
+ szNode->szLanguageCode = pId;
+ szNode->szLanguageName = pName;
+ szNode->szMcc = pMcc;
+ g_pLanglist = eina_list_append(g_pLanglist, szNode);
+ } else {
+ VP_FREE(pId);
+ VP_FREE(pName);
+ VP_FREE(pMcc);
+ }
+ }
+ }
+}
+
+/**
+ *
+ * @param szPath
+ */
+static void _vp_language_parse_XML(char *szPath)
+{
+ if (!szPath) {
+ VideoLogError("szPath is NULL");
+ return;
+ }
+ xmlDocPtr doc;
+ xmlNodePtr cur;
+
+ doc = xmlParseFile(szPath);
+
+ if (doc == NULL) {
+ VideoLogError("Document not parsed successfully");
+ return;
+ }
+
+ cur = xmlDocGetRootElement(doc);
+ if (cur == NULL) {
+ VideoLogError("empty document");
+ xmlFreeDoc(doc);
+ return;
+ }
+ // make sure root node is "langlist"
+ if (xmlStrcmp(cur->name, (const xmlChar *) "langlist")) {
+ VideoLogError("document of the wrong type, root node != langlist");
+ xmlFreeDoc(doc);
+ return;
+ }
+
+ cur = cur->xmlChildrenNode;
+ _vp_language_get_list(cur);
+
+ /* save tree to file */
+ if (doc != NULL) {
+ xmlFreeDoc(doc);
+ }
+}
+
+/**
+ *
+ * @param szPath
+ * @return
+ */
+bool _vp_language_list_load(char *szPath)
+{
+ if (!g_pLanglist) {
+ _vp_language_parse_XML(szPath);
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param szCode
+ * @return
+ */
+char *vp_language_get_name(const char *szCode)
+{
+ if (!g_pLanglist) {
+ VideoLogError("g_pLanglist IS null");
+ return NULL;
+ }
+
+ if (!szCode) {
+ VideoLogError("szCode IS null");
+ return NULL;
+ }
+ Eina_List *pIterateList = NULL;
+ stLanguage *szNode = NULL;
+
+ char *pLangCode = NULL;
+ char *pRealCode = NULL;
+ char *szName = NULL;
+ pLangCode = g_utf8_strup(szCode, -1);
+
+ EINA_LIST_FOREACH(g_pLanglist, pIterateList, szNode) {
+ if (szNode) {
+ pRealCode = g_utf8_strup(szNode->szLanguageCode, -1);
+
+ if (g_strrstr(pRealCode, pLangCode)) {
+ VP_STRDUP(szName, szNode->szLanguageName);
+ break;
+ }
+ VP_FREE(pRealCode);
+ }
+ }
+ VP_FREE(pLangCode);
+ VP_FREE(pRealCode);
+
+ return szName;
+}
+
+/**
+ *
+ */
+void vp_language_list_destroy()
+{
+ VideoLogInfo("");
+ _vp_language_list_destroy();
+}
+
+/**
+ *
+ */
+void vp_language_list_create()
+{
+ if (NULL == g_pLanglist) {
+ VideoLogInfo("");
+ _vp_language_list_load(VP_LANGLIST_FILE_PATH);
+ }
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <device/display.h>
+#include <device/power.h>
+
+
+#include "vp-device.h"
+#include "vp-play-macro-define.h"
+
+/* check temp */
+#include "vp-play-log.h"
+
+/**
+ *
+ * @return
+ */
+bool vp_device_display_lcd_lock(void)
+{
+ int nRet = 0;
+ nRet = device_power_request_lock(POWER_LOCK_DISPLAY, 0);
+ if (nRet != 0) {
+ VideoLogError
+ ("device_power_request_lock(POWER_LOCK_DISPLAY, 0) set fail : %d",
+ nRet);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @return
+ */
+bool vp_device_display_lcd_unlock(void)
+{
+ int nRet = 0;
+ nRet = device_power_release_lock(POWER_LOCK_DISPLAY);
+ if (nRet != 0) {
+ VideoLogError
+ ("device_power_release_lock(POWER_LOCK_DISPLAY) set fail : %d",
+ nRet);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param nRate
+ * @return
+ */
+bool vp_device_set_frame_rate(int nRate)
+{
+ return TRUE;
+}
+
+/**
+ *
+ * @param nVal
+ * @return
+ */
+bool vp_device_set_brightness(int nVal)
+{
+ int nRet = 0;
+ nRet = device_display_set_brightness(0, nVal); // 0 is main display, brightness
+ if (nRet != 0) {
+ VideoLogError("device_display_set_brightness set fail : %d", nRet);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param nCurVal
+ * @return
+ */
+bool vp_device_get_brightness(int *nCurVal)
+{
+ int nVal = 0;
+ int nRet = 0;
+ nRet = device_display_get_brightness(0, &nVal);
+ if (nVal < 0 || nRet != DEVICE_ERROR_NONE) {
+ VideoLogError("device_display_get_brightness set fail : %d", nVal);
+ return FALSE;
+ }
+
+ *nCurVal = nVal;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param nMaxVal
+ * @return
+ */
+bool vp_device_get_max_brightness(int *nMaxVal)
+{
+ int nVal = 0;
+ int nRet = 0;
+ nRet = device_display_get_max_brightness(0, &nVal);
+ if (nVal < 0 || nRet != DEVICE_ERROR_NONE) {
+ VideoLogError("device_display_get_max_brightness get fail : %d",
+ nVal);
+ return FALSE;
+ }
+
+ *nMaxVal = nVal;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param nMinVal
+ * @return
+ */
+bool vp_device_get_min_brightness(int *nMinVal)
+{
+ int nVal = 0;
+
+ *nMinVal = nVal;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param bLock
+ * @return
+ */
+bool vp_device_set_screen_off(bool bLock)
+{
+ if (bLock) {
+ if (device_power_request_lock(POWER_LOCK_CPU, 0) !=
+ DEVICE_ERROR_NONE) {
+ VideoLogError("lock failed");
+ return FALSE;
+ }
+ } else {
+ if (device_power_release_lock(POWER_LOCK_CPU) != DEVICE_ERROR_NONE) {
+ VideoLogError("unlock failed");
+ return FALSE;
+ }
+ }
+
+ return TRUE;
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "vp-hollic.h"
+#include "vp-play-log.h"
+
+#define OBJECT_PATH "/Org/Tizen/System/DeviceD"
+#define DEVICED_PATH_HALL OBJECT_PATH"/Hall"
+#define SIGNAL_HALL_STATE "ChangeState"
+
+typedef struct _HollIC_handle {
+ void *pDbus_connection;
+ void *pSignal_handler;
+
+ void *pUserData;
+ HollICEventCbFunc pEventCb;
+} HollIC_handle;
+
+/**
+ *
+ * @param pEventCb
+ * @param pUserData
+ * @return
+ */
+hollic_handle vp_hollic_create_handle(HollICEventCbFunc pEventCb,
+ void *pUserData)
+{
+ return NULL;
+}
+
+/**
+ *
+ * @param pHollICHandle
+ */
+void vp_hollic_destroy_handle(hollic_handle pHollICHandle)
+{
+ if (pHollICHandle == NULL) {
+ VideoLogError("pHollICHandle is NULL");
+ return;
+ }
+
+ return;
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <image_util.h>
+
+#include "vp-play-type-define.h"
+#include "vp-play-string-define.h"
+#include "vp-play-value-define.h"
+#include "vp-play-macro-define.h"
+
+/* check temp */
+#include "vp-play-log.h"
+
+#include "vp-image-util.h"
+#include "vp-util.h"
+
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include <media_content.h>
+#include <metadata_extractor.h>
+
+
+#include "vp-play-type-define.h"
+#include "vp-play-value-define.h"
+#include "vp-play-macro-define.h"
+
+#include "vp-media-contents.h"
+
+/* check temp */
+#include "vp-play-log.h"
+#include "vp-file-util.h"
+
+
+static bool g_bMediaConnect = FALSE;
+static MediaUpdateCb g_media_update_cb = NULL;
+static media_content_noti_h noti_handle = NULL;
+
+/* callback functions */
+/**
+ *
+ * @param pMediaHandle
+ * @param pUserData
+ * @return
+ */
+static bool __vp_media_contents_info_cb(media_info_h pMediaHandle,
+ void *pUserData)
+{
+ media_info_h *pAssignItem = (media_info_h *) pUserData;
+
+ if (pMediaHandle != NULL) {
+ int nRet = MEDIA_CONTENT_ERROR_NONE;
+
+ nRet = media_info_clone(pAssignItem, pMediaHandle);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_info_clone is fail : 0x%x", nRet);
+ return FALSE;
+ }
+
+ char *szTmpStr = NULL;
+ nRet = media_info_get_display_name(*pAssignItem, &szTmpStr);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_info_get_display_name is fail : 0x%x",
+ nRet);
+ return FALSE;
+ }
+
+ VideoLogInfo("Display name : %s", szTmpStr);
+ VP_FREE(szTmpStr);
+ } else {
+ VideoLogError("pMeidaHandle is NULL");
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pBookmark
+ * @param pUserData
+ * @return
+ */
+static bool __vp_media_contents_bookmark_iter_cb(media_bookmark_h
+ pBookmark,
+ void *pUserData)
+{
+ if (pBookmark == NULL) {
+ VideoLogError("pBookmark is NULL");
+ return FALSE;
+ }
+
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return FALSE;
+ }
+
+ media_bookmark_h pAssignBookmark = NULL;
+ int nRet = MEDIA_CONTENT_ERROR_NONE;
+
+ nRet = media_bookmark_clone(&pAssignBookmark, pBookmark);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_bookmark_clone is fail : 0x%x", nRet);
+ return FALSE;
+ }
+ VideoLogWarning("== list append ==");
+
+ GList **pList = (GList **) pUserData;
+ *pList = g_list_append(*pList, pAssignBookmark);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pMediaInfo
+ * @param pUserData
+ * @return
+ */
+static bool __vp_media_contents_video_iter_cb(media_info_h pMediaInfo,
+ void *pUserData)
+{
+ if (pMediaInfo == NULL) {
+ VideoLogError("pMediaInfo is NULL");
+ return FALSE;
+ }
+
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return FALSE;
+ }
+
+ media_info_h pAssignMedia = NULL;
+ int nRet = MEDIA_CONTENT_ERROR_NONE;
+ media_content_type_e nMediaType = MEDIA_CONTENT_TYPE_OTHERS;
+
+ nRet = media_info_get_media_type(pMediaInfo, &nMediaType);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_info_get_media_type is fail : 0x%x", nRet);
+ return FALSE;
+ }
+
+ if (nMediaType == MEDIA_CONTENT_TYPE_VIDEO) {
+ nRet = media_info_clone(&pAssignMedia, pMediaInfo);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_info_clone is fail : 0x%x", nRet);
+ return FALSE;
+ }
+ GList **pList = (GList **) pUserData;
+ *pList = g_list_append(*pList, pAssignMedia);
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @return
+ */
+static int __vp_media_contents_get_pid(void)
+{
+ return getpid();
+}
+
+/**
+ *
+ * @param nError
+ * @param nPid
+ * @param nUpdateItem
+ * @param nUpdateType
+ * @param nMediaType
+ * @param szUuid
+ * @param szPath
+ * @param szMimeType
+ * @param pUserData
+ */
+static void __vp_media_contents_db_update_cb(media_content_error_e nError,
+ int nPid,
+ media_content_db_update_item_type_e
+ nUpdateItem,
+ media_content_db_update_type_e
+ nUpdateType,
+ media_content_type_e
+ nMediaType, char *szUuid,
+ char *szPath,
+ char *szMimeType,
+ void *pUserData)
+{
+ if (g_media_update_cb == NULL) {
+ VideoLogError("g_media_update_cb is NULL.");
+ return;
+ }
+
+ if (nError) {
+ VideoLogError("error occured! : %d", nError);
+ return;
+ }
+
+ if (nPid == __vp_media_contents_get_pid()) {
+ VideoLogError("It is same processor");
+ return;
+ }
+
+ g_media_update_cb(pUserData);
+}
+
+/**
+ *
+ * @param pFolderItem
+ * @param pUserData
+ * @return
+ */
+static bool __vp_media_contents_folder_iter_cb(media_folder_h pFolderItem,
+ void *pUserData)
+{
+ if (pFolderItem == NULL) {
+ VideoLogError("pFolderItem is NULL");
+ return FALSE;
+ }
+
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return FALSE;
+ }
+ media_folder_h *pAssignFolderItem = (media_folder_h *) pUserData;
+ if (pFolderItem != NULL) {
+ char *szTmpStr = NULL;
+ media_folder_clone(pAssignFolderItem, pFolderItem);
+ media_folder_get_name(*pAssignFolderItem, &szTmpStr);
+ VideoLogInfo("Folder name : %s", szTmpStr);
+
+ if (szTmpStr) {
+ free(szTmpStr);
+ }
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pMediaInfo
+ * @param pUserData
+ * @return
+ */
+static bool __vp_media_contents_subtitles_iter_cb(media_info_h pMediaInfo,
+ void *pUserData)
+{
+ if (pMediaInfo == NULL) {
+ VideoLogError("pMediaInfo is NULL");
+ return FALSE;
+ }
+
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return FALSE;
+ }
+
+ int nRet = MEDIA_CONTENT_ERROR_NONE;
+ char *pszFilePath = NULL;
+
+ nRet = media_info_get_file_path(pMediaInfo, &pszFilePath);
+
+ VideoSecureLogInfo("pszFilePath is: %s", pszFilePath);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_info_get_file_path is fail : 0x%x", nRet);
+ return FALSE;
+ }
+
+ GList **pList = (GList **) pUserData;
+ *pList = g_list_append(*pList, pszFilePath);
+
+ return TRUE;
+}
+
+/* external functions */
+/**
+ *
+ * @return
+ */
+bool vp_media_contents_connect()
+{
+ int nRet = MEDIA_CONTENT_ERROR_NONE;
+
+ if (g_bMediaConnect) {
+ return TRUE;
+ }
+
+ nRet = media_content_connect();
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_content_connect is fail : 0x%x", nRet);
+ return FALSE;
+ }
+
+ g_bMediaConnect = TRUE;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @return
+ */
+bool vp_media_contents_disconnect()
+{
+ int nRet = MEDIA_CONTENT_ERROR_NONE;
+
+ if (g_bMediaConnect == FALSE) {
+ VideoLogWarning("Already Media content disconnect");
+ return TRUE;
+ }
+
+ nRet = media_content_disconnect();
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_content_connect is fail : 0x%x", nRet);
+ return FALSE;
+ }
+
+ g_bMediaConnect = FALSE;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param szFilePath
+ * @param szVideoID
+ * @return
+ */
+bool vp_media_contents_get_video_id(const char *szFilePath,
+ char **szVideoID)
+{
+ if (szVideoID == NULL) {
+ VideoLogError("szVideoID is NULL");
+ return FALSE;
+ }
+
+ /* Initialize output value */
+ *szVideoID = NULL;
+
+ if (szFilePath == NULL) {
+ VideoLogError("szFilePath is NULL");
+ return FALSE;
+ }
+
+ vp_media_contents_connect();
+
+ media_info_h pMediaHandle = NULL;
+ filter_h pFilterHandle = NULL;
+
+ int nRet = MEDIA_CONTENT_ERROR_NONE;
+ char *szMediaID = NULL;
+
+ char szTmpStr[4096] = { 0, };
+ snprintf(szTmpStr, 4096,
+ "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1 OR MEDIA_STORAGE_TYPE=101) AND MEDIA_PATH = \"%s\"",
+ szFilePath);
+
+ nRet = media_filter_create(&pFilterHandle);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_filter_create is fail : 0x%x", nRet);
+ goto Exception;
+ }
+
+ if (pFilterHandle == NULL) {
+ VideoLogError("Filter handle is NULL");
+ goto Exception;
+ }
+
+ nRet =
+ media_filter_set_condition(pFilterHandle, szTmpStr,
+ MEDIA_CONTENT_COLLATE_DEFAULT);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_filter_set_condition is fail : 0x%x", nRet);
+ goto Exception;
+ }
+
+ nRet =
+ media_info_foreach_media_from_db(pFilterHandle,
+ __vp_media_contents_info_cb,
+ &pMediaHandle);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_info_foreach_media_from_db is fail : 0x%x",
+ nRet);
+ goto Exception;
+ }
+
+ if (pMediaHandle == NULL) {
+ VideoLogError("media info handle is NULL");
+ goto Exception;
+ }
+
+ nRet = media_info_get_media_id(pMediaHandle, &szMediaID);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_info_get_media_id is fail : 0x%x", nRet);
+ goto Exception;
+ }
+
+ nRet = media_filter_destroy(pFilterHandle);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_filter_destroy is fail : 0x%x", nRet);
+ goto Exception;
+ }
+
+ nRet = media_info_destroy(pMediaHandle);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_info_destroy is fail : 0x%x", nRet);
+ goto Exception;
+ }
+
+ VP_STRDUP(*szVideoID, szMediaID);
+ VP_FREE(szMediaID);
+
+ return TRUE;
+
+ Exception:
+
+ VP_FREE(szMediaID);
+ *szVideoID = NULL;
+
+ if (pFilterHandle) {
+ media_filter_destroy(pFilterHandle);
+ pFilterHandle = NULL;
+ }
+
+ if (pMediaHandle) {
+ media_info_destroy(pMediaHandle);
+ pMediaHandle = NULL;
+ }
+ return FALSE;
+}
+
+/**
+ *
+ * @param szFilePath
+ * @param szThumbnailPath
+ * @return
+ */
+bool vp_media_contents_get_video_thumbnail_path(const char *szFilePath,
+ char **szThumbnailPath)
+{
+ if (szFilePath == NULL) {
+ VideoLogError("szFilePath is NULL");
+ return FALSE;
+ }
+
+ vp_media_contents_connect();
+
+ media_info_h pMediaHandle = NULL;
+ filter_h pFilterHandle = NULL;
+
+ int nRet = MEDIA_CONTENT_ERROR_NONE;
+ char *szThumbnail = NULL;
+
+ char szTmpStr[4096] = { 0, };
+ snprintf(szTmpStr, 4096,
+ "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1 OR MEDIA_STORAGE_TYPE=101) AND MEDIA_PATH = \"%s\"",
+ szFilePath);
+
+ nRet = media_filter_create(&pFilterHandle);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_filter_create is fail : 0x%x", nRet);
+ goto Exception;
+ }
+
+ if (pFilterHandle == NULL) {
+ VideoLogError("Filter handle is NULL");
+ goto Exception;
+ }
+
+ nRet =
+ media_filter_set_condition(pFilterHandle, szTmpStr,
+ MEDIA_CONTENT_COLLATE_DEFAULT);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_filter_set_condition is fail : 0x%x", nRet);
+ goto Exception;
+ }
+
+ nRet =
+ media_info_foreach_media_from_db(pFilterHandle,
+ __vp_media_contents_info_cb,
+ &pMediaHandle);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_info_foreach_media_from_db is fail : 0x%x",
+ nRet);
+ goto Exception;
+ }
+
+ if (pMediaHandle == NULL) {
+ VideoLogError("media info handle is NULL");
+ goto Exception;
+ }
+
+ nRet = media_info_get_thumbnail_path(pMediaHandle, &szThumbnail);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_info_get_thumbnail_path is fail : 0x%x",
+ nRet);
+ goto Exception;
+ }
+
+ VP_STRDUP(*szThumbnailPath, szThumbnail);
+ VP_FREE(szThumbnail);
+
+ nRet = media_filter_destroy(pFilterHandle);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_filter_destroy is fail : 0x%x", nRet);
+ goto Exception;
+ }
+
+ nRet = media_info_destroy(pMediaHandle);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_info_destroy is fail : 0x%x", nRet);
+ goto Exception;
+ }
+
+ return TRUE;
+
+ Exception:
+
+ VP_FREE(szThumbnail);
+
+ if (pFilterHandle) {
+ media_filter_destroy(pFilterHandle);
+ pFilterHandle = NULL;
+ }
+
+ if (pMediaHandle) {
+ media_info_destroy(pMediaHandle);
+ pMediaHandle = NULL;
+ }
+ return FALSE;
+}
+
+/**
+ *
+ * @param szFilePath
+ * @return
+ */
+bool vp_media_contents_scan_file(const char *szFilePath)
+{
+ if (!szFilePath) {
+ VideoLogError("szFilePath is NULL.");
+ return FALSE;
+ }
+ media_content_scan_file(szFilePath);
+ return TRUE;
+}
+
+/**
+ *
+ * @param szMediaURL
+ * @return
+ */
+bool vp_media_contents_update_db(const char *szMediaURL)
+{
+ if (!szMediaURL) {
+ VideoLogError("No exist szMediaURL.");
+ return FALSE;
+ }
+
+ media_info_h info = NULL;
+ int nRet = MEDIA_CONTENT_ERROR_NONE;
+ nRet = media_info_insert_to_db(szMediaURL, &info);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_info_insert_to_db fail : %d", nRet);
+ if (info) {
+ media_info_destroy(info);
+ info = NULL;
+ }
+ return FALSE;
+ }
+
+ if (info) {
+ media_info_destroy(info);
+ info = NULL;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param szMediaID
+ * @return
+ */
+bool vp_media_contents_refresh_db(const char *szMediaID)
+{
+ if (!szMediaID) {
+ VideoLogError("No exist szMediaID.");
+ return FALSE;
+ }
+
+ /* int nRet = MEDIA_CONTENT_ERROR_NONE;
+ nRet = media_info_refresh_metadata_to_db(szMediaID); // Deprecated API, Parent function not called.
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_info_refresh_metadata_to_db fail : %d", nRet);
+ return FALSE;
+ } */
+ return TRUE;
+}
+
+/**
+ *
+ * @param pMediaHandle
+ * @param szLastModified
+ * @return
+ */
+int vp_media_contents_get_modified_time(media_info_h pMediaHandle,
+ char **szLastModified)
+{
+ if (!pMediaHandle) {
+ VideoLogInfo("pMediaHandle is NULL.");
+ return MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
+ }
+
+ VideoLogInfo("");
+
+ media_info_h pVideoItem = (media_info_h) pMediaHandle;
+ int nRet = MEDIA_CONTENT_ERROR_NONE;
+
+ time_t pModifiedTime;
+ struct tm sModifiedTime;
+ char szModifiedTime[BYTE_SIZE] = { 0, };
+
+ nRet = media_info_get_modified_time(pVideoItem, &pModifiedTime);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_info_get_modified_time failed : [%d]!!!",
+ nRet);
+ return nRet;
+ }
+
+ gmtime_r(&pModifiedTime, &sModifiedTime);
+ strftime(szModifiedTime, BYTE_SIZE - 1, "%d %b. %Y. %H:%M",
+ &sModifiedTime);
+ *szLastModified = g_strdup(szModifiedTime);
+
+ return nRet;
+}
+
+/**
+ *
+ * @param szFilePath
+ * @param szTitle
+ * @param nWidth
+ * @param nHeight
+ * @param nDuration
+ * @param dLatitude
+ * @param dLongitude
+ * @param szTmpLastModified
+ * @return
+ */
+bool vp_media_contents_get_content_info(const char *szFilePath,
+ char **szTitle, int *nWidth,
+ int *nHeight, int *nDuration,
+ double *dLatitude,
+ double *dLongitude,
+ char **szTmpLastModified)
+{
+ if (szFilePath == NULL) {
+ VideoLogError("szFilePath is NULL");
+ return FALSE;
+ }
+
+ vp_media_contents_connect();
+
+ media_info_h pMediaHandle = NULL;
+ filter_h pFilterHandle = NULL;
+ video_meta_h pVideoHandle = NULL;
+
+ int nRet = MEDIA_CONTENT_ERROR_NONE;
+
+ char szTmpStr[4096] = { 0, };
+ snprintf(szTmpStr, 4096,
+ "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1 OR MEDIA_STORAGE_TYPE=101) AND MEDIA_PATH = \"%s\"",
+ szFilePath);
+
+ nRet = media_filter_create(&pFilterHandle);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_filter_create is fail : 0x%x", nRet);
+ goto Exception;
+ }
+
+ if (pFilterHandle == NULL) {
+ VideoLogError("Filter handle is NULL");
+ goto Exception;
+ }
+
+ nRet =
+ media_filter_set_condition(pFilterHandle, szTmpStr,
+ MEDIA_CONTENT_COLLATE_DEFAULT);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_filter_set_condition is fail : 0x%x", nRet);
+ goto Exception;
+ }
+
+ nRet =
+ media_info_foreach_media_from_db(pFilterHandle,
+ __vp_media_contents_info_cb,
+ &pMediaHandle);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_info_foreach_media_from_db is fail : 0x%x",
+ nRet);
+ goto Exception;
+ }
+
+ if (pMediaHandle == NULL) {
+ VideoLogError("media info handle is NULL");
+ goto Exception;
+ }
+
+ nRet = media_info_get_display_name(pMediaHandle, szTitle);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_info_get_display_name is fail : 0x%x", nRet);
+ }
+
+ nRet = media_info_get_video(pMediaHandle, &pVideoHandle);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_info_get_video is fail : 0x%x", nRet);
+ goto Exception;
+ }
+
+ nRet =
+ vp_media_contents_get_modified_time(pMediaHandle,
+ szTmpLastModified);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_info_get_modified_time is fail : 0x%x", nRet);
+ goto Exception;
+ }
+
+ nRet = media_info_get_latitude(pMediaHandle, dLatitude);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_info_get_latitude is fail : 0x%x", nRet);
+ goto Exception;
+ }
+
+ nRet = media_info_get_longitude(pMediaHandle, dLongitude);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_info_get_longitude is fail : 0x%x", nRet);
+ goto Exception;
+ }
+
+ if (pVideoHandle == NULL) {
+ VideoLogError("media info handle is NULL");
+ goto Exception;
+ }
+
+ nRet = video_meta_get_width(pVideoHandle, nWidth);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("video_meta_get_width is fail : 0x%x", nRet);
+ goto Exception;
+ }
+
+ nRet = video_meta_get_height(pVideoHandle, nHeight);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("video_meta_get_height is fail : 0x%x", nRet);
+ goto Exception;
+ }
+
+ nRet = video_meta_get_duration(pVideoHandle, nDuration);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("video_meta_get_duration is fail : 0x%x", nRet);
+ goto Exception;
+ }
+
+ nRet = video_meta_destroy(pVideoHandle);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("video_meta_destroy is fail : 0x%x", nRet);
+ goto Exception;
+ }
+
+ nRet = media_info_destroy(pMediaHandle);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_info_destroy is fail : 0x%x", nRet);
+ goto Exception;
+ }
+
+ nRet = media_filter_destroy(pFilterHandle);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_filter_destroy is fail : 0x%x", nRet);
+ goto Exception;
+ }
+
+ return TRUE;
+
+ Exception:
+
+ if (pFilterHandle) {
+ media_filter_destroy(pFilterHandle);
+ pFilterHandle = NULL;
+ }
+
+ if (pMediaHandle) {
+ media_info_destroy(pMediaHandle);
+ pMediaHandle = NULL;
+ }
+
+ if (pVideoHandle) {
+ video_meta_destroy(pVideoHandle);
+ pVideoHandle = NULL;
+ }
+ return FALSE;
+}
+
+/**
+ *
+ * @param szFilePath
+ * @param dLatitude
+ * @param dLongitude
+ * @return
+ */
+bool vp_media_metadata_get_gps_info(const char *szFilePath,
+ double *dLatitude, double *dLongitude)
+{
+ if (szFilePath == NULL) {
+ VideoLogError("szFilePath is NULL");
+ return FALSE;
+ }
+
+ metadata_extractor_h pMetadata;
+ char *szVal = NULL;
+
+ int nRet = METADATA_EXTRACTOR_ERROR_NONE;
+
+ nRet = metadata_extractor_create(&pMetadata);
+ if (nRet != METADATA_EXTRACTOR_ERROR_NONE) {
+ VideoLogError("metadata_extractor_create is fail : 0x%x", nRet);
+ goto Exception;
+ }
+
+ nRet = metadata_extractor_set_path(pMetadata, szFilePath);
+ if (nRet != METADATA_EXTRACTOR_ERROR_NONE) {
+ VideoLogError("metadata_extractor_set_path is fail : 0x%x", nRet);
+ goto Exception;
+ }
+
+ nRet =
+ metadata_extractor_get_metadata(pMetadata, METADATA_LATITUDE,
+ &szVal);
+ if (nRet != METADATA_EXTRACTOR_ERROR_NONE) {
+ VideoLogError("metadata_extractor_get_metadata is fail : 0x%x",
+ nRet);
+ goto Exception;
+ }
+
+ if (szVal) {
+ *dLatitude = atof(szVal);
+ } else {
+ *dLatitude = 0.0;
+ }
+ VP_FREE(szVal);
+
+ nRet =
+ metadata_extractor_get_metadata(pMetadata, METADATA_LONGITUDE,
+ &szVal);
+ if (nRet != METADATA_EXTRACTOR_ERROR_NONE) {
+ VideoLogError("metadata_extractor_get_metadata is fail : 0x%x",
+ nRet);
+ goto Exception;
+ }
+
+ if (szVal) {
+ *dLongitude = atof(szVal);
+ } else {
+ *dLongitude = 0.0;
+ }
+
+ VP_FREE(szVal);
+
+ if (pMetadata) {
+ metadata_extractor_destroy(pMetadata);
+ pMetadata = NULL;
+ }
+
+ return TRUE;
+ Exception:
+
+ VP_FREE(szVal);
+
+ if (pMetadata) {
+ metadata_extractor_destroy(pMetadata);
+ pMetadata = NULL;
+ }
+
+ return FALSE;
+}
+
+/**
+ *
+ * @param szFilePath
+ * @param nDuration
+ * @return
+ */
+bool vp_media_metadata_get_duration(const char *szFilePath, int *nDuration)
+{
+ if (szFilePath == NULL) {
+ VideoLogError("szFilePath is NULL");
+ return FALSE;
+ }
+
+ metadata_extractor_h pMetadata;
+ char *szVal = NULL;
+
+ int nRet = METADATA_EXTRACTOR_ERROR_NONE;
+
+ nRet = metadata_extractor_create(&pMetadata);
+ if (nRet != METADATA_EXTRACTOR_ERROR_NONE) {
+ VideoLogError("metadata_extractor_create is fail : 0x%x", nRet);
+ goto Exception;
+ }
+
+ nRet = metadata_extractor_set_path(pMetadata, szFilePath);
+ if (nRet != METADATA_EXTRACTOR_ERROR_NONE) {
+ VideoLogError("metadata_extractor_set_path is fail : 0x%x", nRet);
+ goto Exception;
+ }
+
+ nRet =
+ metadata_extractor_get_metadata(pMetadata, METADATA_DURATION,
+ &szVal);
+ if (nRet != METADATA_EXTRACTOR_ERROR_NONE) {
+ VideoLogError("metadata_extractor_get_metadata is fail : 0x%x",
+ nRet);
+ goto Exception;
+ }
+
+ if (szVal) {
+ *nDuration = atoi(szVal);
+ } else {
+ *nDuration = 0.0;
+ }
+
+ VP_FREE(szVal);
+
+ if (pMetadata) {
+ metadata_extractor_destroy(pMetadata);
+ pMetadata = NULL;
+ }
+
+ return TRUE;
+ Exception:
+
+ VP_FREE(szVal);
+
+ if (pMetadata) {
+ metadata_extractor_destroy(pMetadata);
+ pMetadata = NULL;
+ }
+
+ return FALSE;
+
+}
+
+/**
+ *
+ * @param szFilePath
+ * @param nWidth
+ * @return
+ */
+bool vp_media_metadata_get_width(const char *szFilePath, int *nWidth)
+{
+ if (szFilePath == NULL) {
+ VideoLogError("szFilePath is NULL");
+ return FALSE;
+ }
+
+ metadata_extractor_h pMetadata;
+ char *szVal = NULL;
+
+ int nRet = METADATA_EXTRACTOR_ERROR_NONE;
+
+ nRet = metadata_extractor_create(&pMetadata);
+ if (nRet != METADATA_EXTRACTOR_ERROR_NONE) {
+ VideoLogError("metadata_extractor_create is fail : 0x%x", nRet);
+ goto Exception;
+ }
+
+ nRet = metadata_extractor_set_path(pMetadata, szFilePath);
+ if (nRet != METADATA_EXTRACTOR_ERROR_NONE) {
+ VideoLogError("metadata_extractor_set_path is fail : 0x%x", nRet);
+ goto Exception;
+ }
+
+ nRet =
+ metadata_extractor_get_metadata(pMetadata, METADATA_VIDEO_WIDTH,
+ &szVal);
+ if (nRet != METADATA_EXTRACTOR_ERROR_NONE) {
+ VideoLogError("metadata_extractor_get_metadata is fail : 0x%x",
+ nRet);
+ goto Exception;
+ }
+
+ if (szVal) {
+ *nWidth = atoi(szVal);
+ } else {
+ *nWidth = 0;
+ }
+
+ VP_FREE(szVal);
+
+ if (pMetadata) {
+ metadata_extractor_destroy(pMetadata);
+ pMetadata = NULL;
+ }
+
+ return TRUE;
+ Exception:
+
+ VP_FREE(szVal);
+
+ if (pMetadata) {
+ metadata_extractor_destroy(pMetadata);
+ pMetadata = NULL;
+ }
+
+ return FALSE;
+
+}
+
+/**
+ *
+ * @param szFilePath
+ * @param nHeight
+ * @return
+ */
+bool vp_media_metadata_get_height(const char *szFilePath, int *nHeight)
+{
+ if (szFilePath == NULL) {
+ VideoLogError("szFilePath is NULL");
+ return FALSE;
+ }
+
+ metadata_extractor_h pMetadata;
+ char *szVal = NULL;
+
+ int nRet = METADATA_EXTRACTOR_ERROR_NONE;
+
+ nRet = metadata_extractor_create(&pMetadata);
+ if (nRet != METADATA_EXTRACTOR_ERROR_NONE) {
+ VideoLogError("metadata_extractor_create is fail : 0x%x", nRet);
+ goto Exception;
+ }
+
+ nRet = metadata_extractor_set_path(pMetadata, szFilePath);
+ if (nRet != METADATA_EXTRACTOR_ERROR_NONE) {
+ VideoLogError("metadata_extractor_set_path is fail : 0x%x", nRet);
+ goto Exception;
+ }
+
+ nRet =
+ metadata_extractor_get_metadata(pMetadata, METADATA_VIDEO_HEIGHT,
+ &szVal);
+ if (nRet != METADATA_EXTRACTOR_ERROR_NONE) {
+ VideoLogError("metadata_extractor_get_metadata is fail : 0x%x",
+ nRet);
+ goto Exception;
+ }
+
+ if (szVal) {
+ *nHeight = atoi(szVal);
+ } else {
+ *nHeight = 0;
+ }
+
+ VP_FREE(szVal);
+
+ if (pMetadata) {
+ metadata_extractor_destroy(pMetadata);
+ pMetadata = NULL;
+ }
+
+ return TRUE;
+ Exception:
+
+ VP_FREE(szVal);
+
+ if (pMetadata) {
+ metadata_extractor_destroy(pMetadata);
+ pMetadata = NULL;
+ }
+
+ return FALSE;
+
+}
+
+/**
+ *
+ * @param szMediaID
+ * @param list
+ * @return
+ */
+bool vp_media_contents_bookmark_list_get(const char *szMediaID,
+ GList ** list)
+{
+ if (!szMediaID) {
+ VideoLogError("No exist szMediaID.");
+ return FALSE;
+ }
+
+ if (!list) {
+ VideoLogError("No exist list.");
+ return FALSE;
+ }
+
+ vp_media_contents_connect();
+
+ filter_h pFilterHandle = NULL;
+ int nRet = MEDIA_CONTENT_ERROR_NONE;
+
+ nRet = media_filter_create(&pFilterHandle);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_filter_create is fail : 0x%x", nRet);
+ goto Exception;
+ }
+
+ if (pFilterHandle == NULL) {
+ VideoLogError("pFilterHandle is NULL");
+ goto Exception;
+ }
+
+ nRet =
+ media_filter_set_order(pFilterHandle, MEDIA_CONTENT_ORDER_ASC,
+ BOOKMARK_MARKED_TIME,
+ MEDIA_CONTENT_COLLATE_DEFAULT);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_filter_set_order is fail : 0x%x", nRet);
+ goto Exception;
+ }
+
+ nRet =
+ media_info_foreach_bookmark_from_db(szMediaID, pFilterHandle,
+ __vp_media_contents_bookmark_iter_cb,
+ list);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError
+ ("media_info_foreach_bookmark_from_db is fail : 0x%x", nRet);
+ goto Exception;
+ }
+
+
+ nRet = media_filter_destroy(pFilterHandle);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_filter_destroy is fail : 0x%x", nRet);
+ return FALSE;
+ }
+
+ return TRUE;
+
+ Exception:
+
+ if (pFilterHandle) {
+ media_filter_destroy(pFilterHandle);
+ pFilterHandle = NULL;
+ }
+
+ return FALSE;
+}
+
+/**
+ *
+ * @param pList
+ * @return
+ */
+bool vp_media_contents_bookmark_list_clear(GList * pList)
+{
+ VideoLogInfo("");
+
+ if (pList == NULL) {
+ VideoLogError("list is NULL");
+ return FALSE;
+ }
+
+ int nCount = 0;
+ int i = 0;
+
+ nCount = g_list_length(pList);
+ for (i = 0; i < nCount; i++) {
+ media_bookmark_h pBookmarkItem = NULL;
+ pBookmarkItem = (media_bookmark_h) g_list_nth_data(pList, i);
+ if (pBookmarkItem) {
+ media_bookmark_destroy(pBookmarkItem);
+ pBookmarkItem = NULL;
+ }
+ }
+
+ g_list_free(pList);
+ pList = NULL;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param szMediaID
+ * @param nPosition
+ * @param szFilePath
+ * @return
+ */
+bool vp_media_contents_bookmark_insert(const char *szMediaID,
+ int nPosition,
+ const char *szFilePath)
+{
+
+ if (szMediaID == NULL) {
+ VideoLogError("szMediaID is NULL");
+ return FALSE;
+ }
+
+ if (szFilePath == NULL) {
+ VideoLogError("szFilePath is NULL");
+ return FALSE;
+ }
+
+ if (nPosition < 0) {
+ VideoLogError("nPosition is Invalid");
+ return FALSE;
+ }
+
+ vp_media_contents_connect();
+
+ if (!vp_file_exists(szFilePath)) {
+ VideoLogError("(%s) file doesnot exist", szFilePath);
+ return FALSE;
+ }
+
+ int nRet = MEDIA_CONTENT_ERROR_NONE;
+ nRet = media_bookmark_insert_to_db(szMediaID, nPosition, szFilePath);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_bookmark_insert_to_db is fail : 0x%x", nRet);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param szMediaID
+ * @param nPosition
+ * @return
+ */
+bool vp_media_contents_bookmark_delete(const char *szMediaID,
+ int nPosition)
+{
+ if (szMediaID == NULL) {
+ VideoLogError("szMediaID is NULL");
+ return FALSE;
+ }
+
+ if (nPosition < 0) {
+ VideoLogError("nPosition is Invalid");
+ return FALSE;
+ }
+
+ GList *list = NULL;
+ int nRet = MEDIA_CONTENT_ERROR_NONE;
+ int nCount = 0;
+ int idx = 0;
+ int nDeleteBookmarkID = -1;
+ char *szDeletePath = NULL;
+
+ if (!vp_media_contents_bookmark_list_get(szMediaID, &list)) {
+ VideoLogError("vp_media_contents_bookmark_list_get is fail");
+ return FALSE;
+ }
+
+ nCount = g_list_length(list);
+ for (idx = 0; idx < nCount; idx++) {
+ media_bookmark_h pBookmarkItem = NULL;
+ pBookmarkItem = (media_bookmark_h) g_list_nth_data(list, idx);
+ if (pBookmarkItem) {
+ time_t nMarkedTime;
+ nRet =
+ media_bookmark_get_marked_time(pBookmarkItem,
+ &nMarkedTime);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogWarning
+ ("media_bookmark_get_marked_time is fail : 0x%x",
+ nRet);
+ continue;
+ }
+
+ if (nPosition == nMarkedTime) {
+ nRet =
+ media_bookmark_get_bookmark_id(pBookmarkItem,
+ &nDeleteBookmarkID);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogWarning
+ ("media_bookmark_get_bookmark_id is fail : 0x%x",
+ nRet);
+ continue;
+ }
+
+ nRet =
+ media_bookmark_get_thumbnail_path(pBookmarkItem,
+ &szDeletePath);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogWarning
+ ("media_bookmark_get_thumbnail_path is fail : 0x%x",
+ nRet);
+ continue;
+ }
+ break;
+ }
+ }
+ }
+
+ vp_media_contents_bookmark_list_clear(list);
+ list = NULL;
+
+ if (nDeleteBookmarkID == -1 || szDeletePath == NULL) {
+ VideoLogError("Not match item : %d , %s", nDeleteBookmarkID,
+ szDeletePath);
+ VP_FREE(szDeletePath);
+ return FALSE;
+ }
+
+ nRet = media_bookmark_delete_from_db(nDeleteBookmarkID);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_bookmark_delete_from_db is fail : 0x%x",
+ nRet);
+ VP_FREE(szDeletePath);
+ return FALSE;
+ }
+
+
+ if (vp_file_exists(szDeletePath)) {
+ if (!vp_file_unlink(szDeletePath)) {
+ VideoLogWarning("Remove Failed :%s", szDeletePath);
+ }
+ } else {
+ VideoLogWarning("%s doesnot exist", szDeletePath);
+ }
+
+ VP_FREE(szDeletePath);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param szMediaID
+ * @return
+ */
+bool vp_media_contents_bookmark_delete_all(const char *szMediaID)
+{
+ if (szMediaID == NULL) {
+ VideoLogError("szMediaID is NULL");
+ return FALSE;
+ }
+
+ GList *list = NULL;
+ int nRet = MEDIA_CONTENT_ERROR_NONE;
+ int nCount = 0;
+ int idx = 0;
+
+ if (!vp_media_contents_bookmark_list_get(szMediaID, &list)) {
+ VideoLogError("vp_media_contents_bookmark_list_get is fail");
+ return FALSE;
+ }
+
+ nCount = g_list_length(list);
+ for (idx = 0; idx < nCount; idx++) {
+ media_bookmark_h pBookmarkItem = NULL;
+ int nDeleteBookmarkID = -1;
+ char *szDeletePath = NULL;
+
+ pBookmarkItem = (media_bookmark_h) g_list_nth_data(list, idx);
+ if (pBookmarkItem) {
+ nRet =
+ media_bookmark_get_bookmark_id(pBookmarkItem,
+ &nDeleteBookmarkID);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogWarning
+ ("media_bookmark_get_bookmark_id is fail : 0x%x",
+ nRet);
+ }
+
+ nRet =
+ media_bookmark_get_thumbnail_path(pBookmarkItem,
+ &szDeletePath);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogWarning
+ ("media_bookmark_get_thumbnail_path is fail : 0x%x",
+ nRet);
+ }
+
+ nRet = media_bookmark_delete_from_db(nDeleteBookmarkID);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError
+ ("media_bookmark_delete_from_db is fail : 0x%x", nRet);
+ }
+
+
+ if (vp_file_exists(szDeletePath)) {
+ if (!vp_file_unlink(szDeletePath)) {
+ VideoLogWarning("Remove Failed :%s", szDeletePath);
+ }
+ } else {
+ VideoLogWarning("The file not eixst :%s", szDeletePath);
+ }
+
+ VP_FREE(szDeletePath);
+ }
+ }
+
+ vp_media_contents_bookmark_list_clear(list);
+ list = NULL;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pItem
+ * @param szFilePath
+ * @param nPosition
+ * @return
+ */
+bool vp_media_contents_bookmark_get_item_info(void *pItem,
+ char **szFilePath,
+ int *nPosition)
+{
+ if (pItem == NULL) {
+ VideoLogError("szMediaID is NULL");
+ return FALSE;
+ }
+
+ media_bookmark_h bookmark_h = (media_bookmark_h) pItem;
+ int nRet = MEDIA_CONTENT_ERROR_NONE;
+
+ nRet =
+ media_bookmark_get_marked_time(bookmark_h, (time_t *) nPosition);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_bookmark_get_marked_time is fail : 0x%x",
+ nRet);
+ return FALSE;
+ }
+
+ nRet = media_bookmark_get_thumbnail_path(bookmark_h, szFilePath);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_bookmark_get_thumbnail_path is fail : 0x%x",
+ nRet);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param nSortType
+ * @param szFolder
+ * @param pList
+ * @return
+ */
+bool vp_media_contents_get_video_items_to_folder(int nSortType,
+ char *szFolder,
+ GList ** pList)
+{
+ if (szFolder == NULL) {
+ VideoLogError("szFolder is NULL");
+ return FALSE;
+ }
+
+ vp_media_contents_connect();
+
+ filter_h pFilterHandle = NULL;
+ media_folder_h pFolderHandle = NULL;
+
+ int nRet = MEDIA_CONTENT_ERROR_NONE;
+ video_play_sort_type_t nType = (video_play_sort_type_t) nSortType;
+ media_content_order_e nOrderType = MEDIA_CONTENT_ORDER_ASC;
+
+ char *szOrder = NULL;
+ char *szCondition = NULL;
+ char *szFolderID = NULL;
+
+ nRet = media_filter_create(&pFilterHandle);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_filter_create is fail : 0x%x", nRet);
+ goto Exception;
+ }
+
+ if (pFilterHandle == NULL) {
+ VideoLogError("pFilterHandle is NULL");
+ goto Exception;
+ }
+
+
+ switch (nType) {
+ case VIDEO_SORT_BY_NONE:
+ case VIDEO_SORT_BY_NAME_A_Z:
+ nOrderType = MEDIA_CONTENT_ORDER_ASC;
+ VP_STRDUP(szOrder, MEDIA_TITLE);
+ break;
+
+ case VIDEO_SORT_BY_NAME_Z_A:
+ nOrderType = MEDIA_CONTENT_ORDER_DESC;
+ VP_STRDUP(szOrder, MEDIA_TITLE);
+ break;
+
+ case VIDEO_SORT_BY_DATE_MOST_RECENT:
+ nOrderType = MEDIA_CONTENT_ORDER_DESC;
+ VP_STRDUP(szOrder, MEDIA_MODIFIED_TIME);
+ break;
+
+ case VIDEO_SORT_BY_OLDEST:
+ nOrderType = MEDIA_CONTENT_ORDER_ASC;
+ VP_STRDUP(szOrder, MEDIA_MODIFIED_TIME);
+ break;
+
+ default:
+ nOrderType = MEDIA_CONTENT_ORDER_ASC;
+ VP_STRDUP(szOrder, MEDIA_TITLE);
+ }
+
+ szCondition =
+ g_strdup_printf
+ ("MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE IS NOT 101) and FOLDER_PATH = \"%s\"",
+ szFolder);
+ nRet =
+ media_filter_set_condition(pFilterHandle, szCondition,
+ MEDIA_CONTENT_COLLATE_DEFAULT);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_filter_set_condition is fail : 0x%x", nRet);
+ goto Exception;
+ }
+
+ nRet =
+ media_folder_foreach_folder_from_db(pFilterHandle,
+ __vp_media_contents_folder_iter_cb,
+ &pFolderHandle);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError
+ ("media_folder_foreach_folder_from_db is fail : 0x%x", nRet);
+ goto Exception;
+ }
+
+ if (pFolderHandle == NULL) {
+ VideoLogError("pFolderHandle is NULL");
+ goto Exception;
+ }
+
+ nRet = media_folder_get_folder_id(pFolderHandle, &szFolderID);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_folder_get_folder_id is fail : 0x%x", nRet);
+ goto Exception;
+ }
+
+ VP_FREE(szCondition);
+
+ szCondition = g_strdup_printf("MEDIA_TYPE = 1");
+ nRet =
+ media_filter_set_condition(pFilterHandle, szCondition,
+ MEDIA_CONTENT_COLLATE_DEFAULT);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_filter_set_condition is fail : 0x%x", nRet);
+ goto Exception;
+ }
+
+ nRet =
+ media_filter_set_order(pFilterHandle, nOrderType, szOrder,
+ MEDIA_CONTENT_COLLATE_NOCASE);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_filter_set_order is fail : 0x%x", nRet);
+ goto Exception;
+ }
+
+ nRet =
+ media_folder_foreach_media_from_db(szFolderID, pFilterHandle,
+ __vp_media_contents_video_iter_cb,
+ pList);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_info_foreach_media_from_db is fail : 0x%x",
+ nRet);
+ goto Exception;
+ }
+
+ nRet = media_filter_destroy(pFilterHandle);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_filter_destroy is fail : 0x%x", nRet);
+ goto Exception;
+ }
+
+ VP_FREE(szFolderID);
+ VP_FREE(szCondition);
+ VP_FREE(szOrder);
+
+ return TRUE;
+
+ Exception:
+
+ VP_FREE(szFolderID);
+ VP_FREE(szCondition);
+ VP_FREE(szOrder);
+
+ if (pFilterHandle) {
+ media_filter_destroy(pFilterHandle);
+ pFilterHandle = NULL;
+ }
+
+ return FALSE;
+}
+
+/**
+ *
+ * @param nSortType
+ * @param pList
+ * @return
+ */
+bool vp_media_contents_get_video_items(int nSortType, GList ** pList)
+{
+ vp_media_contents_connect();
+
+ filter_h pFilterHandle = NULL;
+
+ int nRet = MEDIA_CONTENT_ERROR_NONE;
+ video_play_sort_type_t nType = (video_play_sort_type_t) nSortType;
+ media_content_order_e nOrderType = MEDIA_CONTENT_ORDER_ASC;
+ char *szOrder = NULL;
+ char *szCondition = NULL;
+
+ nRet = media_filter_create(&pFilterHandle);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_filter_create is fail : 0x%x", nRet);
+ goto Exception;
+ }
+
+ if (pFilterHandle == NULL) {
+ VideoLogError("pFilterHandle is NULL");
+ goto Exception;
+ }
+ switch (nType) {
+ case VIDEO_SORT_BY_NONE:
+ case VIDEO_SORT_BY_NAME_A_Z:
+ nOrderType = MEDIA_CONTENT_ORDER_ASC;
+ VP_STRDUP(szOrder, MEDIA_TITLE);
+ break;
+
+ case VIDEO_SORT_BY_NAME_Z_A:
+ nOrderType = MEDIA_CONTENT_ORDER_DESC;
+ VP_STRDUP(szOrder, MEDIA_TITLE);
+ break;
+
+ case VIDEO_SORT_BY_DATE_MOST_RECENT:
+ nOrderType = MEDIA_CONTENT_ORDER_DESC;
+ VP_STRDUP(szOrder, MEDIA_MODIFIED_TIME);
+ break;
+
+ case VIDEO_SORT_BY_OLDEST:
+ nOrderType = MEDIA_CONTENT_ORDER_ASC;
+ VP_STRDUP(szOrder, MEDIA_MODIFIED_TIME);
+ break;
+
+ default:
+ nOrderType = MEDIA_CONTENT_ORDER_ASC;
+ VP_STRDUP(szOrder, MEDIA_TITLE);
+ }
+
+ szCondition =
+ g_strdup_printf
+ ("MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE IS NOT 101)");
+
+ nRet =
+ media_filter_set_condition(pFilterHandle, szCondition,
+ MEDIA_CONTENT_COLLATE_DEFAULT);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_filter_set_condition is fail : 0x%x", nRet);
+ goto Exception;
+ }
+
+ nRet =
+ media_filter_set_order(pFilterHandle, nOrderType, szOrder,
+ MEDIA_CONTENT_COLLATE_NOCASE);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_filter_set_order is fail : 0x%x", nRet);
+ goto Exception;
+ }
+
+ nRet =
+ media_info_foreach_media_from_db(pFilterHandle,
+ __vp_media_contents_video_iter_cb,
+ pList);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_info_foreach_media_from_db is fail : 0x%x",
+ nRet);
+ goto Exception;
+ }
+
+ nRet = media_filter_destroy(pFilterHandle);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_filter_destroy is fail : 0x%x", nRet);
+ VP_FREE(szCondition);
+ VP_FREE(szOrder);
+ return FALSE;
+ }
+
+ VP_FREE(szCondition);
+ VP_FREE(szOrder);
+
+ return TRUE;
+
+ Exception:
+ VP_FREE(szCondition);
+ VP_FREE(szOrder);
+
+ if (pFilterHandle) {
+ media_filter_destroy(pFilterHandle);
+ pFilterHandle = NULL;
+ }
+
+ return FALSE;
+}
+
+/**
+ *
+ * @param pList
+ * @return
+ */
+bool vp_media_contents_free_video_items(GList * pList)
+{
+ VideoLogInfo("");
+
+ if (pList == NULL) {
+ VideoLogError("list is NULL");
+ return FALSE;
+ }
+
+ int nCount = 0;
+ int i = 0;
+
+ nCount = g_list_length(pList);
+ for (i = 0; i < nCount; i++) {
+ media_info_h pMediaItem = NULL;
+ pMediaItem = (media_info_h) g_list_nth_data(pList, i);
+ if (pMediaItem) {
+ media_info_destroy(pMediaItem);
+ pMediaItem = NULL;
+ }
+ }
+
+ g_list_free(pList);
+ pList = NULL;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param szMediaURL
+ * @param szNextURL
+ * @param bLoop
+ * @param pList
+ * @return
+ */
+bool vp_media_contents_get_next_file_path(const char *szMediaURL,
+ char **szNextURL, bool bLoop,
+ GList * pList)
+{
+ if (!szMediaURL) {
+ VideoLogError("No exist szMediaID.");
+ return FALSE;
+ }
+
+ if (pList == NULL) {
+ VideoLogError("list is NULL");
+ return FALSE;
+ }
+
+ int nCount = 0;
+ int i = 0;
+
+ media_info_h pFirstMediaItem = NULL;
+ bool bCheck = FALSE;
+
+ nCount = g_list_length(pList);
+ for (i = 0; i < nCount; i++) {
+ media_info_h pMediaItem = NULL;
+ pMediaItem = (media_info_h) g_list_nth_data(pList, i);
+ if (pMediaItem == NULL) {
+ continue;
+ }
+
+ if (pFirstMediaItem == NULL) {
+ pFirstMediaItem = pMediaItem;
+ }
+
+ char *szPath = NULL;
+ int nRet = MEDIA_CONTENT_ERROR_NONE;
+ nRet = media_info_get_file_path(pMediaItem, &szPath);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogWarning("media_info_get_file_path is fail : 0x%x",
+ nRet);
+ continue;
+ }
+
+ if (szPath) {
+
+ if (bCheck) {
+ VP_STRDUP(*szNextURL, szPath);
+ VP_FREE(szPath);
+ return TRUE;
+ }
+
+ if (!strcmp(szMediaURL, szPath)) {
+ bCheck = TRUE;
+ }
+
+ VP_FREE(szPath);
+ }
+ }
+
+ if (bLoop) {
+ if (pFirstMediaItem) {
+ char *szPath = NULL;
+ media_info_get_file_path(pFirstMediaItem, &szPath);
+ if (szPath) {
+ VP_STRDUP(*szNextURL, szPath);
+ VP_FREE(szPath);
+ }
+ }
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param szMediaURL
+ * @param szPrevURL
+ * @param bLoop
+ * @param pList
+ * @return
+ */
+bool vp_media_contents_get_prev_file_path(const char *szMediaURL,
+ char **szPrevURL, bool bLoop,
+ GList * pList)
+{
+ if (!szMediaURL) {
+ VideoLogError("No exist szMediaID.");
+ return FALSE;
+ }
+
+ if (pList == NULL) {
+ VideoLogError("list is NULL");
+ return FALSE;
+ }
+
+ int nCount = 0;
+ int i = 0;
+
+ media_info_h pLastMediaItem = NULL;
+ bool bCheck = FALSE;
+
+ nCount = g_list_length(pList);
+ for (i = nCount - 1; i >= 0; i--) {
+ VideoLogWarning("-- %d --", i);
+ media_info_h pMediaItem = NULL;
+ pMediaItem = (media_info_h) g_list_nth_data(pList, i);
+ if (pMediaItem == NULL) {
+ continue;
+ }
+
+ if (pLastMediaItem == NULL) {
+ pLastMediaItem = pMediaItem;
+ }
+
+ char *szPath = NULL;
+ int nRet = MEDIA_CONTENT_ERROR_NONE;
+ nRet = media_info_get_file_path(pMediaItem, &szPath);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogWarning("media_info_get_file_path is fail : 0x%x",
+ nRet);
+ continue;
+ }
+ if (szPath) {
+
+ if (bCheck) {
+ VP_STRDUP(*szPrevURL, szPath);
+ VP_FREE(szPath);
+ return TRUE;
+ }
+
+ if (!strcmp(szMediaURL, szPath)) {
+ bCheck = TRUE;
+ }
+
+ VP_FREE(szPath);
+ }
+ }
+
+ if (bLoop) {
+ if (pLastMediaItem) {
+ char *szPath = NULL;
+ media_info_get_file_path(pLastMediaItem, &szPath);
+ if (szPath) {
+ VP_STRDUP(*szPrevURL, szPath);
+ VP_FREE(szPath);
+ }
+ }
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pFunc
+ * @param pUserData
+ * @return
+ */
+bool vp_media_contents_set_update_cb(MediaUpdateCb pFunc, void *pUserData)
+{
+ if (pFunc == NULL) {
+ return FALSE;
+ }
+
+ int nRet = MEDIA_CONTENT_ERROR_NONE;
+
+ g_media_update_cb = pFunc;
+
+ nRet = media_content_add_db_updated_cb((void *)
+ __vp_media_contents_db_update_cb,
+ pUserData, ¬i_handle);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogWarning("media_content_add_db_updated_cb is fail : 0x%x",
+ nRet);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ */
+void vp_media_contents_unset_update_cb()
+{
+ g_media_update_cb = NULL;
+ if (media_content_remove_db_updated_cb(noti_handle) !=
+ MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("Fail to media_content_remove_db_updated_cb.");
+ }
+}
+
+/**
+ *
+ * @param szFilePath
+ * @param bCloud
+ * @return
+ */
+bool vp_media_contents_get_cloud_attribute(const char *szFilePath,
+ bool * bCloud)
+{
+
+ if (szFilePath == NULL) {
+ VideoLogError("szFilePath is NULL");
+ return FALSE;
+ }
+
+ vp_media_contents_connect();
+
+ media_info_h pMediaHandle = NULL;
+ filter_h pFilterHandle = NULL;
+
+ int nRet = MEDIA_CONTENT_ERROR_NONE;
+
+ char szTmpStr[4096] = { 0, };
+ snprintf(szTmpStr, 4096,
+ "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1 OR MEDIA_STORAGE_TYPE=101) AND MEDIA_PATH = \"%s\"",
+ szFilePath);
+
+ nRet = media_filter_create(&pFilterHandle);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_filter_create is fail : 0x%x", nRet);
+ goto Exception;
+ }
+
+ if (pFilterHandle == NULL) {
+ VideoLogError("Filter handle is NULL");
+ goto Exception;
+ }
+
+ nRet =
+ media_filter_set_condition(pFilterHandle, szTmpStr,
+ MEDIA_CONTENT_COLLATE_DEFAULT);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_filter_set_condition is fail : 0x%x", nRet);
+ goto Exception;
+ }
+
+ nRet =
+ media_info_foreach_media_from_db(pFilterHandle,
+ __vp_media_contents_info_cb,
+ &pMediaHandle);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_info_foreach_media_from_db is fail : 0x%x",
+ nRet);
+ goto Exception;
+ }
+
+ if (pMediaHandle == NULL) {
+ VideoLogError("media info handle is NULL");
+ goto Exception;
+ }
+
+ nRet = media_filter_destroy(pFilterHandle);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_filter_destroy is fail : 0x%x", nRet);
+ goto Exception;
+ }
+
+ nRet = media_info_destroy(pMediaHandle);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_info_destroy is fail : 0x%x", nRet);
+ goto Exception;
+ }
+
+ return TRUE;
+
+ Exception:
+
+ if (pFilterHandle) {
+ media_filter_destroy(pFilterHandle);
+ pFilterHandle = NULL;
+ }
+
+ if (pMediaHandle) {
+ media_info_destroy(pMediaHandle);
+ pMediaHandle = NULL;
+ }
+ return FALSE;
+}
+
+/**
+ *
+ * @param szFilePath
+ * @param pLocation
+ * @return
+ */
+bool vp_media_contents_set_location_tag(const char *szFilePath,
+ const char *pLocation)
+{
+ if (szFilePath == NULL || pLocation == NULL) {
+ VideoLogError("szFilePath or city is NULL");
+ return FALSE;
+ }
+
+ vp_media_contents_connect();
+
+ media_info_h pMediaHandle = NULL;
+ filter_h pFilterHandle = NULL;
+
+ int nRet = MEDIA_CONTENT_ERROR_NONE;
+
+ char szTmpStr[4096] = { 0, };
+ snprintf(szTmpStr, 4096,
+ "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1 OR MEDIA_STORAGE_TYPE=101) AND MEDIA_PATH = \"%s\"",
+ szFilePath);
+
+ nRet = media_filter_create(&pFilterHandle);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_filter_create is fail : 0x%x", nRet);
+ goto Exception;
+ }
+
+ if (pFilterHandle == NULL) {
+ VideoLogError("Filter handle is NULL");
+ goto Exception;
+ }
+
+ nRet =
+ media_filter_set_condition(pFilterHandle, szTmpStr,
+ MEDIA_CONTENT_COLLATE_DEFAULT);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_filter_set_condition is fail : 0x%x", nRet);
+ goto Exception;
+ }
+
+ nRet =
+ media_info_foreach_media_from_db(pFilterHandle,
+ __vp_media_contents_info_cb,
+ &pMediaHandle);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_info_foreach_media_from_db is fail : 0x%x",
+ nRet);
+ goto Exception;
+ }
+
+ if (pMediaHandle == NULL) {
+ VideoLogError("media info handle is NULL");
+ goto Exception;
+ }
+
+ /* nRet = media_info_set_location_tag(pMediaHandle, pLocation); // Deprecated API, Parent function not called.
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_info_set_location_tag is fail : 0x%x", nRet);
+ goto Exception;
+ } */
+
+ nRet = media_info_update_to_db(pMediaHandle);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("Failed to update media db!");
+ goto Exception;
+ }
+
+ nRet = media_filter_destroy(pFilterHandle);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_filter_destroy is fail : 0x%x", nRet);
+ goto Exception;
+ }
+
+ nRet = media_info_destroy(pMediaHandle);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_info_destroy is fail : 0x%x", nRet);
+ goto Exception;
+ }
+
+ return TRUE;
+
+ Exception:
+
+ if (pFilterHandle) {
+ media_filter_destroy(pFilterHandle);
+ pFilterHandle = NULL;
+ }
+
+ if (pMediaHandle) {
+ media_info_destroy(pMediaHandle);
+ pMediaHandle = NULL;
+ }
+ return FALSE;
+}
+
+/**
+ *
+ * @param szFilePath
+ * @param szLocationTag
+ * @return
+ */
+bool vp_media_contents_get_location_tag(const char *szFilePath,
+ char **szLocationTag)
+{
+ if (szFilePath == NULL) {
+ VideoLogError("szFilePath is NULL");
+ return FALSE;
+ }
+
+ vp_media_contents_connect();
+
+ media_info_h pMediaHandle = NULL;
+ filter_h pFilterHandle = NULL;
+
+ int nRet = MEDIA_CONTENT_ERROR_NONE;
+ char *szLocation = NULL;
+
+ char szTmpStr[4096] = { 0, };
+ snprintf(szTmpStr, 4096,
+ "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1 OR MEDIA_STORAGE_TYPE=101) AND MEDIA_PATH = \"%s\"",
+ szFilePath);
+
+ nRet = media_filter_create(&pFilterHandle);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_filter_create is fail : 0x%x", nRet);
+ goto Exception;
+ }
+
+ if (pFilterHandle == NULL) {
+ VideoLogError("Filter handle is NULL");
+ goto Exception;
+ }
+
+ nRet =
+ media_filter_set_condition(pFilterHandle, szTmpStr,
+ MEDIA_CONTENT_COLLATE_DEFAULT);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_filter_set_condition is fail : 0x%x", nRet);
+ goto Exception;
+ }
+
+ nRet =
+ media_info_foreach_media_from_db(pFilterHandle,
+ __vp_media_contents_info_cb,
+ &pMediaHandle);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError
+ ("media_info_foreach_media_from_dbmedia_filter_set_condition is fail : 0x%x",
+ nRet);
+ goto Exception;
+ }
+
+ if (pMediaHandle == NULL) {
+ VideoLogError("media info handle is NULL");
+ goto Exception;
+ }
+
+ /* nRet = media_info_get_location_tag(pMediaHandle, &szLocation); // Deprecated API, Parent function not called.
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_info_get_location_tag is fail : 0x%x", nRet);
+ goto Exception;
+ } */
+
+ VP_STRDUP(*szLocationTag, szLocation);
+ VP_FREE(szLocation);
+
+ nRet = media_filter_destroy(pFilterHandle);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_filter_destroy is fail : 0x%x", nRet);
+ goto Exception;
+ }
+
+ nRet = media_info_destroy(pMediaHandle);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_info_destroy is fail : 0x%x", nRet);
+ goto Exception;
+ }
+
+ return TRUE;
+
+ Exception:
+
+ VP_FREE(szLocation);
+
+ if (pFilterHandle) {
+ media_filter_destroy(pFilterHandle);
+ pFilterHandle = NULL;
+ }
+
+ if (pMediaHandle) {
+ media_info_destroy(pMediaHandle);
+ pMediaHandle = NULL;
+ }
+ return FALSE;
+}
+
+/**
+ *
+ * @param szFilePath
+ * @param pWeather
+ * @return
+ */
+bool vp_media_contents_set_weahter_tag(const char *szFilePath,
+ const char *pWeather)
+{
+ if (szFilePath == NULL || pWeather == NULL) {
+ VideoLogError("szFilePath or pWeather is NULL");
+ return FALSE;
+ }
+
+ vp_media_contents_connect();
+
+ media_info_h pMediaHandle = NULL;
+ filter_h pFilterHandle = NULL;
+
+ int nRet = MEDIA_CONTENT_ERROR_NONE;
+
+ char szTmpStr[4096] = { 0, };
+ snprintf(szTmpStr, 4096,
+ "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1 OR MEDIA_STORAGE_TYPE=101) AND MEDIA_PATH = \"%s\"",
+ szFilePath);
+
+ nRet = media_filter_create(&pFilterHandle);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_filter_create is fail : 0x%x", nRet);
+ goto Exception;
+ }
+
+ if (pFilterHandle == NULL) {
+ VideoLogError("Filter handle is NULL");
+ goto Exception;
+ }
+
+ nRet =
+ media_filter_set_condition(pFilterHandle, szTmpStr,
+ MEDIA_CONTENT_COLLATE_DEFAULT);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_filter_set_condition is fail : 0x%x", nRet);
+ goto Exception;
+ }
+
+ nRet =
+ media_info_foreach_media_from_db(pFilterHandle,
+ __vp_media_contents_info_cb,
+ &pMediaHandle);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_info_foreach_media_from_db is fail : 0x%x",
+ nRet);
+ goto Exception;
+ }
+
+ if (pMediaHandle == NULL) {
+ VideoLogError("media info handle is NULL");
+ goto Exception;
+ }
+
+ /* nRet = media_info_set_weather(pMediaHandle, pWeather); // Deprecated API, Parent function not called.
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_info_set_weather is fail : 0x%x", nRet);
+ goto Exception;
+ } */
+
+ nRet = media_info_update_to_db(pMediaHandle);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("Failed to update media db!");
+ goto Exception;
+ }
+
+ nRet = media_filter_destroy(pFilterHandle);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_filter_destroy is fail : 0x%x", nRet);
+ goto Exception;
+ }
+
+ nRet = media_info_destroy(pMediaHandle);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_info_destroy is fail : 0x%x", nRet);
+ goto Exception;
+ }
+
+ return TRUE;
+
+ Exception:
+
+ if (pFilterHandle) {
+ media_filter_destroy(pFilterHandle);
+ pFilterHandle = NULL;
+ }
+
+ if (pMediaHandle) {
+ media_info_destroy(pMediaHandle);
+ pMediaHandle = NULL;
+ }
+ return FALSE;
+}
+
+/**
+ *
+ * @param szFilePath
+ * @param szWeatherTag
+ * @return
+ */
+bool vp_media_contents_get_weahter_tag(const char *szFilePath,
+ char **szWeatherTag)
+{
+ if (szFilePath == NULL) {
+ VideoLogError("szFilePath is NULL");
+ return FALSE;
+ }
+
+ vp_media_contents_connect();
+
+ media_info_h pMediaHandle = NULL;
+ filter_h pFilterHandle = NULL;
+
+ int nRet = MEDIA_CONTENT_ERROR_NONE;
+ char *szWeather = NULL;
+
+ char szTmpStr[4096] = { 0, };
+ snprintf(szTmpStr, 4096,
+ "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1 OR MEDIA_STORAGE_TYPE=101) AND MEDIA_PATH = \"%s\"",
+ szFilePath);
+
+ nRet = media_filter_create(&pFilterHandle);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_filter_create is fail : 0x%x", nRet);
+ goto Exception;
+ }
+
+ if (pFilterHandle == NULL) {
+ VideoLogError("Filter handle is NULL");
+ goto Exception;
+ }
+
+ nRet =
+ media_filter_set_condition(pFilterHandle, szTmpStr,
+ MEDIA_CONTENT_COLLATE_DEFAULT);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_filter_set_condition is fail : 0x%x", nRet);
+ goto Exception;
+ }
+
+ nRet =
+ media_info_foreach_media_from_db(pFilterHandle,
+ __vp_media_contents_info_cb,
+ &pMediaHandle);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_info_foreach_media_from_db is fail : 0x%x",
+ nRet);
+ goto Exception;
+ }
+
+ if (pMediaHandle == NULL) {
+ VideoLogError("media info handle is NULL");
+ goto Exception;
+ }
+
+ /* nRet = media_info_get_weather(pMediaHandle, &szWeather); // Deprecated API, Parent function not called.
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_info_get_weather is fail : 0x%x", nRet);
+ goto Exception;
+ } */
+
+ VP_STRDUP(*szWeatherTag, szWeather);
+ VP_FREE(szWeather);
+
+ nRet = media_filter_destroy(pFilterHandle);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_filter_destroy is fail : 0x%x", nRet);
+ goto Exception;
+ }
+
+ nRet = media_info_destroy(pMediaHandle);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_info_destroy is fail : 0x%x", nRet);
+ goto Exception;
+ }
+
+ return TRUE;
+
+ Exception:
+
+ VP_FREE(szWeather);
+
+ if (pFilterHandle) {
+ media_filter_destroy(pFilterHandle);
+ pFilterHandle = NULL;
+ }
+
+ if (pMediaHandle) {
+ media_info_destroy(pMediaHandle);
+ pMediaHandle = NULL;
+ }
+ return FALSE;
+}
+
+/**
+ *
+ * @param pList
+ * @return
+ */
+bool vp_media_contents_subtitle_list_get(GList ** pList)
+{
+ char *szCondition = NULL;
+
+ if (pList == NULL) {
+ VideoLogError("list is NULL");
+ return FALSE;
+ }
+
+ vp_media_contents_connect();
+
+ int nRet = MEDIA_CONTENT_ERROR_NONE;
+
+ filter_h pFilterHandle = NULL;
+ nRet = media_filter_create(&pFilterHandle);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_filter_create is fail : 0x%x", nRet);
+ goto Exception;
+ }
+
+ if (pFilterHandle == NULL) {
+ VideoLogError("pFilterHandle is NULL");
+ goto Exception;
+ }
+ // media_type 4 : other file
+ szCondition = (char *)
+ g_strdup_printf
+ ("MEDIA_TYPE = 4 AND (MEDIA_DISPLAY_NAME like \"%%%s\" OR MEDIA_DISPLAY_NAME like \"%%%s\" OR MEDIA_DISPLAY_NAME like \"%%%s\")",
+ ".smi", ".sub", ".srt");
+ if (szCondition == NULL) {
+ VideoLogError("szCondition NULL");
+ goto Exception;
+ }
+
+ VideoSecureLogInfo("szCondition is szCondition: %s", szCondition);
+
+ nRet =
+ media_filter_set_condition(pFilterHandle, szCondition,
+ MEDIA_CONTENT_COLLATE_DEFAULT);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_filter_set_condition is fail : 0x%x", nRet);
+ goto Exception;
+ }
+
+ nRet =
+ media_filter_set_order(pFilterHandle, MEDIA_CONTENT_ORDER_ASC,
+ MEDIA_TITLE, MEDIA_CONTENT_COLLATE_NOCASE);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_filter_set_order is fail : 0x%x", nRet);
+ goto Exception;
+ }
+
+ nRet =
+ media_info_foreach_media_from_db(pFilterHandle,
+ __vp_media_contents_subtitles_iter_cb,
+ pList);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_info_foreach_media_from_db is fail : 0x%x",
+ nRet);
+ goto Exception;
+ }
+
+ nRet = media_filter_destroy(pFilterHandle);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_filter_destroy is fail : 0x%x", nRet);
+ VP_FREE(szCondition);
+ return FALSE;
+ }
+
+ VP_FREE(szCondition);
+
+ return TRUE;
+
+ Exception:
+ VP_FREE(szCondition);
+
+ if (pFilterHandle) {
+ media_filter_destroy(pFilterHandle);
+ pFilterHandle = NULL;
+ }
+
+ return FALSE;
+}
+
+/* callback functions */
+/**
+ *
+ * @param pMediaHandle
+ * @param pUserData
+ * @return
+ */
+static bool __vp_media_contents_file_is_exist_cb(media_info_h
+ pMediaHandle,
+ void *pUserData)
+{
+ bool *bExist = (bool *) pUserData;
+
+ if (pMediaHandle != NULL) {
+ VideoLogInfo("pMeidaHandle is %p", pMediaHandle);
+ *bExist = TRUE;
+ } else {
+ VideoLogError("pMeidaHandle is NULL");
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param szFilePath
+ * @return
+ */
+bool vp_media_contents_file_is_exist(const char *szFilePath)
+{
+ if (szFilePath == NULL) {
+ VideoLogError("szFilePath is NULL");
+ return FALSE;
+ }
+
+ vp_media_contents_connect();
+
+ bool bExist = FALSE;
+ filter_h pFilterHandle = NULL;
+
+ int nRet = MEDIA_CONTENT_ERROR_NONE;
+
+ char szTmpStr[4096] = { 0, };
+ snprintf(szTmpStr, 4096,
+ "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1 OR MEDIA_STORAGE_TYPE=101) AND MEDIA_PATH = \"%s\"",
+ szFilePath);
+
+ nRet = media_filter_create(&pFilterHandle);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_filter_create is fail : 0x%x", nRet);
+ goto End;
+ }
+
+ if (pFilterHandle == NULL) {
+ VideoLogError("Filter handle is NULL");
+ goto End;
+ }
+
+ nRet =
+ media_filter_set_condition(pFilterHandle, szTmpStr,
+ MEDIA_CONTENT_COLLATE_DEFAULT);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_filter_set_condition is fail : 0x%x", nRet);
+ goto End;
+ }
+
+ nRet =
+ media_info_foreach_media_from_db(pFilterHandle,
+ __vp_media_contents_file_is_exist_cb,
+ &bExist);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_info_foreach_media_from_db is fail : 0x%x",
+ nRet);
+ goto End;
+ }
+
+ End:
+ if (pFilterHandle) {
+ media_filter_destroy(pFilterHandle);
+ pFilterHandle = NULL;
+ }
+
+ return bExist;
+}
+
+/**
+ *
+ * @param szFilePath
+ * @return
+ */
+bool vp_media_contents_del_video(const char *szFilePath)
+{
+
+ if (!szFilePath) {
+ VideoLogError("szFilePath is NULL.");
+ return FALSE;
+ }
+
+ vp_file_unlink(szFilePath);
+
+ char *szVideoId = NULL;
+ vp_media_contents_get_video_id(szFilePath, &szVideoId);
+
+ if (!szVideoId) {
+ VideoLogError("szVideoId is NULL.");
+ return FALSE;
+ }
+
+ media_content_scan_file(szFilePath);
+ VideoSecureLogInfo("szFilePath:=%s,%s", szVideoId, szFilePath);
+ VP_FREE(szVideoId);
+
+ return TRUE;
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include <media_key.h>
+
+#include "vp-play-macro-define.h"
+#include "vp-media-key.h"
+#include "vp-play-log.h"
+
+
+typedef struct _MediaKey {
+ Evas_Object *pWin;
+
+ void *pUserData;
+ MediaKeyEventCbFunc pEventCb;
+
+} MediaKey;
+
+/**
+ *
+ * @param pMediaKey
+ */
+static void _vp_media_key_destroy_handle(MediaKey * pMediaKey);
+
+
+/* callback functions */
+/**
+ *
+ * @param nKey
+ * @param nEvent
+ * @param pUserData
+ */
+static void __vp_media_key_event_cb(media_key_e nKey,
+ media_key_event_e nEvent,
+ void *pUserData)
+{
+ if (!pUserData) {
+ VideoLogError("User data is NULL.");
+ return;
+ }
+
+ bool bReleased = false;
+ if (nEvent == MEDIA_KEY_STATUS_RELEASED) {
+ bReleased = true;
+ }
+
+ if (nEvent == MEDIA_KEY_STATUS_UNKNOWN) {
+ VideoLogWarning("unknown key status");
+ return;
+ }
+
+ MediaKey *pMediaKey = (MediaKey *) pUserData;
+
+ if (pMediaKey->pEventCb == NULL) {
+ VideoLogWarning("pMediaKey->pEventCb is NULL");
+ return;
+ }
+
+ switch (nKey) {
+ case MEDIA_KEY_PLAY:
+ pMediaKey->pEventCb(VP_MEDIA_KEY_PLAY, bReleased,
+ pMediaKey->pUserData);
+ break;
+ case MEDIA_KEY_PAUSE:
+ pMediaKey->pEventCb(VP_MEDIA_KEY_PAUSE, bReleased,
+ pMediaKey->pUserData);
+ break;
+
+ case MEDIA_KEY_PLAYPAUSE:
+ pMediaKey->pEventCb(VP_MEDIA_KEY_PLAYPAUSE, bReleased,
+ pMediaKey->pUserData);
+ break;
+ case MEDIA_KEY_PREVIOUS:
+ pMediaKey->pEventCb(VP_MEDIA_KEY_PREVIOUS, bReleased,
+ pMediaKey->pUserData);
+ break;
+ case MEDIA_KEY_REWIND:
+ pMediaKey->pEventCb(VP_MEDIA_KEY_REWIND, bReleased,
+ pMediaKey->pUserData);
+ break;
+ case MEDIA_KEY_NEXT:
+ pMediaKey->pEventCb(VP_MEDIA_KEY_NEXT, bReleased,
+ pMediaKey->pUserData);
+ break;
+ case MEDIA_KEY_FASTFORWARD:
+ pMediaKey->pEventCb(VP_MEDIA_KEY_FASTFORWARD, bReleased,
+ pMediaKey->pUserData);
+ break;
+ case MEDIA_KEY_STOP:
+ pMediaKey->pEventCb(VP_MEDIA_KEY_STOP, bReleased,
+ pMediaKey->pUserData);
+ break;
+ default:
+ VideoLogWarning("Undefined key : %d", nKey);
+ break;
+ }
+
+}
+
+/* internal functions */
+/**
+ *
+ * @param pMediaKey
+ */
+static void _vp_media_key_destroy_handle(MediaKey * pMediaKey)
+{
+ if (pMediaKey == NULL) {
+ VideoLogError("pMediaKey is NULL");
+ return;
+ }
+
+ VP_FREE(pMediaKey);
+}
+
+
+
+/* external functions */
+/**
+ *
+ * @param pWin
+ * @param pEventCb
+ * @return
+ */
+media_key_handle vp_media_key_create(Evas_Object * pWin,
+ MediaKeyEventCbFunc pEventCb)
+{
+ if (pWin == NULL) {
+ VideoLogError("pWin is NULL");
+ return NULL;
+ }
+
+ MediaKey *pMediaKey = NULL;
+
+ pMediaKey = calloc(1, sizeof(MediaKey));
+
+ if (pMediaKey == NULL) {
+ VideoLogError("pMediaKey alloc fail");
+ return NULL;
+ }
+
+ pMediaKey->pEventCb = pEventCb;
+
+ return (media_key_handle) pMediaKey;
+}
+
+/**
+ *
+ * @param pMediaKeyHandle
+ */
+void vp_media_key_destroy(media_key_handle pMediaKeyHandle)
+{
+ if (pMediaKeyHandle == NULL) {
+ VideoLogError("pMediaKeyHandle is NULL");
+ return;
+ }
+
+ MediaKey *pMediaKey = (MediaKey *) pMediaKeyHandle;
+
+ vp_media_key_unrealize(pMediaKeyHandle);
+
+ _vp_media_key_destroy_handle(pMediaKey);
+}
+
+/**
+ *
+ * @param pMediaKeyHandle
+ * @return
+ */
+bool vp_media_key_realize(media_key_handle pMediaKeyHandle)
+{
+ if (pMediaKeyHandle == NULL) {
+ VideoLogError("pMediaKeyHandle is NULL");
+ return FALSE;
+ }
+
+ MediaKey *pMediaKey = (MediaKey *) pMediaKeyHandle;
+ int nErr = MEDIA_KEY_ERROR_NONE;
+ nErr = media_key_reserve(__vp_media_key_event_cb, (void *) pMediaKey);
+ if (nErr != MEDIA_KEY_ERROR_NONE) {
+ VideoLogError("media_key_reserve().. %d", nErr);
+ return FALSE;
+ }
+ return TRUE;
+}
+
+/**
+ *
+ * @param pMediaKeyHandle
+ * @return
+ */
+bool vp_media_key_unrealize(media_key_handle pMediaKeyHandle)
+{
+ if (pMediaKeyHandle == NULL) {
+ VideoLogError("pMediaKeyHandle is NULL");
+ return FALSE;
+ }
+
+ media_key_release();
+ return TRUE;
+}
+
+/**
+ *
+ * @param pMediaKeyHandle
+ * @param pUserData
+ * @return
+ */
+bool vp_media_key_set_user_data(media_key_handle pMediaKeyHandle,
+ void *pUserData)
+{
+ if (pMediaKeyHandle == NULL) {
+ VideoLogError("pMediaKeyHandle is NULL");
+ return FALSE;
+ }
+
+ MediaKey *pMediaKey = (MediaKey *) pMediaKeyHandle;
+
+ pMediaKey->pUserData = pUserData;
+
+ return TRUE;
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include <Ecore.h>
+#include <player.h>
+#include "vp-mm-player.h"
+#include "vp-play-macro-define.h"
+
+/* check temp */
+#include "vp-play-log.h"
+
+/**
+ *
+ * @param nErr
+ */
+static void _vp_mm_player_print_err(int nErr)
+{
+ switch (nErr) {
+ case PLAYER_ERROR_NONE:
+ VideoLogError("PLAYER_ERROR_NONE");
+ break;
+ case PLAYER_ERROR_OUT_OF_MEMORY:
+ VideoLogError("PLAYER_ERROR_OUT_OF_MEMORY");
+ break;
+ case PLAYER_ERROR_INVALID_PARAMETER:
+ VideoLogError("PLAYER_ERROR_INVALID_PARAMETER");
+ break;
+ case PLAYER_ERROR_NO_SUCH_FILE:
+ VideoLogError("PLAYER_ERROR_NO_SUCH_FILE");
+ break;
+ case PLAYER_ERROR_INVALID_OPERATION:
+ VideoLogError("PLAYER_ERROR_INVALID_OPERATION");
+ break;
+ case PLAYER_ERROR_FILE_NO_SPACE_ON_DEVICE:
+ VideoLogError("PLAYER_ERROR_FILE_NO_SPACE_ON_DEVICE");
+ break;
+ case PLAYER_ERROR_SEEK_FAILED:
+ VideoLogError("PLAYER_ERROR_SEEK_FAILED");
+ break;
+ case PLAYER_ERROR_INVALID_STATE:
+ VideoLogError("PLAYER_ERROR_INVALID_STATE");
+ break;
+ case PLAYER_ERROR_NOT_SUPPORTED_FILE:
+ VideoLogError("PLAYER_ERROR_NOT_SUPPORTED_FILE");
+ break;
+ case PLAYER_ERROR_INVALID_URI:
+ VideoLogError("PLAYER_ERROR_INVALID_URI");
+ break;
+ case PLAYER_ERROR_SOUND_POLICY:
+ VideoLogError("PLAYER_ERROR_SOUND_POLICY");
+ break;
+ case PLAYER_ERROR_CONNECTION_FAILED:
+ VideoLogError("PLAYER_ERROR_CONNECTION_FAILED");
+ break;
+ case PLAYER_ERROR_VIDEO_CAPTURE_FAILED:
+ VideoLogError("PLAYER_ERROR_VIDEO_CAPTURE_FAILED");
+ break;
+ case PLAYER_ERROR_DRM_EXPIRED:
+ VideoLogError("PLAYER_ERROR_DRM_EXPIRED");
+ break;
+ case PLAYER_ERROR_DRM_NO_LICENSE:
+ VideoLogError("PLAYER_ERROR_DRM_NO_LICENSE");
+ break;
+ case PLAYER_ERROR_DRM_FUTURE_USE:
+ VideoLogError("PLAYER_ERROR_DRM_FUTURE_USE");
+ break;
+ }
+}
+
+/**
+ *
+ * @param nCode
+ * @param bAppToFW
+ * @return
+ */
+static int _vp_mm_player_priv_convert_video_sink(int nCode, bool bAppToFW)
+{
+
+ if (bAppToFW) {
+ switch (nCode) {
+ case PLAYER_DISPLAY_TYPE_OVERLAY:
+ return VP_MM_PLAYER_VIDEO_TYPE_X11;
+ case PLAYER_DISPLAY_TYPE_EVAS:
+ return VP_MM_PLAYER_VIDEO_TYPE_EVAS;
+ }
+ } else {
+ switch (nCode) {
+ case VP_MM_PLAYER_VIDEO_TYPE_X11:
+ return PLAYER_DISPLAY_TYPE_OVERLAY;
+ case VP_MM_PLAYER_VIDEO_TYPE_EVAS:
+ return PLAYER_DISPLAY_TYPE_EVAS;
+ }
+ }
+ return 0;
+}
+
+#ifdef _NATIVE_BUFFER_SYNC
+#else
+/**
+ *
+ * @param nCode
+ * @param bAppToFW
+ * @return
+ */
+static int _vp_mm_player_priv_convert_rotate(int nCode, bool bAppToFW)
+{
+
+ if (bAppToFW) {
+ switch (nCode) {
+ case PLAYER_DISPLAY_ROTATION_NONE:
+ return VP_MM_PLAYER_ROTATE_0;
+ case PLAYER_DISPLAY_ROTATION_90:
+ return VP_MM_PLAYER_ROTATE_90;
+ case PLAYER_DISPLAY_ROTATION_180:
+ return VP_MM_PLAYER_ROTATE_180;
+ case PLAYER_DISPLAY_ROTATION_270:
+ return VP_MM_PLAYER_ROTATE_270;
+ }
+ } else {
+ switch (nCode) {
+ case VP_MM_PLAYER_ROTATE_0:
+ return PLAYER_DISPLAY_ROTATION_NONE;
+ case VP_MM_PLAYER_ROTATE_90:
+ return PLAYER_DISPLAY_ROTATION_90;
+ case VP_MM_PLAYER_ROTATE_180:
+ return PLAYER_DISPLAY_ROTATION_180;
+ case VP_MM_PLAYER_ROTATE_270:
+ return PLAYER_DISPLAY_ROTATION_270;
+ }
+ }
+ return 0;
+}
+#endif
+
+/**
+ *
+ * @param nCode
+ * @param bAppToFW
+ * @return
+ */
+static int _vp_mm_player_priv_convert_error(int nCode, bool bAppToFW)
+{
+
+ if (bAppToFW) {
+ switch (nCode) {
+ case PLAYER_ERROR_NONE:
+ return VP_MM_PLYAER_ERR_NONE;
+ case PLAYER_ERROR_OUT_OF_MEMORY:
+ return VP_MM_PLAYER_ERR_OUT_OF_MEMORY;
+ case PLAYER_ERROR_INVALID_PARAMETER:
+ return VP_MM_PLAYER_ERR_INVALID_PARAMETER;
+ case PLAYER_ERROR_NO_SUCH_FILE:
+ return VP_MM_PLAYER_ERR_NO_SUCH_FILE;
+ case PLAYER_ERROR_INVALID_OPERATION:
+ return VP_MM_PLAYER_ERR_INVALID_OPERATION;
+ case PLAYER_ERROR_FILE_NO_SPACE_ON_DEVICE:
+ return VP_MM_PLAYER_ERR_FILE_NO_SPACE_ON_DEVICE;
+ case PLAYER_ERROR_SEEK_FAILED:
+ return VP_MM_PLAYER_ERR_SEEK_FAILED;
+ case PLAYER_ERROR_INVALID_STATE:
+ return VP_MM_PLAYER_ERR_INVALID_STATE;
+ case PLAYER_ERROR_NOT_SUPPORTED_FILE:
+ return VP_MM_PLAYER_ERR_NOT_SUPPORTED_FILE;
+ case PLAYER_ERROR_INVALID_URI:
+ return VP_MM_PLAYER_ERR_INVALID_URI;
+ case PLAYER_ERROR_SOUND_POLICY:
+ return VP_MM_PLAYER_ERR_SOUND_POLICY;
+ case PLAYER_ERROR_CONNECTION_FAILED:
+ case PLAYER_ERROR_SERVICE_DISCONNECTED:
+ return VP_MM_PLAYER_ERR_CONNECTION_FAILED;
+ case PLAYER_ERROR_VIDEO_CAPTURE_FAILED:
+ return VP_MM_PLAYER_ERR_VIDEO_CAPTUR_FAILED;
+ case PLAYER_ERROR_DRM_EXPIRED:
+ return VP_MM_PLAYER_ERR_DRM_EXPIRED;
+ case PLAYER_ERROR_DRM_NO_LICENSE:
+ return VP_MM_PLAYER_ERR_DRM_NO_LICENSE;
+ case PLAYER_ERROR_DRM_FUTURE_USE:
+ return VP_MM_PLAYER_ERR_DRM_FUTURE_USE;
+ }
+ } else {
+ switch (nCode) {
+ case VP_MM_PLYAER_ERR_NONE:
+ return PLAYER_ERROR_NONE;
+ case VP_MM_PLAYER_ERR_OUT_OF_MEMORY:
+ return PLAYER_ERROR_OUT_OF_MEMORY;
+ case VP_MM_PLAYER_ERR_INVALID_PARAMETER:
+ return PLAYER_ERROR_INVALID_PARAMETER;
+ case VP_MM_PLAYER_ERR_NO_SUCH_FILE:
+ return PLAYER_ERROR_NO_SUCH_FILE;
+ case VP_MM_PLAYER_ERR_INVALID_OPERATION:
+ return PLAYER_ERROR_INVALID_OPERATION;
+ case VP_MM_PLAYER_ERR_FILE_NO_SPACE_ON_DEVICE:
+ return PLAYER_ERROR_FILE_NO_SPACE_ON_DEVICE;
+ case VP_MM_PLAYER_ERR_SEEK_FAILED:
+ return PLAYER_ERROR_SEEK_FAILED;
+ case VP_MM_PLAYER_ERR_INVALID_STATE:
+ return PLAYER_ERROR_INVALID_STATE;
+ case VP_MM_PLAYER_ERR_NOT_SUPPORTED_FILE:
+ return PLAYER_ERROR_NOT_SUPPORTED_FILE;
+ case VP_MM_PLAYER_ERR_INVALID_URI:
+ return PLAYER_ERROR_INVALID_URI;
+ case VP_MM_PLAYER_ERR_SOUND_POLICY:
+ return PLAYER_ERROR_SOUND_POLICY;
+ case VP_MM_PLAYER_ERR_CONNECTION_FAILED:
+ return PLAYER_ERROR_CONNECTION_FAILED;
+ case VP_MM_PLAYER_ERR_VIDEO_CAPTUR_FAILED:
+ return PLAYER_ERROR_VIDEO_CAPTURE_FAILED;
+ case VP_MM_PLAYER_ERR_DRM_EXPIRED:
+ return PLAYER_ERROR_DRM_EXPIRED;
+ case VP_MM_PLAYER_ERR_DRM_NO_LICENSE:
+ return PLAYER_ERROR_DRM_NO_LICENSE;
+ case VP_MM_PLAYER_ERR_DRM_FUTURE_USE:
+ return PLAYER_ERROR_DRM_FUTURE_USE;
+ }
+ }
+ return 0;
+}
+
+/**
+ *
+ * @param nCode
+ * @param bAppToFW
+ * @return
+ */
+static int _vp_mm_player_priv_convert_player_state(int nCode,
+ bool bAppToFW)
+{
+
+ if (bAppToFW) {
+ switch (nCode) {
+ case PLAYER_STATE_NONE:
+ return VP_MM_PLAYER_STATE_NONE;
+ case PLAYER_STATE_IDLE:
+ return VP_MM_PLAYER_STATE_IDLE;
+ case PLAYER_STATE_READY:
+ return VP_MM_PLAYER_STATE_READY;
+ case PLAYER_STATE_PLAYING:
+ return VP_MM_PLAYER_STATE_PLAYING;
+ case PLAYER_STATE_PAUSED:
+ return VP_MM_PLAYER_STATE_PAUSED;
+ }
+ } else {
+ switch (nCode) {
+ case VP_MM_PLAYER_STATE_NONE:
+ return PLAYER_STATE_NONE;
+ case VP_MM_PLAYER_STATE_IDLE:
+ return PLAYER_STATE_IDLE;
+ case VP_MM_PLAYER_STATE_READY:
+ return PLAYER_STATE_READY;
+ case VP_MM_PLAYER_STATE_PLAYING:
+ return PLAYER_STATE_PLAYING;
+ case VP_MM_PLAYER_STATE_PAUSED:
+ return PLAYER_STATE_PAUSED;
+ }
+ }
+ return 0;
+}
+
+/**
+ *
+ * @param nCode
+ * @param bAppToFW
+ * @return
+ */
+static int _vp_mm_player_priv_convert_display_mode(int nCode,
+ bool bAppToFW)
+{
+ if (bAppToFW) {
+ switch (nCode) {
+ case PLAYER_DISPLAY_MODE_LETTER_BOX:
+ return VP_MM_PLAYER_DISPLAY_LETTER_BOX;
+ case PLAYER_DISPLAY_MODE_ORIGIN_SIZE:
+ return VP_MM_PLAYER_DISPLAY_ORIGIN_SIZE;
+ case PLAYER_DISPLAY_MODE_FULL_SCREEN:
+ return VP_MM_PLAYER_DISPLAY_FULL_SCREEN;
+ case PLAYER_DISPLAY_MODE_CROPPED_FULL:
+ return VP_MM_PLAYER_DISPLAY_CROPPED_FULL;
+ case PLAYER_DISPLAY_MODE_ORIGIN_OR_LETTER:
+ return VP_MM_PLAYER_DISPLAY_ORIGIN_OR_LETTER;
+ }
+ } else {
+ switch (nCode) {
+ case VP_MM_PLAYER_DISPLAY_LETTER_BOX:
+ return PLAYER_DISPLAY_MODE_LETTER_BOX;
+ case VP_MM_PLAYER_DISPLAY_ORIGIN_SIZE:
+ return PLAYER_DISPLAY_MODE_ORIGIN_SIZE;
+ case VP_MM_PLAYER_DISPLAY_FULL_SCREEN:
+ return PLAYER_DISPLAY_MODE_FULL_SCREEN;
+ case VP_MM_PLAYER_DISPLAY_CROPPED_FULL:
+ return PLAYER_DISPLAY_MODE_CROPPED_FULL;
+ case VP_MM_PLAYER_DISPLAY_ORIGIN_OR_LETTER:
+ return PLAYER_DISPLAY_MODE_ORIGIN_OR_LETTER;
+ }
+ }
+ return 0;
+}
+
+/* callback functions */
+/**
+ *
+ * @param pUserData
+ * @param pBuff
+ * @param nByte
+ */
+static void __vp_mm_player_pipe_prepare_cb(void *pUserData, void *pBuff,
+ unsigned int nByte)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pPlayerHandle is NULL");
+ return;
+ }
+
+ MMPlayer *pMMPlayer = (MMPlayer *) pUserData;
+
+ pMMPlayer->bIsRealize = TRUE;
+
+ if (pMMPlayer->pCbFunc->pPrepareCb) {
+ pMMPlayer->pCbFunc->pPrepareCb(pMMPlayer->pParam);
+ }
+
+ return;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pBuff
+ * @param nByte
+ */
+static void __vp_mm_player_pipe_end_of_stream_cb(void *pUserData,
+ void *pBuff,
+ unsigned int nByte)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pPlayerHandle is NULL");
+ return;
+ }
+
+ MMPlayer *pMMPlayer = (MMPlayer *) pUserData;
+
+ if (pMMPlayer->pCbFunc->pEndOfStreamCb) {
+ pMMPlayer->pCbFunc->pEndOfStreamCb(pMMPlayer->pParam);
+ }
+
+
+ return;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pBuff
+ * @param nByte
+ */
+static void __vp_mm_player_pipe_seek_complete_cb(void *pUserData,
+ void *pBuff,
+ unsigned int nByte)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pPlayerHandle is NULL");
+ return;
+ }
+
+ MMPlayer *pMMPlayer = (MMPlayer *) pUserData;
+
+ if (pMMPlayer->pCbFunc->pSeekCompleteCb) {
+ pMMPlayer->pCbFunc->pSeekCompleteCb(pMMPlayer->pParam);
+ }
+
+ return;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pBuff
+ * @param nByte
+ */
+static void __vp_mm_player_pipe_interrupted_cb(void *pUserData,
+ void *pBuff,
+ unsigned int nByte)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pPlayerHandle is NULL");
+ return;
+ }
+
+ MMPlayer *pMMPlayer = (MMPlayer *) pUserData;
+
+ if (pMMPlayer->pCbFunc->pInterruptedCb) {
+ if (pMMPlayer->pInterruptParam) {
+ int nInterruptCode = pMMPlayer->pInterruptParam->nInterrupt;
+ if (nInterruptCode == PLAYER_INTERRUPTED_BY_RESOURCE_CONFLICT) {
+ pMMPlayer->pCbFunc->pInterruptedCb(nInterruptCode, pMMPlayer->pParam);
+ }
+ }
+ }
+
+ return;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pBuff
+ * @param nByte
+ */
+static void __vp_mm_player_pipe_error_cb(void *pUserData, void *pBuff,
+ unsigned int nByte)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pPlayerHandle is NULL");
+ return;
+ }
+
+ MMPlayer *pMMPlayer = (MMPlayer *) pUserData;
+ if (pMMPlayer->pCbFunc->pErrorCb) {
+ int nErr = 0;
+ if (pMMPlayer->pErrorParam) {
+ nErr =
+ _vp_mm_player_priv_convert_error(pMMPlayer->
+ pErrorParam->nError,
+ TRUE);
+ }
+
+ pMMPlayer->pCbFunc->pErrorCb(nErr, pMMPlayer->pParam);
+ }
+ return;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pBuff
+ * @param nByte
+ */
+static void __vp_mm_player_pipe_buffering_cb(void *pUserData, void *pBuff,
+ unsigned int nByte)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pPlayerHandle is NULL");
+ return;
+ }
+
+ MMPlayer *pMMPlayer = (MMPlayer *) pUserData;
+ if (pMMPlayer->pCbFunc->pBufferingCb) {
+ int nPercent = 0;
+ if (pMMPlayer->pBufferingParam) {
+ nPercent = pMMPlayer->pBufferingParam->nPercent;
+ }
+
+ pMMPlayer->pCbFunc->pBufferingCb(nPercent, pMMPlayer->pParam);
+ }
+ return;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pBuff
+ * @param nByte
+ */
+static void __vp_mm_player_pipe_subtitle_update_cb(void *pUserData,
+ void *pBuff,
+ unsigned int nByte)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pPlayerHandle is NULL");
+ return;
+ }
+
+ MMPlayer *pMMPlayer = (MMPlayer *) pUserData;
+
+ if (pMMPlayer->pCbFunc->pSubtitleUpdateCb) {
+ char *szSubtitleText = NULL;
+ unsigned long nDuration = 0;
+ if (pMMPlayer->pSubtitleParam) {
+ if (pMMPlayer->pSubtitleParam->txt) {
+ szSubtitleText = strdup(pMMPlayer->pSubtitleParam->txt);
+ free(pMMPlayer->pSubtitleParam->txt);
+ pMMPlayer->pSubtitleParam->txt = NULL;
+ }
+ nDuration = pMMPlayer->pSubtitleParam->nDuration;
+ }
+
+ if (szSubtitleText && strlen(szSubtitleText) > 0)
+ pMMPlayer->pCbFunc->pSubtitleUpdateCb(nDuration,
+ szSubtitleText,
+ pMMPlayer->pParam);
+ VP_FREE(szSubtitleText);
+ }
+
+ return;
+
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pBuff
+ * @param nByte
+ */
+static void __vp_mm_player_pipe_pd_message_cb(void *pUserData,
+ void *pBuff,
+ unsigned int nByte)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pPlayerHandle is NULL");
+ return;
+ }
+
+ MMPlayer *pMMPlayer = (MMPlayer *) pUserData;
+
+ if (pMMPlayer->pCbFunc->pPDMessageCb) {
+ int nMsg = 0;
+ if (pMMPlayer->pPDParam) {
+ nMsg = pMMPlayer->pPDParam->nMessage;
+ }
+
+ pMMPlayer->pCbFunc->pPDMessageCb(nMsg, pMMPlayer->pParam);
+ }
+ return;
+
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pBuff
+ * @param nByte
+ */
+static void __vp_mm_player_pipe_captured_cb(void *pUserData, void *pBuff,
+ unsigned int nByte)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pPlayerHandle is NULL");
+ return;
+ }
+
+ MMPlayer *pMMPlayer = (MMPlayer *) pUserData;
+
+ if (pMMPlayer->pCbFunc->pCapturedCb) {
+ unsigned char *pFrame = NULL;
+ int nWidth = 0;
+ int nHeight = 0;
+ unsigned int nSize = 0;
+
+ if (pMMPlayer->pCaptureParam) {
+ pFrame = pMMPlayer->pCaptureParam->pFrame;
+ nWidth = pMMPlayer->pCaptureParam->nWidth;
+ nHeight = pMMPlayer->pCaptureParam->nHeight;
+ nSize = pMMPlayer->pCaptureParam->nSize;
+ }
+
+ pMMPlayer->pCbFunc->pCapturedCb(pFrame, nWidth, nHeight, nSize,
+ pMMPlayer->pParam);
+ }
+
+ return;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pBuff
+ * @param nByte
+ */
+static void __vp_mm_player_pipe_missed_plugin_cb(void *pUserData,
+ void *pBuff,
+ unsigned int nByte)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pPlayerHandle is NULL");
+ return;
+ }
+
+ MMPlayer *pMMPlayer = (MMPlayer *) pUserData;
+
+ if (pMMPlayer->pCbFunc->pMissedPluginCb) {
+
+ vp_mm_player_missed_plugin_t nMissedType =
+ VP_MM_PLAYER_MISSED_PLUGIN_UNKNOWN;
+
+ if (pMMPlayer->pMissedParam) {
+ nMissedType = pMMPlayer->pMissedParam->nMissedType;
+ }
+
+ pMMPlayer->pCbFunc->pMissedPluginCb(nMissedType,
+ pMMPlayer->pParam);
+ }
+
+ return;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pBuff
+ * @param nByte
+ */
+static void __vp_mm_player_pipe_image_buffer_cb(void *pUserData,
+ void *pBuff,
+ unsigned int nByte)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pPlayerHandle is NULL");
+ return;
+ }
+
+ MMPlayer *pMMPlayer = (MMPlayer *) pUserData;
+
+ if (pMMPlayer->pCbFunc->pImageBufferCb) {
+ char *pBuffer = NULL;
+ int nSize = 0;
+
+ if (pMMPlayer->pImageBufferParam) {
+ pBuffer = pMMPlayer->pImageBufferParam->pBuffer;
+ nSize = pMMPlayer->pImageBufferParam->nSize;
+ }
+
+ pMMPlayer->pCbFunc->pImageBufferCb(pBuffer, nSize,
+ pMMPlayer->pParam);
+ }
+
+ return;
+}
+
+/* player api local cb functions */
+/**
+ *
+ * @param pUserData
+ */
+static void __vp_mm_player_prepare_cb(void *pUserData)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+ VideoLogWarning("");
+
+ MMPlayer *pMMPlayer = (MMPlayer *) pUserData;
+
+ if (pMMPlayer->pCbPipe->pPreparePipe) {
+ Eina_Bool bRet = EINA_FALSE;
+ bRet =
+ ecore_pipe_write(pMMPlayer->pCbPipe->pPreparePipe,
+ (void *) pMMPlayer, sizeof(MMPlayer));
+ if (bRet != EINA_TRUE) {
+ VideoLogError(" : ecore pipe write fail");
+ }
+ }
+
+ return;
+}
+
+/**
+ *
+ * @param pUserData
+ */
+static void __vp_mm_player_completed_cb(void *pUserData)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ MMPlayer *pMMPlayer = (MMPlayer *) pUserData;
+
+ if (pMMPlayer->pCbPipe->pEndOfStreamPipe) {
+ Eina_Bool bRet = EINA_FALSE;
+ bRet =
+ ecore_pipe_write(pMMPlayer->pCbPipe->pEndOfStreamPipe,
+ (void *) pMMPlayer, sizeof(MMPlayer));
+ if (bRet != EINA_TRUE) {
+ VideoLogError(" : ecore pipe write fail");
+ }
+ }
+
+ return;
+
+}
+
+/**
+ *
+ * @param pUserData
+ */
+static void __vp_mm_player_seek_completed_cb(void *pUserData)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ MMPlayer *pMMPlayer = (MMPlayer *) pUserData;
+ if (pMMPlayer->pCbPipe->pSeekCompletePipe) {
+ Eina_Bool bRet = EINA_FALSE;
+ bRet =
+ ecore_pipe_write(pMMPlayer->pCbPipe->pSeekCompletePipe,
+ (void *) pMMPlayer, sizeof(MMPlayer));
+ if (bRet != EINA_TRUE) {
+ VideoLogError(" : ecore pipe write fail");
+ }
+ }
+
+ return;
+
+}
+
+/**
+ *
+ * @param nCode
+ * @param pUserData
+ */
+static void __vp_mm_player_interrupted_cb(player_interrupted_code_e nCode,
+ void *pUserData)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ MMPlayer *pMMPlayer = (MMPlayer *) pUserData;
+ if (pMMPlayer->pCbPipe->pInterruptedPipe) {
+ Eina_Bool bRet = EINA_FALSE;
+
+ if (pMMPlayer->pInterruptParam) {
+ pMMPlayer->pInterruptParam->nInterrupt = nCode;
+ pMMPlayer->pInterruptParam->pParam = pMMPlayer->pParam;
+ }
+
+ bRet =
+ ecore_pipe_write(pMMPlayer->pCbPipe->pInterruptedPipe,
+ (void *) pMMPlayer, sizeof(MMPlayer));
+ if (bRet != EINA_TRUE) {
+ VideoLogError(" : ecore pipe write fail");
+ }
+ }
+
+ return;
+
+}
+
+/**
+ *
+ * @param nError
+ * @param pUserData
+ */
+static void __vp_mm_player_error_cb(int nError, void *pUserData)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ MMPlayer *pMMPlayer = (MMPlayer *) pUserData;
+ if (pMMPlayer->pCbPipe->pErrorPipe) {
+ Eina_Bool bRet = EINA_FALSE;
+
+ if (pMMPlayer->pErrorParam) {
+ pMMPlayer->pErrorParam->nError = nError;
+ pMMPlayer->pErrorParam->pParam = pMMPlayer->pParam;
+ }
+
+ bRet =
+ ecore_pipe_write(pMMPlayer->pCbPipe->pErrorPipe,
+ (void *) pMMPlayer, sizeof(MMPlayer));
+ if (bRet != EINA_TRUE) {
+ VideoLogError(" : ecore pipe write fail");
+ }
+ }
+
+ return;
+
+}
+
+/**
+ *
+ * @param nPercent
+ * @param pUserData
+ */
+static void __vp_mm_player_buffering_cb(int nPercent, void *pUserData)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ MMPlayer *pMMPlayer = (MMPlayer *) pUserData;
+ if (pMMPlayer->pCbPipe->pBufferingPipe) {
+ Eina_Bool bRet = EINA_FALSE;
+
+ if (pMMPlayer->pBufferingParam) {
+ pMMPlayer->pBufferingParam->nPercent = nPercent;
+ pMMPlayer->pBufferingParam->pParam = pMMPlayer->pParam;
+ }
+
+ bRet =
+ ecore_pipe_write(pMMPlayer->pCbPipe->pBufferingPipe,
+ (void *) pMMPlayer, sizeof(MMPlayer));
+ if (bRet != EINA_TRUE) {
+ VideoLogError(" : ecore pipe write fail");
+ }
+ }
+
+ return;
+
+}
+
+/**
+ *
+ * @param nDuration
+ * @param text
+ * @param pUserData
+ */
+static void __vp_mm_player_subtitle_updated_cb(unsigned long nDuration,
+ char *text, void *pUserData)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ MMPlayer *pMMPlayer = (MMPlayer *) pUserData;
+
+ if (pMMPlayer->bDeactivateSubtitle) {
+ return;
+ }
+
+ if (pMMPlayer->pCbPipe->pSubtitleUpdatePipe) {
+ if (pMMPlayer->pSubtitleParam) {
+ pMMPlayer->pSubtitleParam->nDuration = nDuration;
+
+ if (text) {
+ if (pMMPlayer->pSubtitleParam->txt) {
+ free(pMMPlayer->pSubtitleParam->txt);
+ pMMPlayer->pSubtitleParam->txt = NULL;
+ }
+ pMMPlayer->pSubtitleParam->txt = strdup(text);
+ }
+
+ pMMPlayer->pSubtitleParam->pParam = pMMPlayer->pParam;
+ }
+
+ if (pMMPlayer->pSubtitleParam && pMMPlayer->pSubtitleParam->txt
+ && strlen(pMMPlayer->pSubtitleParam->txt) > 0) {
+ Eina_Bool bRet = EINA_FALSE;
+ bRet =
+ ecore_pipe_write(pMMPlayer->pCbPipe->pSubtitleUpdatePipe,
+ (void *) pMMPlayer, sizeof(MMPlayer));
+ if (bRet != EINA_TRUE) {
+ VideoLogError(" : ecore pipe write fail");
+ }
+ }
+ }
+ return;
+
+}
+
+/**
+ *
+ * @param pFrame
+ * @param nWidth
+ * @param nHeight
+ * @param nSize
+ * @param pUserData
+ */
+static void __vp_mm_player_video_captured_cb(unsigned char *pFrame,
+ int nWidth, int nHeight,
+ unsigned int nSize,
+ void *pUserData)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ MMPlayer *pMMPlayer = (MMPlayer *) pUserData;
+ if (pMMPlayer->pCbPipe->pCapturedPipe) {
+ Eina_Bool bRet = EINA_FALSE;
+
+ if (pMMPlayer->pCaptureParam) {
+
+ if (pMMPlayer->pCaptureParam->pFrame) {
+ free(pMMPlayer->pCaptureParam->pFrame);
+ pMMPlayer->pCaptureParam->pFrame = NULL;
+ }
+
+ pMMPlayer->pCaptureParam->pFrame = calloc(1, nSize);
+ if (pMMPlayer->pCaptureParam->pFrame == NULL) {
+ return;
+ }
+
+ memcpy(pMMPlayer->pCaptureParam->pFrame, pFrame, nSize);
+
+ pMMPlayer->pCaptureParam->nWidth = nWidth;
+ pMMPlayer->pCaptureParam->nHeight = nHeight;
+ pMMPlayer->pCaptureParam->nSize = nSize;
+ pMMPlayer->pCaptureParam->pParam = pMMPlayer->pParam;
+ }
+ bRet =
+ ecore_pipe_write(pMMPlayer->pCbPipe->pCapturedPipe,
+ (void *) pMMPlayer, sizeof(MMPlayer));
+ if (bRet != EINA_TRUE) {
+ VideoLogError(" : ecore pipe write fail");
+ }
+ }
+
+ return;
+}
+
+/* internal functions */
+/**
+ *
+ * @param nType
+ * @param pParam
+ */
+static void _vp_mm_callback_param_free(vp_mm_player_callback_t nType,
+ void *pParam)
+{
+ if (pParam == NULL) {
+ VideoLogError("Param data is NULL");
+ return;
+ }
+
+ if (nType == VP_MM_PLAYER_CAPTURE_VIDEO_CB) {
+ MMPlayerCaptureParam *pCaptureParam =
+ (MMPlayerCaptureParam *) pParam;
+ if (pCaptureParam->pFrame) {
+ free(pCaptureParam->pFrame);
+ pCaptureParam->pFrame = NULL;
+ }
+
+ free(pCaptureParam);
+ pCaptureParam = NULL;
+ } else if (nType == VP_MM_PLAYER_SUBTITLE_UPDATE_CB) {
+ MMPlayerSubtitleParam *pSubtitleParam =
+ (MMPlayerSubtitleParam *) pParam;
+ if (pSubtitleParam->txt) {
+ free(pSubtitleParam->txt);
+ pSubtitleParam->txt = NULL;
+ }
+ free(pSubtitleParam);
+ pSubtitleParam = NULL;
+ } else if (nType == VP_MM_PLAYER_IMAGE_BUFFER_CB) {
+ MMPlayerImageBufferParam *pImageBufferParam =
+ (MMPlayerImageBufferParam *) pParam;
+ if (pImageBufferParam->pBuffer) {
+ free(pImageBufferParam->pBuffer);
+ pImageBufferParam->pBuffer = NULL;
+ }
+ free(pImageBufferParam);
+ pImageBufferParam = NULL;
+ }
+
+ return;
+}
+
+/**
+ *
+ * @param pMMPlayer
+ */
+static void _vp_mm_ecore_pipe_create(MMPlayer * pMMPlayer)
+{
+ if (pMMPlayer == NULL) {
+ VideoLogError("pMMPlayer is NULL");
+ return;
+ }
+
+ MMPlayerCbPipe *pCbPipe = pMMPlayer->pCbPipe;
+ if (pCbPipe == NULL) {
+ VideoLogError("pCbPipe is NULL");
+ return;
+ }
+
+ pCbPipe->pPreparePipe =
+ ecore_pipe_add((Ecore_Pipe_Cb) __vp_mm_player_pipe_prepare_cb,
+ (void *) pMMPlayer);
+ if (pCbPipe->pPreparePipe == NULL) {
+ VideoLogWarning("pPreparePipe create fail");
+ }
+
+ pCbPipe->pEndOfStreamPipe = ecore_pipe_add((Ecore_Pipe_Cb)
+ __vp_mm_player_pipe_end_of_stream_cb,
+ (void *) pMMPlayer);
+ if (pCbPipe->pEndOfStreamPipe == NULL) {
+ VideoLogWarning("pEndOfStreamPipe create fail");
+ }
+
+ pCbPipe->pSeekCompletePipe = ecore_pipe_add((Ecore_Pipe_Cb)
+ __vp_mm_player_pipe_seek_complete_cb,
+ (void *) pMMPlayer);
+ if (pCbPipe->pSeekCompletePipe == NULL) {
+ VideoLogWarning("pSeekCompletePipe create fail");
+ }
+
+ pCbPipe->pInterruptedPipe =
+ ecore_pipe_add((Ecore_Pipe_Cb) __vp_mm_player_pipe_interrupted_cb,
+ (void *) pMMPlayer);
+ if (pCbPipe->pInterruptedPipe == NULL) {
+ VideoLogWarning("pInterruptedPipe create fail");
+ }
+
+ pCbPipe->pErrorPipe =
+ ecore_pipe_add((Ecore_Pipe_Cb) __vp_mm_player_pipe_error_cb,
+ (void *) pMMPlayer);
+ if (pCbPipe->pErrorPipe == NULL) {
+ VideoLogWarning("pErrorPipe create fail");
+ }
+
+ pCbPipe->pBufferingPipe =
+ ecore_pipe_add((Ecore_Pipe_Cb) __vp_mm_player_pipe_buffering_cb,
+ (void *) pMMPlayer);
+ if (pCbPipe->pBufferingPipe == NULL) {
+ VideoLogWarning("pBufferingPipe create fail");
+ }
+
+ pCbPipe->pSubtitleUpdatePipe = ecore_pipe_add((Ecore_Pipe_Cb)
+ __vp_mm_player_pipe_subtitle_update_cb,
+ (void *) pMMPlayer);
+ if (pCbPipe->pSubtitleUpdatePipe == NULL) {
+ VideoLogWarning("pSubtitleUpdatePipe create fail");
+ }
+
+ pCbPipe->pPDMessagePipe =
+ ecore_pipe_add((Ecore_Pipe_Cb) __vp_mm_player_pipe_pd_message_cb,
+ (void *) pMMPlayer);
+ if (pCbPipe->pPDMessagePipe == NULL) {
+ VideoLogWarning("pPDMessagePipe create fail");
+ }
+
+ pCbPipe->pCapturedPipe =
+ ecore_pipe_add((Ecore_Pipe_Cb) __vp_mm_player_pipe_captured_cb,
+ (void *) pMMPlayer);
+ if (pCbPipe->pCapturedPipe == NULL) {
+ VideoLogWarning("pCapturedPipe create fail");
+ }
+
+ pCbPipe->pMissedPluginPipe = ecore_pipe_add((Ecore_Pipe_Cb)
+ __vp_mm_player_pipe_missed_plugin_cb,
+ (void *) pMMPlayer);
+ if (pCbPipe->pMissedPluginPipe == NULL) {
+ VideoLogWarning("pMissedPluginPipe create fail");
+ }
+
+ pCbPipe->pImageBufferPipe = ecore_pipe_add((Ecore_Pipe_Cb)
+ __vp_mm_player_pipe_image_buffer_cb,
+ (void *) pMMPlayer);
+ if (pCbPipe->pImageBufferPipe == NULL) {
+ VideoLogWarning("pImageBufferPipe create fail");
+ }
+
+ return;
+}
+
+/**
+ *
+ * @param pPipe
+ */
+static void _vp_mm_ecore_pipe_del(Ecore_Pipe * pPipe)
+{
+ if (pPipe == NULL) {
+ VideoLogError("pPipe is NULL");
+ return;
+ }
+
+ ecore_pipe_del(pPipe);
+ pPipe = NULL;
+
+ return;
+}
+
+/**
+ *
+ * @param pMMPlayer
+ */
+static void _vp_mm_register_default_callback(MMPlayer * pMMPlayer)
+{
+ if (pMMPlayer == NULL) {
+ VideoLogError("pMMPlayer is NULL");
+ return;
+ }
+
+ if (pMMPlayer->pPlayer == NULL) {
+ VideoLogError("Player Handle is NULL");
+ return;
+ }
+ int nRet = PLAYER_ERROR_NONE;
+ nRet =
+ player_set_completed_cb(pMMPlayer->pPlayer,
+ __vp_mm_player_completed_cb,
+ (void *) pMMPlayer);
+ if (nRet != PLAYER_ERROR_NONE) {
+ _vp_mm_player_print_err(nRet);
+ VideoLogError("player_set_completed_cb fail : %d", nRet);
+ }
+
+ nRet =
+ player_set_interrupted_cb(pMMPlayer->pPlayer,
+ __vp_mm_player_interrupted_cb,
+ (void *) pMMPlayer);
+ if (nRet != PLAYER_ERROR_NONE) {
+ _vp_mm_player_print_err(nRet);
+ VideoLogError("player_set_interrupted_cb fail : %d", nRet);
+ }
+
+ nRet =
+ player_set_error_cb(pMMPlayer->pPlayer, __vp_mm_player_error_cb,
+ (void *) pMMPlayer);
+ if (nRet != PLAYER_ERROR_NONE) {
+ _vp_mm_player_print_err(nRet);
+ VideoLogError("player_set_error_cb fail : %d", nRet);
+ }
+
+ nRet =
+ player_set_buffering_cb(pMMPlayer->pPlayer,
+ __vp_mm_player_buffering_cb,
+ (void *) pMMPlayer);
+ if (nRet != PLAYER_ERROR_NONE) {
+ _vp_mm_player_print_err(nRet);
+ VideoLogError("player_set_buffering_cb fail : %d", nRet);
+ }
+
+ nRet =
+ player_set_subtitle_updated_cb(pMMPlayer->pPlayer,
+ __vp_mm_player_subtitle_updated_cb,
+ (void *) pMMPlayer);
+ if (nRet != PLAYER_ERROR_NONE) {
+ _vp_mm_player_print_err(nRet);
+ VideoLogError("player_set_subtitle_updated_cb fail : %d", nRet);
+ }
+
+
+ return;
+
+}
+
+/**
+ *
+ * @param pMMPlayer
+ */
+static void _vp_mm_unregister_default_callback(MMPlayer * pMMPlayer)
+{
+ if (pMMPlayer == NULL) {
+ VideoLogError("pMMPlayer is NULL");
+ return;
+ }
+ if (pMMPlayer->pPlayer == NULL) {
+ VideoLogError("Player Handle is NULL");
+ return;
+ }
+ int nRet = PLAYER_ERROR_NONE;
+ nRet = player_unset_completed_cb(pMMPlayer->pPlayer);
+ if (nRet != PLAYER_ERROR_NONE) {
+ _vp_mm_player_print_err(nRet);
+ VideoLogError("player_unset_completed_cb fail : %d", nRet);
+ }
+ nRet = player_unset_interrupted_cb(pMMPlayer->pPlayer);
+ if (nRet != PLAYER_ERROR_NONE) {
+ _vp_mm_player_print_err(nRet);
+ VideoLogError("player_unset_interrupted_cb fail : %d", nRet);
+ }
+ nRet = player_unset_error_cb(pMMPlayer->pPlayer);
+ if (nRet != PLAYER_ERROR_NONE) {
+ _vp_mm_player_print_err(nRet);
+ VideoLogError("player_unset_error_cb fail : %d", nRet);
+ }
+ nRet = player_unset_buffering_cb(pMMPlayer->pPlayer);
+ if (nRet != PLAYER_ERROR_NONE) {
+ _vp_mm_player_print_err(nRet);
+ VideoLogError("player_unset_buffering_cb fail : %d", nRet);
+ }
+ nRet = player_unset_subtitle_updated_cb(pMMPlayer->pPlayer);
+ if (nRet != PLAYER_ERROR_NONE) {
+ _vp_mm_player_print_err(nRet);
+ VideoLogError("player_unset_subtitle_updated_cb fail : %d", nRet);
+ }
+
+ return;
+}
+
+/* external functions */
+/**
+ *
+ * @return
+ */
+mm_player_handle vp_mm_player_create()
+{
+ MMPlayer *pMMPlayer = NULL;
+ pMMPlayer = calloc(1, sizeof(MMPlayer));
+ if (pMMPlayer == NULL) {
+ VideoLogError("MMPlayer alloc fail");
+ return NULL;
+ }
+
+ VideoLogInfo(">> player create");
+
+ if (pMMPlayer->stream_info) {
+ int error = SOUND_MANAGER_ERROR_NONE;
+ error =
+ sound_manager_acquire_focus(pMMPlayer->stream_info,
+ SOUND_STREAM_FOCUS_FOR_PLAYBACK,
+ SOUND_BEHAVIOR_NONE, NULL);
+ if (error != SOUND_MANAGER_ERROR_NONE) {
+ VideoLogError("failed to acquire focus [%x]", error);
+ }
+
+ sound_manager_get_focus_reacquisition(pMMPlayer->stream_info,
+ &pMMPlayer->reacquire_state);
+ if (pMMPlayer->reacquire_state == EINA_FALSE) {
+ sound_manager_set_focus_reacquisition(pMMPlayer->stream_info,
+ EINA_TRUE);
+ }
+ }
+
+ int nRet = 0;
+ nRet = player_create(&pMMPlayer->pPlayer);
+ if (nRet != PLAYER_ERROR_NONE) {
+ _vp_mm_player_print_err(nRet);
+ vp_mm_player_destroy((mm_player_handle) pMMPlayer);
+ return NULL;
+ }
+
+ if (pMMPlayer->pPlayer == NULL) {
+ VideoLogError("player handle is NULL");
+ vp_mm_player_destroy((mm_player_handle) pMMPlayer);
+ return NULL;
+ }
+
+ pMMPlayer->pCbFunc = calloc(1, sizeof(MMPlayerCbFunc));
+ if (pMMPlayer->pCbFunc == NULL) {
+ VideoLogError("MMPlayer callback func alloc fail");
+ vp_mm_player_destroy((mm_player_handle) pMMPlayer);
+ return NULL;
+ }
+
+ pMMPlayer->pCbPipe = calloc(1, sizeof(MMPlayerCbPipe));
+ if (pMMPlayer->pCbPipe == NULL) {
+ VideoLogError("MMPlayer Pipe alloc fail");
+ vp_mm_player_destroy((mm_player_handle) pMMPlayer);
+ return NULL;
+ }
+
+ pMMPlayer->pCaptureParam = calloc(1, sizeof(MMPlayerCaptureParam));
+ if (pMMPlayer->pCaptureParam == NULL) {
+ VideoLogError("MMPlayer pCaptureParam alloc fail");
+ }
+
+ pMMPlayer->pSubtitleParam = calloc(1, sizeof(MMPlayerSubtitleParam));
+ if (pMMPlayer->pSubtitleParam == NULL) {
+ VideoLogError("MMPlayer pSubtitleParam alloc fail");
+ }
+
+ pMMPlayer->pInterruptParam = calloc(1, sizeof(MMPlayerInterruptParam));
+ if (pMMPlayer->pInterruptParam == NULL) {
+ VideoLogError("MMPlayer pInterruptParam alloc fail");
+ }
+
+ pMMPlayer->pErrorParam = calloc(1, sizeof(MMPlayerErrorParam));
+ if (pMMPlayer->pErrorParam == NULL) {
+ VideoLogError("MMPlayer pErrorParam alloc fail");
+ }
+ pMMPlayer->pBufferingParam = calloc(1, sizeof(MMPlayerBufferingParam));
+ if (pMMPlayer->pBufferingParam == NULL) {
+ VideoLogError("MMPlayer pBufferingParam alloc fail");
+ }
+
+ pMMPlayer->pPDParam = calloc(1, sizeof(MMPlayerPDParam));
+ if (pMMPlayer->pPDParam == NULL) {
+ VideoLogError("MMPlayer pPDParam alloc fail");
+ }
+
+ pMMPlayer->pMissedParam = calloc(1, sizeof(MMPlayerMissedPluginParam));
+ if (pMMPlayer->pMissedParam == NULL) {
+ VideoLogError("MMPlayer pMissedParam alloc fail");
+ }
+
+ pMMPlayer->pImageBufferParam =
+ calloc(1, sizeof(MMPlayerImageBufferParam));
+ if (pMMPlayer->pImageBufferParam == NULL) {
+ VideoLogError("MMPlayer pImageBufferParam alloc fail");
+ }
+
+ _vp_mm_ecore_pipe_create(pMMPlayer);
+
+ return (mm_player_handle) pMMPlayer;
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ */
+void vp_mm_player_destroy(mm_player_handle pPlayerHandle)
+{
+ if (pPlayerHandle == NULL) {
+ VideoLogError("pPlayerHandle is NULL");
+ return;
+ }
+
+ MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+ int nRet = 0;
+
+ if (!vp_mm_player_unrealize(pPlayerHandle)) {
+ VideoLogWarning("vp_mm_player_unrealize fail");
+ }
+
+
+ nRet = player_destroy(pMMPlayer->pPlayer);
+ if (nRet != PLAYER_ERROR_NONE) {
+ _vp_mm_player_print_err(nRet);
+ }
+ pMMPlayer->pPlayer = NULL;
+
+ pMMPlayer->fLeftVol = 0.0;
+ pMMPlayer->fRightVol = 0.0;
+
+ pMMPlayer->nSoundFilter = VP_MM_PLAYER_FILTER_NONE;
+ pMMPlayer->nVideoSink = VP_MM_PLAYER_VIDEO_TYPE_X11;
+ pMMPlayer->nRotate = VP_MM_PLAYER_ROTATE_0;
+ pMMPlayer->bIsScaling = FALSE;
+
+ _vp_mm_callback_param_free(VP_MM_PLAYER_CAPTURE_VIDEO_CB,
+ (void *) pMMPlayer->pCaptureParam);
+ _vp_mm_callback_param_free(VP_MM_PLAYER_SUBTITLE_UPDATE_CB,
+ (void *) pMMPlayer->pSubtitleParam);
+ _vp_mm_callback_param_free(VP_MM_PLAYER_IMAGE_BUFFER_CB,
+ (void *) pMMPlayer->pImageBufferParam);
+
+ if (pMMPlayer->pInterruptParam) {
+ free(pMMPlayer->pInterruptParam);
+ pMMPlayer->pInterruptParam = NULL;
+ }
+
+ if (pMMPlayer->pErrorParam) {
+ free(pMMPlayer->pErrorParam);
+ pMMPlayer->pErrorParam = NULL;
+ }
+
+ if (pMMPlayer->pBufferingParam) {
+ free(pMMPlayer->pBufferingParam);
+ pMMPlayer->pBufferingParam = NULL;
+ }
+
+ if (pMMPlayer->pPDParam) {
+ free(pMMPlayer->pPDParam);
+ pMMPlayer->pPDParam = NULL;
+ }
+
+ if (pMMPlayer->pMissedParam) {
+ free(pMMPlayer->pMissedParam);
+ pMMPlayer->pMissedParam = NULL;
+ }
+
+ if (pMMPlayer->pCbFunc) {
+ pMMPlayer->pCbFunc->pBufferingCb = NULL;
+ pMMPlayer->pCbFunc->pPrepareCb = NULL;
+ pMMPlayer->pCbFunc->pEndOfStreamCb = NULL;
+ pMMPlayer->pCbFunc->pSeekCompleteCb = NULL;
+ pMMPlayer->pCbFunc->pInterruptedCb = NULL;
+ pMMPlayer->pCbFunc->pErrorCb = NULL;
+ pMMPlayer->pCbFunc->pBufferingCb = NULL;
+ pMMPlayer->pCbFunc->pSubtitleUpdateCb = NULL;
+ pMMPlayer->pCbFunc->pPDMessageCb = NULL;
+ pMMPlayer->pCbFunc->pCapturedCb = NULL;
+ pMMPlayer->pCbFunc->pMissedPluginCb = NULL;
+ pMMPlayer->pCbFunc->pImageBufferCb = NULL;
+
+ free(pMMPlayer->pCbFunc);
+ pMMPlayer->pCbFunc = NULL;
+ }
+
+ if (pMMPlayer->pCbPipe) {
+ _vp_mm_ecore_pipe_del(pMMPlayer->pCbPipe->pPreparePipe);
+ _vp_mm_ecore_pipe_del(pMMPlayer->pCbPipe->pEndOfStreamPipe);
+ _vp_mm_ecore_pipe_del(pMMPlayer->pCbPipe->pSeekCompletePipe);
+ _vp_mm_ecore_pipe_del(pMMPlayer->pCbPipe->pInterruptedPipe);
+ _vp_mm_ecore_pipe_del(pMMPlayer->pCbPipe->pErrorPipe);
+ _vp_mm_ecore_pipe_del(pMMPlayer->pCbPipe->pBufferingPipe);
+ _vp_mm_ecore_pipe_del(pMMPlayer->pCbPipe->pSubtitleUpdatePipe);
+ _vp_mm_ecore_pipe_del(pMMPlayer->pCbPipe->pPDMessagePipe);
+ _vp_mm_ecore_pipe_del(pMMPlayer->pCbPipe->pCapturedPipe);
+ _vp_mm_ecore_pipe_del(pMMPlayer->pCbPipe->pMissedPluginPipe);
+ _vp_mm_ecore_pipe_del(pMMPlayer->pCbPipe->pImageBufferPipe);
+
+ free(pMMPlayer->pCbPipe);
+ pMMPlayer->pCbPipe = NULL;
+ }
+
+ pMMPlayer->pParam = NULL;
+ pMMPlayer->pVideoSink = NULL;
+
+ free(pMMPlayer);
+ pMMPlayer = NULL;
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param szPath
+ * @return
+ */
+bool vp_mm_player_realize(mm_player_handle pPlayerHandle, char *szPath)
+{
+ if (pPlayerHandle == NULL) {
+ VideoLogError("pPlayerHandle is NULL");
+ return FALSE;
+ }
+
+ if (szPath == NULL) {
+ VideoLogError("szPath is NULL");
+ return FALSE;
+ }
+
+ MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+ if (pMMPlayer->bIsRealize) {
+ VideoLogError("Already realized");
+ return FALSE;
+ }
+
+
+ int nRet = player_set_uri(pMMPlayer->pPlayer, szPath);
+ if (nRet != PLAYER_ERROR_NONE) {
+ _vp_mm_player_print_err(nRet);
+ VideoLogError("player_set_uri is fail : %d", nRet);
+ return FALSE;
+ }
+
+ _vp_mm_register_default_callback(pMMPlayer);
+
+
+ nRet = player_prepare(pMMPlayer->pPlayer);
+ if (nRet != PLAYER_ERROR_NONE) {
+ _vp_mm_player_print_err(nRet);
+ VideoLogError("player_prepare is fail : %d", nRet);
+ return FALSE;
+ }
+
+ pMMPlayer->bIsRealize = TRUE;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param szPath
+ * @return
+ */
+bool vp_mm_player_realize_async(mm_player_handle pPlayerHandle,
+ char *szPath)
+{
+ if (pPlayerHandle == NULL) {
+ VideoLogError("pPlayerHandle is NULL");
+ return FALSE;
+ }
+
+ MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+ if (pMMPlayer->bIsRealize) {
+ VideoLogError("Already realized");
+ return FALSE;
+ }
+
+ int nRet = player_set_uri(pMMPlayer->pPlayer, szPath);
+ if (nRet != PLAYER_ERROR_NONE) {
+ _vp_mm_player_print_err(nRet);
+ VideoLogError("player_set_uri is fail : %d", nRet);
+ return FALSE;
+ }
+
+ _vp_mm_register_default_callback(pMMPlayer);
+
+
+ nRet =
+ player_prepare_async(pMMPlayer->pPlayer,
+ __vp_mm_player_prepare_cb,
+ (void *) pMMPlayer);
+ if (nRet != PLAYER_ERROR_NONE) {
+ _vp_mm_player_print_err(nRet);
+ VideoLogError("player_prepare is fail : %d", nRet);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @return
+ */
+bool vp_mm_player_unrealize(mm_player_handle pPlayerHandle)
+{
+ if (pPlayerHandle == NULL) {
+ VideoLogError("pPlayerHandle is NULL");
+ return FALSE;
+ }
+ MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+ if (pMMPlayer->pPlayer == NULL) {
+ VideoLogError("Player Handle is NULL");
+ return FALSE;
+ }
+
+ if (pMMPlayer->bIsRealize == FALSE) {
+ VideoLogError("Not realized");
+ return FALSE;
+ }
+
+ _vp_mm_unregister_default_callback(pMMPlayer);
+
+ int nRet = player_unprepare(pMMPlayer->pPlayer);
+ if (nRet != PLAYER_ERROR_NONE) {
+ VideoLogError("player_unprepare fail : %d", nRet);
+ return FALSE;
+ }
+
+ if (pMMPlayer->szURL) {
+ free(pMMPlayer->szURL);
+ pMMPlayer->szURL = NULL;
+ }
+
+ if (pMMPlayer->szSubtitleURL) {
+ free(pMMPlayer->szSubtitleURL);
+ pMMPlayer->szSubtitleURL = NULL;
+ }
+
+ if (pMMPlayer->szCookie) {
+ free(pMMPlayer->szCookie);
+ pMMPlayer->szCookie = NULL;
+ }
+
+ if (pMMPlayer->szProxy) {
+ free(pMMPlayer->szProxy);
+ pMMPlayer->szProxy = NULL;
+ }
+
+ pMMPlayer->bIsRealize = FALSE;
+ pMMPlayer->bDeactivateSubtitle = FALSE;
+ pMMPlayer->bIsMute = FALSE;
+ pMMPlayer->bIsClosedCaption = FALSE;
+ pMMPlayer->bIsCapturing = FALSE;
+
+ pMMPlayer->nState = VP_MM_PLAYER_STATE_NONE;
+ pMMPlayer->nDisplayMode = VP_MM_PLAYER_DISPLAY_LETTER_BOX;
+
+ pMMPlayer->nDuration = 0;
+ pMMPlayer->nVideoWidth = 0;
+ pMMPlayer->nVidehHeight = 0;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @return
+ */
+bool vp_mm_player_is_realize(mm_player_handle pPlayerHandle)
+{
+ if (pPlayerHandle == NULL) {
+ VideoLogError("pPlayerHandle is NULL");
+ return FALSE;
+ }
+
+ MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+ return pMMPlayer->bIsRealize;
+
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param nCallbackType
+ * @param pCallback
+ * @return
+ */
+bool vp_mm_player_set_callback(mm_player_handle pPlayerHandle,
+ vp_mm_player_callback_t nCallbackType,
+ void *pCallback)
+{
+ if (pPlayerHandle == NULL) {
+ VideoLogError("pPlayerHandle is NULL");
+ return FALSE;
+ }
+
+ if (pCallback == NULL) {
+ VideoLogError("pCallback is NULL");
+ return FALSE;
+ }
+
+ MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+ switch (nCallbackType) {
+ case VP_MM_PLAYER_REALIZE_ASYNC_CB:
+ pMMPlayer->pCbFunc->pPrepareCb =
+ (vp_mm_player_prepare_cb) pCallback;
+ break;
+ case VP_MM_PLAYER_SEEK_COMPLETE_CB:
+ pMMPlayer->pCbFunc->pSeekCompleteCb =
+ (vp_mm_player_seek_completed_cb) pCallback;
+ break;
+ case VP_MM_PLAYER_END_OF_STREAM_CB:
+ pMMPlayer->pCbFunc->pEndOfStreamCb =
+ (vp_mm_player_completed_cb) pCallback;
+ break;
+ case VP_MM_PLAYER_INTERRUPT_CB:
+ pMMPlayer->pCbFunc->pInterruptedCb =
+ (vp_mm_player_interrupted_cb) pCallback;
+ break;
+ case VP_MM_PLAYER_ERROR_CB:
+ pMMPlayer->pCbFunc->pErrorCb = (vp_mm_player_error_cb) pCallback;
+ break;
+ case VP_MM_PLAYER_BUFFERING_CB:
+ pMMPlayer->pCbFunc->pBufferingCb =
+ (vp_mm_player_buffering_cb) pCallback;
+ break;
+ case VP_MM_PLAYER_SUBTITLE_UPDATE_CB:
+ pMMPlayer->pCbFunc->pSubtitleUpdateCb =
+ (vp_mm_player_subtitle_updated_cb) pCallback;
+ break;
+ case VP_MM_PLAYER_PD_MESSAGE_CB:
+ pMMPlayer->pCbFunc->pPDMessageCb =
+ (vp_mm_player_pd_message_cb) pCallback;
+ break;
+ case VP_MM_PLAYER_CAPTURE_VIDEO_CB:
+ pMMPlayer->pCbFunc->pCapturedCb =
+ (vp_mm_player_video_captured_cb) pCallback;
+ break;
+ case VP_MM_PLAYER_MISSED_PLUGIN_CB:
+ pMMPlayer->pCbFunc->pMissedPluginCb =
+ (vp_mm_player_missed_plugin_cb) pCallback;
+ break;
+ case VP_MM_PLAYER_IMAGE_BUFFER_CB:
+ pMMPlayer->pCbFunc->pImageBufferCb =
+ (vp_mm_player_image_buffer_updated_cb) pCallback;
+ break;
+ }
+ return TRUE;
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param pParam
+ * @return
+ */
+bool vp_mm_player_set_user_param(mm_player_handle pPlayerHandle,
+ void *pParam)
+{
+ if (pPlayerHandle == NULL) {
+ VideoLogError("pPlayerHandle is NULL");
+ return FALSE;
+ }
+
+ if (pParam == NULL) {
+ VideoLogError("pCallback is NULL");
+ return FALSE;
+ }
+
+ MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+ pMMPlayer->pParam = pParam;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param stream_info
+ * @return
+ */
+bool vp_mm_player_set_stream_info(mm_player_handle pPlayerHandle,
+ void *stream_info)
+{
+ if (pPlayerHandle == NULL) {
+ VideoLogError("pPlayerHandle is NULL");
+ return FALSE;
+ }
+
+ if (stream_info == NULL) {
+ VideoLogError("stream info is NULL");
+ return FALSE;
+ }
+
+ MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+ pMMPlayer->stream_info = stream_info;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @return
+ */
+bool vp_mm_player_play(mm_player_handle pPlayerHandle)
+{
+ if (pPlayerHandle == NULL) {
+ VideoLogError("pPlayerHandle is NULL");
+ return FALSE;
+ }
+
+ VideoLogWarning("");
+
+ MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+ if (pMMPlayer->pPlayer == NULL) {
+ VideoLogError("Player Handle is NULL");
+ return FALSE;
+ }
+
+ if (pMMPlayer->bIsRealize == FALSE) {
+ VideoLogError("Not realized");
+ return FALSE;
+ }
+ sound_manager_get_focus_reacquisition(pMMPlayer->stream_info,
+ &pMMPlayer->reacquire_state);
+ if (pMMPlayer->reacquire_state == EINA_FALSE)
+ sound_manager_set_focus_reacquisition(pMMPlayer->stream_info,
+ EINA_TRUE);
+ sound_stream_focus_state_e state_for_playback;
+ sound_stream_focus_state_e state_for_recording;
+ int ret = -1;
+ ret =
+ sound_manager_get_focus_state(pMMPlayer->stream_info,
+ &state_for_playback,
+ &state_for_recording);
+ if (ret != SOUND_MANAGER_ERROR_NONE) {
+ VideoLogError("failed to get focus state error[%x]", ret);
+ }
+ if (state_for_playback == SOUND_STREAM_FOCUS_STATE_RELEASED) {
+ int error = SOUND_MANAGER_ERROR_NONE;
+ error =
+ sound_manager_acquire_focus(pMMPlayer->stream_info,
+ SOUND_STREAM_FOCUS_FOR_PLAYBACK,
+ SOUND_BEHAVIOR_NONE, NULL);
+ if (error != SOUND_MANAGER_ERROR_NONE)
+ VideoLogError("failed to acquire focus [%x]", error);
+ }
+
+ VideoLogWarning("[player_start start]");
+ int nRet = player_start(pMMPlayer->pPlayer);
+ if (nRet != PLAYER_ERROR_NONE) {
+ _vp_mm_player_print_err(nRet);
+ VideoLogError("player_start fail : %d", nRet);
+ return FALSE;
+ }
+ VideoLogWarning("[player_start end]");
+
+ return TRUE;
+
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @return
+ */
+bool vp_mm_player_stop(mm_player_handle pPlayerHandle)
+{
+ if (pPlayerHandle == NULL) {
+ VideoLogError("pPlayerHandle is NULL");
+ return FALSE;
+ }
+
+ MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+ if (pMMPlayer->pPlayer == NULL) {
+ VideoLogError("Player Handle is NULL");
+ return FALSE;
+ }
+
+ if (pMMPlayer->bIsRealize == FALSE) {
+ VideoLogError("Not realized");
+ return FALSE;
+ }
+
+ VideoLogWarning("[player_stop start]");
+ int nRet = player_stop(pMMPlayer->pPlayer);
+ if (nRet != PLAYER_ERROR_NONE) {
+ _vp_mm_player_print_err(nRet);
+ VideoLogError("player_stop fail : %d", nRet);
+ return FALSE;
+ }
+ VideoLogWarning("[player_stop end]");
+ sound_stream_focus_state_e state_for_playback;
+ sound_stream_focus_state_e state_for_recording;
+ int ret = -1;
+ ret =
+ sound_manager_get_focus_state(pMMPlayer->stream_info,
+ &state_for_playback,
+ &state_for_recording);
+ if (ret != SOUND_MANAGER_ERROR_NONE) {
+ VideoLogError("failed to get focus state error[%x]", ret);
+ }
+ if (state_for_playback != SOUND_STREAM_FOCUS_STATE_RELEASED) {
+ int error = SOUND_MANAGER_ERROR_NONE;
+ error =
+ sound_manager_release_focus(pMMPlayer->stream_info,
+ SOUND_STREAM_FOCUS_FOR_PLAYBACK,
+ SOUND_BEHAVIOR_NONE, NULL);
+ if (error != SOUND_MANAGER_ERROR_NONE) {
+ VideoLogError("failed to release focus error[%x]", error);
+ }
+ }
+
+ return TRUE;
+
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @return
+ */
+bool vp_mm_player_pause(mm_player_handle pPlayerHandle)
+{
+ if (pPlayerHandle == NULL) {
+ VideoLogError("pPlayerHandle is NULL");
+ return FALSE;
+ }
+
+ MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+ if (pMMPlayer->pPlayer == NULL) {
+ VideoLogError("Player Handle is NULL");
+ return FALSE;
+ }
+
+ if (pMMPlayer->bIsRealize == FALSE) {
+ VideoLogError("Not realized");
+ return FALSE;
+ }
+
+ VideoLogWarning("[player_pause start]");
+ int nRet = player_pause(pMMPlayer->pPlayer);
+ if (nRet != PLAYER_ERROR_NONE) {
+ _vp_mm_player_print_err(nRet);
+ VideoLogError("player_pause fail : %d", nRet);
+ return FALSE;
+ }
+ VideoLogWarning("[player_pause end]");
+ sound_stream_focus_state_e state_for_playback;
+ sound_stream_focus_state_e state_for_recording;
+ int ret = -1;
+ ret =
+ sound_manager_get_focus_state(pMMPlayer->stream_info,
+ &state_for_playback,
+ &state_for_recording);
+ if (ret != SOUND_MANAGER_ERROR_NONE) {
+ VideoLogError("failed to get focus state error[%x]", ret);
+ }
+ if (state_for_playback != SOUND_STREAM_FOCUS_STATE_RELEASED) {
+ int error = SOUND_MANAGER_ERROR_NONE;
+ error =
+ sound_manager_release_focus(pMMPlayer->stream_info,
+ SOUND_STREAM_FOCUS_FOR_PLAYBACK,
+ SOUND_BEHAVIOR_NONE, NULL);
+ if (error != SOUND_MANAGER_ERROR_NONE) {
+ VideoLogError("failed to release focus error[%x]", error);
+ }
+ }
+
+ return TRUE;
+
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param nState
+ * @return
+ */
+bool vp_mm_player_get_state(mm_player_handle pPlayerHandle,
+ vp_mm_player_state_t * nState)
+{
+ if (pPlayerHandle == NULL) {
+ VideoLogError("pPlayerHandle is NULL");
+ return FALSE;
+ }
+
+ MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+ player_state_e nPlayerState = PLAYER_STATE_NONE;
+
+ int nRet = player_get_state(pMMPlayer->pPlayer, &nPlayerState);
+ if (nRet != PLAYER_ERROR_NONE) {
+ _vp_mm_player_print_err(nRet);
+ VideoLogError("PLAYER_ERROR_NONE fail : %d", nRet);
+ return FALSE;
+ }
+
+ *nState = _vp_mm_player_priv_convert_player_state(nPlayerState, TRUE);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param nPosition
+ * @return
+ */
+bool vp_mm_player_get_position(mm_player_handle pPlayerHandle,
+ int *nPosition)
+{
+ if (pPlayerHandle == NULL) {
+ VideoLogError("pPlayerHandle is NULL");
+ return FALSE;
+ }
+
+ MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+ if (pMMPlayer->pPlayer == NULL) {
+ VideoLogError("Player Handle is NULL");
+ return FALSE;
+ }
+
+ if (pMMPlayer->bIsRealize == FALSE) {
+ VideoLogError("Not realized");
+ return FALSE;
+ }
+
+ int nPos = 0;
+
+ int nRet = player_get_play_position(pMMPlayer->pPlayer, &nPos);
+ if (nRet != PLAYER_ERROR_NONE) {
+ _vp_mm_player_print_err(nRet);
+ VideoLogError("player_get_play_position fail : %d", nRet);
+ return FALSE;
+ }
+ *nPosition = nPos;
+
+ return TRUE;
+
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param nPosition
+ * @return
+ */
+bool vp_mm_player_set_position(mm_player_handle pPlayerHandle,
+ int nPosition)
+{
+ if (pPlayerHandle == NULL) {
+ VideoLogError("pPlayerHandle is NULL");
+ return FALSE;
+ }
+
+ MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+ if (pMMPlayer->pPlayer == NULL) {
+ VideoLogError("Player Handle is NULL");
+ return FALSE;
+ }
+
+ if (pMMPlayer->bIsRealize == FALSE) {
+ VideoLogError("Not realized");
+ return FALSE;
+ }
+
+ if (nPosition < 0) {
+ VideoLogError("Invalid position value");
+ return FALSE;
+ }
+
+ int nRet =
+ player_set_play_position(pMMPlayer->pPlayer, nPosition, TRUE,
+ __vp_mm_player_seek_completed_cb,
+ (void *) pMMPlayer);
+ if (nRet != PLAYER_ERROR_NONE) {
+ _vp_mm_player_print_err(nRet);
+ VideoLogError("player_set_position fail : %d", nRet);
+ return FALSE;
+ }
+
+ return TRUE;
+
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param nPosition
+ * @return
+ */
+bool vp_mm_player_set_position_by_key_frame(mm_player_handle
+ pPlayerHandle, int nPosition)
+{
+ if (pPlayerHandle == NULL) {
+ VideoLogError("pPlayerHandle is NULL");
+ return FALSE;
+ }
+
+ MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+ if (pMMPlayer->pPlayer == NULL) {
+ VideoLogError("Player Handle is NULL");
+ return FALSE;
+ }
+
+ if (pMMPlayer->bIsRealize == FALSE) {
+ VideoLogError("Not realized");
+ return FALSE;
+ }
+
+ if (nPosition < 0) {
+ VideoLogError("Invalid position value");
+ return FALSE;
+ }
+ int nRet =
+ player_set_play_position(pMMPlayer->pPlayer, nPosition, TRUE,
+ __vp_mm_player_seek_completed_cb,
+ (void *) pMMPlayer);
+ if (nRet != PLAYER_ERROR_NONE) {
+ _vp_mm_player_print_err(nRet);
+ VideoLogError("player_set_position fail : %d", nRet);
+ return FALSE;
+ }
+ return TRUE;
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param nPosition
+ * @return
+ */
+bool vp_mm_player_get_buffering_position(mm_player_handle pPlayerHandle,
+ int *nPosition)
+{
+ if (pPlayerHandle == NULL) {
+ VideoLogError("pPlayerHandle is NULL");
+ return FALSE;
+ }
+
+ MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+ if (pMMPlayer->pPlayer == NULL) {
+ VideoLogError("Player Handle is NULL");
+ return FALSE;
+ }
+
+ if (pMMPlayer->bIsRealize == FALSE) {
+ VideoLogError("Not realized");
+ return FALSE;
+ }
+ int nStart = 0;
+ int nCurrent = 0;
+ int nRet = player_get_streaming_download_progress(pMMPlayer->pPlayer,
+ &nStart, &nCurrent);
+ if (nRet != PLAYER_ERROR_NONE) {
+ _vp_mm_player_print_err(nRet);
+ VideoLogError("player_get_streaming_download_progress fail : %d",
+ nRet);
+ return FALSE;
+ }
+
+ *nPosition = nCurrent;
+
+ return TRUE;
+
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param bScale
+ * @return
+ */
+bool vp_mm_player_set_scaling(mm_player_handle pPlayerHandle, bool bScale)
+{
+ if (pPlayerHandle == NULL) {
+ VideoLogError("pPlayerHandle is NULL");
+ return FALSE;
+ }
+ MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+ if (pMMPlayer->pPlayer == NULL) {
+ VideoLogError("Player Handle is NULL");
+ return FALSE;
+ }
+
+ pMMPlayer->bIsScaling = bScale;
+ return TRUE;
+
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param bLoop
+ * @return
+ */
+bool vp_mm_player_set_loop(mm_player_handle pPlayerHandle, bool bLoop)
+{
+ if (pPlayerHandle == NULL) {
+ VideoLogError("pPlayerHandle is NULL");
+ return FALSE;
+ }
+ MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+ if (pMMPlayer->pPlayer == NULL) {
+ VideoLogError("Player Handle is NULL");
+ return FALSE;
+ }
+
+ int nRet = player_set_looping(pMMPlayer->pPlayer, bLoop);
+ if (nRet != PLAYER_ERROR_NONE) {
+ _vp_mm_player_print_err(nRet);
+ VideoLogError("player_set_looping fail : %d", nRet);
+ return FALSE;
+ }
+
+ pMMPlayer->bIsLooping = bLoop;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param bMute
+ * @return
+ */
+bool vp_mm_player_set_mute(mm_player_handle pPlayerHandle, bool bMute)
+{
+ if (pPlayerHandle == NULL) {
+ VideoLogError("pPlayerHandle is NULL");
+ return FALSE;
+ }
+
+ MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+ if (pMMPlayer->pPlayer == NULL) {
+ VideoLogError("Player Handle is NULL");
+ return FALSE;
+ }
+
+ if (pMMPlayer->bIsRealize == FALSE) {
+ VideoLogError("Not realized");
+ return FALSE;
+ }
+
+ int nRet = player_set_mute(pMMPlayer->pPlayer, bMute);
+ if (nRet != PLAYER_ERROR_NONE) {
+ _vp_mm_player_print_err(nRet);
+ VideoLogError("player_set_mute fail : %d", nRet);
+ return FALSE;
+ }
+
+ pMMPlayer->bIsMute = bMute;
+
+ return TRUE;
+
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param bMute
+ * @return
+ */
+bool vp_mm_player_get_mute(mm_player_handle pPlayerHandle, bool * bMute)
+{
+ if (pPlayerHandle == NULL) {
+ VideoLogError("pPlayerHandle is NULL");
+ return FALSE;
+ }
+
+ MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+ if (pMMPlayer->pPlayer == NULL) {
+ VideoLogError("Player Handle is NULL");
+ return FALSE;
+ }
+
+ if (pMMPlayer->bIsRealize == FALSE) {
+ VideoLogError("Not realized");
+ return FALSE;
+ }
+ bool bIsMute = FALSE;
+ int nRet = player_is_muted(pMMPlayer->pPlayer, &bIsMute);
+ if (nRet != PLAYER_ERROR_NONE) {
+ _vp_mm_player_print_err(nRet);
+ VideoLogError("player_is_muted fail : %d", nRet);
+ return FALSE;
+ }
+
+ pMMPlayer->bIsMute = bIsMute;
+ *bMute = bIsMute;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param nDuration
+ * @return
+ */
+bool vp_mm_player_get_duration(mm_player_handle pPlayerHandle,
+ int *nDuration)
+{
+ if (pPlayerHandle == NULL) {
+ VideoLogError("pPlayerHandle is NULL");
+ return FALSE;
+ }
+
+ MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+ if (pMMPlayer->pPlayer == NULL) {
+ VideoLogError("Player Handle is NULL");
+ return FALSE;
+ }
+
+ if (pMMPlayer->bIsRealize == FALSE) {
+ VideoLogError("Not realized");
+ return FALSE;
+ }
+
+ int nDur = 0;
+ int nRet = player_get_duration(pMMPlayer->pPlayer, &nDur);
+ if (nRet != PLAYER_ERROR_NONE) {
+ _vp_mm_player_print_err(nRet);
+ VideoLogError("player_get_duration fail : %d", nRet);
+ return FALSE;
+ }
+
+ *nDuration = nDur;
+
+ return TRUE;
+
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param audio_codec
+ * @param video_codec
+ * @return
+ */
+bool vp_mm_player_get_codecinfo(mm_player_handle pPlayerHandle,
+ char **audio_codec, char **video_codec)
+{
+ if (pPlayerHandle == NULL) {
+ VideoLogError("pPlayerHandle is NULL");
+ return FALSE;
+ }
+
+ MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+ if (pMMPlayer->pPlayer == NULL) {
+ VideoLogError("Player Handle is NULL");
+ return FALSE;
+ }
+
+ if (pMMPlayer->bIsRealize == FALSE) {
+ VideoLogError("Not realized");
+ return FALSE;
+ }
+
+ int nRet = player_get_codec_info(pMMPlayer->pPlayer, audio_codec,
+ video_codec);
+ if (nRet != PLAYER_ERROR_NONE) {
+ _vp_mm_player_print_err(nRet);
+ VideoLogError("player_get_codec_info fail : %d", nRet);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param nType
+ * @param pSink
+ * @return
+ */
+bool vp_mm_player_set_video_sink(mm_player_handle pPlayerHandle,
+ int nType, void *pSink)
+{
+ if (pPlayerHandle == NULL) {
+ VideoLogError("pPlayerHandle is NULL");
+ return FALSE;
+ }
+
+ MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+ if (pMMPlayer->pPlayer == NULL) {
+ VideoLogError("Player Handle is NULL");
+ return FALSE;
+ }
+
+ int nSinkType = _vp_mm_player_priv_convert_video_sink(nType, FALSE);
+ int nRet = player_set_display(pMMPlayer->pPlayer, nSinkType, pSink);
+ if (nRet != PLAYER_ERROR_NONE) {
+ _vp_mm_player_print_err(nRet);
+ VideoLogError("player_set_display fail : %d", nRet);
+ return FALSE;
+ }
+
+ pMMPlayer->nVideoSink = nType;
+ pMMPlayer->pVideoSink = pSink;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param nRotate
+ * @return
+ */
+bool vp_mm_player_set_video_rotate(mm_player_handle pPlayerHandle,
+ int nRotate)
+{
+ if (pPlayerHandle == NULL) {
+ VideoLogError("pPlayerHandle is NULL");
+ return FALSE;
+ }
+
+ MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+ if (pMMPlayer->pPlayer == NULL) {
+ VideoLogError("Player Handle is NULL");
+ return FALSE;
+ }
+#ifdef _NATIVE_BUFFER_SYNC
+ int nRot = PLAYER_DISPLAY_ROTATION_NONE;
+#else
+ int nRot = _vp_mm_player_priv_convert_rotate(nRotate, FALSE);
+#endif
+
+ int nRet = player_set_display_rotation(pMMPlayer->pPlayer, nRot);
+ if (nRet != PLAYER_ERROR_NONE) {
+ _vp_mm_player_print_err(nRet);
+ VideoLogError("player_set_display_rotation fail : %d", nRet);
+ return FALSE;
+ }
+
+ pMMPlayer->nRotate = nRotate;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param nDisplayMode
+ * @return
+ */
+bool vp_mm_player_set_display_mode(mm_player_handle pPlayerHandle,
+ vp_mm_player_display_mode_t
+ nDisplayMode)
+{
+ if (pPlayerHandle == NULL) {
+ VideoLogError("pPlayerHandle is NULL");
+ return FALSE;
+ }
+
+ MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+ if (pMMPlayer->pPlayer == NULL) {
+ VideoLogError("Player Handle is NULL");
+ return FALSE;
+ }
+ int nMode =
+ _vp_mm_player_priv_convert_display_mode(nDisplayMode, FALSE);
+ int nRet = player_set_display_mode(pMMPlayer->pPlayer, nMode);
+ if (nRet != PLAYER_ERROR_NONE) {
+ _vp_mm_player_print_err(nRet);
+ VideoLogError("player_set_display_mode fail : %d", nRet);
+ return FALSE;
+ }
+
+ pMMPlayer->nDisplayMode = nDisplayMode;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param nWidth
+ * @param nHeight
+ * @return
+ */
+bool vp_mm_player_get_resolution(mm_player_handle pPlayerHandle,
+ int *nWidth, int *nHeight)
+{
+ if (pPlayerHandle == NULL) {
+ VideoLogError("pPlayerHandle is NULL");
+ return FALSE;
+ }
+
+ MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+ if (pMMPlayer->bIsRealize == FALSE) {
+ VideoLogError("Not realized");
+ return FALSE;
+ }
+
+ if (pMMPlayer->pPlayer == NULL) {
+ VideoLogError("Player Handle is NULL");
+ return FALSE;
+ }
+
+ int nRet = player_get_video_size(pMMPlayer->pPlayer, nWidth, nHeight);
+ if (nRet != PLAYER_ERROR_NONE) {
+ _vp_mm_player_print_err(nRet);
+ VideoLogError("player_set_subtitle_path fail : %d", nRet);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param szSubtitlePath
+ * @return
+ */
+bool vp_mm_player_set_subtitle_url(mm_player_handle pPlayerHandle,
+ char *szSubtitlePath)
+{
+ if (pPlayerHandle == NULL) {
+ VideoLogError("pPlayerHandle is NULL");
+ return FALSE;
+ }
+
+ if (szSubtitlePath == NULL) {
+ VideoLogError("Invalid subtitle path info");
+ return FALSE;
+ }
+
+ MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+ if (pMMPlayer->pPlayer == NULL) {
+ VideoLogError("Player Handle is NULL");
+ return FALSE;
+ }
+
+ if (pMMPlayer->szSubtitleURL) {
+ free(pMMPlayer->szSubtitleURL);
+ pMMPlayer->szSubtitleURL = NULL;
+ }
+
+ int nRet =
+ player_set_subtitle_path(pMMPlayer->pPlayer, szSubtitlePath);
+ if (nRet != PLAYER_ERROR_NONE) {
+ _vp_mm_player_print_err(nRet);
+ VideoLogError("player_set_subtitle_path fail : %d", nRet);
+ return FALSE;
+ }
+
+ pMMPlayer->szSubtitleURL = strdup(szSubtitlePath);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param szSubtitlePath
+ * @return
+ */
+bool vp_mm_player_get_subtitle_url(mm_player_handle pPlayerHandle,
+ char **szSubtitlePath)
+{
+ if (pPlayerHandle == NULL) {
+ VideoLogError("pPlayerHandle is NULL");
+ return FALSE;
+ }
+
+ MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+ if (pMMPlayer->szSubtitleURL == NULL) {
+ VideoLogError("pMMPlayer->szSubtitleURL is NULL");
+ return FALSE;
+ }
+
+ *szSubtitlePath = strdup(pMMPlayer->szSubtitleURL);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param szFamilyName
+ * @param szStyle
+ * @param nSize
+ * @return
+ */
+bool vp_mm_player_set_subtitle_font(mm_player_handle pPlayerHandle,
+ char *szFamilyName, char *szStyle,
+ int nSize)
+{
+ if (pPlayerHandle == NULL) {
+ VideoLogError("pPlayerHandle is NULL");
+ return FALSE;
+ }
+
+ MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+ if (szFamilyName == NULL) {
+ VideoLogError("Invalid szFamilyName info");
+ return FALSE;
+ }
+
+ if (pMMPlayer->pPlayer == NULL) {
+ VideoLogError("Player Handle is NULL");
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param nForegroundColor
+ * @param nBGColor
+ * @return
+ */
+bool vp_mm_player_set_subtitle_font_color(mm_player_handle pPlayerHandle,
+ unsigned int nForegroundColor,
+ unsigned int nBGColor)
+{
+ if (pPlayerHandle == NULL) {
+ VideoLogError("pPlayerHandle is NULL");
+ return FALSE;
+ }
+
+ MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+ if (pMMPlayer->pPlayer == NULL) {
+ VideoLogError("Player Handle is NULL");
+ return FALSE;
+ }
+
+ return TRUE;
+
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param bIgnoreMarkup
+ * @return
+ */
+bool vp_mm_player_subtitle_ignore_markup_tags(mm_player_handle
+ pPlayerHandle,
+ bool bIgnoreMarkup)
+{
+ if (pPlayerHandle == NULL) {
+ VideoLogError("pPlayerHandle is NULL");
+ return FALSE;
+ }
+
+ MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+ if (pMMPlayer->pPlayer == NULL) {
+ VideoLogError("Player Handle is NULL");
+ return FALSE;
+ }
+ return TRUE;
+
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param type
+ * @return
+ */
+bool vp_mm_player_subtitle_set_alignment_in_line(mm_player_handle
+ pPlayerHandle,
+ vp_mm_player_subtitle_halign_t
+ type)
+{
+ if (pPlayerHandle == NULL) {
+ VideoLogError("pPlayerHandle is NULL");
+ return FALSE;
+ }
+
+ MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+ if (pMMPlayer->pPlayer == NULL) {
+ VideoLogError("Player Handle is NULL");
+ return FALSE;
+ }
+ return TRUE;
+
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param type
+ * @return
+ */
+bool vp_mm_player_subtitle_set_alignment_horizontal(mm_player_handle
+ pPlayerHandle,
+ vp_mm_player_subtitle_halign_t
+ type)
+{
+ if (pPlayerHandle == NULL) {
+ VideoLogError("pPlayerHandle is NULL");
+ return FALSE;
+ }
+
+ MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+ if (pMMPlayer->pPlayer == NULL) {
+ VideoLogError("Player Handle is NULL");
+ return FALSE;
+ }
+ return TRUE;
+
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @return
+ */
+bool vp_mm_player_subtitle_apply_alignment_right_away(mm_player_handle
+ pPlayerHandle)
+{
+ if (pPlayerHandle == NULL) {
+ VideoLogError("pPlayerHandle is NULL");
+ return FALSE;
+ }
+
+ MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+ if (pMMPlayer->pPlayer == NULL) {
+ VideoLogError("Player Handle is NULL");
+ return FALSE;
+ }
+ return TRUE;
+
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param nPosition
+ * @return
+ */
+bool vp_mm_player_set_subtitle_position(mm_player_handle pPlayerHandle,
+ int nPosition)
+{
+ if (pPlayerHandle == NULL) {
+ VideoLogError("pPlayerHandle is NULL");
+ return FALSE;
+ }
+
+ MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+ if (pMMPlayer->pPlayer == NULL) {
+ VideoLogError("Player Handle is NULL");
+ return FALSE;
+ }
+
+ if (pMMPlayer->bIsRealize == FALSE) {
+ VideoLogError("Not realized");
+ return FALSE;
+ }
+
+ int nRet = player_set_subtitle_position_offset(pMMPlayer->pPlayer,
+ nPosition);
+ if (nRet != PLAYER_ERROR_NONE) {
+ _vp_mm_player_print_err(nRet);
+ VideoLogError("player_set_subtitle_position fail : %d", nRet);
+ return FALSE;
+ }
+
+ return TRUE;
+
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param bDeactivate
+ * @return
+ */
+bool vp_mm_player_set_deactivate_subtitle(mm_player_handle pPlayerHandle,
+ bool bDeactivate)
+{
+ if (pPlayerHandle == NULL) {
+ VideoLogError("pPlayerHandle is NULL");
+ return FALSE;
+ }
+
+ MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+ pMMPlayer->bDeactivateSubtitle = bDeactivate;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param fLeft
+ * @param fRight
+ * @return
+ */
+bool vp_mm_player_set_volume(mm_player_handle pPlayerHandle, float fLeft,
+ float fRight)
+{
+ if (pPlayerHandle == NULL) {
+ VideoLogError("pPlayerHandle is NULL");
+ return FALSE;
+ }
+
+ MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+ if (pMMPlayer->pPlayer == NULL) {
+ VideoLogError("Player Handle is NULL");
+ return FALSE;
+ }
+
+ if (pMMPlayer->bIsRealize == FALSE) {
+ VideoLogError("Not realized");
+ return FALSE;
+ }
+
+ int nRet = player_set_volume(pMMPlayer->pPlayer, fLeft, fRight);
+ if (nRet != PLAYER_ERROR_NONE) {
+ _vp_mm_player_print_err(nRet);
+ VideoLogError("player_set_volume fail : %d", nRet);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param fLeft
+ * @param fRight
+ * @return
+ */
+bool vp_mm_player_get_volume(mm_player_handle pPlayerHandle, float *fLeft,
+ float *fRight)
+{
+ if (pPlayerHandle == NULL) {
+ VideoLogError("pPlayerHandle is NULL");
+ return FALSE;
+ }
+
+ MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+ if (pMMPlayer->pPlayer == NULL) {
+ VideoLogError("Player Handle is NULL");
+ return FALSE;
+ }
+
+ if (pMMPlayer->bIsRealize == FALSE) {
+ VideoLogError("Not realized");
+ return FALSE;
+ }
+
+ float fLeftVal = 0.0;
+ float fRightVal = 0.0;
+
+ int nRet =
+ player_get_volume(pMMPlayer->pPlayer, &fLeftVal, &fRightVal);
+ if (nRet != PLAYER_ERROR_NONE) {
+ _vp_mm_player_print_err(nRet);
+ VideoLogError("player_get_volume fail : %d", nRet);
+ return FALSE;
+ }
+
+ *fLeft = fLeftVal;
+ *fRight = fRightVal;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param nFilter
+ * @return
+ */
+bool vp_mm_player_set_sound_filter(mm_player_handle pPlayerHandle,
+ vp_mm_player_sound_filter_t nFilter)
+{
+ if (pPlayerHandle == NULL) {
+ VideoLogError("pPlayerHandle is NULL");
+ return FALSE;
+ }
+
+ return FALSE;
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param nFilter
+ * @return
+ */
+bool vp_mm_player_get_sound_filter(mm_player_handle pPlayerHandle,
+ vp_mm_player_sound_filter_t * nFilter)
+{
+ if (pPlayerHandle == NULL) {
+ VideoLogError("pPlayerHandle is NULL");
+ return FALSE;
+ }
+
+ MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+ *nFilter = pMMPlayer->nSoundFilter;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @return
+ */
+bool vp_mm_player_capture_start(mm_player_handle pPlayerHandle)
+{
+ if (pPlayerHandle == NULL) {
+ VideoLogError("pPlayerHandle is NULL");
+ return FALSE;
+ }
+
+ MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+ if (pMMPlayer->pPlayer == NULL) {
+ VideoLogError("Player Handle is NULL");
+ return FALSE;
+ }
+
+ if (pMMPlayer->bIsRealize == FALSE) {
+ VideoLogError("Not realized");
+ return FALSE;
+ }
+
+
+ int nRet = player_capture_video(pMMPlayer->pPlayer,
+ __vp_mm_player_video_captured_cb,
+ (void *) pMMPlayer);
+ if (nRet != PLAYER_ERROR_NONE) {
+ _vp_mm_player_print_err(nRet);
+ VideoLogError("player_capture_video fail : %d", nRet);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @return
+ */
+bool vp_mm_player_is_closed_caption_exist(mm_player_handle pPlayerHandle)
+{
+ if (pPlayerHandle == NULL) {
+ VideoLogError("pPlayerHandle is NULL");
+ return FALSE;
+ }
+
+ MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+ if (pMMPlayer->pPlayer == NULL) {
+ VideoLogError("Player Handle is NULL");
+ return FALSE;
+ }
+
+ if (pMMPlayer->bIsRealize == FALSE) {
+ VideoLogError("Not realized");
+ return FALSE;
+ }
+
+
+ return FALSE;
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param nCount
+ * @return
+ */
+bool vp_mm_player_get_audio_track_count(mm_player_handle pPlayerHandle,
+ int *nCount)
+{
+ if (pPlayerHandle == NULL) {
+ VideoLogError("pPlayerHandle is NULL");
+ return FALSE;
+ }
+
+ int nCnt = 0;
+
+ *nCount = nCnt;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param nIndex
+ * @param szCode
+ * @return
+ */
+bool vp_mm_player_get_audio_track_language_code(mm_player_handle
+ pPlayerHandle, int nIndex,
+ char **szCode)
+{
+ if (pPlayerHandle == NULL) {
+ VideoLogError("pPlayerHandle is NULL");
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param nIndex
+ * @return
+ */
+bool vp_mm_player_set_audio_track(mm_player_handle pPlayerHandle,
+ int nIndex)
+{
+ if (pPlayerHandle == NULL) {
+ VideoLogError("pPlayerHandle is NULL");
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param nCount
+ * @return
+ */
+bool vp_mm_player_get_subtitle_track_count(mm_player_handle pPlayerHandle,
+ int *nCount)
+{
+ if (pPlayerHandle == NULL) {
+ VideoLogError("pPlayerHandle is NULL");
+ return FALSE;
+ }
+
+ *nCount = 0;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param nIndex
+ * @param szCode
+ * @return
+ */
+bool vp_mm_player_get_subtitle_track_language_code(mm_player_handle
+ pPlayerHandle,
+ int nIndex,
+ char **szCode)
+{
+ if (pPlayerHandle == NULL) {
+ VideoLogError("pPlayerHandle is NULL");
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param nIndex
+ * @return
+ */
+bool vp_mm_player_set_subtitle_track(mm_player_handle pPlayerHandle,
+ int nIndex)
+{
+ if (pPlayerHandle == NULL) {
+ VideoLogError("pPlayerHandle is NULL");
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+#ifdef _SUBTITLE_MULTI_LANGUAGE
+bool vp_mm_player_add_subtitle_language(mm_player_handle pPlayerHandle,
+ int nIndex)
+{
+ if (pPlayerHandle == NULL) {
+ VideoLogError("pPlayerHandle is NULL");
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+bool vp_mm_player_remove_subtitle_language(mm_player_handle pPlayerHandle,
+ int nIndex)
+{
+ if (pPlayerHandle == NULL) {
+ VideoLogError("pPlayerHandle is NULL");
+ return FALSE;
+ }
+ return TRUE;
+}
+
+bool
+vp_mm_player_track_foreach_selected_subtitle_language(mm_player_handle
+ pPlayerHandle,
+ void *pCallback,
+ void *pUserData)
+{
+ if (pPlayerHandle == NULL) {
+ VideoLogError("pPlayerHandle is NULL");
+ return FALSE;
+ }
+
+ return TRUE;
+}
+#endif
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param szCookie
+ * @return
+ */
+bool vp_mm_player_set_cookie(mm_player_handle pPlayerHandle,
+ const char *szCookie)
+{
+ if (pPlayerHandle == NULL) {
+ VideoLogError("pPlayerHandle is NULL");
+ return FALSE;
+ }
+
+ if (szCookie == NULL) {
+ VideoLogError("szCookie is NULL");
+ return FALSE;
+ }
+
+
+ MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+ int nRet = player_set_streaming_cookie(pMMPlayer->pPlayer, szCookie,
+ strlen(szCookie));
+ if (nRet != PLAYER_ERROR_NONE) {
+ _vp_mm_player_print_err(nRet);
+ VideoLogError("player_select_track fail : %d", nRet);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param szProxy
+ * @return
+ */
+bool vp_mm_player_set_proxy(mm_player_handle pPlayerHandle,
+ const char *szProxy)
+{
+ if (pPlayerHandle == NULL) {
+ VideoLogError("pPlayerHandle is NULL");
+ return FALSE;
+ }
+
+ if (szProxy == NULL) {
+ VideoLogError("szCookie is NULL");
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param bEnable
+ * @return
+ */
+bool vp_mm_player_set_hw_decoder(bool bEnable)
+{
+ if (bEnable) {
+ setenv("MM_PLAYER_HW_CODEC_DISABLE", "no", 1);
+ } else {
+ setenv("MM_PLAYER_HW_CODEC_DISABLE", "yes", 1);
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param fRate
+ * @return
+ */
+bool vp_mm_player_set_rate(mm_player_handle pPlayerHandle, float fRate)
+{
+ if (pPlayerHandle == NULL) {
+ VideoLogError("pPlayerHandle is NULL");
+ return FALSE;
+ }
+
+ MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+ if (fRate < 0.5 || fRate > 1.5) {
+ VideoLogError("Invalid Param : %f", fRate);
+ return FALSE;
+ }
+
+ VideoLogDebug("== SET RATE : %f", fRate);
+
+ int nRet = player_set_playback_rate(pMMPlayer->pPlayer, fRate);
+ if (nRet != PLAYER_ERROR_NONE) {
+ _vp_mm_player_print_err(nRet);
+ VideoLogError("player_set_playback_rate_ex fail : %d", nRet);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param fZoom
+ * @param nPosX
+ * @param nPosY
+ * @return
+ */
+bool vp_mm_player_set_zoom(mm_player_handle pPlayerHandle, float fZoom,
+ int nPosX, int nPosY)
+{
+ if (pPlayerHandle == NULL) {
+ VideoLogError("pPlayerHandle is NULL");
+ return FALSE;
+ }
+ return FALSE;
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param nPosX
+ * @param nPosY
+ * @return
+ */
+bool vp_mm_player_get_zoom_start_position(mm_player_handle pPlayerHandle,
+ int *nPosX, int *nPosY)
+{
+ if (pPlayerHandle == NULL) {
+ VideoLogError("pPlayerHandle is NULL");
+ return FALSE;
+ }
+
+ MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+ *nPosX = pMMPlayer->nZoomPosX;
+ *nPosY = pMMPlayer->nZoomPosY;
+ return TRUE;
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param bVisible
+ * @return
+ */
+bool vp_mm_player_set_visible(mm_player_handle pPlayerHandle,
+ bool bVisible)
+{
+
+ if (pPlayerHandle == NULL) {
+ VideoLogError("pPlayerHandle is NULL");
+ return FALSE;
+ }
+
+ MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+ int nRet = player_set_display_visible(pMMPlayer->pPlayer, bVisible);
+ if (nRet != PLAYER_ERROR_NONE) {
+ _vp_mm_player_print_err(nRet);
+ VideoLogError("player_set_display_visible fail : %d", nRet);
+ return FALSE;
+ }
+ return TRUE;
+
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param bDownload
+ * @return
+ */
+bool vp_mm_player_set_hub_download_mode(mm_player_handle pPlayerHandle,
+ bool bDownload)
+{
+ if (pPlayerHandle == NULL) {
+ VideoLogError("pPlayerHandle is NULL");
+ return FALSE;
+ }
+ return FALSE;
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#include "vp-play-string-define.h"
+#include "vp-play-macro-define.h"
+
+#include "vp-play-util.h"
+
+
+#include "vp-multi-path.h"
+
+/* check temp */
+#include "vp-play-log.h"
+
+
+typedef struct _MultiPath {
+ char *szURL;
+ char *szTitle;
+ char *szSubTitle;
+ int nStartPosition;
+ int nDuration;
+ bool bIsSameAP;
+} MultiPath;
+
+/* internal functions */
+/**
+ *
+ * @param szURL
+ * @param nPosition
+ * @return
+ */
+static bool _vp_multi_path_write_multi_path_set_position(char *szURL,
+ int nPosition)
+{
+ char *app_path = app_get_data_path();
+ if (!app_path) {
+ VideoLogError("cannot retrieve app install path");
+ return FALSE;
+ }
+ char db_path[1024] = { 0, };
+ snprintf(db_path, 1024, "%s%s", app_path, "saveposition.ini");
+ VideoLogError("db_path: %s", db_path);
+ FILE *fp = fopen(db_path, "w");
+
+ if (fp == NULL) {
+ VideoLogError("%s is NULL.", db_path);
+ return FALSE;
+ }
+
+ fprintf(fp, "#saveposition\n");
+ fprintf(fp, "uri=%s\n", szURL);
+ fprintf(fp, "position=%d\n", nPosition);
+ fclose(fp);
+
+ return TRUE;
+}
+
+/* external functions */
+/**
+ *
+ * @param pList
+ * @param szURL
+ * @param szTitle
+ * @param szSubTitle
+ * @param nPosition
+ * @param nDuration
+ * @param bIsSameAP
+ * @return
+ */
+bool vp_multi_path_add_item(GList ** pList,
+ const char *szURL,
+ char *szTitle,
+ char *szSubTitle,
+ int nPosition, int nDuration, bool bIsSameAP)
+{
+ if (!szURL) {
+ VideoLogError("szURL is NULL");
+ return FALSE;
+ }
+
+ MultiPath *pPath = NULL;
+
+ pPath = calloc(1, sizeof(MultiPath));
+ if (pPath == NULL) {
+ VideoLogError("pPath alloc fail");
+ return FALSE;
+ }
+
+ char *szConvert = vp_play_util_remove_prefix_to_url((char *) szURL);
+ if (szConvert) {
+ VP_STRDUP(pPath->szURL, szConvert);
+ } else {
+ VP_STRDUP(pPath->szURL, szURL);
+ }
+ VP_FREE(szConvert);
+
+
+ szConvert = vp_play_util_remove_prefix_to_url(szSubTitle);
+ if (szConvert) {
+ VP_STRDUP(pPath->szSubTitle, szConvert);
+ } else {
+ VP_STRDUP(pPath->szSubTitle, szSubTitle);
+ }
+ VP_FREE(szConvert);
+
+ VP_STRDUP(pPath->szTitle, szTitle);
+ pPath->bIsSameAP = bIsSameAP;
+
+ pPath->nStartPosition = nPosition;
+ pPath->nDuration = nDuration;
+ *pList = g_list_append(*pList, pPath);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pList
+ * @return
+ */
+bool vp_multi_path_clear_item(GList * pList)
+{
+ if (!pList) {
+ VideoLogError("pList is NULL");
+ return FALSE;
+ }
+
+ int nCount = 0;
+ int nIdx = 0;
+
+ nCount = g_list_length(pList);
+ for (nIdx = 0; nIdx < nCount; nIdx++) {
+ MultiPath *pPath = NULL;
+ pPath = (MultiPath *) g_list_nth_data(pList, nIdx);
+ if (pPath) {
+ VP_FREE(pPath->szURL);
+ VP_FREE(pPath->szSubTitle);
+ VP_FREE(pPath->szTitle);
+
+ VP_FREE(pPath);
+ }
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param szMediaURL
+ * @param szSubtitleURL
+ * @param pList
+ * @return
+ */
+bool vp_multi_path_set_item_subtitle(const char *szMediaURL,
+ char *szSubtitleURL, GList * pList)
+{
+ if (!pList) {
+ VideoLogError("pList is NULL");
+ return FALSE;
+ }
+
+ if (!szMediaURL) {
+ VideoLogError("szMediaURL is NULL");
+ return FALSE;
+ }
+
+ int nCount = 0;
+ int nIdx = 0;
+
+ nCount = g_list_length(pList);
+ for (nIdx = 0; nIdx < nCount; nIdx++) {
+ MultiPath *pPath = NULL;
+ pPath = (MultiPath *) g_list_nth_data(pList, nIdx);
+ if (pPath == NULL) {
+ continue;
+ }
+ if (pPath->szURL == NULL) {
+ continue;
+ }
+ if (!strcmp(szMediaURL, pPath->szURL)) {
+ VP_FREE(pPath->szSubTitle);
+ VP_STRDUP(pPath->szSubTitle, szSubtitleURL);
+ }
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param szMediaURL
+ * @param nPosition
+ * @param pList
+ * @return
+ */
+bool vp_multi_path_set_item_position(const char *szMediaURL,
+ int nPosition, GList * pList)
+{
+ if (!pList) {
+ VideoLogError("pList is NULL");
+ return FALSE;
+ }
+
+ if (!szMediaURL) {
+ VideoLogError("szMediaURL is NULL");
+ return FALSE;
+ }
+
+ int nCount = 0;
+ int nIdx = 0;
+
+ nCount = g_list_length(pList);
+ for (nIdx = 0; nIdx < nCount; nIdx++) {
+ MultiPath *pPath = NULL;
+ pPath = (MultiPath *) g_list_nth_data(pList, nIdx);
+ if (pPath == NULL) {
+ continue;
+ }
+ if (pPath->szURL == NULL) {
+ continue;
+ }
+ if (!strcmp(szMediaURL, pPath->szURL)) {
+ pPath->nStartPosition = nPosition;
+ _vp_multi_path_write_multi_path_set_position((char *)
+ szMediaURL,
+ nPosition);
+ }
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param szMediaURL
+ * @param szURL
+ * @param szTitle
+ * @param szSubtitle
+ * @param nPosition
+ * @param nDuration
+ * @param bIsSameAP
+ * @param pList
+ * @return
+ */
+bool vp_multi_path_get_current_item(const char *szMediaURL, char **szURL,
+ char **szTitle, char **szSubtitle,
+ int *nPosition, int *nDuration,
+ bool * bIsSameAP, GList * pList)
+{
+ if (!szMediaURL) {
+ VideoLogError("No exist szMediaID.");
+ return FALSE;
+ }
+
+ if (pList == NULL) {
+ VideoLogError("list is NULL");
+ return FALSE;
+ }
+
+ int nCount = 0;
+ int i = 0;
+
+ nCount = g_list_length(pList);
+ for (i = 0; i < nCount; i++) {
+ MultiPath *pPath = NULL;
+ pPath = (MultiPath *) g_list_nth_data(pList, i);
+ if (pPath == NULL) {
+ continue;
+ }
+ if (pPath->szURL == NULL) {
+ continue;
+ }
+
+ if (!strcmp(szMediaURL, pPath->szURL)) {
+ VP_STRDUP(*szURL, pPath->szURL);
+ VP_STRDUP(*szSubtitle, pPath->szSubTitle);
+ VP_STRDUP(*szTitle, pPath->szTitle);
+ *bIsSameAP = pPath->bIsSameAP;
+ *nPosition = pPath->nStartPosition;
+ *nDuration = pPath->nDuration;
+
+ return TRUE;
+
+ }
+ }
+
+ return FALSE;
+}
+
+/**
+ *
+ * @param szMediaURL
+ * @param szURL
+ * @param szSubtitle
+ * @param nPosition
+ * @param nDuration
+ * @param bLoop
+ * @param pList
+ * @return
+ */
+bool vp_multi_path_get_next_item(const char *szMediaURL, char **szURL,
+ char **szSubtitle, int *nPosition,
+ int *nDuration, bool bLoop, GList * pList)
+{
+ if (!szMediaURL) {
+ VideoLogError("No exist szMediaID.");
+ return FALSE;
+ }
+
+ if (pList == NULL) {
+ VideoLogError("list is NULL");
+ return FALSE;
+ }
+
+ int nCount = 0;
+ int i = 0;
+
+ MultiPath *pFirstPathItem = NULL;
+ bool bCheck = FALSE;
+
+ nCount = g_list_length(pList);
+ for (i = 0; i < nCount; i++) {
+ MultiPath *pPath = NULL;
+ pPath = (MultiPath *) g_list_nth_data(pList, i);
+ if (pPath == NULL) {
+ continue;
+ }
+ if (pPath->szURL == NULL) {
+ continue;
+ }
+
+ if (pFirstPathItem == NULL) {
+ pFirstPathItem = pPath;
+ }
+
+ if (bCheck) {
+ VP_STRDUP(*szURL, pPath->szURL);
+ VP_STRDUP(*szSubtitle, pPath->szSubTitle);
+ *nPosition = pPath->nStartPosition;
+
+ return TRUE;
+ }
+
+ if (!strcmp(szMediaURL, pPath->szURL)) {
+ bCheck = TRUE;
+ }
+
+ }
+
+ if (bLoop) {
+ if (pFirstPathItem) {
+ VP_STRDUP(*szURL, pFirstPathItem->szURL);
+ VP_STRDUP(*szSubtitle, pFirstPathItem->szSubTitle);
+ *nPosition = pFirstPathItem->nStartPosition;
+ *nDuration = pFirstPathItem->nDuration;
+ }
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param szMediaURL
+ * @param szURL
+ * @param szSubtitle
+ * @param nPosition
+ * @param nDuration
+ * @param bLoop
+ * @param pList
+ * @return
+ */
+bool vp_multi_path_get_prev_item(const char *szMediaURL, char **szURL,
+ char **szSubtitle, int *nPosition,
+ int *nDuration, bool bLoop, GList * pList)
+{
+ if (!szMediaURL) {
+ VideoLogError("No exist szMediaID.");
+ return FALSE;
+ }
+
+ if (pList == NULL) {
+ VideoLogError("list is NULL");
+ return FALSE;
+ }
+
+ int nCount = 0;
+ int i = 0;
+
+
+ MultiPath *pLastPathItem = NULL;
+ bool bCheck = FALSE;
+
+
+ nCount = g_list_length(pList);
+ for (i = nCount - 1; i >= 0; i--) {
+ MultiPath *pPath = NULL;
+ pPath = (MultiPath *) g_list_nth_data(pList, i);
+ if (pPath == NULL) {
+ continue;
+ }
+ if (pPath->szURL == NULL) {
+ continue;
+ }
+
+ if (pLastPathItem == NULL) {
+ pLastPathItem = pPath;
+ }
+
+ if (bCheck) {
+ VP_STRDUP(*szURL, pPath->szURL);
+ VP_STRDUP(*szSubtitle, pPath->szSubTitle);
+ *nPosition = pPath->nStartPosition;
+ *nDuration = pPath->nDuration;
+ return TRUE;
+ }
+
+ if (!strcmp(szMediaURL, pPath->szURL)) {
+ bCheck = TRUE;
+ }
+ }
+
+ if (bLoop) {
+ if (pLastPathItem) {
+ VP_STRDUP(*szURL, pLastPathItem->szURL);
+ VP_STRDUP(*szSubtitle, pLastPathItem->szSubTitle);
+ *nPosition = pLastPathItem->nStartPosition;
+ *nDuration = pLastPathItem->nDuration;
+ }
+ }
+
+ return TRUE;
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifdef OLD_SENSOR_API
+
+#include <sensor.h>
+
+#include "vp-play-macro-define.h"
+
+#include "vp-sensor.h"
+
+/* check temp */
+#include "vp-play-log.h"
+
+
+typedef struct _SensorHandle {
+ sensor_h pSensorH;
+ bool bIsRealize;
+ bool bFaceDownEnable;
+ bool bDoubleTabEnable;
+
+ void *pUserData;
+ SensorEventCbFunc pEventCb;
+
+} SensorHandle;
+
+
+static void _vp_sensor_destroy_handle(SensorHandle * pSensorHandle);
+
+/* callback functions */
+/**
+ *
+ * @param timestamp
+ * @param pUserData
+ */
+static void __vp_sensor_motion_doubletap_event_cb(unsigned long long
+ timestamp,
+ void *pUserData)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ SensorHandle *pSensor = (SensorHandle *) pUserData;
+ if (pSensor->pEventCb) {
+ pSensor->pEventCb(VP_SENSOR_TYPE_DOUBLETAP, timestamp,
+ pSensor->pUserData);
+ }
+
+}
+
+/**
+ *
+ * @param timestamp
+ * @param pUserData
+ */
+static void __vp_sensor_motion_facedown_event_cb(unsigned long long
+ timestamp,
+ void *pUserData)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ SensorHandle *pSensor = (SensorHandle *) pUserData;
+
+ if (pSensor->pEventCb) {
+ pSensor->pEventCb(VP_SENSOR_TYPE_FACEDOWN, timestamp,
+ pSensor->pUserData);
+ }
+}
+
+/* internal functions */
+/**
+ *
+ * @param pSensorHandle
+ */
+static void _vp_sensor_destroy_handle(SensorHandle * pSensorHandle)
+{
+ if (pSensorHandle == NULL) {
+ VideoLogError("pSensorHandle is NULL");
+ return;
+ }
+
+ int nRet = sensor_destroy(pSensorHandle->pSensorH);
+ if (nRet != SENSOR_ERROR_NONE) {
+ VideoLogInfo("sensor_destroy is fail : 0x%x", nRet);
+ }
+
+
+ VP_FREE(pSensorHandle);
+}
+
+/* external functions */
+/**
+ *
+ * @param pEventCb
+ * @return
+ */
+sensor_handle vp_sensor_create(SensorEventCbFunc pEventCb)
+{
+ SensorHandle *pSensor = NULL;
+
+ pSensor = calloc(1, sizeof(SensorHandle));
+
+ if (pSensor == NULL) {
+ VideoLogError("pSensorHandle alloc fail");
+ return NULL;
+ }
+
+ pSensor->pEventCb = pEventCb;
+
+ VideoLogInfo(">> sensor create");
+
+ int nRet = sensor_create(&pSensor->pSensorH);
+ if (nRet != SENSOR_ERROR_NONE) {
+ VideoLogInfo("sensor_create is fail : 0x%x", nRet);
+ _vp_sensor_destroy_handle(pSensor);
+ return NULL;
+ }
+ VideoLogInfo("<< sensor create");
+
+ if (pSensor->pSensorH == NULL) {
+ VideoLogInfo("pSensorHandle->pSensorH is NULL");
+ _vp_sensor_destroy_handle(pSensor);
+ return NULL;
+ }
+
+ return (sensor_handle) pSensor;
+}
+
+/**
+ *
+ * @param pSensorHandle
+ */
+void vp_sensor_destroy(sensor_handle pSensorHandle)
+{
+ if (pSensorHandle == NULL) {
+ VideoLogError("pSensorHandle is NULL");
+ return;
+ }
+
+ SensorHandle *pSensor = (SensorHandle *) pSensorHandle;
+
+ vp_sensor_unrealize(pSensorHandle);
+
+ _vp_sensor_destroy_handle(pSensor);
+}
+
+/**
+ *
+ * @param pSensorHandle
+ * @return
+ */
+bool vp_sensor_realize(sensor_handle pSensorHandle)
+{
+ if (pSensorHandle == NULL) {
+ VideoLogError("pSensorHandle is NULL");
+ return FALSE;
+ }
+
+ VideoLogInfo(">> Sensor realize");
+
+ SensorHandle *pSensor = (SensorHandle *) pSensorHandle;
+ bool bReturn = TRUE;
+ int nRet = SENSOR_ERROR_NONE;
+ bool bEnableSensor = FALSE;
+ if (pSensor->bIsRealize) {
+ VideoLogWarning("Already Realize");
+ return TRUE;
+ }
+
+ nRet = sensor_is_supported(SENSOR_MOTION_DOUBLETAP, &bEnableSensor);
+ if (nRet != SENSOR_ERROR_NONE) {
+ VideoLogInfo("sensor_is_supported is fail : 0x%x", nRet);
+ bReturn = FALSE;
+ }
+
+ if (bEnableSensor) {
+ nRet =
+ sensor_motion_doubletap_set_cb(pSensor->pSensorH,
+ __vp_sensor_motion_doubletap_event_cb,
+ (void *) pSensor);
+ if (nRet != SENSOR_ERROR_NONE) {
+ VideoLogInfo("sensor_motion_doubletap_set_cb is fail : 0x%x",
+ nRet);
+ bReturn = FALSE;
+ }
+
+ nRet = sensor_start(pSensor->pSensorH, SENSOR_MOTION_DOUBLETAP);
+ if (nRet != SENSOR_ERROR_NONE) {
+ VideoLogInfo("sensor_start is fail : 0x%x", nRet);
+ bReturn = FALSE;
+ }
+ }
+ pSensor->bFaceDownEnable = bEnableSensor;
+
+ nRet = sensor_is_supported(SENSOR_MOTION_FACEDOWN, &bEnableSensor);
+ if (nRet != SENSOR_ERROR_NONE) {
+ VideoLogInfo("sensor_is_supported is fail : 0x%x", nRet);
+ bReturn = FALSE;
+ }
+ if (bEnableSensor) {
+ nRet =
+ sensor_motion_facedown_set_cb(pSensor->pSensorH,
+ __vp_sensor_motion_facedown_event_cb,
+ (void *) pSensor);
+ if (nRet != SENSOR_ERROR_NONE) {
+ VideoLogInfo("sensor_motion_facedown_set_cb is fail : 0x%x",
+ nRet);
+ bReturn = FALSE;
+ }
+
+ nRet = sensor_start(pSensor->pSensorH, SENSOR_MOTION_FACEDOWN);
+ if (nRet != SENSOR_ERROR_NONE) {
+ VideoLogInfo("sensor_start is fail : 0x%x", nRet);
+ bReturn = FALSE;
+ }
+ }
+ pSensor->bDoubleTabEnable = bEnableSensor;
+
+ pSensor->bIsRealize = TRUE;
+
+ VideoLogInfo("<< Sensor realize");
+
+ return bReturn;
+}
+
+/**
+ *
+ * @param pSensorHandle
+ * @return
+ */
+bool vp_sensor_unrealize(sensor_handle pSensorHandle)
+{
+ if (pSensorHandle == NULL) {
+ VideoLogError("pSensorHandle is NULL");
+ return FALSE;
+ }
+
+ SensorHandle *pSensor = (SensorHandle *) pSensorHandle;
+ bool bReturn = TRUE;
+ int nRet = SENSOR_ERROR_NONE;
+
+ if (pSensor->bIsRealize == FALSE) {
+ VideoLogWarning("Not yet Realize");
+ return TRUE;
+ }
+
+ if (pSensor->bDoubleTabEnable) {
+ nRet = sensor_motion_doubletap_unset_cb(pSensor->pSensorH);
+ if (nRet != SENSOR_ERROR_NONE) {
+ VideoLogInfo
+ ("sensor_motion_doubletap_unset_cb is fail : 0x%x", nRet);
+ bReturn = FALSE;
+ }
+
+ nRet = sensor_stop(pSensor->pSensorH, SENSOR_MOTION_DOUBLETAP);
+ if (nRet != SENSOR_ERROR_NONE) {
+ VideoLogInfo("sensor_stop is fail : 0x%x", nRet);
+ bReturn = FALSE;
+ } else {
+ pSensor->bDoubleTabEnable = FALSE;
+ }
+
+ }
+ if (pSensor->bFaceDownEnable) {
+ nRet = sensor_motion_facedown_unset_cb(pSensor->pSensorH);
+ if (nRet != SENSOR_ERROR_NONE) {
+ VideoLogInfo("sensor_motion_facedown_unset_cb is fail : 0x%x",
+ nRet);
+ bReturn = FALSE;
+ }
+
+ nRet = sensor_stop(pSensor->pSensorH, SENSOR_MOTION_FACEDOWN);
+ if (nRet != SENSOR_ERROR_NONE) {
+ VideoLogInfo("sensor_stop is fail : 0x%x", nRet);
+ bReturn = FALSE;
+ } else {
+ pSensor->bFaceDownEnable = FALSE;
+ }
+
+ }
+
+ pSensor->bIsRealize = FALSE;
+
+ return bReturn;
+}
+
+/**
+ *
+ * @param pSensorHandle
+ * @param pUserData
+ * @return
+ */
+bool vp_sensor_set_user_data(sensor_handle pSensorHandle, void *pUserData)
+{
+ if (pSensorHandle == NULL) {
+ VideoLogError("pSensorHandle is NULL");
+ return FALSE;
+ }
+
+ SensorHandle *pSensor = (SensorHandle *) pSensorHandle;
+
+ pSensor->pUserData = pUserData;
+
+ return TRUE;
+}
+
+#endif
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <sound_manager.h>
+#include "vp-play-macro-define.h"
+#include "vp-play-normal-view.h"
+#include "vp-play-view.h"
+#include "vp-sound.h"
+
+/* check temp */
+#include "vp-play-log.h"
+
+/* callback functions */
+
+/* internal functions */
+
+/* external functions */
+
+
+static int earjack_conn_changed_cb_id;
+/**
+ *
+ * @param stream_info
+ * @param focus_mask
+ * @param focus_state
+ * @param reason_for_change
+ * @param sound_behaviors
+ * @param extra_info
+ * @param user_data
+ */
+void vp_player_focus_callback(sound_stream_info_h stream_info,
+ sound_stream_focus_mask_e focus_mask,
+ sound_stream_focus_state_e focus_state,
+ sound_stream_focus_change_reason_e
+ reason_for_change, int sound_behaviors,
+ const char *extra_info, void *user_data)
+{
+ PlayView *pPlayView = (PlayView *) user_data;
+ sound_stream_focus_state_e state_for_playback;
+ sound_stream_focus_state_e state_for_recording;
+ int ret = -1;
+
+ if (!pPlayView) {
+ return;
+ }
+
+ ret =
+ sound_manager_get_focus_state(pPlayView->stream_info,
+ &state_for_playback,
+ &state_for_recording);
+ if (ret != SOUND_MANAGER_ERROR_NONE) {
+ VideoLogError("sound_manager_get_focus_state fail");
+ return;
+ }
+ VideoLogDebug("Reason for change : %d and state of playback is : %d",
+ reason_for_change, state_for_playback);
+ if (state_for_playback == SOUND_STREAM_FOCUS_STATE_RELEASED) {
+ vp_play_normal_view_pause_player(pPlayView);
+ sound_manager_get_focus_reacquisition(pPlayView->stream_info,
+ &pPlayView->reacquire_state);
+ if (reason_for_change == SOUND_STREAM_FOCUS_CHANGED_BY_VOIP
+ || reason_for_change == SOUND_STREAM_FOCUS_CHANGED_BY_CALL
+ || reason_for_change == SOUND_STREAM_FOCUS_CHANGED_BY_RINGTONE
+ || reason_for_change ==
+ SOUND_STREAM_FOCUS_CHANGED_BY_VOICE_RECOGNITION) {
+ sound_manager_set_focus_reacquisition(pPlayView->stream_info,
+ EINA_TRUE);
+ } else if (reason_for_change != SOUND_STREAM_FOCUS_CHANGED_BY_ALARM
+ && reason_for_change !=
+ SOUND_STREAM_FOCUS_CHANGED_BY_NOTIFICATION) {
+ if (pPlayView->reacquire_state == EINA_TRUE) {
+ sound_manager_set_focus_reacquisition(pPlayView->
+ stream_info,
+ EINA_FALSE);
+ }
+ }
+ } else {
+ vp_play_normal_view_play_player(pPlayView);
+ }
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @return
+ */
+bool vp_sound_init_session(play_view_handle pViewHandle)
+{
+ VideoLogInfo(">> Sound Session : Init");
+
+ PlayView *pPlayView = (PlayView *) pViewHandle;
+ int nRet = SOUND_MANAGER_ERROR_NONE;
+ nRet =
+ sound_manager_create_stream_information(SOUND_STREAM_TYPE_MEDIA,
+ vp_player_focus_callback,
+ pPlayView,
+ &pPlayView->stream_info);
+
+ if (nRet != SOUND_MANAGER_ERROR_NONE) {
+ VideoLogError("failed to create_stream_information [%x]", nRet);
+ return FALSE;
+ }
+
+ VideoLogInfo("<< Sound Session : Init");
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @return
+ */
+bool vp_sound_deinit_session(play_view_handle pViewHandle)
+{
+ int nRet = SOUND_MANAGER_ERROR_NONE;
+ if (!pViewHandle) {
+ VideoLogError("pViewHandle is NULL");
+ return true;
+ }
+ PlayView *pPlayView = (PlayView *) pViewHandle;
+
+ if (pPlayView->stream_info) {
+ nRet =
+ sound_manager_destroy_stream_information(pPlayView->
+ stream_info);
+ if (nRet != SOUND_MANAGER_ERROR_NONE) {
+ VideoLogError("sound_manager_destroy_stream_information fail");
+ return FALSE;
+ }
+ }
+
+ sound_manager_remove_volume_changed_cb(pPlayView->volume_changed_cb_id);
+ return TRUE;
+}
+
+/**
+ *
+ * @param nValue
+ * @return
+ */
+bool vp_sound_get_volume(int *nValue)
+{
+ int nRet = SOUND_MANAGER_ERROR_NONE;
+ int nVal = 0;
+ nRet = sound_manager_get_volume(SOUND_TYPE_MEDIA, &nVal);
+ if (nRet != SOUND_MANAGER_ERROR_NONE) {
+ VideoLogError("sound_manager_get_volume fail");
+ return FALSE;
+ }
+
+ *nValue = nVal;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param nValue
+ * @return
+ */
+bool vp_sound_set_volume(int nValue)
+{
+ int nRet = SOUND_MANAGER_ERROR_NONE;
+
+ nRet = sound_manager_set_volume(SOUND_TYPE_MEDIA, nValue);
+ if (nRet != SOUND_MANAGER_ERROR_NONE) {
+ VideoLogError("sound_manager_set_volume fail");
+ return FALSE;
+ }
+ return TRUE;
+}
+
+/**
+ *
+ * @param nMaxValue
+ * @return
+ */
+bool vp_sound_get_max_volume(int *nMaxValue)
+{
+ int nRet = SOUND_MANAGER_ERROR_NONE;
+ int nVal = 0;
+ nRet = sound_manager_get_max_volume(SOUND_TYPE_MEDIA, &nVal);
+ if (nRet != SOUND_MANAGER_ERROR_NONE) {
+ VideoLogError("sound_manager_get_max_volume fail");
+ return FALSE;
+ }
+
+ *nMaxValue = nVal;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param nDeviceType
+ * @return
+ */
+bool vp_sound_get_active_device(video_sound_device_type_t * nDeviceType)
+{
+ sound_device_h device;
+ sound_device_type_e type = SOUND_DEVICE_BUILTIN_SPEAKER;
+ sound_device_list_h g_device_list = NULL;
+ sound_device_mask_e g_device_mask = SOUND_DEVICE_IO_DIRECTION_OUT_MASK;
+ int ret;
+ if ((ret =
+ sound_manager_get_device_list(g_device_mask, &g_device_list)))
+
+
+ if (!(ret = sound_manager_get_next_device(g_device_list, &device))) {
+ if ((ret = sound_manager_get_device_type(device, &type))) {
+ return FALSE;
+ }
+ }
+
+
+ switch (type) {
+ case SOUND_DEVICE_BUILTIN_SPEAKER:
+ *nDeviceType = VP_SOUND_DEVICE_SPEAKER;
+ break;
+
+ case SOUND_DEVICE_AUDIO_JACK:
+ *nDeviceType = VP_SOUND_DEVICE_EARJACK;
+ break;
+
+ case SOUND_DEVICE_BLUETOOTH_MEDIA:
+ *nDeviceType = VP_SOUND_DEVICE_BLUETOOTH;
+ break;
+
+ case SOUND_DEVICE_HDMI:
+ *nDeviceType = VP_SOUND_DEVICE_HDMI;
+ break;
+
+ case SOUND_DEVICE_FORWARDING:
+ *nDeviceType = VP_SOUND_DEVICE_MIRRORING;
+ break;
+
+ case SOUND_DEVICE_USB_AUDIO:
+ *nDeviceType = VP_SOUND_DEVICE_USB_AUDIO;
+ break;
+
+ default:
+ *nDeviceType = VP_SOUND_DEVICE_SPEAKER;
+ break;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param bIsSoundPath
+ * @return
+ */
+bool vp_sound_is_sound_path_enable(bool * bIsSoundPath)
+{
+ bool bConnected = FALSE;
+
+ int nPathCount = 1; //speaker or headphone
+
+ sound_device_h device;
+ sound_device_type_e type;
+ sound_device_list_h g_device_list = NULL;
+ sound_device_mask_e g_device_mask = SOUND_DEVICE_IO_DIRECTION_OUT_MASK;
+
+ int ret;
+ if ((ret =
+ sound_manager_get_device_list(g_device_mask, &g_device_list))) {
+ return bConnected;
+ }
+
+ while (!(ret = sound_manager_get_next_device(g_device_list, &device))) {
+ if ((ret = sound_manager_get_device_type(device, &type))) {
+ nPathCount++;
+ goto COUNT_CHECK;
+ }
+ }
+
+ COUNT_CHECK:
+ if (nPathCount > 1) {
+ bConnected = TRUE;
+ }
+
+ *bIsSoundPath = bConnected;
+
+ return bConnected;
+}
+
+/**
+ *
+ * @param device
+ * @param is_connected
+ * @param user_data
+ * @return
+ */
+static void vp_audio_jack_connected_cb(sound_device_h device,
+ bool is_connected,
+ void *user_data)
+{
+ if (!user_data) {
+ return;
+ }
+ sound_device_type_e type;
+ void *pPlayview = NULL;
+ pPlayview = user_data;
+ if (sound_manager_get_device_type(device, &type) ==
+ SOUND_MANAGER_ERROR_NONE) {
+ if (type == SOUND_DEVICE_AUDIO_JACK) {
+ vp_play_normal_view_show_volume_popup(pPlayview);
+ if (!is_connected) {
+ vp_play_normal_view_pause_player(pPlayview);
+ }
+ }
+ }
+ return;
+}
+
+void vp_sound_set_earjack_connection_changed_cb(void *pUserData)
+{
+ sound_manager_add_device_connection_changed_cb
+ (SOUND_DEVICE_ALL_MASK,
+ (sound_device_connection_changed_cb) vp_audio_jack_connected_cb,
+ (void *) pUserData, &earjack_conn_changed_cb_id);
+}
+
+void vp_sound_unset_earjack_connection_changed_cb()
+{
+ sound_manager_remove_device_connection_changed_cb(earjack_conn_changed_cb_id);
+}
+
+/**
+ *
+ * @param nDeviceType
+ * @param pUserdata
+ * @return
+ */
+bool vp_sound_device_is_enable(video_sound_device_type_t nDeviceType,
+ void *pUserdata)
+{
+ if (!pUserdata) {
+ return FALSE;
+ }
+ void *pPlayview = NULL;
+ pPlayview = pUserdata;
+ sound_device_h device;
+ sound_device_type_e type;
+ sound_device_list_h g_device_list = NULL;
+ sound_device_mask_e g_device_mask = SOUND_DEVICE_IO_DIRECTION_OUT_MASK;
+
+ if (sound_manager_get_device_list
+ (g_device_mask, &g_device_list) != SOUND_MANAGER_ERROR_NONE) {
+ return FALSE;
+ }
+
+ while (sound_manager_get_next_device(g_device_list, &device) ==
+ SOUND_MANAGER_ERROR_NONE) {
+ if (sound_manager_get_device_type(device, &type) ==
+ SOUND_MANAGER_ERROR_NONE) {
+ if (type == SOUND_DEVICE_AUDIO_JACK) {
+ return TRUE;
+ }
+ }
+ }
+
+
+ return FALSE;
+
+}
+
+/**
+ *
+ * @param szBTName
+ * @return
+ */
+bool vp_sound_get_a2dp_name(char **szBTName)
+{
+
+ bool bIsConnect = FALSE;
+
+ if (bIsConnect == FALSE) {
+ VideoLogError("Not connected BT");
+ VP_FREE(*szBTName);
+ }
+
+ return FALSE;
+}
+
+/**
+ *
+ * @param nDeviceType
+ * @return
+ */
+bool vp_sound_set_active_route(video_sound_device_type_t nDeviceType)
+{
+
+ if (nDeviceType == VP_SOUND_DEVICE_NONE) {
+ VideoLogError("Invalid device type");
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param func
+ * @param pUserData
+ * @return
+ */
+bool vp_sound_set_route_change_cb(vp_sound_route_change_cb func,
+ void *pUserData)
+{
+ int nRet = SOUND_MANAGER_ERROR_NONE;
+
+ PlayView *pPlayView = (PlayView *)pUserData;
+ sound_device_mask_e g_device_mask = SOUND_DEVICE_IO_DIRECTION_OUT_MASK;
+
+ nRet =
+ sound_manager_add_device_state_changed_cb(g_device_mask,
+ NULL, pPlayView, &pPlayView->device_state_id);
+ if (nRet != SOUND_MANAGER_ERROR_NONE) {
+ VideoLogError("sound_manager_set_available_route_changed_cb fail");
+ return FALSE;
+ }
+ return TRUE;
+}
+
+/**
+ *
+ * @param func
+ * @param pUserData
+ * @return
+ */
+bool vp_sound_set_volume_change_cb(vp_sound_volume_change_cb func,
+ void *pUserData)
+{
+ int nRet = SOUND_MANAGER_ERROR_NONE;
+ PlayView *pPlayView = (PlayView *)pUserData;
+ if (!pPlayView)
+ return FALSE;
+ nRet =
+ sound_manager_add_volume_changed_cb((sound_manager_volume_changed_cb) func, pUserData,
+ &pPlayView->volume_changed_cb_id);
+ if (nRet != SOUND_MANAGER_ERROR_NONE) {
+ VideoLogError("sound_manager_add_volume_changed_cb fail");
+ return FALSE;
+ }
+ return TRUE;
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+#include <vp-play-popup.h>
+
+typedef void *audio_track_handle;
+
+
+audio_track_handle vp_audio_track_create(Evas_Object * pParent,
+ PopupCloseCbFunc pCloseCb,
+ int nDefaultIndex);
+void vp_audio_track_destroy(audio_track_handle pAudioTrackHandle);
+bool vp_audio_track_realize(audio_track_handle pAudioTrackHandle);
+bool vp_audio_track_unrealize(audio_track_handle pAudioTrackHandle);
+bool vp_audio_track_add_Item(audio_track_handle pAudioTrackHandle,
+ char *szCode, int nIndex);
+bool vp_audio_track_set_user_data(audio_track_handle pAudioTrackHandle,
+ void *pUserData);
+bool vp_audio_track_get_name(char *szCode, char **szName);
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+#include <vp-play-popup.h>
+
+typedef void *capture_popup_handle;
+
+capture_popup_handle vp_capture_popup_create(Evas_Object * pParent,
+ bool bCaptureOn,
+ PopupCloseCbFunc pCloseCb);
+void vp_capture_popup_destroy(capture_popup_handle pCapturePopupHandle);
+bool vp_capture_popup_realize(capture_popup_handle pCapturePopupHandle);
+bool vp_capture_popup_unrealize(capture_popup_handle pCapturePopupHandle);
+bool vp_capture_popup_set_user_data(capture_popup_handle
+ pCapturePopupHandle, void *pUserData);
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+#include <vp-play-popup.h>
+
+typedef void *detail_handle;
+
+typedef struct _vp_detail_info {
+ char *szTitle;
+ char *szFormat;
+ char *szDate;
+ char *szSize;
+ char *szLastModified;
+ char *szResolution;
+ char *szLocation;
+ char *szLatitude;
+ char *szLongitude;
+
+ bool bDrm;
+ bool bForwardLock;
+ bool bPlayready;
+} vp_detail_info;
+
+detail_handle vp_detail_page_create(void *pNaviFrame,
+ PopupCloseCbFunc pCloseCb,
+ vp_detail_info * pDetailInfo);
+void vp_detail_destroy(detail_handle pDetailHandle);
+bool vp_detail_set_user_data(detail_handle pDetailHandle, void *pUserData);
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+#include <vp-play-popup.h>
+
+typedef void *play_speed_popup;
+
+typedef void (*PlaySpeedUpdateCbFunc) (double fValue, void *pUserData);
+typedef void (*PlaySpeedDoneCbFunc) (double fValue, bool bSetValue,
+ void *pUserData);
+
+
+play_speed_popup vp_play_speed_popup_create(Evas_Object * pParent,
+ double fSpeedVal,
+ PlaySpeedUpdateCbFunc
+ pUpdateCb,
+ PlaySpeedDoneCbFunc pDoneCb);
+void vp_play_speed_popup_destroy(play_speed_popup pPlaySpeedHandle);
+bool vp_play_speed_popup_realize(play_speed_popup pPlaySpeedHandle);
+bool vp_play_speed_popup_unrealize(play_speed_popup pPlaySpeedHandle);
+bool vp_play_speed_popup_set_user_data(play_speed_popup pPlaySpeedHandle,
+ void *pUserData);
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+#include <vp-play-popup.h>
+
+typedef void *repeat_handle;
+
+
+repeat_handle vp_repeat_create(Evas_Object * pParent, char *pMediaUrl,
+ PopupCloseCbFunc pCloseCb);
+void vp_repeat_destroy(repeat_handle pRepeatHandle);
+bool vp_repeat_realize(repeat_handle pRepeatHandle);
+bool vp_repeat_unrealize(repeat_handle pRepeatHandle);
+bool vp_repeat_set_user_data(repeat_handle pRepeatHandle, void *pUserData);
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+#include <vp-play-popup.h>
+
+typedef void *setting_popup_handle;
+
+typedef enum {
+ VP_SETTING_MODE_NONE = 0x00,
+ VP_SETTING_MODE_PLAY_SPEED,
+ VP_SETTING_MODE_SOUND_ALIVE,
+ VP_SETTING_MODE_AUDIO_TRACK,
+ VP_SETTING_MODE_REPEAT_MODE,
+ VP_SETTING_MODE_CAPTURE,
+} vp_setting_mode_t;
+
+typedef struct _SettingInfo {
+ float fSpeed;
+ int nSoundAlive;
+ bool bSelectSubtitle;
+ char *szAudioTrack;
+ int nRepeatMode;
+ bool bCapture;
+ bool bTagBuddy;
+ bool bEditWeatherTag;
+ bool bStreaming;
+ bool bRepeat;
+ bool bDrm;
+ bool bExternalMode;
+ bool bShowEditWeather;
+} SettingInfo;
+
+setting_popup_handle vp_setting_create(Evas_Object * pParent,
+ SettingInfo * pSettingInfo,
+ PopupCloseCbFunc pCloseCb);
+void vp_setting_destroy(setting_popup_handle pSettingHandle);
+bool vp_setting_realize(setting_popup_handle pSettingHandle);
+bool vp_setting_unrealize(setting_popup_handle pSettingHandle);
+bool vp_setting_set_user_data(setting_popup_handle pSettingHandle,
+ void *pUserData);
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+#include <vp-play-popup.h>
+
+typedef void *share_handle;
+
+typedef enum {
+ VP_SHARE_NONE = 0x00,
+ VP_SHARE_MESSAGE,
+ VP_SHARE_EMAIL,
+ VP_SHARE_BLUETOOTH,
+ VP_SHARE_FTM,
+ VP_SHARE_FACEBOOK,
+ VP_SHARE_YOUTUBE,
+ VP_SHARE_NFC,
+ VP_SHARE_FILE_TRANSFER,
+ VP_SHARE_DROP_BOX,
+} video_share_type_t;
+
+share_handle vp_share_create(Evas_Object * pParent, char *pMediaUrl,
+ PopupCloseCbFunc pCloseCb);
+void vp_share_destroy(share_handle pShareHandle);
+bool vp_share_realize(share_handle pShareHandle);
+bool vp_share_unrealize(share_handle pShareHandle);
+bool vp_share_set_user_data(share_handle pShareHandle, void *pUserData);
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+#include <vp-play-popup.h>
+
+typedef void *sound_alive_handle;
+
+sound_alive_handle vp_sound_alive_create(Evas_Object * pParent,
+ char *pMediaUrl,
+ PopupCloseCbFunc pCloseCb,
+ video_sound_alive_t nType);
+void vp_sound_alive_destroy(sound_alive_handle pSAHandle);
+bool vp_sound_alive_realize(sound_alive_handle pSAHandle);
+bool vp_sound_alive_unrealize(sound_alive_handle pSAHandle);
+bool vp_sound_alive_set_user_data(sound_alive_handle pSAHandle,
+ void *pUserData);
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#pragma once
+
+#include <stdbool.h>
+#include <glib.h>
+#include <Elementary.h>
+
+#include <vp-play-popup.h>
+
+typedef void *sound_path_handle;
+
+sound_path_handle vp_sound_path_create(Evas_Object * pParent,
+ PopupCloseCbFunc pCloseCb);
+void vp_sound_path_destroy(sound_path_handle pSoundPathHandle);
+bool vp_sound_path_realize(sound_path_handle pSoundPathHandle);
+bool vp_sound_path_unrealize(sound_path_handle pSoundPathHandle);
+bool vp_sound_path_set_user_data(sound_path_handle pSoundPathHandle,
+ void *pUserData);
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+#include <vp-play-popup.h>
+
+typedef void *subtitle_alignment_handle;
+
+typedef void (*SubtitleAlignmentUpdateCbFunc) (double fValue,
+ void *pUserData);
+
+subtitle_alignment_handle vp_subtitle_alignment_create(Evas_Object *
+ pParent,
+ PopupCloseCbFunc
+ pCloseCb,
+ int nDefaultAlign);
+void vp_subtitle_alignment_destroy(subtitle_alignment_handle
+ pSubtitleAlignmentHandle);
+bool vp_subtitle_alignment_realize(subtitle_alignment_handle
+ pSubtitleAlignmentHandle);
+bool vp_subtitle_alignment_unrealize(subtitle_alignment_handle
+ pSubtitleAlignmentHandle);
+bool vp_subtitle_alignment_set_user_data(subtitle_alignment_handle
+ pSubtitleAlignmentHandle,
+ void *pUserData);
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+#include <vp-play-popup.h>
+
+typedef void *subtitle_bg_color_handle;
+
+
+subtitle_bg_color_handle vp_subtitle_bg_color_create(Evas_Object * pParent,
+ PopupCloseCbFunc
+ pCloseCb,
+ int nDefaultColor);
+void vp_subtitle_bg_color_destroy(subtitle_bg_color_handle
+ pSubtitleBGColorHandle);
+bool vp_subtitle_bg_color_realize(subtitle_bg_color_handle
+ pSubtitleBGColorHandle);
+bool vp_subtitle_bg_color_unrealize(subtitle_bg_color_handle
+ pSubtitleBGColorHandle);
+bool vp_subtitle_bg_color_set_user_data(subtitle_bg_color_handle
+ pSubtitleBGColorHandle,
+ void *pUserData);
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+#include <vp-play-popup.h>
+
+typedef void *subtitle_color_handle;
+
+typedef void (*SubtitleColorUpdateCbFunc) (double fValue, void *pUserData);
+
+#ifndef SUBTITLE_K_FEATURE
+typedef void (*SubtitlePopupCloseCbFunc) (int nType, bool bPause,
+ void *pUserData);
+#else
+typedef void (*SubtitlePopupCloseCbFunc) (char *pColorHex, bool bSetValue,
+ void *pUserData);
+#endif
+
+#ifndef SUBTITLE_K_FEATURE
+subtitle_color_handle vp_subtitle_color_create(Evas_Object * pParent,
+ SubtitlePopupCloseCbFunc
+ pCloseCb,
+ int nDefaultColor);
+#else
+subtitle_color_handle vp_subtitle_color_hex_create(Evas_Object * pParent,
+ SubtitlePopupCloseCbFunc
+ pCloseCb,
+ char *pDefaultColor);
+#endif
+void vp_subtitle_color_destroy(subtitle_color_handle
+ pSubtitleFontColorHandle);
+bool vp_subtitle_color_realize(subtitle_color_handle
+ pSubtitleFontColorHandle);
+bool vp_subtitle_color_unrealize(subtitle_color_handle
+ pSubtitleFontColorHandle);
+bool vp_subtitle_color_set_user_data(subtitle_color_handle
+ pSubtitleFontColorHandle,
+ void *pUserData);
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+#include <vp-play-popup.h>
+
+typedef void *subtitle_edge_handle;
+
+
+subtitle_edge_handle vp_subtitle_edge_create(Evas_Object * pParent,
+ PopupCloseCbFunc pCloseCb,
+ int nDefaultSize);
+void vp_subtitle_edge_destroy(subtitle_edge_handle pSubtitleSizeHandle);
+bool vp_subtitle_edge_realize(subtitle_edge_handle pSubtitleSizeHandle);
+bool vp_subtitle_edge_unrealize(subtitle_edge_handle pSubtitleSizeHandle);
+bool vp_subtitle_edge_set_user_data(subtitle_edge_handle
+ pSubtitleSizeHandle, void *pUserData);
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+#include <vp-play-popup.h>
+
+typedef void *subtitle_font_handle;
+
+typedef void (*SubtitleFontCbFunc) (char *szSelectURL, void *pUserData);
+
+subtitle_font_handle vp_subtitle_font_create(Evas_Object * pParent,
+ SubtitleFontCbFunc pCloseCb,
+ char *szCurrentFont);
+void vp_subtitle_font_destroy(subtitle_font_handle pSubtitleFontHandle);
+bool vp_subtitle_font_realize(subtitle_font_handle pSubtitleFontHandle);
+bool vp_subtitle_font_unrealize(subtitle_font_handle pSubtitleFontHandle);
+bool vp_subtitle_font_set_user_data(subtitle_font_handle
+ pSubtitleFontHandle, void *pUserData);
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#pragma once
+
+#include <glib.h>
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+#include <vp-play-popup.h>
+
+typedef void *subtitle_select_handle;
+
+typedef void (*SubtitleCloseCbFunc) (char *szSelectURL, void *pUserData);
+
+subtitle_select_handle vp_subtitle_select_create(Evas_Object * pParent,
+ SubtitleCloseCbFunc
+ pCloseCb,
+ SubtitleCloseCbFunc
+ pButtonCb,
+ GList * pFileList,
+ char *szCurrentPath,
+ bool isSubtitleOff);
+void vp_subtitle_select_destroy(subtitle_select_handle
+ pSubtitleSelectHandle);
+bool vp_subtitle_select_realize(subtitle_select_handle
+ pSubtitleSelectHandle);
+bool vp_subtitle_select_unrealize(subtitle_select_handle
+ pSubtitleSelectHandle);
+bool vp_subtitle_select_set_user_data(subtitle_select_handle
+ pSubtitleSelectHandle,
+ void *pUserData);
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+#include <vp-play-popup.h>
+
+typedef void *subtitle_size_handle;
+
+
+subtitle_size_handle vp_subtitle_size_create(Evas_Object * pParent,
+ PopupCloseCbFunc pCloseCb,
+ int nDefaultSize);
+void vp_subtitle_size_destroy(subtitle_size_handle pSubtitleSizeHandle);
+bool vp_subtitle_size_realize(subtitle_size_handle pSubtitleSizeHandle);
+bool vp_subtitle_size_unrealize(subtitle_size_handle pSubtitleSizeHandle);
+bool vp_subtitle_size_set_user_data(subtitle_size_handle
+ pSubtitleSizeHandle, void *pUserData);
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+#include <vp-play-popup.h>
+
+typedef void *subtitle_sync_popup;
+
+typedef void (*SubtitleSyncUpdateCbFunc) (float fValue, void *pUserData);
+typedef void (*SubtitleSyncDoneCbFunc) (float fValue, bool bSetValue,
+ void *pUserData);
+
+
+subtitle_sync_popup vp_subtitle_sync_popup_create(Evas_Object * pParent,
+ float fSyncVal,
+ SubtitleSyncUpdateCbFunc
+ pUpdateCb,
+ SubtitleSyncDoneCbFunc
+ pDoneCb);
+void vp_subtitle_sync_popup_destroy(subtitle_sync_popup pSubtitleSync);
+bool vp_subtitle_sync_popup_realize(subtitle_sync_popup pSubtitleSync);
+bool vp_subtitle_sync_popup_unrealize(subtitle_sync_popup pSubtitleSync);
+bool vp_subtitle_sync_popup_set_user_data(subtitle_sync_popup
+ pSubtitleSync, void *pUserData);
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+#include <vp-play-popup.h>
+#ifdef _SUBTITLE_MULTI_LANGUAGE
+typedef void (*SubtitleLanguageChangeCbFunc) (int index, void *pUserData);
+#endif
+typedef void *subtitle_track_handle;
+
+#ifdef _SUBTITLE_MULTI_LANGUAGE
+subtitle_track_handle vp_subtitle_track_create(Evas_Object * pParent,
+ PopupCloseCbFunc pCloseCb);
+#else
+subtitle_track_handle vp_subtitle_track_create(Evas_Object * pParent,
+ PopupCloseCbFunc pCloseCb,
+ int nDefaultIndex);
+#endif
+void vp_subtitle_track_destroy(subtitle_track_handle pSubtitleTrackHandle);
+bool vp_subtitle_track_realize(subtitle_track_handle pSubtitleTrackHandle);
+bool vp_subtitle_track_unrealize(subtitle_track_handle
+ pSubtitleTrackHandle);
+#ifdef _SUBTITLE_MULTI_LANGUAGE
+bool vp_subtitle_track_add_Item(subtitle_track_handle pSubtitleTrackHandle,
+ char *szCode, int nIndex, bool bCheck);
+#else
+bool vp_subtitle_track_add_Item(subtitle_track_handle pSubtitleTrackHandle,
+ char *szCode, int nIndex);
+#endif
+bool vp_subtitle_track_set_user_data(subtitle_track_handle
+ pSubtitleTrackHandle,
+ void *pUserData);
+#ifdef _SUBTITLE_MULTI_LANGUAGE
+bool vp_subtitle_track_set_add_language_cb(subtitle_track_handle
+ pSubtitleTrackHandle,
+ SubtitleLanguageChangeCbFunc
+ pCallback);
+bool vp_subtitle_track_set_remove_language_cb(subtitle_track_handle
+ pSubtitleTrackHandle,
+ SubtitleLanguageChangeCbFunc
+ pCallback);
+#endif
+bool vp_subtitle_track_get_name(char *szCode, char **szName);
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+#include <vp-play-popup.h>
+
+typedef void *subtitle_popup_handle;
+
+typedef enum {
+ VP_SUBTITLE_MODE_NONE = 0x00,
+ VP_SUBTITLE_MODE_ACTIVATION,
+ VP_SUBTITLE_MODE_SYNC,
+ VP_SUBTITLE_MODE_SELECT,
+ VP_SUBTITLE_MODE_LANGUAGE,
+#ifdef SUBTITLE_K_FEATURE
+ VP_SUBTITLE_MODE_ALIGNMENT,
+#endif
+ VP_SUBTITLE_MODE_FONT,
+ VP_SUBTITLE_MODE_SIZE,
+ VP_SUBTITLE_MODE_TEXT,
+ VP_SUBTITLE_MODE_BG_COLOR,
+#ifdef SUBTITLE_K_FEATURE
+ VP_SUBTITLE_MODE_CAPTION_WINDOW,
+#endif
+ VP_SUBTITLE_MODE_EDGE,
+ VP_SUBTITLE_MODE_CLOSE,
+ VP_SUBTITLE_MODE_FONT_COLOR
+} vp_subtitle_mode_t;
+
+typedef enum {
+ VP_SUBTITLE_EDGE_NO_EDGE = 0x00,
+ VP_SUBTITLE_EDGE_RAISED,
+ VP_SUBTITLE_EDGE_DEPRESSED,
+ VP_SUBTITLE_EDGE_UNIFORM,
+ VP_SUBTITLE_EDGE_DROP_SHADOW
+} vp_subtitle_edge_t;
+
+
+typedef struct _SubtitleInfo {
+ bool bClosedCaption;
+ bool original_activation;
+ float fSync;
+ char *szURL;
+ char *szText;
+ char *szLanguage;
+#ifdef SUBTITLE_K_FEATURE
+ video_play_subtitle_alignment_t eAlignment;
+ video_play_subtitle_alignment_t original_eAlignment;
+#endif
+ char *szFontName;
+ float fZoom;
+ int nFontSize;
+ int original_nFontSize;
+ int nEdge;
+#ifndef SUBTITLE_K_FEATURE
+ int nTextColor;
+ int nBGColor;
+#else
+ char *pTextColorHex;
+ char *pOriginalTextColorHex;
+ char *pBGColorHex;
+ char *pCaptionWinColorHex;
+#endif
+ bool bSupportSelect;
+} SubtitleInfo;
+
+
+subtitle_popup_handle vp_subtitle_create(Evas_Object * pParent,
+ SubtitleInfo * pSubtitleInfo,
+ PopupCloseCbFunc pCloseCb);
+void vp_subtitle_destroy(subtitle_popup_handle pSubtitleHandle);
+bool vp_subtitle_realize(subtitle_popup_handle pSubtitleHandle);
+bool vp_subtitle_unrealize(subtitle_popup_handle pSubtitleHandle);
+bool vp_subtitle_update(subtitle_popup_handle pSubtitleHandle,
+ SubtitleInfo * pSubtitleInfo);
+bool vp_subtitle_set_user_data(subtitle_popup_handle pSubtitleHandle,
+ void *pUserData);
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+typedef void *zoom_guide_handle;
+
+zoom_guide_handle vp_zoom_guide_create(Evas_Object * pParent);
+void vp_zoom_guide_destroy(zoom_guide_handle pWidgetHandle);
+bool vp_zoom_guide_realize(zoom_guide_handle pWidgetHandle);
+bool vp_zoom_guide_unrealize(zoom_guide_handle pWidgetHandle);
+Evas_Object *vp_zoom_guide_get_object(zoom_guide_handle pWidgetHandle);
+bool vp_zoom_guide_set_zoom_value(zoom_guide_handle pWidgetHandle,
+ double fZoomVal);
+bool vp_zoom_guide_get_zoom_value(zoom_guide_handle pWidgetHandle,
+ double *fZoomVal);
+bool vp_zoom_guide_set_move_position(zoom_guide_handle pWidgetHandle,
+ double fPosX, double fPosY);
+bool vp_zoom_guide_get_move_position(zoom_guide_handle pWidgetHandle,
+ double *fPosX, double *fPosY);
+bool vp_zoom_guide_get_real_position(zoom_guide_handle pWidgetHandle,
+ double *fPosX, double *fPosY);
+bool vp_zoom_guide_update(zoom_guide_handle pWidgetHandle);
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include <glib.h>
+
+#include "vp-play-string-define.h"
+#include "vp-play-value-define.h"
+#include "vp-play-macro-define.h"
+
+#include "vp-audio-track.h"
+
+/* check temp */
+#include "vp-play-log.h"
+
+#define VP_AUDIO_TRACK_GENLIST_DATA_KEY "vp.audio.track.genlist"
+
+typedef struct _RegionCode {
+ char *szCode;
+ char *szName;
+} RegionCode;
+
+
+static RegionCode st_RegionCode[] = {
+ {"az", "Azerbaijani"},
+ {"ca", "Catalan"},
+ {"cs", "Czech"},
+ {"sr", "Serbian"},
+ {"da", "Danish"},
+ {"de", "German"},
+ {"et", "Estonian"},
+ {"en", "English"},
+ {"es", "Spanish"},
+ {"eu", "Basque"},
+ {"fr", "French"},
+ {"gl", "Galician"},
+ {"hr", "Croatian"},
+ {"is", "Icelandic"},
+ {"it", "Italian"},
+ {"lv", "Latvian"},
+ {"lt", "Lithuanian"},
+ {"hu", "Hungarian"},
+ {"nl", "Dutch"},
+ {"nb", "Norwegian"},
+ {"uz", "Uzbek"},
+ {"pl", "Polish"},
+ {"pt", "Portuguese"},
+ {"ru", "Russian"},
+ {"ro", "Romanian"},
+ {"sk", "Slovak"},
+ {"sl", "Slovenian"},
+ {"fi", "Finnish"},
+ {"sv", "Swedish"},
+ {"tr", "Turkish"},
+ {"el", "Greek"},
+ {"bg", "Bulgarian"},
+ {"kk", "Kazakh"},
+ {"uk", "Ukrainian"},
+ {"hy", "Armenian"},
+ {"ka", "Georgian"},
+ {"ko", "Korean"},
+ {"ja", "Japanese"},
+};
+
+
+typedef struct _AudioTrackItem {
+ Elm_Object_Item *pItem;
+ char *szName;
+ int nIndex;
+} AudioTrackItem;
+
+
+typedef struct _AudioTrackPopup {
+ Evas_Object *pParent;
+ Evas_Object *pPopup;
+ Evas_Object *pRadio;
+ Evas_Object *pButton;
+ Evas_Object *pBox;
+ Evas_Object *pGenList;
+ Elm_Genlist_Item_Class *st_AudioTrack_Itc;
+
+ int nDefaultIndex;
+ int nListCount;
+
+ void *pUserData;
+ PopupCloseCbFunc pCloseCb;
+
+ GList *pItemList;
+ int nAudoTrackIdx;
+} AudioTrackPopup;
+
+
+
+static void _vp_audio_track_destroy_handle(AudioTrackPopup * pAudioTrack);
+static void __vp_audio_track_popup_rotate_cb(void *data,
+ Evas_Object * obj,
+ void *event_info);
+static void __vp_audio_track_genlist_realized(void *data,
+ Evas_Object * obj,
+ void *event_info);
+static void __vp_audio_track_genlist_item_selected_cb(void *pUserData,
+ Evas_Object *
+ pObject,
+ void *pEventInfo);
+
+
+/* callback functions */
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pPart
+ * @return
+ */
+static char *__vp_audio_track_genlist_text_get_cb(const void *pUserData,
+ Evas_Object * pObj,
+ const char *pPart)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return NULL;
+ }
+ AudioTrackItem *pItem = (AudioTrackItem *) pUserData;
+
+ if (!strcmp(pPart, "elm.text")) {
+ if (pItem->szName) {
+ return strdup(pItem->szName);
+ }
+ }
+
+ return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pPart
+ * @return
+ */
+static Evas_Object *__vp_audio_track_genlist_content_get_cb(const void
+ *pUserData,
+ Evas_Object *
+ pObj,
+ const char
+ *pPart)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return NULL;
+ }
+
+ AudioTrackItem *pItem = (AudioTrackItem *) pUserData;
+
+ if (!strcmp(pPart, "elm.icon")) {
+ Evas_Object *pRadioObj = NULL;
+
+ AudioTrackPopup *pAudioTrack =
+ (AudioTrackPopup *) evas_object_data_get(pObj,
+ VP_AUDIO_TRACK_GENLIST_DATA_KEY);
+ if (pAudioTrack == NULL) {
+ VideoLogWarning("evas_object_data_get is fail");
+ return NULL;
+ }
+
+ if (pAudioTrack->pItemList == NULL) {
+ VideoLogWarning("pItemList is NULL");
+ return NULL;
+ }
+
+ pRadioObj = elm_radio_add(pObj);
+ elm_radio_state_value_set(pRadioObj, pItem->nIndex);
+ elm_radio_group_add(pRadioObj, pAudioTrack->pRadio);
+ elm_radio_value_set(pAudioTrack->pRadio,
+ pAudioTrack->nAudoTrackIdx);
+ evas_object_smart_callback_add(pRadioObj, "changed",
+ __vp_audio_track_genlist_item_selected_cb,
+ pAudioTrack);
+ evas_object_show(pRadioObj);
+
+ return pRadioObj;
+ }
+
+ return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __vp_audio_track_genlist_item_selected_cb(void *pUserData,
+ Evas_Object *
+ pObject,
+ void *pEventInfo)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+ if (pEventInfo == NULL) {
+ VideoLogError("pEventInfo is NULL");
+ return;
+ }
+
+ Elm_Object_Item *pElmItem = (Elm_Object_Item *) pEventInfo;
+ Elm_Object_Item *pSelectedItem =
+ elm_genlist_selected_item_get(pObject);
+ if (pSelectedItem) {
+ elm_genlist_item_selected_set(pSelectedItem, EINA_FALSE);
+ }
+ AudioTrackItem *pItem =
+ (AudioTrackItem *) elm_object_item_data_get(pElmItem);
+
+ AudioTrackPopup *pAudioTrack = (AudioTrackPopup *) pUserData;
+
+ if (pItem == NULL) {
+ VideoLogError("pItem is NULL");
+ return;
+ }
+
+ pAudioTrack->nAudoTrackIdx = pItem->nIndex;
+ if (pAudioTrack->pCloseCb) {
+ pAudioTrack->pCloseCb(pItem->nIndex, FALSE,
+ (void *) pAudioTrack->pUserData);
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_audio_track_popup_key_event_cb(void *pUserData,
+ Evas_Object * pObj,
+ void *pEventInfo)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ AudioTrackPopup *pAudioTrack = (AudioTrackPopup *) pUserData;
+
+ if (pAudioTrack->pCloseCb) {
+ pAudioTrack->pCloseCb(-1, FALSE, (void *) pAudioTrack->pUserData);
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pEvas
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_audio_track_popup_mouse_event_cb(void *pUserData,
+ Evas * pEvas,
+ Evas_Object * pObj,
+ void *pEventInfo)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ if (pEventInfo == NULL) {
+ VideoLogError("pEventInfo is NULL");
+ return;
+ }
+
+ Evas_Event_Mouse_Up *ev = pEventInfo;
+
+ if (ev->button == 3) {
+ AudioTrackPopup *pAudioTrack = (AudioTrackPopup *) pUserData;
+
+ if (pAudioTrack->pCloseCb) {
+ pAudioTrack->pCloseCb(-1, FALSE,
+ (void *) pAudioTrack->pUserData);
+ }
+ }
+}
+
+/* internal functions */
+/**
+ *
+ * @param pAudioTrack
+ */
+static void _vp_audio_track_clear_item_list(AudioTrackPopup * pAudioTrack)
+{
+ if (pAudioTrack == NULL) {
+ VideoLogError("pAudioTrack is NULL");
+ return;
+ }
+
+ if (pAudioTrack->pItemList == NULL) {
+ VideoLogError("pAudioTrack->pItemList is NULL");
+ return;
+ }
+
+
+ int len = g_list_length(pAudioTrack->pItemList);
+ int idx = 0;
+ for (idx = 0; idx < len; idx++) {
+ AudioTrackItem *pItem = NULL;
+
+ pItem =
+ (AudioTrackItem *) g_list_nth_data(pAudioTrack->pItemList,
+ idx);
+ if (pItem) {
+ VP_EVAS_ITEM_DEL(pItem->pItem);
+ VP_FREE(pItem->szName);
+ VP_FREE(pItem);
+ }
+ }
+
+ g_list_free(pAudioTrack->pItemList);
+ pAudioTrack->pItemList = NULL;
+}
+
+/**
+ *
+ * @param pAudioTrack
+ */
+static void _vp_audio_track_destroy_handle(AudioTrackPopup * pAudioTrack)
+{
+ if (pAudioTrack == NULL) {
+ VideoLogError("pAudioTrack is NULL");
+ return;
+ }
+
+ evas_object_smart_callback_del(pAudioTrack->pGenList, "realized",
+ __vp_audio_track_genlist_realized);
+ evas_object_smart_callback_del(pAudioTrack->pParent,
+ "rotation,changed",
+ __vp_audio_track_popup_rotate_cb);
+
+ _vp_audio_track_clear_item_list(pAudioTrack);
+
+
+ VP_EVAS_DEL(pAudioTrack->pRadio);
+ VP_EVAS_DEL(pAudioTrack->pGenList);
+ VP_EVAS_DEL(pAudioTrack->pButton);
+ VP_EVAS_DEL(pAudioTrack->pBox);
+
+ if (pAudioTrack->st_AudioTrack_Itc) {
+ elm_genlist_item_class_free(pAudioTrack->st_AudioTrack_Itc);
+ pAudioTrack->st_AudioTrack_Itc = NULL;
+ }
+
+
+ VP_EVAS_DEL(pAudioTrack->pPopup);
+
+ VP_FREE(pAudioTrack);
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+static Evas_Object *_vp_audio_track_create_genlist(Evas_Object * pParent)
+{
+ if (pParent == NULL) {
+ VideoLogError("pParent is NULL");
+ return NULL;
+ }
+
+ Evas_Object *pObj = NULL;
+
+ pObj = elm_genlist_add(pParent);
+ evas_object_size_hint_weight_set(pObj, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(pObj, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_show(pObj);
+ return pObj;
+}
+
+/**
+ *
+ * @param pObj
+ * @param pUserData
+ * @return
+ */
+static bool _vp_audio_track_add_genlist_item(Evas_Object * pObj,
+ void *pUserData)
+{
+ if (pObj == NULL) {
+ VideoLogError("pObj is NULL");
+ return FALSE;
+ }
+
+ AudioTrackPopup *pAudioTrack = (AudioTrackPopup *) pUserData;
+
+ if (pAudioTrack->st_AudioTrack_Itc) {
+ elm_genlist_item_class_free(pAudioTrack->st_AudioTrack_Itc);
+ pAudioTrack->st_AudioTrack_Itc = NULL;
+ }
+
+ pAudioTrack->st_AudioTrack_Itc = elm_genlist_item_class_new();
+ if (pAudioTrack->st_AudioTrack_Itc == NULL) {
+ VideoLogError("failed to create genlist class");
+ return FALSE;
+ }
+
+ pAudioTrack->st_AudioTrack_Itc->version =
+ ELM_GENLIST_ITEM_CLASS_VERSION;
+ pAudioTrack->st_AudioTrack_Itc->item_style = "1text.1icon.3/popup";
+ pAudioTrack->st_AudioTrack_Itc->func.text_get =
+ (void *) __vp_audio_track_genlist_text_get_cb;
+ pAudioTrack->st_AudioTrack_Itc->func.content_get =
+ (void *) __vp_audio_track_genlist_content_get_cb;
+ pAudioTrack->st_AudioTrack_Itc->func.state_get = NULL;
+ pAudioTrack->st_AudioTrack_Itc->func.del = NULL;
+ int len = g_list_length(pAudioTrack->pItemList);
+ int idx = 0;
+ pAudioTrack->nListCount = 0;
+
+ for (idx = 0; idx < len; idx++) {
+ AudioTrackItem *pItem = NULL;
+
+ pItem =
+ (AudioTrackItem *) g_list_nth_data(pAudioTrack->pItemList,
+ idx);
+ if (pItem) {
+ pItem->pItem =
+ elm_genlist_item_append(pObj,
+ pAudioTrack->st_AudioTrack_Itc,
+ (void *) pItem, NULL,
+ ELM_GENLIST_ITEM_NONE,
+ __vp_audio_track_genlist_item_selected_cb,
+ pUserData);
+ pAudioTrack->nListCount++;
+ }
+ }
+
+
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __vp_audio_track_genlist_realized(void *data,
+ Evas_Object * obj,
+ void *event_info)
+{
+ VP_GENLIST_HIDE_BOTTOMLINE(data, obj, event_info);
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __vp_audio_track_popup_rotate_cb(void *data,
+ Evas_Object * obj,
+ void *event_info)
+{
+ AudioTrackPopup *pAudioTrack = (AudioTrackPopup *) data;
+ if (!pAudioTrack) {
+ VideoLogError("pAudioTrack IS null");
+ return;
+ }
+ if (pAudioTrack->nListCount < VP_POPUP_MIN_ITEMS) {
+ return;
+ }
+ vp_popup_set_popup_min_size(pAudioTrack->pParent, pAudioTrack->pBox,
+ pAudioTrack->nListCount,
+ VIDEO_POPUP_DEFAULT);
+
+}
+
+/* external functions */
+/**
+ *
+ * @param pParent
+ * @param pCloseCb
+ * @param nDefaultIndex
+ * @return
+ */
+audio_track_handle vp_audio_track_create(Evas_Object * pParent,
+ PopupCloseCbFunc pCloseCb,
+ int nDefaultIndex)
+{
+ if (pParent == NULL) {
+ VideoLogError("pParent is NULL");
+ return NULL;
+ }
+
+ AudioTrackPopup *pAudioTrack = NULL;
+
+ pAudioTrack = calloc(1, sizeof(AudioTrackPopup));
+
+ if (pAudioTrack == NULL) {
+ VideoLogError("pAudioTrack alloc fail");
+ return NULL;
+ }
+
+ pAudioTrack->pParent = pParent;
+ pAudioTrack->pCloseCb = pCloseCb;
+
+ pAudioTrack->pPopup =
+ vp_popup_create(pParent, POPUP_STYLE_MENU_LIST_NO_CANCEL_BTN,
+ VP_PLAY_STRING_POPUP_AUDIO_TRACK, NULL, 0.0, NULL,
+ __vp_audio_track_popup_key_event_cb,
+ __vp_audio_track_popup_mouse_event_cb,
+ (void *) pAudioTrack);
+ if (pAudioTrack->pPopup == NULL) {
+ VideoLogError("vp_popup_create fail");
+ _vp_audio_track_destroy_handle(pAudioTrack);
+ return NULL;
+ }
+
+ pAudioTrack->pGenList =
+ _vp_audio_track_create_genlist(pAudioTrack->pPopup);
+ if (pAudioTrack->pGenList == NULL) {
+ VideoLogError("_vp_audio_track_create_genlist fail");
+ _vp_audio_track_destroy_handle(pAudioTrack);
+ return NULL;
+ }
+ evas_object_smart_callback_add(pAudioTrack->pGenList, "realized",
+ __vp_audio_track_genlist_realized,
+ NULL);
+ evas_object_smart_callback_add(pAudioTrack->pParent,
+ "rotation,changed",
+ __vp_audio_track_popup_rotate_cb,
+ pAudioTrack);
+
+ evas_object_data_set(pAudioTrack->pGenList,
+ VP_AUDIO_TRACK_GENLIST_DATA_KEY,
+ (void *) pAudioTrack);
+ pAudioTrack->nDefaultIndex = nDefaultIndex;
+
+ pAudioTrack->pRadio = elm_radio_add(pAudioTrack->pGenList);
+ pAudioTrack->pBox = elm_box_add(pAudioTrack->pPopup);
+
+
+ return pAudioTrack;
+}
+
+/**
+ *
+ * @param pAudioTrackHandle
+ */
+void vp_audio_track_destroy(audio_track_handle pAudioTrackHandle)
+{
+ if (pAudioTrackHandle == NULL) {
+ VideoLogError("pAudioTrackHandle is NULL");
+ return;
+ }
+
+ AudioTrackPopup *pAudioTrack = (AudioTrackPopup *) pAudioTrackHandle;
+
+ _vp_audio_track_destroy_handle(pAudioTrack);
+
+}
+
+/**
+ *
+ * @param pAudioTrackHandle
+ * @return
+ */
+bool vp_audio_track_realize(audio_track_handle pAudioTrackHandle)
+{
+ if (pAudioTrackHandle == NULL) {
+ VideoLogError("pAudioTrackHandle is NULL");
+ return FALSE;
+ }
+
+ AudioTrackPopup *pAudioTrack = (AudioTrackPopup *) pAudioTrackHandle;
+
+ int len = g_list_length(pAudioTrack->pItemList);
+ pAudioTrack->nListCount = len;
+ if (len == 1) {
+ vp_popup_set_popup_min_size(pAudioTrack->pParent,
+ pAudioTrack->pBox,
+ pAudioTrack->nListCount,
+ VIDEO_POPUP_DEFAULT);
+ elm_scroller_policy_set(pAudioTrack->pGenList,
+ ELM_SCROLLER_POLICY_OFF,
+ ELM_SCROLLER_POLICY_OFF);
+ } else {
+ vp_popup_set_popup_min_size(pAudioTrack->pParent,
+ pAudioTrack->pBox,
+ pAudioTrack->nListCount,
+ VIDEO_POPUP_DEFAULT);
+ }
+
+ elm_box_pack_end(pAudioTrack->pBox, pAudioTrack->pGenList);
+ elm_object_content_set(pAudioTrack->pPopup, pAudioTrack->pBox);
+
+ if (!_vp_audio_track_add_genlist_item
+ (pAudioTrack->pGenList, (void *) pAudioTrack)) {
+ VideoLogError("_vp_audio_track_add_genlist_item fail");
+ return FALSE;
+ }
+
+ pAudioTrack->nAudoTrackIdx = pAudioTrack->nDefaultIndex;
+
+ evas_object_show(pAudioTrack->pPopup);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pAudioTrackHandle
+ * @return
+ */
+bool vp_audio_track_unrealize(audio_track_handle pAudioTrackHandle)
+{
+ if (pAudioTrackHandle == NULL) {
+ VideoLogError("pAudioTrackHandle is NULL");
+ return FALSE;
+ }
+
+ AudioTrackPopup *pAudioTrack = (AudioTrackPopup *) pAudioTrackHandle;
+
+ _vp_audio_track_clear_item_list(pAudioTrack);
+
+ evas_object_hide(pAudioTrack->pPopup);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pAudioTrackHandle
+ * @param szCode
+ * @param nIndex
+ * @return
+ */
+bool vp_audio_track_add_Item(audio_track_handle pAudioTrackHandle,
+ char *szCode, int nIndex)
+{
+ if (pAudioTrackHandle == NULL) {
+ VideoLogError("pAudioTrackHandle is NULL");
+ return FALSE;
+ }
+
+ AudioTrackPopup *pAudioTrack = (AudioTrackPopup *) pAudioTrackHandle;
+
+ AudioTrackItem *pItem = calloc(1, sizeof(AudioTrackItem));
+ if (pItem == NULL) {
+ VideoLogError("AudioTrackItem alloc fail");
+ return FALSE;
+ }
+
+ pItem->nIndex = nIndex;
+
+ int nCount = sizeof(st_RegionCode) / sizeof(RegionCode);
+
+ int nSelectIdex = -1;
+ int nIdx = 0;
+ for (nIdx = 0; nIdx < nCount; nIdx++) {
+ if (!strcmp(st_RegionCode[nIdx].szCode, szCode)) {
+ nSelectIdex = nIdx;
+ break;
+ }
+ }
+
+ if (nSelectIdex == -1) {
+ char *szDefaultTrack =
+ g_strdup_printf("%s %d", VP_PLAY_STRING_AUDIO_TRACK, 0);
+
+ if (!strcmp(szDefaultTrack, szCode)) {
+ VP_STRDUP(pItem->szName, szCode);
+ } else {
+ VP_STRDUP(pItem->szName, VP_PLAY_STRING_COM_UNKNOWN);
+ }
+ VP_FREE(szDefaultTrack);
+ } else {
+ VP_STRDUP(pItem->szName, st_RegionCode[nSelectIdex].szName);
+ }
+
+ pAudioTrack->pItemList = g_list_append(pAudioTrack->pItemList, pItem);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pAudioTrackHandle
+ * @param pUserData
+ * @return
+ */
+bool vp_audio_track_set_user_data(audio_track_handle pAudioTrackHandle,
+ void *pUserData)
+{
+ if (pAudioTrackHandle == NULL) {
+ VideoLogError("pAudioTrackHandle is NULL");
+ return FALSE;
+ }
+
+ AudioTrackPopup *pAudioTrack = (AudioTrackPopup *) pAudioTrackHandle;
+
+ pAudioTrack->pUserData = pUserData;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param szCode
+ * @param szName
+ * @return
+ */
+bool vp_audio_track_get_name(char *szCode, char **szName)
+{
+ if (szCode == NULL) {
+ VideoLogError("szCode is NULL");
+ return FALSE;
+ }
+ int nCount = sizeof(st_RegionCode) / sizeof(RegionCode);
+
+ int nIdx = 0;
+ for (nIdx = 0; nIdx < nCount; nIdx++) {
+ if (!strcmp(st_RegionCode[nIdx].szCode, szCode)) {
+ VP_STRDUP(*szName, st_RegionCode[nIdx].szName);
+ return TRUE;
+ }
+ }
+
+ if (*szName == NULL) {
+ VP_STRDUP(*szName, VP_PLAY_STRING_COM_UNKNOWN);
+ }
+
+ return TRUE;
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "vp-play-string-define.h"
+#include "vp-play-value-define.h"
+#include "vp-play-macro-define.h"
+#include "vp-capture.h"
+
+/* check temp */
+#include "vp-play-log.h"
+
+#define VP_CAPTURE_POPUP_GENLIST_DATA_KEY "vp.capture.popup.genlist"
+
+typedef struct _CapturePopup {
+ Evas_Object *pParent;
+ Evas_Object *pPopup;
+ Evas_Object *pRadio;
+ Evas_Object *pButton;
+ Evas_Object *pBox;
+ Evas_Object *pGenList;
+ Elm_Genlist_Item_Class *st_Capture_Itc;
+ int nListCount;
+
+ void *pUserData;
+ PopupCloseCbFunc pCloseCb;
+ bool bCaptureOn;
+} CapturePopup;
+
+
+
+static void _vp_capture_popup_destroy_handle(CapturePopup * pCapturePopup);
+static void __vp_capture_popup_genlist_item_selected_cb(void *pUserData,
+ Evas_Object *
+ pObject,
+ void *pEventInfo);
+
+static void __vp_capture_genlist_realized(void *data, Evas_Object * obj,
+ void *event_info)
+{
+ VP_GENLIST_HIDE_BOTTOMLINE(data, obj, event_info);
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __vp_capture_popup_rotate_cb(void *data, Evas_Object * obj,
+ void *event_info)
+{
+ CapturePopup *pCapture = (CapturePopup *) data;
+ if (!pCapture) {
+ VideoLogError("pCapture IS null");
+ return;
+ }
+ if (pCapture->nListCount < VP_POPUP_MIN_ITEMS) {
+ return;
+ }
+ vp_popup_set_popup_min_size(pCapture->pParent, pCapture->pBox,
+ pCapture->nListCount, VIDEO_POPUP_DEFAULT);
+
+}
+
+/* callback functions */
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pPart
+ * @return
+ */
+static char *__vp_capture_popup_genlist_text_get_cb(const void *pUserData,
+ Evas_Object * pObj,
+ const char *pPart)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return NULL;
+ }
+
+ char *szTxt = (char *) pUserData;
+
+ if (!strcmp(pPart, "elm.text")) {
+ return strdup(szTxt);
+ }
+
+ return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pPart
+ * @return
+ */
+static Evas_Object *__vp_capture_popup_genlist_content_get_cb(const void
+ *pUserData,
+ Evas_Object *
+ pObj,
+ const char
+ *pPart)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return NULL;
+ }
+
+ char *szTxt = (char *) pUserData;
+
+ if (!strcmp(pPart, "elm.icon")) {
+ Evas_Object *pRadioObj = NULL;
+
+ CapturePopup *pCapture =
+ (CapturePopup *) evas_object_data_get(pObj,
+ VP_CAPTURE_POPUP_GENLIST_DATA_KEY);
+ if (pCapture == NULL) {
+ VideoLogWarning("evas_object_data_get is fail");
+ return NULL;
+ }
+
+ int nVal = 0;
+
+ if (!strcmp(szTxt, VP_PLAY_STRING_COM_ON)) {
+ nVal = 1;
+ } else if (!strcmp(szTxt, VP_PLAY_STRING_COM_OFF)) {
+ nVal = 0;
+ }
+
+ pRadioObj = elm_radio_add(pObj);
+ elm_radio_state_value_set(pRadioObj, nVal);
+ elm_radio_group_add(pRadioObj, pCapture->pRadio);
+ elm_radio_value_set(pCapture->pRadio, (int) pCapture->bCaptureOn);
+ evas_object_smart_callback_add(pRadioObj, "changed",
+ __vp_capture_popup_genlist_item_selected_cb,
+ pCapture);
+ evas_object_show(pRadioObj);
+
+ return pRadioObj;
+ }
+
+ return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __vp_capture_popup_genlist_item_selected_cb(void *pUserData,
+ Evas_Object *
+ pObject,
+ void *pEventInfo)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+ if (pEventInfo == NULL) {
+ VideoLogError("pEventInfo is NULL");
+ return;
+ }
+
+ Elm_Object_Item *pSelectedItem =
+ elm_genlist_selected_item_get(pObject);
+ if (pSelectedItem) {
+ elm_genlist_item_selected_set(pSelectedItem, EINA_FALSE);
+ }
+ Elm_Object_Item *pItem = (Elm_Object_Item *) pEventInfo;
+ char *szTxt = (char *) elm_object_item_data_get(pItem);
+ if (szTxt == NULL) {
+ VideoLogError("szTxt is NULL");
+ return;
+ }
+
+ int nVal = 0;
+ bool bCapture = FALSE;
+ if (!strcmp(szTxt, VP_PLAY_STRING_COM_ON)) {
+ bCapture = TRUE;
+ nVal = 1;
+ } else if (!strcmp(szTxt, VP_PLAY_STRING_COM_OFF)) {
+ nVal = 0;
+ bCapture = FALSE;
+ }
+
+ CapturePopup *pCapture = (CapturePopup *) pUserData;
+ pCapture->bCaptureOn = bCapture;
+ if (pCapture->pCloseCb) {
+ pCapture->pCloseCb(nVal, FALSE, (void *) pCapture->pUserData);
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_capture_popup_key_event_cb(void *pUserData,
+ Evas_Object * pObj,
+ void *pEventInfo)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ CapturePopup *pCapture = (CapturePopup *) pUserData;
+
+ if (pCapture->pCloseCb) {
+ pCapture->pCloseCb(-1, FALSE, (void *) pCapture->pUserData);
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pEvas
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_capture_popup_mouse_event_cb(void *pUserData,
+ Evas * pEvas,
+ Evas_Object * pObj,
+ void *pEventInfo)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ if (pEventInfo == NULL) {
+ VideoLogError("pEventInfo is NULL");
+ return;
+ }
+
+ Evas_Event_Mouse_Up *ev = pEventInfo;
+
+ if (ev->button == 3) {
+ CapturePopup *pCapture = (CapturePopup *) pUserData;
+
+ if (pCapture->pCloseCb) {
+ pCapture->pCloseCb(-1, FALSE, (void *) pCapture->pUserData);
+ }
+ }
+}
+
+/* internal functions */
+/**
+ *
+ * @param pCapture
+ */
+static void _vp_capture_popup_destroy_handle(CapturePopup * pCapture)
+{
+ if (pCapture == NULL) {
+ VideoLogError("pCapture is NULL");
+ return;
+ }
+
+ evas_object_smart_callback_del(pCapture->pGenList, "realized",
+ __vp_capture_genlist_realized);
+ evas_object_smart_callback_del(pCapture->pParent, "rotation,changed",
+ __vp_capture_popup_rotate_cb);
+
+ VP_EVAS_DEL(pCapture->pRadio);
+ VP_EVAS_DEL(pCapture->pGenList);
+ VP_EVAS_DEL(pCapture->pButton);
+ VP_EVAS_DEL(pCapture->pBox);
+
+ if (pCapture->st_Capture_Itc) {
+ elm_genlist_item_class_free(pCapture->st_Capture_Itc);
+ pCapture->st_Capture_Itc = NULL;
+ }
+
+ VP_EVAS_DEL(pCapture->pPopup);
+
+ VP_FREE(pCapture);
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+static Evas_Object *_vp_capture_popup_create_genlist(Evas_Object * pParent)
+{
+ if (pParent == NULL) {
+ VideoLogError("pParent is NULL");
+ return NULL;
+ }
+
+ Evas_Object *pObj = NULL;
+
+ pObj = elm_genlist_add(pParent);
+ evas_object_size_hint_weight_set(pObj, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(pObj, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_show(pObj);
+ return pObj;
+}
+
+/**
+ *
+ * @param pObj
+ * @param pUserData
+ * @return
+ */
+static bool _vp_capture_popup_add_genlist_item(Evas_Object * pObj,
+ void *pUserData)
+{
+ if (pObj == NULL) {
+ VideoLogError("pObj is NULL");
+ return FALSE;
+ }
+
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return FALSE;
+ }
+
+ CapturePopup *pCapture = (CapturePopup *) pUserData;
+ if (pCapture->st_Capture_Itc) {
+ elm_genlist_item_class_free(pCapture->st_Capture_Itc);
+ pCapture->st_Capture_Itc = NULL;
+ }
+
+ pCapture->st_Capture_Itc = elm_genlist_item_class_new();
+ if (pCapture->st_Capture_Itc == NULL) {
+ VideoLogError("failed to create genlist class");
+ return FALSE;
+ }
+
+ pCapture->st_Capture_Itc->version = ELM_GENLIST_ITEM_CLASS_VERSION;
+ pCapture->st_Capture_Itc->item_style = "1text.1icon.3/popup";
+ pCapture->st_Capture_Itc->func.text_get =
+ (void *) __vp_capture_popup_genlist_text_get_cb;
+ pCapture->st_Capture_Itc->func.content_get =
+ (void *) __vp_capture_popup_genlist_content_get_cb;
+ pCapture->st_Capture_Itc->func.state_get = NULL;
+ pCapture->st_Capture_Itc->func.del = NULL;
+ pCapture->nListCount = 0;
+
+ elm_genlist_item_append(pObj, pCapture->st_Capture_Itc,
+ (void *) VP_PLAY_STRING_COM_ON, NULL,
+ ELM_GENLIST_ITEM_NONE,
+ __vp_capture_popup_genlist_item_selected_cb,
+ pUserData);
+ pCapture->nListCount++;
+ elm_genlist_item_append(pObj, pCapture->st_Capture_Itc,
+ (void *) VP_PLAY_STRING_COM_OFF, NULL,
+ ELM_GENLIST_ITEM_NONE,
+ __vp_capture_popup_genlist_item_selected_cb,
+ pUserData);
+ pCapture->nListCount++;
+
+ return TRUE;
+}
+
+/* external functions */
+/**
+ *
+ * @param pParent
+ * @param bCaptureOn
+ * @param pCloseCb
+ * @return
+ */
+capture_popup_handle vp_capture_popup_create(Evas_Object * pParent,
+ bool bCaptureOn,
+ PopupCloseCbFunc pCloseCb)
+{
+ if (pParent == NULL) {
+ VideoLogError("pParent is NULL");
+ return NULL;
+ }
+
+ CapturePopup *pCapture = NULL;
+
+ pCapture = calloc(1, sizeof(CapturePopup));
+
+ if (pCapture == NULL) {
+ VideoLogError("pCapture alloc fail");
+ return NULL;
+ }
+
+ pCapture->pParent = pParent;
+ pCapture->pCloseCb = pCloseCb;
+
+ pCapture->pPopup =
+ vp_popup_create(pParent, POPUP_STYLE_MENU_LIST_NO_CANCEL_BTN,
+ VP_PLAY_STRING_POPUP_CAPTURE, NULL, 0.0, NULL,
+ __vp_capture_popup_key_event_cb,
+ __vp_capture_popup_mouse_event_cb,
+ (void *) pCapture);
+ if (pCapture->pPopup == NULL) {
+ VideoLogError("vp_popup_create fail");
+ _vp_capture_popup_destroy_handle(pCapture);
+ return NULL;
+ }
+
+ pCapture->pGenList =
+ _vp_capture_popup_create_genlist(pCapture->pPopup);
+ if (pCapture->pGenList == NULL) {
+ VideoLogError("_vp_capture_popup_create_genlist fail");
+ _vp_capture_popup_destroy_handle(pCapture);
+ return NULL;
+ }
+ evas_object_data_set(pCapture->pGenList,
+ VP_CAPTURE_POPUP_GENLIST_DATA_KEY,
+ (void *) pCapture);
+ evas_object_smart_callback_add(pCapture->pGenList, "realized",
+ __vp_capture_genlist_realized, NULL);
+
+ pCapture->pRadio = elm_radio_add(pCapture->pGenList);
+
+ if (!_vp_capture_popup_add_genlist_item
+ (pCapture->pGenList, (void *) pCapture)) {
+ VideoLogError("_vp_capture_popup_add_genlist_item fail");
+ _vp_capture_popup_destroy_handle(pCapture);
+ return NULL;
+ }
+ evas_object_smart_callback_add(pCapture->pParent, "rotation,changed",
+ __vp_capture_popup_rotate_cb, pCapture);
+
+ pCapture->bCaptureOn = bCaptureOn;
+
+ pCapture->pBox = elm_box_add(pCapture->pPopup);
+ vp_popup_set_popup_min_size(pCapture->pParent, pCapture->pBox,
+ pCapture->nListCount, VIDEO_POPUP_DEFAULT);
+
+ elm_box_pack_end(pCapture->pBox, pCapture->pGenList);
+
+ elm_object_content_set(pCapture->pPopup, pCapture->pBox);
+
+ return pCapture;
+}
+
+/**
+ *
+ * @param pCapturePopupHandle
+ */
+void vp_capture_popup_destroy(capture_popup_handle pCapturePopupHandle)
+{
+ if (pCapturePopupHandle == NULL) {
+ VideoLogError("pCapturePopupHandle is NULL");
+ return;
+ }
+
+ CapturePopup *pCapture = (CapturePopup *) pCapturePopupHandle;
+
+ _vp_capture_popup_destroy_handle(pCapture);
+
+}
+
+/**
+ *
+ * @param pCapturePopupHandle
+ * @return
+ */
+bool vp_capture_popup_realize(capture_popup_handle pCapturePopupHandle)
+{
+ if (pCapturePopupHandle == NULL) {
+ VideoLogError("pCapturePopupHandle is NULL");
+ return FALSE;
+ }
+
+ CapturePopup *pCapture = (CapturePopup *) pCapturePopupHandle;
+
+ evas_object_show(pCapture->pPopup);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pCapturePopupHandle
+ * @return
+ */
+bool vp_capture_popup_unrealize(capture_popup_handle pCapturePopupHandle)
+{
+ if (pCapturePopupHandle == NULL) {
+ VideoLogError("pCapturePopupHandle is NULL");
+ return FALSE;
+ }
+
+ CapturePopup *pCapture = (CapturePopup *) pCapturePopupHandle;
+
+ evas_object_hide(pCapture->pPopup);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pCapturePopupHandle
+ * @param pUserData
+ * @return
+ */
+bool vp_capture_popup_set_user_data(capture_popup_handle
+ pCapturePopupHandle, void *pUserData)
+{
+ if (pCapturePopupHandle == NULL) {
+ VideoLogError("pCapturePopupHandle is NULL");
+ return FALSE;
+ }
+
+ CapturePopup *pCapture = (CapturePopup *) pCapturePopupHandle;
+
+
+ pCapture->pUserData = pUserData;
+
+ return TRUE;
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include <glib.h>
+
+#include "vp-util.h"
+#include "vp-play-string-define.h"
+#include "vp-play-value-define.h"
+#include "vp-play-type-define.h"
+#include "vp-play-macro-define.h"
+
+#include "vp-detail.h"
+
+/* check temp */
+#include "vp-play-log.h"
+
+#define VP_DETAIL_GENLIST_DATA_KEY "vp.detail.genlist"
+
+
+typedef struct _DetailPopup {
+ Evas_Object *pParent;
+ Evas_Object *pPopup;
+ Evas_Object *pButton;
+ Evas_Object *pBox;
+ Evas_Object *pGenList;
+ Elm_Genlist_Item_Class *st_Detail_Itc;
+ vp_detail_info *pDetailInfo;
+ int nListCount;
+
+ void *pUserData;
+ PopupCloseCbFunc pCloseCb;
+
+} DetailPopup;
+
+typedef struct _DetailView {
+ Evas_Object *pParent;
+ Evas_Object *BaseLayout;
+ void *pNaviFrameHandle;
+ void *pNaviFrameItem;
+ Evas_Object *pGenList;
+ Elm_Genlist_Item_Class *st_Detail_Itc;
+ vp_detail_info *pDetailInfo;
+ int nListCount;
+
+ void *pUserData;
+ PopupCloseCbFunc pCloseCb;
+
+} DetailView;
+
+DetailView *pDetailViewHandle = NULL;
+
+static void _vp_detail_destroy_handle();
+
+
+/* callback functions */
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __vp_detail_genlist_realized(void *data, Evas_Object * obj,
+ void *event_info)
+{
+ VP_GENLIST_HIDE_BOTTOMLINE(data, obj, event_info);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pPart
+ * @return
+ */
+static char *__vp_detail_genlist_text_get_cb(const void *pUserData,
+ Evas_Object * pObj,
+ const char *pPart)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return NULL;
+ }
+
+ char *szTxt = (char *) pUserData;
+
+ VideoLogWarning("%s : %s", pPart, szTxt);
+
+ if (!strcmp(pPart, "elm.text")) {
+ return strdup(szTxt);
+ } else if (!strcmp(pPart, "elm.text.sub")) {
+
+ DetailView *pDetailPopup =
+ (DetailView *) evas_object_data_get(pObj,
+ VP_DETAIL_GENLIST_DATA_KEY);
+ if (pDetailPopup == NULL) {
+ return NULL;
+ }
+
+ vp_detail_info *pDetailInfo = pDetailPopup->pDetailInfo;
+ if (pDetailInfo == NULL) {
+ return NULL;
+ }
+
+ if (!strcmp(szTxt, VP_PLAY_STRING_DETAIL_TITLE)) {
+ if (pDetailInfo->szTitle) {
+ return elm_entry_utf8_to_markup(pDetailInfo->szTitle);
+ }
+ } else if (!strcmp(szTxt, VP_PLAY_STRING_DETAIL_FORMAT)) {
+ if (pDetailInfo->szFormat) {
+ return elm_entry_utf8_to_markup(pDetailInfo->szFormat);
+ }
+ } else if (!strcmp(szTxt, VP_PLAY_STRING_DETAIL_DATE)) {
+ if (pDetailInfo->szDate) {
+ return elm_entry_utf8_to_markup(pDetailInfo->szDate);
+ }
+ } else if (!strcmp(szTxt, VP_PLAY_STRING_DETAIL_SIZE)) {
+ if (pDetailInfo->szSize) {
+ return elm_entry_utf8_to_markup(pDetailInfo->szSize);
+ }
+ } else if (!strcmp(szTxt, VP_PLAY_STRING_DETAIL_LAST_MODIFIED)) {
+ if (pDetailInfo->szLastModified)
+ return
+ elm_entry_utf8_to_markup(pDetailInfo->szLastModified);
+ } else if (!strcmp(szTxt, VP_PLAY_STRING_DETAIL_RESOLUTION)) {
+ if (pDetailInfo->szResolution)
+ return elm_entry_utf8_to_markup(pDetailInfo->szResolution);
+ } else if (!strcmp(szTxt, VP_PLAY_STRING_DETAIL_LOCATION)) {
+ if (pDetailInfo->szLocation) {
+ return elm_entry_utf8_to_markup(pDetailInfo->szLocation);
+ }
+ } else if (!strcmp(szTxt, VP_PLAY_STRING_DETAIL_LATITUDE)) {
+ if (pDetailInfo->szLatitude) {
+ if (atof(pDetailInfo->szLatitude) !=
+ VP_DETAIL_VALUE_GPS_DEFAULT)
+ return
+ elm_entry_utf8_to_markup(pDetailInfo->szLatitude);
+ else {
+ return g_strdup(VP_PLAY_STRING_DETAIL_VALUE_UNKNOWN);
+ }
+ }
+ } else if (!strcmp(szTxt, VP_PLAY_STRING_DETAIL_LONGITUDE)) {
+ if (pDetailInfo->szLongitude) {
+ if (atof(pDetailInfo->szLongitude) !=
+ VP_DETAIL_VALUE_GPS_DEFAULT)
+ return
+ elm_entry_utf8_to_markup(pDetailInfo->szLongitude);
+ else {
+ return g_strdup(VP_PLAY_STRING_DETAIL_VALUE_UNKNOWN);
+ }
+ }
+ }
+ }
+
+ return NULL;
+}
+
+/* internal functions */
+/**
+ *
+ */
+static void _vp_detail_destroy_handle()
+{
+ if (pDetailViewHandle == NULL) {
+ VideoLogError("pDetailViewHandle is NULL");
+ return;
+ }
+ evas_object_smart_callback_del(pDetailViewHandle->pGenList, "realized",
+ __vp_detail_genlist_realized);
+
+
+ VP_EVAS_DEL(pDetailViewHandle->pGenList);
+
+ VP_FREE(pDetailViewHandle->pDetailInfo->szTitle);
+ VP_FREE(pDetailViewHandle->pDetailInfo->szDate);
+ VP_FREE(pDetailViewHandle->pDetailInfo->szSize);
+ VP_FREE(pDetailViewHandle->pDetailInfo->szFormat);
+ VP_FREE(pDetailViewHandle->pDetailInfo->szResolution);
+ VP_FREE(pDetailViewHandle->pDetailInfo->szLatitude);
+ VP_FREE(pDetailViewHandle->pDetailInfo->szLongitude);
+ VP_FREE(pDetailViewHandle->pDetailInfo->szLocation);
+
+ VP_FREE(pDetailViewHandle->pDetailInfo);
+
+ if (pDetailViewHandle->st_Detail_Itc) {
+ elm_genlist_item_class_free(pDetailViewHandle->st_Detail_Itc);
+ pDetailViewHandle->st_Detail_Itc = NULL;
+ }
+
+ VP_FREE(pDetailViewHandle);
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+static Evas_Object *_vp_detail_create_genlist(Evas_Object * pParent)
+{
+ if (pParent == NULL) {
+ VideoLogError("pParent is NULL");
+ return NULL;
+ }
+
+ Evas_Object *pObj = NULL;
+
+ pObj = elm_genlist_add(pParent);
+ evas_object_size_hint_weight_set(pObj, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(pObj, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_show(pObj);
+ return pObj;
+}
+
+/**
+ *
+ * @param pObj
+ * @param pUserData
+ * @param added_item_cnt
+ * @return
+ */
+static bool _vp_detail_add_genlist_item(Evas_Object * pObj,
+ void *pUserData,
+ int *added_item_cnt)
+{
+ if (pObj == NULL) {
+ VideoLogError("pObj is NULL");
+ return FALSE;
+ }
+
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return FALSE;
+ }
+
+ DetailView *pDetailPopup = (DetailView *) pUserData;
+ if (pDetailPopup->st_Detail_Itc) {
+ elm_genlist_item_class_free(pDetailPopup->st_Detail_Itc);
+ pDetailPopup->st_Detail_Itc = NULL;
+ }
+
+ int item_cnt = 0;
+
+ pDetailPopup->st_Detail_Itc = elm_genlist_item_class_new();
+ if (pDetailPopup->st_Detail_Itc == NULL) {
+ VideoLogError("failed to create genlist class");
+ return FALSE;
+ }
+
+ pDetailPopup->st_Detail_Itc->version = ELM_GENLIST_ITEM_CLASS_VERSION;
+ pDetailPopup->st_Detail_Itc->item_style = "type1";
+ pDetailPopup->st_Detail_Itc->func.text_get =
+ (void *) __vp_detail_genlist_text_get_cb;
+ pDetailPopup->st_Detail_Itc->func.content_get = NULL;
+ pDetailPopup->st_Detail_Itc->func.state_get = NULL;
+ pDetailPopup->st_Detail_Itc->func.del = NULL;
+
+ Elm_Object_Item *pItem = NULL;
+
+ pItem =
+ elm_genlist_item_append(pObj, pDetailPopup->st_Detail_Itc,
+ (void *) VP_PLAY_STRING_DETAIL_TITLE,
+ NULL, ELM_GENLIST_ITEM_NONE, NULL,
+ (void *) pDetailPopup);
+ elm_genlist_item_select_mode_set(pItem,
+ ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+ item_cnt++;
+
+ pItem =
+ elm_genlist_item_append(pObj, pDetailPopup->st_Detail_Itc,
+ (void *) VP_PLAY_STRING_DETAIL_SIZE, NULL,
+ ELM_GENLIST_ITEM_NONE, NULL,
+ (void *) pDetailPopup);
+ elm_genlist_item_select_mode_set(pItem,
+ ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+ item_cnt++;
+
+ if (pDetailPopup->pDetailInfo->bPlayready == FALSE) {
+ pItem =
+ elm_genlist_item_append(pObj, pDetailPopup->st_Detail_Itc,
+ (void *) VP_PLAY_STRING_DETAIL_FORMAT,
+ NULL, ELM_GENLIST_ITEM_NONE, NULL,
+ (void *) pDetailPopup);
+ elm_genlist_item_select_mode_set(pItem,
+ ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+ item_cnt++;
+ }
+
+
+ if (pDetailPopup->pDetailInfo->bPlayready == FALSE) {
+ pItem =
+ elm_genlist_item_append(pObj, pDetailPopup->st_Detail_Itc,
+ (void *)
+ VP_PLAY_STRING_DETAIL_RESOLUTION,
+ NULL, ELM_GENLIST_ITEM_NONE, NULL,
+ (void *) pDetailPopup);
+ elm_genlist_item_select_mode_set(pItem,
+ ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+ item_cnt++;
+ }
+
+ pItem =
+ elm_genlist_item_append(pObj, pDetailPopup->st_Detail_Itc, (void *)
+ VP_PLAY_STRING_DETAIL_LAST_MODIFIED, NULL,
+ ELM_GENLIST_ITEM_NONE, NULL,
+ (void *) pDetailPopup);
+ elm_genlist_item_select_mode_set(pItem,
+ ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+ item_cnt++;
+
+ if (pDetailPopup->pDetailInfo->bPlayready == FALSE) {
+ pItem =
+ elm_genlist_item_append(pObj, pDetailPopup->st_Detail_Itc,
+ (void *)
+ VP_PLAY_STRING_DETAIL_LOCATION, NULL,
+ ELM_GENLIST_ITEM_NONE, NULL,
+ (void *) pDetailPopup);
+ elm_genlist_item_select_mode_set(pItem,
+ ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+ item_cnt++;
+
+ }
+
+ *added_item_cnt = item_cnt;
+
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pItem
+ * @return
+ */
+static Eina_Bool vp_detail_view_back_btn_cb(void *pUserData,
+ Elm_Object_Item * pItem)
+{
+ if (!pDetailViewHandle) {
+ VideoLogInfo("[ERR] pDetailViewHandle is NULL.");
+ return EINA_TRUE;
+ }
+
+ if (pDetailViewHandle->pCloseCb) {
+ pDetailViewHandle->pCloseCb(-1, FALSE,
+ (void *) pDetailViewHandle->pUserData);
+ }
+
+ return EINA_TRUE;
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+void __vp_detail_soft_back_button_cb(void *data, Evas_Object * obj,
+ void *event_info)
+{
+ VideoLogInfo(" ");
+ Evas_Object *pTopNaviFrame = NULL;
+ pTopNaviFrame =
+ elm_naviframe_item_pop(pDetailViewHandle->pNaviFrameHandle);
+ evas_object_del(pTopNaviFrame);
+}
+
+/**
+ *
+ * @param pNaviFrame
+ * @param pCloseCb
+ * @param pDetailInfo
+ * @return
+ */
+detail_handle vp_detail_page_create(void *pNaviFrame,
+ PopupCloseCbFunc pCloseCb,
+ vp_detail_info * pDetailInfo)
+{
+ if (!pNaviFrame) {
+ VideoLogError("[ERR] No existed pNaviFrame.");
+ return NULL;
+ }
+
+ if (pDetailInfo == NULL) {
+ VideoLogError("pDetailInfo is NULL");
+ return NULL;
+ }
+
+ VideoLogInfo("");
+
+ pDetailViewHandle = (DetailView *) calloc(1, sizeof(DetailView));
+ if (pDetailViewHandle == NULL) {
+ VideoLogError("pDetailViewHandle alloc fail");
+ return NULL;
+ } else {
+ memset(pDetailViewHandle, 0, sizeof(DetailView));
+ }
+
+ pDetailViewHandle->pDetailInfo = calloc(1, sizeof(vp_detail_info));
+ if (pDetailViewHandle->pDetailInfo == NULL) {
+ VideoLogError("pDetailViewHandle pDetailInfo alloc fail");
+ _vp_detail_destroy_handle();
+ return NULL;
+ }
+ VP_STRDUP(pDetailViewHandle->pDetailInfo->szTitle,
+ pDetailInfo->szTitle);
+ VP_STRDUP(pDetailViewHandle->pDetailInfo->szDate, pDetailInfo->szDate);
+ VP_STRDUP(pDetailViewHandle->pDetailInfo->szFormat,
+ pDetailInfo->szFormat);
+ VP_STRDUP(pDetailViewHandle->pDetailInfo->szSize, pDetailInfo->szSize);
+ VP_STRDUP(pDetailViewHandle->pDetailInfo->szLastModified,
+ pDetailInfo->szLastModified);
+ VP_STRDUP(pDetailViewHandle->pDetailInfo->szResolution,
+ pDetailInfo->szResolution);
+ VP_STRDUP(pDetailViewHandle->pDetailInfo->szLatitude,
+ pDetailInfo->szLatitude);
+ VP_STRDUP(pDetailViewHandle->pDetailInfo->szLongitude,
+ pDetailInfo->szLongitude);
+ pDetailViewHandle->pDetailInfo->szLocation =
+ vp_util_convert_file_location(pDetailInfo->szLocation);
+
+ pDetailViewHandle->pDetailInfo->bDrm = pDetailInfo->bDrm;
+ pDetailViewHandle->pDetailInfo->bForwardLock =
+ pDetailInfo->bForwardLock;
+ pDetailViewHandle->pDetailInfo->bPlayready = pDetailInfo->bPlayready;
+ pDetailViewHandle->pNaviFrameHandle = pNaviFrame;
+
+ pDetailViewHandle->BaseLayout =
+ elm_layout_add(pDetailViewHandle->pNaviFrameHandle);
+ elm_layout_theme_set(pDetailViewHandle->BaseLayout,
+ VP_PLAY_CUSTOM_LAYOUT_KLASS,
+ VP_PLAY_CUSTOM_LAYOUT_GROUP,
+ VP_PLAY_DETAIL_LAYOUT_STYLE);
+ evas_object_size_hint_weight_set(pDetailViewHandle->BaseLayout,
+ EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(pDetailViewHandle->BaseLayout,
+ EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+ Evas_Object *pLeftbtn =
+ elm_button_add(pDetailViewHandle->pNaviFrameHandle);
+ elm_object_style_set(pLeftbtn, "naviframe/end_btn/default");
+ evas_object_smart_callback_add(pLeftbtn, "clicked",
+ __vp_detail_soft_back_button_cb, NULL);
+
+ pDetailViewHandle->pNaviFrameItem =
+ elm_naviframe_item_push(pDetailViewHandle->pNaviFrameHandle,
+ (const char *) VP_PLAY_STRING_COM_DETAILS,
+ pLeftbtn, NULL,
+ pDetailViewHandle->BaseLayout, NULL);
+ elm_naviframe_item_pop_cb_set(pDetailViewHandle->pNaviFrameItem,
+ vp_detail_view_back_btn_cb,
+ pDetailViewHandle);
+
+ pDetailViewHandle->pParent = pDetailViewHandle->BaseLayout;
+ pDetailViewHandle->pCloseCb = pCloseCb;
+
+ pDetailViewHandle->pGenList =
+ _vp_detail_create_genlist(pDetailViewHandle->pParent);
+ if (pDetailViewHandle->pGenList == NULL) {
+ VideoLogError("_vp_detail_create_genlist fail");
+ _vp_detail_destroy_handle();
+ return NULL;
+ }
+
+ evas_object_data_set(pDetailViewHandle->pGenList,
+ VP_DETAIL_GENLIST_DATA_KEY,
+ (void *) pDetailViewHandle);
+ elm_genlist_mode_set(pDetailViewHandle->pGenList, ELM_LIST_COMPRESS);
+
+ int added_item_cnt = 0;
+ if (!_vp_detail_add_genlist_item
+ (pDetailViewHandle->pGenList, (void *) pDetailViewHandle,
+ &added_item_cnt)) {
+ VideoLogError("_vp_detail_add_genlist_item fail");
+ _vp_detail_destroy_handle();
+ return NULL;
+ }
+ pDetailViewHandle->nListCount = added_item_cnt;
+ evas_object_smart_callback_add(pDetailViewHandle->pGenList, "realized",
+ __vp_detail_genlist_realized, NULL);
+
+ VideoLogInfo("item cnt = %d", added_item_cnt);
+ elm_object_part_content_set(pDetailViewHandle->pParent,
+ "elm.swallow.content",
+ pDetailViewHandle->pGenList);
+ return pDetailViewHandle;
+}
+
+/* external functions */
+/**
+ *
+ * @param pDetailHandle
+ */
+void vp_detail_destroy(detail_handle pDetailHandle)
+{
+ VideoLogError("vp_detail_destroy called");
+ if (pDetailHandle == NULL) {
+ VideoLogError("pDetailHandle is NULL");
+ return;
+ }
+
+ if (pDetailViewHandle->pGenList) {
+ evas_object_del(pDetailViewHandle->pGenList);
+ }
+ if (pDetailViewHandle->BaseLayout) {
+ evas_object_del(pDetailViewHandle->BaseLayout);
+ }
+ Evas_Object *pTopNaviFrame = NULL;
+ pTopNaviFrame =
+ elm_naviframe_item_pop(pDetailViewHandle->pNaviFrameHandle);
+ evas_object_del(pTopNaviFrame);
+
+ _vp_detail_destroy_handle();
+
+}
+
+/**
+ *
+ * @param pDetailHandle
+ * @param pUserData
+ * @return
+ */
+bool vp_detail_set_user_data(detail_handle pDetailHandle, void *pUserData)
+{
+ if (pDetailHandle == NULL) {
+ VideoLogError("pDetailHandle is NULL");
+ return FALSE;
+ }
+
+ DetailView *pDetailPopup = (DetailView *) pDetailHandle;
+
+ pDetailPopup->pUserData = pUserData;
+
+ return TRUE;
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "vp-play-string-define.h"
+#include "vp-play-value-define.h"
+#include "vp-play-type-define.h"
+#include "vp-play-macro-define.h"
+
+#include "vp-play-speed.h"
+#include "vp-play-util.h"
+#include "vp-play-button.h"
+
+/* check temp */
+#include "vp-play-log.h"
+
+#define VP_PLAY_SPEED_MAX_VALUE 1.5
+#define VP_PLAY_SPEED_MIN_VALUE 0.5
+
+
+typedef struct _PlaySpeedPopup {
+ Evas_Object *pParent;
+ Evas_Object *pPopup;
+ Evas_Object *pLayout;
+ Evas_Object *pBox;
+ Evas_Object *pSlider;
+ Evas_Object *pOkButton;
+ Evas_Object *pCancelButton;
+ Evas_Object *pAddButton;
+ Evas_Object *pDelButton;
+
+ double fSpeedVal;
+
+ void *pUserData;
+
+ PlaySpeedDoneCbFunc pDoneCb;
+ PlaySpeedUpdateCbFunc pUpdateCb;
+
+} PlaySpeedPopup;
+
+
+
+static void _vp_play_speed_popup_destroy_handle(PlaySpeedPopup *
+ pPlaySpeedPopup);
+static void _vp_play_speed_update_text(PlaySpeedPopup * pPlaySpeedPopup);
+
+
+/* callback functions */
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_play_speed_popup_ok_btn_cb(void *pUserData,
+ Evas_Object * pObj,
+ void *pEventInfo)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ PlaySpeedPopup *pPlaySpeedPopup = (PlaySpeedPopup *) pUserData;
+
+ if (pPlaySpeedPopup->pDoneCb) {
+ pPlaySpeedPopup->pDoneCb(pPlaySpeedPopup->fSpeedVal, TRUE,
+ (void *) pPlaySpeedPopup->pUserData);
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_play_speed_popup_cancel_btn_cb(void *pUserData,
+ Evas_Object * pObj,
+ void *pEventInfo)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ PlaySpeedPopup *pPlaySpeedPopup = (PlaySpeedPopup *) pUserData;
+
+ if (pPlaySpeedPopup->pDoneCb) {
+ pPlaySpeedPopup->pDoneCb(pPlaySpeedPopup->fSpeedVal, FALSE,
+ (void *) pPlaySpeedPopup->pUserData);
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_play_speed_popup_key_event_cb(void *pUserData,
+ Evas_Object * pObj,
+ void *pEventInfo)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+ PlaySpeedPopup *pPlaySpeedPopup = (PlaySpeedPopup *) pUserData;
+ if (pPlaySpeedPopup->pDoneCb) {
+ pPlaySpeedPopup->pDoneCb(pPlaySpeedPopup->fSpeedVal, FALSE,
+ (void *) pPlaySpeedPopup->pUserData);
+ }
+
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pEvas
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_play_speed_popup_mouse_event_cb(void *pUserData,
+ Evas * pEvas,
+ Evas_Object * pObj,
+ void *pEventInfo)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ if (pEventInfo == NULL) {
+ VideoLogError("pEventInfo is NULL");
+ return;
+ }
+
+ Evas_Event_Mouse_Up *ev = pEventInfo;
+
+ if (ev->button == 3) {
+ PlaySpeedPopup *pPlaySpeedPopup = (PlaySpeedPopup *) pUserData;
+ if (pPlaySpeedPopup->pDoneCb) {
+ pPlaySpeedPopup->pDoneCb(pPlaySpeedPopup->fSpeedVal, FALSE,
+ (void *) pPlaySpeedPopup->pUserData);
+ }
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_play_speed_popup_slider_change_cb(void *pUserData,
+ Evas_Object * pObj,
+ void *pEventInfo)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+ PlaySpeedPopup *pPlaySpeedPopup = (PlaySpeedPopup *) pUserData;
+
+ double fValue = elm_slider_value_get(pPlaySpeedPopup->pSlider);
+ VideoLogDebug("== %f ==", fValue);
+
+ if (fValue != pPlaySpeedPopup->fSpeedVal) {
+ if (pPlaySpeedPopup->pUpdateCb) {
+ pPlaySpeedPopup->fSpeedVal = fValue;
+ pPlaySpeedPopup->pUpdateCb(pPlaySpeedPopup->fSpeedVal,
+ (void *)
+ pPlaySpeedPopup->pUserData);
+ _vp_play_speed_update_text(pPlaySpeedPopup);
+ }
+ }
+
+ char szValue[6] = { 0, };
+ snprintf(szValue, 6, "%0.1f X", (double) pPlaySpeedPopup->fSpeedVal);
+ double realValue = atof(szValue);
+
+ if (pPlaySpeedPopup->fSpeedVal != realValue) {
+ elm_slider_value_set(pPlaySpeedPopup->pSlider, (double) realValue);
+ pPlaySpeedPopup->fSpeedVal = realValue;
+ }
+
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEvent
+ */
+static void __vp_play_speed_btn_clicked_cb(void *pUserData,
+ Evas_Object * pObj,
+ void *pEvent)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ PlaySpeedPopup *pPlaySpeedPopup = (PlaySpeedPopup *) pUserData;
+
+ double fValue = elm_slider_value_get(pPlaySpeedPopup->pSlider);
+ VideoLogDebug("== %f ==", fValue);
+
+ if (pObj == pPlaySpeedPopup->pAddButton) {
+ fValue += 0.1;
+ if (fValue > (double) VP_PLAY_SPEED_MAX_VALUE) {
+ fValue = (double) VP_PLAY_SPEED_MAX_VALUE;
+ }
+ elm_slider_value_set(pPlaySpeedPopup->pSlider, fValue);
+
+ if (fValue != pPlaySpeedPopup->fSpeedVal) {
+ if (pPlaySpeedPopup->pUpdateCb) {
+ pPlaySpeedPopup->fSpeedVal = fValue;
+ pPlaySpeedPopup->pUpdateCb(pPlaySpeedPopup->fSpeedVal,
+ (void *)
+ pPlaySpeedPopup->pUserData);
+ _vp_play_speed_update_text(pPlaySpeedPopup);
+ }
+ }
+
+ } else if (pObj == pPlaySpeedPopup->pDelButton) {
+ fValue -= 0.1;
+ if (fValue < (double) VP_PLAY_SPEED_MIN_VALUE) {
+ fValue = (double) VP_PLAY_SPEED_MIN_VALUE;
+ }
+
+ elm_slider_value_set(pPlaySpeedPopup->pSlider, fValue);
+ if (fValue != pPlaySpeedPopup->fSpeedVal) {
+ if (pPlaySpeedPopup->pUpdateCb) {
+ pPlaySpeedPopup->fSpeedVal = fValue;
+ pPlaySpeedPopup->pUpdateCb(pPlaySpeedPopup->fSpeedVal,
+ (void *)
+ pPlaySpeedPopup->pUserData);
+ _vp_play_speed_update_text(pPlaySpeedPopup);
+ }
+ }
+
+ }
+}
+
+/* internal functions */
+/**
+ *
+ * @param pPlaySpeedPopup
+ */
+static void _vp_play_speed_popup_destroy_handle(PlaySpeedPopup *
+ pPlaySpeedPopup)
+{
+ if (pPlaySpeedPopup == NULL) {
+ VideoLogError("pPlaySpeedPopup is NULL");
+ return;
+ }
+
+ VP_EVAS_DEL(pPlaySpeedPopup->pAddButton);
+ VP_EVAS_DEL(pPlaySpeedPopup->pDelButton);
+
+ VP_EVAS_DEL(pPlaySpeedPopup->pOkButton);
+ VP_EVAS_DEL(pPlaySpeedPopup->pCancelButton);
+ VP_EVAS_DEL(pPlaySpeedPopup->pSlider);
+ VP_EVAS_DEL(pPlaySpeedPopup->pBox);
+ VP_EVAS_DEL(pPlaySpeedPopup->pLayout);
+ VP_EVAS_DEL(pPlaySpeedPopup->pPopup);
+
+ VP_FREE(pPlaySpeedPopup);
+}
+
+/**
+ *
+ * @param pPlaySpeedPopup
+ */
+static void _vp_play_speed_update_text(PlaySpeedPopup * pPlaySpeedPopup)
+{
+ if (pPlaySpeedPopup == NULL) {
+ VideoLogError("pPlaySpeedPopup is NULL");
+ return;
+ }
+
+ char szValue[6] = { 0, };
+
+ snprintf(szValue, 6, "%0.1f X", (double) pPlaySpeedPopup->fSpeedVal);
+ elm_object_part_text_set(pPlaySpeedPopup->pLayout, "elm.text.title",
+ szValue);
+
+}
+
+/**
+ *
+ * @param pParent
+ * @param pUserData
+ * @return
+ */
+static Evas_Object *_vp_play_speed_popup_create_ok_button(Evas_Object *
+ pParent,
+ void *pUserData)
+{
+ if (pParent == NULL) {
+ VideoLogError("pParent is NULL");
+ return NULL;
+ }
+
+ Evas_Object *pObj = NULL;
+ pObj = elm_button_add(pParent);
+ elm_object_style_set(pObj, "popup_button/default");
+ elm_object_domain_translatable_text_set(pObj, VP_SYS_STR_PREFIX,
+ VP_PLAY_STRING_COM_DONE);
+ elm_object_part_content_set(pParent, "button2", pObj);
+ evas_object_smart_callback_add(pObj, "clicked",
+ __vp_play_speed_popup_ok_btn_cb,
+ pUserData);
+ evas_object_show(pObj);
+
+ return pObj;
+}
+
+/**
+ *
+ * @param pParent
+ * @param pUserData
+ * @return
+ */
+static Evas_Object *_vp_play_speed_popup_create_cancel_button(Evas_Object
+ *pParent,
+ void
+ *pUserData)
+{
+ if (pParent == NULL) {
+ VideoLogError("pParent is NULL");
+ return NULL;
+ }
+
+ Evas_Object *pObj = NULL;
+ pObj = elm_button_add(pParent);
+ elm_object_style_set(pObj, "popup_button/default");
+ elm_object_domain_translatable_text_set(pObj, VP_SYS_STR_PREFIX,
+ VP_PLAY_STRING_COM_CANCEL);
+ elm_object_part_content_set(pParent, "button1", pObj);
+ evas_object_smart_callback_add(pObj, "clicked",
+ __vp_play_speed_popup_cancel_btn_cb,
+ pUserData);
+ evas_object_show(pObj);
+
+ return pObj;
+}
+
+/**
+ *
+ * @param pParent
+ * @param pUserData
+ * @return
+ */
+static Evas_Object *_vp_play_speed_popup_create_slider(Evas_Object *
+ pParent,
+ void *pUserData)
+{
+ if (pParent == NULL) {
+ VideoLogError("pParent is NULL");
+ return NULL;
+ }
+ Evas_Object *pObj = NULL;
+
+ pObj = elm_slider_add(pParent);
+ elm_slider_indicator_show_set(pObj, EINA_FALSE);
+ evas_object_size_hint_weight_set(pObj, EVAS_HINT_EXPAND, 0.0);
+ evas_object_size_hint_align_set(pObj, EVAS_HINT_FILL, 0.5);
+
+ elm_slider_min_max_set(pObj, VP_PLAY_SPEED_MIN_VALUE,
+ VP_PLAY_SPEED_MAX_VALUE);
+ evas_object_smart_callback_add(pObj, "changed",
+ __vp_play_speed_popup_slider_change_cb,
+ pUserData);
+
+ return pObj;
+}
+
+/**
+ *
+ * @param pParent
+ * @param pUserData
+ * @return
+ */
+static bool _vp_play_speed_popup_create_button(Evas_Object * pParent,
+ void *pUserData)
+{
+ if (pParent == NULL) {
+ VideoLogError("pParent is NULL");
+ return FALSE;
+ }
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VP_PLAY_RESROUCE_EDJ_PATH);
+ free(path);
+ PlaySpeedPopup *pPlaySpeedPopup = (PlaySpeedPopup *) pUserData;
+
+ pPlaySpeedPopup->pDelButton =
+ vp_button_create(pParent, "custom/flat_63_78/default",
+ NULL,
+ (Evas_Smart_Cb) __vp_play_speed_btn_clicked_cb,
+ (Evas_Smart_Cb) NULL, (Evas_Smart_Cb) NULL,
+ (void *) pPlaySpeedPopup);
+
+
+
+ pPlaySpeedPopup->pAddButton =
+ vp_button_create(pParent, "custom/flat_63_78/default",
+ NULL,
+ (Evas_Smart_Cb) __vp_play_speed_btn_clicked_cb,
+ (Evas_Smart_Cb) NULL, (Evas_Smart_Cb) NULL,
+ (void *) pPlaySpeedPopup);
+
+ Evas_Object *pIcon = NULL;
+
+ pIcon =
+ vp_button_create_icon(pPlaySpeedPopup->pDelButton,
+ edj_path, VP_PLAY_RES_BUTTON_DEL);
+ elm_object_part_content_set(pPlaySpeedPopup->pDelButton,
+ VP_PLAY_SWALLOW_BUTTON_ICON, pIcon);
+
+ pIcon =
+ vp_button_create_icon(pPlaySpeedPopup->pDelButton,
+ edj_path, VP_PLAY_RES_BUTTON_DEL_PRESS);
+ elm_object_part_content_set(pPlaySpeedPopup->pDelButton,
+ VP_PLAY_SWALLOW_BUTTON_PRESS_ICON, pIcon);
+
+ pIcon =
+ vp_button_create_icon(pPlaySpeedPopup->pDelButton,
+ edj_path, VP_PLAY_RES_BUTTON_DEL);
+ elm_object_part_content_set(pPlaySpeedPopup->pDelButton,
+ VP_PLAY_SWALLOW_BUTTON_DIM_ICON, pIcon);
+
+ pIcon =
+ vp_button_create_icon(pPlaySpeedPopup->pAddButton,
+ edj_path, VP_PLAY_RES_BUTTON_ADD);
+ elm_object_part_content_set(pPlaySpeedPopup->pAddButton,
+ VP_PLAY_SWALLOW_BUTTON_ICON, pIcon);
+
+ pIcon =
+ vp_button_create_icon(pPlaySpeedPopup->pAddButton,
+ edj_path, VP_PLAY_RES_BUTTON_ADD_PRESS);
+ elm_object_part_content_set(pPlaySpeedPopup->pAddButton,
+ VP_PLAY_SWALLOW_BUTTON_PRESS_ICON, pIcon);
+
+ pIcon =
+ vp_button_create_icon(pPlaySpeedPopup->pAddButton,
+ edj_path, VP_PLAY_RES_BUTTON_ADD);
+ elm_object_part_content_set(pPlaySpeedPopup->pAddButton,
+ VP_PLAY_SWALLOW_BUTTON_DIM_ICON, pIcon);
+
+ elm_object_part_content_set(pParent, "elm.swallow.icon.1",
+ pPlaySpeedPopup->pDelButton);
+ elm_object_part_content_set(pParent, "elm.swallow.icon.2",
+ pPlaySpeedPopup->pAddButton);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+static Evas_Object *_vp_play_speed_popup_create_layout(Evas_Object *
+ pParent)
+{
+ if (pParent == NULL) {
+ VideoLogError("pParent is NULL");
+ return NULL;
+ }
+
+ Evas_Object *pLayout = elm_layout_add(pParent);
+ if (pLayout == NULL) {
+ VideoLogError("pLayout object is NULL");
+ return NULL;
+ }
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VP_PLAY_SPEED_POPUP_EDJ);
+ free(path);
+ elm_layout_file_set(pLayout, edj_path,
+ VP_PLAY_EDJ_GROUP_PLAY_SPEED_POPUP);
+
+ evas_object_size_hint_weight_set(pLayout, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(pLayout, EVAS_HINT_FILL,
+ EVAS_HINT_FILL);
+
+ evas_object_show(pLayout);
+
+ return pLayout;
+
+}
+
+/* external functions */
+/**
+ *
+ * @param pParent
+ * @param fSpeedVal
+ * @param pUpdateCb
+ * @param pDoneCb
+ * @return
+ */
+play_speed_popup vp_play_speed_popup_create(Evas_Object * pParent,
+ double fSpeedVal,
+ PlaySpeedUpdateCbFunc
+ pUpdateCb,
+ PlaySpeedDoneCbFunc pDoneCb)
+{
+ if (pParent == NULL) {
+ VideoLogError("pParent is NULL");
+ return NULL;
+ }
+
+ PlaySpeedPopup *pPlaySpeedPopup = NULL;
+
+ pPlaySpeedPopup = calloc(1, sizeof(PlaySpeedPopup));
+
+ if (pPlaySpeedPopup == NULL) {
+ VideoLogError("pPlaySpeedPopup alloc fail");
+ return NULL;
+ }
+
+ pPlaySpeedPopup->pParent = pParent;
+ pPlaySpeedPopup->pUpdateCb = pUpdateCb;
+ pPlaySpeedPopup->pDoneCb = pDoneCb;
+ pPlaySpeedPopup->fSpeedVal = fSpeedVal;
+
+ pPlaySpeedPopup->pPopup =
+ vp_popup_create(pParent, POPUP_STYLE_EXPAND_WITH_CANCEL_BTN,
+ VP_PLAY_STRING_POPUP_PLAY_SPEED, NULL, 0.0, NULL,
+ __vp_play_speed_popup_key_event_cb,
+ __vp_play_speed_popup_mouse_event_cb,
+ (void *) pPlaySpeedPopup);
+
+ if (pPlaySpeedPopup->pPopup == NULL) {
+ VideoLogError("vp_popup_create fail");
+ _vp_play_speed_popup_destroy_handle(pPlaySpeedPopup);
+ return NULL;
+ }
+
+ pPlaySpeedPopup->pCancelButton =
+ _vp_play_speed_popup_create_cancel_button(pPlaySpeedPopup->pPopup,
+ (void *)
+ pPlaySpeedPopup);
+ if (pPlaySpeedPopup->pCancelButton == NULL) {
+ VideoLogError("_vp_play_speed_popup_create_cancel_button fail");
+ _vp_play_speed_popup_destroy_handle(pPlaySpeedPopup);
+ return NULL;
+ }
+
+ pPlaySpeedPopup->pOkButton =
+ _vp_play_speed_popup_create_ok_button(pPlaySpeedPopup->pPopup,
+ (void *) pPlaySpeedPopup);
+ if (pPlaySpeedPopup->pOkButton == NULL) {
+ VideoLogError("_vp_play_speed_popup_create_ok_button fail");
+ _vp_play_speed_popup_destroy_handle(pPlaySpeedPopup);
+ return NULL;
+ }
+
+ pPlaySpeedPopup->pLayout =
+ _vp_play_speed_popup_create_layout(pPlaySpeedPopup->pPopup);
+ if (pPlaySpeedPopup->pLayout == NULL) {
+ VideoLogError("_vp_play_speed_popup_create_layout fail");
+ _vp_play_speed_popup_destroy_handle(pPlaySpeedPopup);
+ return NULL;
+ }
+
+ pPlaySpeedPopup->pSlider =
+ _vp_play_speed_popup_create_slider(pPlaySpeedPopup->pLayout,
+ pPlaySpeedPopup);
+ if (pPlaySpeedPopup->pSlider == NULL) {
+ VideoLogError("_vp_play_speed_popup_create_slider fail");
+ _vp_play_speed_popup_destroy_handle(pPlaySpeedPopup);
+ return NULL;
+ }
+
+ _vp_play_speed_popup_create_button(pPlaySpeedPopup->pLayout,
+ pPlaySpeedPopup);
+
+ elm_slider_value_set(pPlaySpeedPopup->pSlider,
+ (double) pPlaySpeedPopup->fSpeedVal);
+ _vp_play_speed_update_text(pPlaySpeedPopup);
+
+ elm_object_part_content_set(pPlaySpeedPopup->pLayout,
+ "elm.swallow.content",
+ pPlaySpeedPopup->pSlider);
+ elm_object_content_set(pPlaySpeedPopup->pPopup,
+ pPlaySpeedPopup->pLayout);
+ evas_object_show(pPlaySpeedPopup->pLayout);
+
+ return pPlaySpeedPopup;
+}
+
+/**
+ *
+ * @param pPlaySpeedHandle
+ */
+void vp_play_speed_popup_destroy(play_speed_popup pPlaySpeedHandle)
+{
+ if (pPlaySpeedHandle == NULL) {
+ VideoLogError("pPlaySpeedHandle is NULL");
+ return;
+ }
+
+ PlaySpeedPopup *pPlaySpeedPopup = (PlaySpeedPopup *) pPlaySpeedHandle;
+
+ _vp_play_speed_popup_destroy_handle(pPlaySpeedPopup);
+
+}
+
+/**
+ *
+ * @param pPlaySpeedHandle
+ * @return
+ */
+bool vp_play_speed_popup_realize(play_speed_popup pPlaySpeedHandle)
+{
+ if (pPlaySpeedHandle == NULL) {
+ VideoLogError("pPlaySpeedHandle is NULL");
+ return FALSE;
+ }
+
+ PlaySpeedPopup *pPlaySpeedPopup = (PlaySpeedPopup *) pPlaySpeedHandle;
+
+ evas_object_show(pPlaySpeedPopup->pPopup);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pPlaySpeedHandle
+ * @return
+ */
+bool vp_play_speed_popup_unrealize(play_speed_popup pPlaySpeedHandle)
+{
+ if (pPlaySpeedHandle == NULL) {
+ VideoLogError("pPlaySpeedHandle is NULL");
+ return FALSE;
+ }
+
+ PlaySpeedPopup *pPlaySpeedPopup = (PlaySpeedPopup *) pPlaySpeedHandle;
+
+ evas_object_hide(pPlaySpeedPopup->pPopup);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pPlaySpeedHandle
+ * @param pUserData
+ * @return
+ */
+bool vp_play_speed_popup_set_user_data(play_speed_popup pPlaySpeedHandle,
+ void *pUserData)
+{
+ if (pPlaySpeedHandle == NULL) {
+ VideoLogError("pPlaySpeedHandle is NULL");
+ return FALSE;
+ }
+
+ PlaySpeedPopup *pPlaySpeedPopup = (PlaySpeedPopup *) pPlaySpeedHandle;
+
+ pPlaySpeedPopup->pUserData = pUserData;
+
+ return TRUE;
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "vp-play-string-define.h"
+#include "vp-play-value-define.h"
+#include "vp-play-type-define.h"
+#include "vp-play-macro-define.h"
+#include "vp-play-preference.h"
+
+#include "vp-repeat.h"
+
+/* check temp */
+#include "vp-play-log.h"
+
+#define VP_REPEAT_GENLIST_DATA_KEY "vp.repeat.genlist"
+
+typedef struct _RepeatPopup {
+ Evas_Object *pParent;
+ Evas_Object *pPopup;
+ Evas_Object *pRadio;
+ Evas_Object *pButton;
+ Evas_Object *pBox;
+ Evas_Object *pGenList;
+
+ Elm_Genlist_Item_Class *st_Repeat_Itc;
+ int nListCount;
+ char *pMediUrl;
+
+ void *pUserData;
+ PopupCloseCbFunc pCloseCb;
+ video_play_repeat_mode_t repeatMode;
+} RepeatPopup;
+
+
+
+static void _vp_repeat_destroy_handle(RepeatPopup * pRepeat);
+static void __vp_repeat_genlist_item_selected_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo);
+
+
+static void __vp_repeat_genlist_realized(void *data, Evas_Object * obj,
+ void *event_info)
+{
+ VP_GENLIST_HIDE_BOTTOMLINE(data, obj, event_info);
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __vp_repeat_popup_rotate_cb(void *data, Evas_Object * obj,
+ void *event_info)
+{
+ RepeatPopup *pRepeat = (RepeatPopup *) data;
+ if (!pRepeat) {
+ VideoLogError("pCapture IS null");
+ return;
+ }
+ if (pRepeat->nListCount < VP_POPUP_MIN_ITEMS) {
+ return;
+ }
+ vp_popup_set_popup_min_size(pRepeat->pParent, pRepeat->pBox,
+ pRepeat->nListCount, VIDEO_POPUP_DEFAULT);
+
+}
+
+/* callback functions */
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pPart
+ * @return
+ */
+static char *__vp_repeat_genlist_text_get_cb(const void *pUserData,
+ Evas_Object * pObj,
+ const char *pPart)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return NULL;
+ }
+
+ char *szTxt = (char *) pUserData;
+
+ if (!strcmp(pPart, "elm.text.main.left")) {
+ return strdup(szTxt);
+ }
+
+ return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pPart
+ * @return
+ */
+static Evas_Object *__vp_repeat_genlist_content_get_cb(const void
+ *pUserData,
+ Evas_Object * pObj,
+ const char *pPart)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return NULL;
+ }
+
+ char *szTxt = (char *) pUserData;
+
+ if (!strcmp(pPart, "elm.icon.right")) {
+ Evas_Object *pRadioObj = NULL;
+
+ RepeatPopup *pRepeat = (RepeatPopup *) evas_object_data_get(pObj,
+ VP_REPEAT_GENLIST_DATA_KEY);
+ if (pRepeat == NULL) {
+ VideoLogWarning("evas_object_data_get is fail");
+ return NULL;
+ }
+
+ video_play_repeat_mode_t nType = VIDEO_PLAY_REPEAT_NONE;
+
+ if (!strcmp(szTxt, VP_PLAY_STRING_REPEAT_OFF)) {
+ nType = VIDEO_PLAY_REPEAT_OFF;
+ } else if (!strcmp(szTxt, VP_PLAY_STRING_REPEAT_ALL_OFF)) {
+ nType = VIDEO_PLAY_REPEAT_ALL_STOP;
+ } else if (!strcmp(szTxt, VP_PLAY_STRING_REPEAT_ONE)) {
+ nType = VIDEO_PLAY_REPEAT_ONE;
+ } else if (!strcmp(szTxt, VP_PLAY_STRING_REPEAT_ALL)) {
+ nType = VIDEO_PLAY_REPEAT_ALL;
+ }
+
+ pRadioObj = elm_radio_add(pObj);
+ elm_radio_state_value_set(pRadioObj, nType);
+ elm_radio_group_add(pRadioObj, pRepeat->pRadio);
+ elm_radio_value_set(pRepeat->pRadio, pRepeat->repeatMode);
+ evas_object_smart_callback_add(pRadioObj, "changed",
+ __vp_repeat_genlist_item_selected_cb,
+ pRepeat);
+ evas_object_show(pRadioObj);
+
+ return pRadioObj;
+ }
+
+ return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __vp_repeat_genlist_item_selected_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+ if (pEventInfo == NULL) {
+ VideoLogError("pEventInfo is NULL");
+ return;
+ }
+
+ Elm_Object_Item *pItem = (Elm_Object_Item *) pEventInfo;
+ Elm_Object_Item *pSelectedItem =
+ elm_genlist_selected_item_get(pObject);
+ if (pSelectedItem) {
+ elm_genlist_item_selected_set(pSelectedItem, EINA_FALSE);
+ }
+ char *szTxt = (char *) elm_object_item_data_get(pItem);
+
+ RepeatPopup *pRepeat = (RepeatPopup *) pUserData;
+
+ if (szTxt == NULL) {
+ VideoLogError("szTxt is NULL");
+ return;
+ }
+
+ video_play_repeat_mode_t nType = VIDEO_PLAY_REPEAT_NONE;
+
+ if (!strcmp(szTxt, VP_PLAY_STRING_REPEAT_OFF)) {
+ nType = VIDEO_PLAY_REPEAT_OFF;
+ } else if (!strcmp(szTxt, VP_PLAY_STRING_REPEAT_ALL_OFF)) {
+ nType = VIDEO_PLAY_REPEAT_ALL_STOP;
+ } else if (!strcmp(szTxt, VP_PLAY_STRING_REPEAT_ONE)) {
+ nType = VIDEO_PLAY_REPEAT_ONE;
+ } else if (!strcmp(szTxt, VP_PLAY_STRING_REPEAT_ALL)) {
+ nType = VIDEO_PLAY_REPEAT_ALL;
+ }
+
+ if (nType != VIDEO_PLAY_REPEAT_NONE) {
+ vp_play_preference_set_repeat_mode_key((int) nType);
+ }
+
+ pRepeat->repeatMode = nType;
+ VideoLogInfo("repeatMode=%d", pRepeat->repeatMode);
+ if (pRepeat->pCloseCb) {
+ pRepeat->pCloseCb((int) nType, FALSE, (void *) pRepeat->pUserData);
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_repeat_popup_key_event_cb(void *pUserData,
+ Evas_Object * pObj,
+ void *pEventInfo)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ RepeatPopup *pRepeat = (RepeatPopup *) pUserData;
+
+ if (pRepeat->pCloseCb) {
+ pRepeat->pCloseCb(VIDEO_PLAY_REPEAT_NONE, FALSE,
+ (void *) pRepeat->pUserData);
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pEvas
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_repeat_popup_mouse_event_cb(void *pUserData,
+ Evas * pEvas,
+ Evas_Object * pObj,
+ void *pEventInfo)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ if (pEventInfo == NULL) {
+ VideoLogError("pEventInfo is NULL");
+ return;
+ }
+
+ Evas_Event_Mouse_Up *ev = pEventInfo;
+
+ if (ev->button == 3) {
+ RepeatPopup *pRepeat = (RepeatPopup *) pUserData;
+
+ if (pRepeat->pCloseCb) {
+ pRepeat->pCloseCb(VIDEO_PLAY_REPEAT_NONE, FALSE,
+ (void *) pRepeat->pUserData);
+ }
+ }
+}
+
+/* internal functions */
+/**
+ *
+ * @param pRepeat
+ */
+static void _vp_repeat_destroy_handle(RepeatPopup * pRepeat)
+{
+ if (pRepeat == NULL) {
+ VideoLogError("pRepeat is NULL");
+ return;
+ }
+ evas_object_smart_callback_del(pRepeat->pGenList, "realized",
+ __vp_repeat_genlist_realized);
+ evas_object_smart_callback_del(pRepeat->pParent, "rotation,changed",
+ __vp_repeat_popup_rotate_cb);
+
+
+ VP_EVAS_DEL(pRepeat->pRadio);
+ VP_EVAS_DEL(pRepeat->pGenList);
+ VP_EVAS_DEL(pRepeat->pButton);
+ VP_EVAS_DEL(pRepeat->pBox);
+
+ VP_EVAS_DEL(pRepeat->pPopup);
+
+ VP_FREE(pRepeat->pMediUrl);
+
+ if (pRepeat->st_Repeat_Itc) {
+ elm_genlist_item_class_free(pRepeat->st_Repeat_Itc);
+ pRepeat->st_Repeat_Itc = NULL;
+ }
+
+ VP_FREE(pRepeat);
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+static Evas_Object *_vp_repeat_create_genlist(Evas_Object * pParent)
+{
+ if (pParent == NULL) {
+ VideoLogError("pParent is NULL");
+ return NULL;
+ }
+
+ Evas_Object *pObj = NULL;
+
+ pObj = elm_genlist_add(pParent);
+ evas_object_size_hint_weight_set(pObj, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(pObj, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_show(pObj);
+ return pObj;
+}
+
+/**
+ *
+ * @param pObj
+ * @param pUserData
+ * @return
+ */
+static bool _vp_repeat_add_genlist_item(Evas_Object * pObj,
+ void *pUserData)
+{
+ if (pObj == NULL) {
+ VideoLogError("pObj is NULL");
+ return FALSE;
+ }
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return FALSE;
+ }
+
+ RepeatPopup *pRepeat = (RepeatPopup *) pUserData;
+
+ if (pRepeat->st_Repeat_Itc) {
+ elm_genlist_item_class_free(pRepeat->st_Repeat_Itc);
+ pRepeat->st_Repeat_Itc = NULL;
+ }
+
+ pRepeat->st_Repeat_Itc = elm_genlist_item_class_new();
+
+ if (pRepeat->st_Repeat_Itc != NULL) {
+ pRepeat->st_Repeat_Itc->version = ELM_GENLIST_ITEM_CLASS_VERSION;
+ pRepeat->st_Repeat_Itc->item_style = "1line";
+ pRepeat->st_Repeat_Itc->func.text_get =
+ (void *) __vp_repeat_genlist_text_get_cb;
+ pRepeat->st_Repeat_Itc->func.content_get =
+ (void *) __vp_repeat_genlist_content_get_cb;
+ pRepeat->st_Repeat_Itc->func.state_get = NULL;
+ pRepeat->st_Repeat_Itc->func.del = NULL;
+ pRepeat->nListCount = 0;
+
+ elm_genlist_item_append(pObj, pRepeat->st_Repeat_Itc,
+ (void *) VP_PLAY_STRING_REPEAT_OFF, NULL,
+ ELM_GENLIST_ITEM_NONE,
+ __vp_repeat_genlist_item_selected_cb,
+ pUserData);
+ pRepeat->nListCount++;
+ elm_genlist_item_append(pObj, pRepeat->st_Repeat_Itc,
+ (void *) VP_PLAY_STRING_REPEAT_ALL_OFF,
+ NULL, ELM_GENLIST_ITEM_NONE,
+ __vp_repeat_genlist_item_selected_cb,
+ pUserData);
+ pRepeat->nListCount++;
+ elm_genlist_item_append(pObj, pRepeat->st_Repeat_Itc,
+ (void *) VP_PLAY_STRING_REPEAT_ONE, NULL,
+ ELM_GENLIST_ITEM_NONE,
+ __vp_repeat_genlist_item_selected_cb,
+ pUserData);
+ pRepeat->nListCount++;
+ elm_genlist_item_append(pObj, pRepeat->st_Repeat_Itc,
+ (void *) VP_PLAY_STRING_REPEAT_ALL, NULL,
+ ELM_GENLIST_ITEM_NONE,
+ __vp_repeat_genlist_item_selected_cb,
+ pUserData);
+ pRepeat->nListCount++;
+ }
+
+ return TRUE;
+}
+
+/* external functions */
+/**
+ *
+ * @param pParent
+ * @param pMediaUrl
+ * @param pCloseCb
+ * @return
+ */
+repeat_handle vp_repeat_create(Evas_Object * pParent, char *pMediaUrl,
+ PopupCloseCbFunc pCloseCb)
+{
+ if (pParent == NULL) {
+ VideoLogError("pParent is NULL");
+ return NULL;
+ }
+
+ if (pMediaUrl == NULL) {
+ VideoLogError("pMediaUrl is NULL");
+ return NULL;
+ }
+
+ RepeatPopup *pRepeat = NULL;
+
+ pRepeat = calloc(1, sizeof(RepeatPopup));
+
+ if (pRepeat == NULL) {
+ VideoLogError("pRepeat alloc fail");
+ return NULL;
+ }
+
+ pRepeat->pParent = pParent;
+ pRepeat->pCloseCb = pCloseCb;
+
+ VP_STRDUP(pRepeat->pMediUrl, pMediaUrl);
+
+ pRepeat->pPopup =
+ vp_popup_create(pParent, POPUP_STYLE_MENU_LIST_NO_CANCEL_BTN,
+ VP_PLAY_STRING_POPUP_REPEAT_SETTING, NULL, 0.0,
+ NULL, __vp_repeat_popup_key_event_cb,
+ __vp_repeat_popup_mouse_event_cb,
+ (void *) pRepeat);
+
+ if (pRepeat->pPopup == NULL) {
+ VideoLogError("vp_popup_create fail");
+ _vp_repeat_destroy_handle(pRepeat);
+ return NULL;
+ }
+ pRepeat->pGenList = _vp_repeat_create_genlist(pRepeat->pPopup);
+ if (pRepeat->pGenList == NULL) {
+ VideoLogError("_vp_repeat_create_genlist fail");
+ _vp_repeat_destroy_handle(pRepeat);
+ return NULL;
+ }
+ evas_object_data_set(pRepeat->pGenList, VP_REPEAT_GENLIST_DATA_KEY,
+ (void *) pRepeat);
+
+ pRepeat->pRadio = elm_radio_add(pRepeat->pGenList);
+
+ if (!_vp_repeat_add_genlist_item(pRepeat->pGenList, (void *) pRepeat)) {
+ VideoLogError("_vp_repeat_add_genlist_item fail");
+ _vp_repeat_destroy_handle(pRepeat);
+ return NULL;
+ }
+ evas_object_smart_callback_add(pRepeat->pGenList, "realized",
+ __vp_repeat_genlist_realized, NULL);
+ evas_object_smart_callback_add(pRepeat->pParent, "rotation,changed",
+ __vp_repeat_popup_rotate_cb, pRepeat);
+
+ int nType = 0;
+
+ vp_play_preference_get_repeat_mode_key(&nType);
+
+ pRepeat->repeatMode = nType;
+
+ pRepeat->pBox = elm_box_add(pRepeat->pPopup);
+ vp_popup_set_popup_min_size(pRepeat->pParent, pRepeat->pBox,
+ pRepeat->nListCount, VIDEO_POPUP_DEFAULT);
+
+ elm_box_pack_end(pRepeat->pBox, pRepeat->pGenList);
+
+ elm_object_content_set(pRepeat->pPopup, pRepeat->pBox);
+
+ return pRepeat;
+}
+
+/**
+ *
+ * @param pRepeatHandle
+ */
+void vp_repeat_destroy(repeat_handle pRepeatHandle)
+{
+ if (pRepeatHandle == NULL) {
+ VideoLogError("pRepeatHandle is NULL");
+ return;
+ }
+
+ RepeatPopup *pRepeat = (RepeatPopup *) pRepeatHandle;
+
+ _vp_repeat_destroy_handle(pRepeat);
+
+}
+
+/**
+ *
+ * @param pRepeatHandle
+ * @return
+ */
+bool vp_repeat_realize(repeat_handle pRepeatHandle)
+{
+ if (pRepeatHandle == NULL) {
+ VideoLogError("pRepeatHandle is NULL");
+ return FALSE;
+ }
+
+ RepeatPopup *pRepeat = (RepeatPopup *) pRepeatHandle;
+
+ evas_object_show(pRepeat->pPopup);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pRepeatHandle
+ * @return
+ */
+bool vp_repeat_unrealize(repeat_handle pRepeatHandle)
+{
+ if (pRepeatHandle == NULL) {
+ VideoLogError("pRepeatHandle is NULL");
+ return FALSE;
+ }
+
+ RepeatPopup *pRepeat = (RepeatPopup *) pRepeatHandle;
+
+ evas_object_hide(pRepeat->pPopup);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pRepeatHandle
+ * @param pUserData
+ * @return
+ */
+bool vp_repeat_set_user_data(repeat_handle pRepeatHandle, void *pUserData)
+{
+ if (pRepeatHandle == NULL) {
+ VideoLogError("pRepeatHandle is NULL");
+ return FALSE;
+ }
+
+ RepeatPopup *pRepeat = (RepeatPopup *) pRepeatHandle;
+
+ pRepeat->pUserData = pUserData;
+
+ return TRUE;
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <glib.h>
+
+#include "vp-play-string-define.h"
+#include "vp-play-value-define.h"
+#include "vp-play-type-define.h"
+#include "vp-play-macro-define.h"
+
+#include "vp-setting.h"
+#include "vp-device-language.h"
+
+/* check temp */
+#include "vp-play-log.h"
+
+#define VP_SETTING_GENLIST_DATA_KEY "vp.setting.genlist"
+
+typedef struct _SettingPopup {
+ Evas_Object *pParent;
+ Evas_Object *pPopup;
+ Evas_Object *pButton;
+ Evas_Object *pBox;
+ Evas_Object *pGenList;
+
+ int nAppendItemCnt;
+ Elm_Genlist_Item_Class *st_Setting_Itc;
+
+
+ SettingInfo *pSettingInfo;
+
+ void *pUserData;
+ PopupCloseCbFunc pCloseCb;
+
+} SettingPopup;
+
+static void _vp_setting_destroy_handle(SettingPopup * pSetting);
+static void __vp_setting_genlist_realized(void *data, Evas_Object * obj,
+ void *event_info);
+static void __vp_setting_popup_rotate_cb(void *data, Evas_Object * obj,
+ void *event_info);
+
+
+/* callback functions */
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pPart
+ * @return
+ */
+static char *__vp_setting_genlist_text_get_cb(const void *pUserData,
+ Evas_Object * pObj,
+ const char *pPart)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return NULL;
+ }
+
+ char *szTxt = (char *) pUserData;
+
+ if (!strcmp(pPart, "elm.text.1")) {
+ return strdup(szTxt);
+ } else if (!strcmp(pPart, "elm.text.2")) {
+
+ SettingPopup *pSetting =
+ (SettingPopup *) evas_object_data_get(pObj,
+ VP_SETTING_GENLIST_DATA_KEY);
+ if (pSetting == NULL) {
+ return NULL;
+ }
+
+ SettingInfo *pSettingInfo = pSetting->pSettingInfo;
+ if (pSettingInfo == NULL) {
+ return NULL;
+ }
+
+ if (!strcmp(szTxt, VP_PLAY_STRING_POPUP_PLAY_SPEED)) {
+ return g_strdup_printf("%0.1f x", pSettingInfo->fSpeed);
+ } else if (!strcmp(szTxt, VP_PLAY_STRING_POPUP_SOUND_ALIVE)) {
+ if (pSettingInfo->nSoundAlive == VIDEO_SA_NONE) {
+ return strdup(VP_PLAY_STRING_SOUND_ALIVE_NORMAL);
+ } else if (pSettingInfo->nSoundAlive == VIDEO_SA_NORMAL) {
+ return strdup(VP_PLAY_STRING_SOUND_ALIVE_NORMAL);
+ } else if (pSettingInfo->nSoundAlive == VIDEO_SA_VOICE) {
+ return strdup(VP_PLAY_STRING_SOUND_ALIVE_VOICE);
+ } else if (pSettingInfo->nSoundAlive == VIDEO_SA_MOVIE) {
+ return strdup(VP_PLAY_STRING_SOUND_ALIVE_MOVIE);
+ } else if (pSettingInfo->nSoundAlive == VIDEO_SA_7_1_CH) {
+ return strdup(VP_PLAY_STRING_SOUND_ALIVE_71CH);
+ }
+ } else if (!strcmp(szTxt, VP_PLAY_STRING_POPUP_AUDIO_TRACK)) {
+ return strdup(pSettingInfo->szAudioTrack);
+ } else if (!strcmp(szTxt, VP_PLAY_STRING_POPUP_REPEAT_SETTING)) {
+ if (pSettingInfo->nRepeatMode == VIDEO_PLAY_REPEAT_OFF) {
+ return strdup(VP_PLAY_STRING_REPEAT_OFF);
+ } else if (pSettingInfo->nRepeatMode ==
+ VIDEO_PLAY_REPEAT_ALL_STOP) {
+ return strdup(VP_PLAY_STRING_REPEAT_ALL_OFF);
+ } else if (pSettingInfo->nRepeatMode == VIDEO_PLAY_REPEAT_ONE) {
+ return strdup(VP_PLAY_STRING_REPEAT_ONE);
+ } else if (pSettingInfo->nRepeatMode == VIDEO_PLAY_REPEAT_ALL) {
+ return strdup(VP_PLAY_STRING_REPEAT_ALL);
+ }
+ } else if (!strcmp(szTxt, VP_PLAY_STRING_POPUP_CAPTURE)) {
+ if (pSettingInfo->bCapture) {
+ return strdup(VP_PLAY_STRING_COM_ON);
+ } else {
+ return strdup(VP_PLAY_STRING_COM_OFF);
+ }
+ } else if (!strcmp(szTxt, VP_PLAY_STRING_POPUP_TAG_BUDDY)) {
+ if (pSettingInfo->bTagBuddy) {
+ return strdup(VP_PLAY_STRING_COM_ON);
+ } else {
+ return strdup(VP_PLAY_STRING_COM_OFF);
+ }
+ } else if (!strcmp(szTxt, VP_PLAY_STRING_POPUP_EDIT_WEATHER_TAG)) {
+ if (pSettingInfo->bEditWeatherTag) {
+ return strdup(VP_PLAY_STRING_COM_ON);
+ } else {
+ return strdup(VP_PLAY_STRING_COM_OFF);
+ }
+ }
+ }
+
+ return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __vp_setting_genlist_item_selected_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+ if (pEventInfo == NULL) {
+ VideoLogError("pEventInfo is NULL");
+ return;
+ }
+
+ Elm_Object_Item *pItem = (Elm_Object_Item *) pEventInfo;
+ char *szTxt = (char *) elm_object_item_data_get(pItem);
+
+ SettingPopup *pSetting = (SettingPopup *) pUserData;
+
+ Elm_Object_Item *item = (Elm_Object_Item *) pEventInfo;
+
+ if (item) {
+ elm_genlist_item_selected_set(item, EINA_FALSE);
+ }
+
+ if (szTxt == NULL) {
+ VideoLogError("szTxt is NULL");
+ return;
+ }
+ vp_setting_mode_t nMode = VP_SETTING_MODE_NONE;
+ bool bPause = FALSE;
+
+ if (!strcmp(szTxt, VP_PLAY_STRING_POPUP_PLAY_SPEED)) {
+ nMode = VP_SETTING_MODE_PLAY_SPEED;
+ } else if (!strcmp(szTxt, VP_PLAY_STRING_POPUP_SOUND_ALIVE)) {
+ nMode = VP_SETTING_MODE_SOUND_ALIVE;
+ } else if (!strcmp(szTxt, VP_PLAY_STRING_POPUP_AUDIO_TRACK)) {
+ nMode = VP_SETTING_MODE_AUDIO_TRACK;
+ } else if (!strcmp(szTxt, VP_PLAY_STRING_POPUP_REPEAT_SETTING)) {
+ nMode = VP_SETTING_MODE_REPEAT_MODE;
+ } else if (!strcmp(szTxt, VP_PLAY_STRING_POPUP_CAPTURE)) {
+ nMode = VP_SETTING_MODE_CAPTURE;
+ }
+
+ if (pSetting->pCloseCb) {
+ pSetting->pCloseCb((int) nMode, bPause,
+ (void *) pSetting->pUserData);
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_setting_popup_key_event_cb(void *pUserData,
+ Evas_Object * pObj,
+ void *pEventInfo)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+ SettingPopup *pSetting = (SettingPopup *) pUserData;
+
+ if (pSetting->pCloseCb) {
+ pSetting->pCloseCb(VP_SETTING_MODE_NONE, FALSE,
+ (void *) pSetting->pUserData);
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pEvas
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_setting_popup_mouse_event_cb(void *pUserData,
+ Evas * pEvas,
+ Evas_Object * pObj,
+ void *pEventInfo)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ if (pEventInfo == NULL) {
+ VideoLogError("pEventInfo is NULL");
+ return;
+ }
+
+ Evas_Event_Mouse_Up *ev = pEventInfo;
+
+ if (ev->button == 3) {
+ SettingPopup *pSetting = (SettingPopup *) pUserData;
+
+ if (pSetting->pCloseCb) {
+ pSetting->pCloseCb(VP_SETTING_MODE_NONE, FALSE,
+ (void *) pSetting->pUserData);
+ }
+ }
+}
+
+/* internal functions */
+/**
+ *
+ * @param pSetting
+ */
+static void _vp_setting_destroy_handle(SettingPopup * pSetting)
+{
+ if (pSetting == NULL) {
+ VideoLogError("pSetting is NULL");
+ return;
+ }
+ evas_object_smart_callback_del(pSetting->pGenList, "realized",
+ __vp_setting_genlist_realized);
+ evas_object_smart_callback_del(pSetting->pParent, "rotation,changed",
+ __vp_setting_popup_rotate_cb);
+
+
+ VP_EVAS_DEL(pSetting->pGenList);
+ VP_EVAS_DEL(pSetting->pButton);
+ VP_EVAS_DEL(pSetting->pBox);
+
+ VP_EVAS_DEL(pSetting->pPopup);
+
+ if (pSetting->st_Setting_Itc) {
+ elm_genlist_item_class_free(pSetting->st_Setting_Itc);
+ pSetting->st_Setting_Itc = NULL;
+ }
+
+ VP_FREE(pSetting->pSettingInfo->szAudioTrack);
+ VP_FREE(pSetting->pSettingInfo);
+
+ VP_FREE(pSetting);
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+static Evas_Object *_vp_setting_create_genlist(Evas_Object * pParent)
+{
+ if (pParent == NULL) {
+ VideoLogError("pParent is NULL");
+ return NULL;
+ }
+
+ Evas_Object *pObj = NULL;
+
+ pObj = elm_genlist_add(pParent);
+ evas_object_size_hint_weight_set(pObj, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(pObj, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_show(pObj);
+ return pObj;
+}
+
+/**
+ *
+ * @param pObj
+ * @param pUserData
+ * @return
+ */
+static bool _vp_setting_add_genlist_item(Evas_Object * pObj,
+ void *pUserData)
+{
+ if (pObj == NULL) {
+ VideoLogError("pObj is NULL");
+ return FALSE;
+ }
+
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return FALSE;
+ }
+
+ SettingPopup *pSetting = (SettingPopup *) pUserData;
+ bool bStreaming = FALSE;
+ bool bDrm = FALSE;
+ bool bExternalVideoMode = FALSE;
+ bool bShowEditWeather = FALSE;
+
+ if (pSetting->pSettingInfo) {
+ bStreaming = pSetting->pSettingInfo->bStreaming;
+ bDrm = pSetting->pSettingInfo->bDrm;
+ bExternalVideoMode = pSetting->pSettingInfo->bExternalMode;
+ bShowEditWeather = pSetting->pSettingInfo->bShowEditWeather;
+ }
+
+ if (pSetting->st_Setting_Itc) {
+ elm_genlist_item_class_free(pSetting->st_Setting_Itc);
+ pSetting->st_Setting_Itc = NULL;
+ }
+
+ pSetting->st_Setting_Itc = elm_genlist_item_class_new();
+
+ if (pSetting->st_Setting_Itc != NULL) {
+ pSetting->st_Setting_Itc->version = ELM_GENLIST_ITEM_CLASS_VERSION;
+ pSetting->st_Setting_Itc->item_style = "2text.2/popup";
+ pSetting->st_Setting_Itc->func.text_get =
+ (void *) __vp_setting_genlist_text_get_cb;
+ pSetting->st_Setting_Itc->func.content_get = NULL;
+ pSetting->st_Setting_Itc->func.state_get = NULL;
+ pSetting->st_Setting_Itc->func.del = NULL;
+ }
+
+ if (bStreaming == FALSE) {
+ elm_genlist_item_append(pObj, pSetting->st_Setting_Itc,
+ (void *) VP_PLAY_STRING_POPUP_PLAY_SPEED,
+ NULL, ELM_GENLIST_ITEM_NONE,
+ __vp_setting_genlist_item_selected_cb,
+ (void *) pSetting);
+ pSetting->nAppendItemCnt++;
+ }
+
+ elm_genlist_item_append(pObj, pSetting->st_Setting_Itc,
+ (void *) VP_PLAY_STRING_POPUP_SOUND_ALIVE,
+ NULL, ELM_GENLIST_ITEM_NONE,
+ __vp_setting_genlist_item_selected_cb,
+ (void *) pSetting);
+ pSetting->nAppendItemCnt++;
+
+
+ if (bStreaming == FALSE) {
+ elm_genlist_item_append(pObj, pSetting->st_Setting_Itc,
+ (void *) VP_PLAY_STRING_POPUP_AUDIO_TRACK,
+ NULL, ELM_GENLIST_ITEM_NONE,
+ __vp_setting_genlist_item_selected_cb,
+ (void *) pSetting);
+ pSetting->nAppendItemCnt++;
+ elm_genlist_item_append(pObj, pSetting->st_Setting_Itc, (void *)
+ VP_PLAY_STRING_POPUP_REPEAT_SETTING, NULL,
+ ELM_GENLIST_ITEM_NONE,
+ __vp_setting_genlist_item_selected_cb,
+ (void *) pSetting);
+ pSetting->nAppendItemCnt++;
+
+ if (bDrm == FALSE && bExternalVideoMode == FALSE) {
+ elm_genlist_item_append(pObj, pSetting->st_Setting_Itc,
+ (void *) VP_PLAY_STRING_POPUP_CAPTURE,
+ NULL, ELM_GENLIST_ITEM_NONE,
+ __vp_setting_genlist_item_selected_cb,
+ (void *) pSetting);
+ pSetting->nAppendItemCnt++;
+ }
+ }
+
+ if (bStreaming == FALSE && bDrm == FALSE) {
+ elm_genlist_item_append(pObj, pSetting->st_Setting_Itc,
+ (void *) VP_PLAY_STRING_POPUP_TAG_BUDDY,
+ NULL, ELM_GENLIST_ITEM_NONE,
+ __vp_setting_genlist_item_selected_cb,
+ (void *) pSetting);
+ pSetting->nAppendItemCnt++;
+ if (bShowEditWeather == TRUE) {
+ elm_genlist_item_append(pObj, pSetting->st_Setting_Itc,
+ (void *)
+ VP_PLAY_STRING_POPUP_EDIT_WEATHER_TAG,
+ NULL, ELM_GENLIST_ITEM_NONE,
+ __vp_setting_genlist_item_selected_cb,
+ (void *) pSetting);
+ pSetting->nAppendItemCnt++;
+ }
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __vp_setting_genlist_realized(void *data, Evas_Object * obj,
+ void *event_info)
+{
+ VP_GENLIST_HIDE_BOTTOMLINE(data, obj, event_info);
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __vp_setting_popup_rotate_cb(void *data, Evas_Object * obj,
+ void *event_info)
+{
+ SettingPopup *pSetting = (SettingPopup *) data;
+ if (!pSetting) {
+ VideoLogError("pSetting IS null");
+ return;
+ }
+ if (pSetting->nAppendItemCnt < VP_POPUP_MIN_ITEMS) {
+ return;
+ }
+ vp_popup_set_popup_min_size(pSetting->pParent, pSetting->pBox,
+ pSetting->nAppendItemCnt,
+ VIDEO_POPUP_2_TEXT);
+
+}
+
+/* external functions */
+/**
+ *
+ * @param pParent
+ * @param pSettingInfo
+ * @param pCloseCb
+ * @return
+ */
+setting_popup_handle vp_setting_create(Evas_Object * pParent,
+ SettingInfo * pSettingInfo,
+ PopupCloseCbFunc pCloseCb)
+{
+ if (pParent == NULL) {
+ VideoLogError("pParent is NULL");
+ return NULL;
+ }
+
+ if (pSettingInfo == NULL) {
+ VideoLogError("pSettingInfo is NULL");
+ return NULL;
+ }
+
+ SettingPopup *pSetting = NULL;
+
+ pSetting = calloc(1, sizeof(SettingPopup));
+
+ if (pSetting == NULL) {
+ VideoLogError("pSetting alloc fail");
+ return NULL;
+ }
+
+ pSetting->pSettingInfo = calloc(1, sizeof(SettingInfo));
+ if (pSetting->pSettingInfo == NULL) {
+ VideoLogError("pSettingInfo alloc fail");
+ _vp_setting_destroy_handle(pSetting);
+ return NULL;
+ }
+
+ pSetting->pSettingInfo->fSpeed = pSettingInfo->fSpeed;
+ pSetting->pSettingInfo->nSoundAlive = pSettingInfo->nSoundAlive;
+ VP_STRDUP(pSetting->pSettingInfo->szAudioTrack,
+ pSettingInfo->szAudioTrack);
+ pSetting->pSettingInfo->nRepeatMode = pSettingInfo->nRepeatMode;
+ pSetting->pSettingInfo->bCapture = pSettingInfo->bCapture;
+ pSetting->pSettingInfo->bTagBuddy = pSettingInfo->bTagBuddy;
+ pSetting->pSettingInfo->bEditWeatherTag =
+ pSettingInfo->bEditWeatherTag;
+ pSetting->pSettingInfo->bStreaming = pSettingInfo->bStreaming;
+ pSetting->pSettingInfo->bRepeat = pSettingInfo->bRepeat;
+ pSetting->pSettingInfo->bSelectSubtitle =
+ pSettingInfo->bSelectSubtitle;
+ pSetting->pSettingInfo->bDrm = pSettingInfo->bDrm;
+ pSetting->pSettingInfo->bExternalMode = pSettingInfo->bExternalMode;
+ pSetting->pSettingInfo->bShowEditWeather =
+ pSettingInfo->bShowEditWeather;
+
+ pSetting->pParent = pParent;
+ pSetting->pCloseCb = pCloseCb;
+
+ pSetting->pPopup =
+ vp_popup_create(pParent, POPUP_STYLE_MENU_LIST_NO_CANCEL_BTN,
+ VP_PLAY_STRING_SETTINGS, NULL, 0.0, NULL,
+ __vp_setting_popup_key_event_cb,
+ __vp_setting_popup_mouse_event_cb,
+ (void *) pSetting);
+ if (pSetting->pPopup == NULL) {
+ VideoLogError("vp_popup_create fail");
+ _vp_setting_destroy_handle(pSetting);
+ return NULL;
+ }
+
+ pSetting->pGenList = _vp_setting_create_genlist(pSetting->pPopup);
+ if (pSetting->pGenList == NULL) {
+ VideoLogError("_vp_setting_create_button fail");
+ _vp_setting_destroy_handle(pSetting);
+ return NULL;
+ }
+ evas_object_data_set(pSetting->pGenList, VP_SETTING_GENLIST_DATA_KEY,
+ (void *) pSetting);
+ vp_language_list_create();
+
+ if (!_vp_setting_add_genlist_item
+ (pSetting->pGenList, (void *) pSetting)) {
+ VideoLogError("_vp_setting_add_genlist_item fail");
+ _vp_setting_destroy_handle(pSetting);
+ return NULL;
+ }
+ evas_object_smart_callback_add(pSetting->pGenList, "realized",
+ __vp_setting_genlist_realized, NULL);
+ evas_object_smart_callback_add(pSetting->pParent, "rotation,changed",
+ __vp_setting_popup_rotate_cb, pSetting);
+
+ pSetting->pBox = elm_box_add(pSetting->pPopup);
+ vp_popup_set_popup_min_size(pSetting->pParent, pSetting->pBox,
+ pSetting->nAppendItemCnt,
+ VIDEO_POPUP_2_TEXT);
+
+ elm_box_pack_end(pSetting->pBox, pSetting->pGenList);
+
+ elm_object_content_set(pSetting->pPopup, pSetting->pBox);
+
+ return pSetting;
+}
+
+/**
+ *
+ * @param pSettingHandle
+ */
+void vp_setting_destroy(setting_popup_handle pSettingHandle)
+{
+ if (pSettingHandle == NULL) {
+ VideoLogError("pSettingHandle is NULL");
+ return;
+ }
+
+ SettingPopup *pSetting = (SettingPopup *) pSettingHandle;
+
+ _vp_setting_destroy_handle(pSetting);
+
+}
+
+/**
+ *
+ * @param pSettingHandle
+ * @return
+ */
+bool vp_setting_realize(setting_popup_handle pSettingHandle)
+{
+ if (pSettingHandle == NULL) {
+ VideoLogError("pSettingHandle is NULL");
+ return FALSE;
+ }
+
+ SettingPopup *pSetting = (SettingPopup *) pSettingHandle;
+
+ evas_object_show(pSetting->pPopup);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pSettingHandle
+ * @return
+ */
+bool vp_setting_unrealize(setting_popup_handle pSettingHandle)
+{
+ if (pSettingHandle == NULL) {
+ VideoLogError("pSettingHandle is NULL");
+ return FALSE;
+ }
+
+ SettingPopup *pSetting = (SettingPopup *) pSettingHandle;
+
+
+ evas_object_hide(pSetting->pPopup);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pSettingHandle
+ * @param pUserData
+ * @return
+ */
+bool vp_setting_set_user_data(setting_popup_handle pSettingHandle,
+ void *pUserData)
+{
+ if (pSettingHandle == NULL) {
+ VideoLogError("pSettingHandle is NULL");
+ return FALSE;
+ }
+
+ SettingPopup *pSetting = (SettingPopup *) pSettingHandle;
+
+ pSetting->pUserData = pUserData;
+
+ return TRUE;
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "vp-play-string-define.h"
+#include "vp-play-value-define.h"
+#include "vp-play-macro-define.h"
+
+#include "vp-share.h"
+
+
+/* check temp */
+#include "vp-play-log.h"
+
+
+typedef struct _SharePopup {
+ Evas_Object *pParent;
+ Evas_Object *pPopup;
+ Evas_Object *pButton;
+ Evas_Object *pBox;
+ Evas_Object *pGenList;
+
+ char *pMediUrl;
+ int nListCount;
+
+ void *pUserData;
+ PopupCloseCbFunc pCloseCb;
+
+} SharePopup;
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __vp_share_popup_rotate_cb(void *data, Evas_Object * obj,
+ void *event_info)
+{
+ SharePopup *pShare = (SharePopup *) data;
+ if (!pShare) {
+ VideoLogError("pShare IS null");
+ return;
+ }
+ if (pShare->nListCount < VP_POPUP_MIN_ITEMS) {
+ return;
+ }
+ vp_popup_set_popup_min_size(pShare->pParent, pShare->pBox,
+ pShare->nListCount, VIDEO_POPUP_DEFAULT);
+
+}
+
+/**
+ *
+ * @param pShare
+ */
+static void _vp_share_destroy_handle(SharePopup * pShare)
+{
+ if (pShare == NULL) {
+ VideoLogError("pShare is NULL");
+ return;
+ }
+ evas_object_smart_callback_del(pShare->pParent, "rotation,changed",
+ __vp_share_popup_rotate_cb);
+
+ VP_EVAS_DEL(pShare->pGenList);
+ VP_EVAS_DEL(pShare->pButton);
+ VP_EVAS_DEL(pShare->pBox);
+
+ VP_EVAS_DEL(pShare->pPopup);
+
+ VP_FREE(pShare->pMediUrl);
+
+ VP_FREE(pShare);
+}
+
+/* callback functions */
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pPart
+ * @return
+ */
+static char *__vp_share_genlist_text_get_cb(const void *pUserData,
+ Evas_Object * pObj,
+ const char *pPart)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return NULL;
+ }
+
+ char *szTxt = (char *) pUserData;
+
+ if (!strcmp(pPart, "elm.text")) {
+ return strdup(szTxt);
+ }
+
+ return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __vp_share_genlist_item_selected_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+ if (pEventInfo == NULL) {
+ VideoLogError("pEventInfo is NULL");
+ return;
+ }
+
+ Elm_Object_Item *pItem = (Elm_Object_Item *) pEventInfo;
+ char *szTxt = (char *) elm_object_item_data_get(pItem);
+ SharePopup *pShare = (SharePopup *) pUserData;
+
+ if (szTxt == NULL) {
+ VideoLogError("szTxt is NULL");
+ return;
+ }
+
+ video_share_type_t nType = VP_SHARE_NONE;
+
+ if (!strcmp(szTxt, VP_PLAY_STRING_SHARE_MESSAGE)) {
+ VideoLogWarning
+ ("SELECT SHARE ITEM (VP_PLAY_STRING_SHARE_MESSAGE)");
+ nType = VP_SHARE_MESSAGE;
+ } else if (!strcmp(szTxt, VP_PLAY_STRING_SHARE_EMAIL)) {
+ VideoLogWarning("SELECT SHARE ITEM (VP_PLAY_STRING_SHARE_EMAIL)");
+ nType = VP_SHARE_EMAIL;
+ } else if (!strcmp(szTxt, VP_PLAY_STRING_SHARE_BLUETOOTH)) {
+ VideoLogWarning
+ ("SELECT SHARE ITEM (VP_PLAY_STRING_SHARE_BLUETOOTH)");
+ nType = VP_SHARE_BLUETOOTH;
+ } else if (!strcmp(szTxt, VP_PLAY_STRING_SHARE_FTM)) {
+ VideoLogWarning("SELECT SHARE ITEM (VP_PLAY_STRING_SHARE_FTM)");
+ nType = VP_SHARE_FTM;
+ } else if (!strcmp(szTxt, VP_PLAY_STRING_SHARE_FACEBOOK)) {
+ VideoLogWarning
+ ("SELECT SHARE ITEM (VP_PLAY_STRING_SHARE_FACEBOOK)");
+ nType = VP_SHARE_FACEBOOK;
+ } else if (!strcmp(szTxt, VP_PLAY_STRING_SHARE_YOUTUBE)) {
+ VideoLogWarning
+ ("SELECT SHARE ITEM (VP_PLAY_STRING_SHARE_YOUTUBE)");
+ nType = VP_SHARE_YOUTUBE;
+ } else if (!strcmp(szTxt, VP_PLAY_STRING_SHARE_NFC)) {
+ VideoLogWarning("SELECT SHARE ITEM (VP_PLAY_STRING_SHARE_NFC)");
+ nType = VP_SHARE_NFC;
+ } else if (!strcmp(szTxt, VP_PLAY_STRING_SHARE_FILE_TRANSFER)) {
+ VideoLogWarning
+ ("SELECT SHARE ITEM (VP_PLAY_STRING_SHARE_FILE_TRANSFER)");
+ nType = VP_SHARE_FILE_TRANSFER;
+ } else if (!strcmp(szTxt, VP_PLAY_STRING_SHARE_DROPBOX)) {
+ VideoLogWarning
+ ("SELECT SHARE ITEM (VP_PLAY_STRING_SHARE_DROPBOX)");
+ nType = VP_SHARE_DROP_BOX;
+ }
+
+ if (pShare->pCloseCb) {
+ pShare->pCloseCb((int) nType, TRUE, (void *) pShare->pUserData);
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_share_close_btn_cb(void *pUserData, Evas_Object * pObj,
+ void *pEventInfo)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pShareHandle is NULL");
+ return;
+ }
+
+ SharePopup *pShare = (SharePopup *) pUserData;
+
+ if (pShare->pCloseCb) {
+ pShare->pCloseCb(VP_SHARE_NONE, FALSE, (void *) pShare->pUserData);
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_share_popup_key_event_cb(void *pUserData,
+ Evas_Object * pObj,
+ void *pEventInfo)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ SharePopup *pShare = (SharePopup *) pUserData;
+
+ if (pShare->pCloseCb) {
+ pShare->pCloseCb(VP_SHARE_NONE, FALSE, (void *) pShare->pUserData);
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pEvas
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_share_popup_mouse_event_cb(void *pUserData, Evas * pEvas,
+ Evas_Object * pObj,
+ void *pEventInfo)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ if (pEventInfo == NULL) {
+ VideoLogError("pEventInfo is NULL");
+ return;
+ }
+
+ Evas_Event_Mouse_Up *ev = pEventInfo;
+
+ if (ev->button == 3) {
+ SharePopup *pShare = (SharePopup *) pUserData;
+
+ if (pShare->pCloseCb) {
+ pShare->pCloseCb(VP_SHARE_NONE, FALSE,
+ (void *) pShare->pUserData);
+ }
+ }
+}
+
+/* internal functions */
+/**
+ *
+ * @param pParent
+ * @param pUserData
+ * @return
+ */
+static Evas_Object *_vp_share_create_button(Evas_Object * pParent,
+ void *pUserData)
+{
+ if (pParent == NULL) {
+ VideoLogError("pParent is NULL");
+ return NULL;
+ }
+
+ Evas_Object *pObj = NULL;
+ pObj = elm_button_add(pParent);
+ elm_object_style_set(pObj, "popup_button/default");
+ elm_object_domain_translatable_text_set(pObj, VP_SYS_STR_PREFIX,
+ VP_PLAY_STRING_COM_CLOSE_IDS);
+ elm_object_part_content_set(pParent, "button1", pObj);
+ evas_object_smart_callback_add(pObj, "clicked",
+ __vp_share_close_btn_cb, pUserData);
+ evas_object_show(pObj);
+
+ return pObj;
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+static Evas_Object *_vp_share_create_genlist(Evas_Object * pParent)
+{
+ if (pParent == NULL) {
+ VideoLogError("pParent is NULL");
+ return NULL;
+ }
+
+ Evas_Object *pObj = NULL;
+
+ pObj = elm_genlist_add(pParent);
+ evas_object_size_hint_weight_set(pObj, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(pObj, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_show(pObj);
+ return pObj;
+}
+
+/**
+ *
+ * @param pObj
+ * @param pUserData
+ * @return
+ */
+static bool _vp_share_add_genlist_item(Evas_Object * pObj, void *pUserData)
+{
+ if (!pObj || !pUserData) {
+ VideoLogError("pObj is NULL");
+ return FALSE;
+ }
+ SharePopup *pShare = (SharePopup *) pUserData;
+
+ Elm_Genlist_Item_Class *st_Share_Itc = NULL;
+
+ st_Share_Itc = elm_genlist_item_class_new();
+
+ if (st_Share_Itc != NULL) {
+ st_Share_Itc->version = ELM_GENLIST_ITEM_CLASS_VERSION;
+ st_Share_Itc->item_style = "1text/popup";
+ st_Share_Itc->func.text_get =
+ (void *) __vp_share_genlist_text_get_cb;
+ st_Share_Itc->func.content_get = NULL;
+ st_Share_Itc->func.state_get = NULL;
+ st_Share_Itc->func.del = NULL;
+ pShare->nListCount = 0;
+
+ elm_genlist_item_append(pObj, st_Share_Itc,
+ (void *) VP_PLAY_STRING_SHARE_MESSAGE,
+ NULL, ELM_GENLIST_ITEM_NONE,
+ __vp_share_genlist_item_selected_cb,
+ pUserData);
+ pShare->nListCount++;
+ elm_genlist_item_append(pObj, st_Share_Itc,
+ (void *) VP_PLAY_STRING_SHARE_EMAIL, NULL,
+ ELM_GENLIST_ITEM_NONE,
+ __vp_share_genlist_item_selected_cb,
+ pUserData);
+ pShare->nListCount++;
+ elm_genlist_item_append(pObj, st_Share_Itc,
+ (void *) VP_PLAY_STRING_SHARE_FTM, NULL,
+ ELM_GENLIST_ITEM_NONE,
+ __vp_share_genlist_item_selected_cb,
+ pUserData);
+ pShare->nListCount++;
+ elm_genlist_item_append(pObj, st_Share_Itc,
+ (void *) VP_PLAY_STRING_SHARE_BLUETOOTH,
+ NULL, ELM_GENLIST_ITEM_NONE,
+ __vp_share_genlist_item_selected_cb,
+ pUserData);
+ pShare->nListCount++;
+ elm_genlist_item_append(pObj, st_Share_Itc,
+ (void *) VP_PLAY_STRING_SHARE_FACEBOOK,
+ NULL, ELM_GENLIST_ITEM_NONE,
+ __vp_share_genlist_item_selected_cb,
+ pUserData);
+ elm_genlist_item_class_free(st_Share_Itc);
+ }
+
+ return TRUE;
+}
+
+/* external functions */
+/**
+ *
+ * @param pParent
+ * @param pMediaUrl
+ * @param pCloseCb
+ * @return
+ */
+share_handle vp_share_create(Evas_Object * pParent, char *pMediaUrl,
+ PopupCloseCbFunc pCloseCb)
+{
+ if (pParent == NULL) {
+ VideoLogError("pParent is NULL");
+ return NULL;
+ }
+
+ if (pMediaUrl == NULL) {
+ VideoLogError("pMediaUrl is NULL");
+ return NULL;
+ }
+
+ SharePopup *pShare = NULL;
+
+ pShare = calloc(1, sizeof(SharePopup));
+
+ if (pShare == NULL) {
+ VideoLogError("pShare alloc fail");
+ return NULL;
+ }
+
+ pShare->pParent = pParent;
+ pShare->pCloseCb = pCloseCb;
+
+ VP_STRDUP(pShare->pMediUrl, pMediaUrl);
+
+ pShare->pPopup =
+ vp_popup_create(pParent, POPUP_STYLE_MENU_LIST_WITH_CANCEL_BTN,
+ VP_PLAY_STRING_POPUP_SHARE, NULL, 0.0, NULL,
+ __vp_share_popup_key_event_cb,
+ __vp_share_popup_mouse_event_cb, (void *) pShare);
+ if (pShare->pPopup == NULL) {
+ VideoLogError("_vp_share_create_popup fail");
+ _vp_share_destroy_handle(pShare);
+ return NULL;
+ }
+
+ pShare->pButton =
+ _vp_share_create_button(pShare->pPopup, (void *) pShare);
+ if (pShare->pButton == NULL) {
+ VideoLogError("_vp_share_create_button fail");
+ _vp_share_destroy_handle(pShare);
+ return NULL;
+ }
+
+ pShare->pGenList = _vp_share_create_genlist(pShare->pPopup);
+ if (pShare->pGenList == NULL) {
+ VideoLogError("_vp_share_create_genlist fail");
+ _vp_share_destroy_handle(pShare);
+ return NULL;
+ }
+ if (!_vp_share_add_genlist_item(pShare->pGenList, (void *) pShare)) {
+ VideoLogError("_vp_share_add_genlist_item fail");
+ _vp_share_destroy_handle(pShare);
+ return NULL;
+ }
+ evas_object_smart_callback_add(pShare->pParent, "rotation,changed",
+ __vp_share_popup_rotate_cb, pShare);
+
+ pShare->pBox = elm_box_add(pShare->pPopup);
+
+ vp_popup_set_popup_min_size(pShare->pParent, pShare->pBox,
+ pShare->nListCount, VIDEO_POPUP_DEFAULT);
+
+ elm_box_pack_end(pShare->pBox, pShare->pGenList);
+
+ elm_object_content_set(pShare->pPopup, pShare->pBox);
+
+ return pShare;
+}
+
+/**
+ *
+ * @param pShareHandle
+ */
+void vp_share_destroy(share_handle pShareHandle)
+{
+ if (pShareHandle == NULL) {
+ VideoLogError("pShareHandle is NULL");
+ return;
+ }
+
+ SharePopup *pShare = (SharePopup *) pShareHandle;
+
+ _vp_share_destroy_handle(pShare);
+
+}
+
+/**
+ *
+ * @param pShareHandle
+ * @return
+ */
+bool vp_share_realize(share_handle pShareHandle)
+{
+ if (pShareHandle == NULL) {
+ VideoLogError("pShareHandle is NULL");
+ return FALSE;
+ }
+
+ SharePopup *pShare = (SharePopup *) pShareHandle;
+
+ evas_object_show(pShare->pPopup);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pShareHandle
+ * @return
+ */
+bool vp_share_unrealize(share_handle pShareHandle)
+{
+ if (pShareHandle == NULL) {
+ VideoLogError("pShareHandle is NULL");
+ return FALSE;
+ }
+
+ SharePopup *pShare = (SharePopup *) pShareHandle;
+
+ evas_object_hide(pShare->pPopup);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pShareHandle
+ * @param pUserData
+ * @return
+ */
+bool vp_share_set_user_data(share_handle pShareHandle, void *pUserData)
+{
+ if (pShareHandle == NULL) {
+ VideoLogError("pShareHandle is NULL");
+ return FALSE;
+ }
+
+ SharePopup *pShare = (SharePopup *) pShareHandle;
+
+ pShare->pUserData = pUserData;
+
+ return TRUE;
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "vp-play-string-define.h"
+#include "vp-play-value-define.h"
+#include "vp-play-type-define.h"
+#include "vp-play-macro-define.h"
+
+#include "vp-sound-alive.h"
+#include "vp-sound.h"
+
+/* check temp */
+#include "vp-play-log.h"
+
+#define VP_SOUND_ALIVE_GENLIST_DATA_KEY "vp.sound.alive.genlist"
+
+typedef struct _SoundAlivePopup {
+ Evas_Object *pParent;
+ Evas_Object *pPopup;
+ Evas_Object *pRadio;
+ Evas_Object *pButton;
+ Evas_Object *pBox;
+ Evas_Object *pGenList;
+ Elm_Genlist_Item_Class *st_Sa_Itc;
+
+ char *pMediUrl;
+ int nListCount;
+
+ void *pUserData;
+ PopupCloseCbFunc pCloseCb;
+ video_sound_alive_t soundAliveType;
+} SoundAlivePopup;
+
+static void __vp_sound_alive_genlist_item_selected_cb(void *pUserData,
+ Evas_Object *
+ pObject,
+ void *pEventInfo);
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __vp_sound_alive_genlist_realized(void *data,
+ Evas_Object * obj,
+ void *event_info)
+{
+ VP_GENLIST_HIDE_BOTTOMLINE(data, obj, event_info);
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __vp_sound_alive_popup_rotate_cb(void *data,
+ Evas_Object * obj,
+ void *event_info)
+{
+ SoundAlivePopup *pSoundAlive = (SoundAlivePopup *) data;
+ if (!pSoundAlive) {
+ VideoLogError("pSoundAlive IS null");
+ return;
+ }
+ if (pSoundAlive->nListCount < VP_POPUP_MIN_ITEMS) {
+ return;
+ }
+ vp_popup_set_popup_min_size(pSoundAlive->pParent, pSoundAlive->pBox,
+ pSoundAlive->nListCount,
+ VIDEO_POPUP_DEFAULT);
+
+}
+
+/**
+ *
+ * @param pSoundAlive
+ */
+static void _vp_sound_alive_destroy_handle(SoundAlivePopup * pSoundAlive)
+{
+ if (pSoundAlive == NULL) {
+ VideoLogError("pSoundAlive is NULL");
+ return;
+ }
+
+ evas_object_smart_callback_del(pSoundAlive->pParent,
+ "rotation,changed",
+ __vp_sound_alive_popup_rotate_cb);
+ evas_object_smart_callback_del(pSoundAlive->pGenList, "realized",
+ __vp_sound_alive_genlist_realized);
+
+ VP_EVAS_DEL(pSoundAlive->pRadio);
+ VP_EVAS_DEL(pSoundAlive->pGenList);
+ VP_EVAS_DEL(pSoundAlive->pButton);
+ VP_EVAS_DEL(pSoundAlive->pBox);
+
+ if (pSoundAlive->st_Sa_Itc) {
+ elm_genlist_item_class_free(pSoundAlive->st_Sa_Itc);
+ pSoundAlive->st_Sa_Itc = NULL;
+ }
+
+
+ VP_EVAS_DEL(pSoundAlive->pPopup);
+
+ VP_FREE(pSoundAlive->pMediUrl);
+
+ VP_FREE(pSoundAlive);
+}
+
+/* callback functions */
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pPart
+ * @return
+ */
+static char *__vp_sound_alive_genlist_text_get_cb(const void *pUserData,
+ Evas_Object * pObj,
+ const char *pPart)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return NULL;
+ }
+
+ char *szTxt = (char *) pUserData;
+
+ if (!strcmp(pPart, "elm.text.main.left")) {
+ return strdup(szTxt);
+ }
+
+ return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pPart
+ * @return
+ */
+static Evas_Object *__vp_sound_alive_genlist_content_get_cb(const void
+ *pUserData,
+ Evas_Object *
+ pObj,
+ const char
+ *pPart)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return NULL;
+ }
+
+ char *szTxt = (char *) pUserData;
+
+ if (!strcmp(pPart, "elm.icon.right")) {
+ Evas_Object *pRadioObj = NULL;
+
+ SoundAlivePopup *pSoundAlive =
+ (SoundAlivePopup *) evas_object_data_get(pObj,
+ VP_SOUND_ALIVE_GENLIST_DATA_KEY);
+ if (pSoundAlive == NULL) {
+ VideoLogWarning("evas_object_data_get is fail");
+ return NULL;
+ }
+
+ video_sound_alive_t nType = VIDEO_SA_NONE;
+
+ if (!strcmp(szTxt, VP_PLAY_STRING_SOUND_ALIVE_NORMAL)) {
+ nType = VIDEO_SA_NORMAL;
+ } else if (!strcmp(szTxt, VP_PLAY_STRING_SOUND_ALIVE_VOICE)) {
+ nType = VIDEO_SA_VOICE;
+ } else if (!strcmp(szTxt, VP_PLAY_STRING_SOUND_ALIVE_MOVIE)) {
+ nType = VIDEO_SA_MOVIE;
+ } else if (!strcmp(szTxt, VP_PLAY_STRING_SOUND_ALIVE_71CH)) {
+ nType = VIDEO_SA_7_1_CH;
+ }
+
+ pRadioObj = elm_radio_add(pObj);
+ elm_radio_state_value_set(pRadioObj, nType);
+ elm_radio_group_add(pRadioObj, pSoundAlive->pRadio);
+ elm_radio_value_set(pSoundAlive->pRadio,
+ pSoundAlive->soundAliveType);
+ evas_object_smart_callback_add(pRadioObj, "changed",
+ __vp_sound_alive_genlist_item_selected_cb,
+ pSoundAlive);
+ evas_object_show(pRadioObj);
+
+ return pRadioObj;
+ }
+
+ return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __vp_sound_alive_genlist_item_selected_cb(void *pUserData,
+ Evas_Object *
+ pObject,
+ void *pEventInfo)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+ if (pEventInfo == NULL) {
+ VideoLogError("pEventInfo is NULL");
+ return;
+ }
+
+ Elm_Object_Item *pItem = (Elm_Object_Item *) pEventInfo;
+ Elm_Object_Item *pSelectedItem =
+ elm_genlist_selected_item_get(pObject);
+ if (pSelectedItem) {
+ elm_genlist_item_selected_set(pSelectedItem, EINA_FALSE);
+ }
+ char *szTxt = (char *) elm_object_item_data_get(pItem);
+ SoundAlivePopup *pSoundAlive = (SoundAlivePopup *) pUserData;
+
+ if (szTxt == NULL) {
+ VideoLogError("szTxt is NULL");
+ return;
+ }
+
+ video_sound_alive_t nType = VIDEO_SA_NONE;
+
+ if (!strcmp(szTxt, VP_PLAY_STRING_SOUND_ALIVE_NORMAL)) {
+ VideoLogWarning
+ ("SELECT SOUND ALIVE ITEM (VP_PLAY_STRING_SOUND_ALIVE_NORMAL)");
+ nType = VIDEO_SA_NORMAL;
+ } else if (!strcmp(szTxt, VP_PLAY_STRING_SOUND_ALIVE_VOICE)) {
+ VideoLogWarning
+ ("SELECT SOUND ALIVE ITEM (VP_PLAY_STRING_SOUND_ALIVE_VOICE)");
+ nType = VIDEO_SA_VOICE;
+ } else if (!strcmp(szTxt, VP_PLAY_STRING_SOUND_ALIVE_MOVIE)) {
+ VideoLogWarning
+ ("SELECT SOUND ALIVE ITEM (VP_PLAY_STRING_SOUND_ALIVE_MOVIE)");
+ nType = VIDEO_SA_MOVIE;
+ } else if (!strcmp(szTxt, VP_PLAY_STRING_SOUND_ALIVE_71CH)) {
+ VideoLogWarning
+ ("SELECT SOUND ALIVE ITEM (VP_PLAY_STRING_SOUND_ALIVE_71CH)");
+ nType = VIDEO_SA_7_1_CH;
+ }
+
+ pSoundAlive->soundAliveType = nType;
+ if (pSoundAlive->pCloseCb) {
+ pSoundAlive->pCloseCb((int) nType, FALSE,
+ (void *) pSoundAlive->pUserData);
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_sound_alive_popup_key_event_cb(void *pUserData,
+ Evas_Object * pObj,
+ void *pEventInfo)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ SoundAlivePopup *pSoundAlive = (SoundAlivePopup *) pUserData;
+
+ if (pSoundAlive->pCloseCb) {
+ pSoundAlive->pCloseCb(VIDEO_SA_NONE, FALSE,
+ (void *) pSoundAlive->pUserData);
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pEvas
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_sound_alive_popup_mouse_event_cb(void *pUserData,
+ Evas * pEvas,
+ Evas_Object * pObj,
+ void *pEventInfo)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ if (pEventInfo == NULL) {
+ VideoLogError("pEventInfo is NULL");
+ return;
+ }
+
+ Evas_Event_Mouse_Up *ev = pEventInfo;
+
+ if (ev->button == 3) {
+ SoundAlivePopup *pSoundAlive = (SoundAlivePopup *) pUserData;
+
+ if (pSoundAlive->pCloseCb) {
+ pSoundAlive->pCloseCb(VIDEO_SA_NONE, FALSE,
+ (void *) pSoundAlive->pUserData);
+ }
+ }
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+static Evas_Object *_vp_sound_alive_create_genlist(Evas_Object * pParent)
+{
+ if (pParent == NULL) {
+ VideoLogError("pParent is NULL");
+ return NULL;
+ }
+
+ Evas_Object *pObj = NULL;
+
+ pObj = elm_genlist_add(pParent);
+ evas_object_size_hint_weight_set(pObj, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(pObj, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_show(pObj);
+ return pObj;
+}
+
+/**
+ *
+ * @param pObj
+ * @param pUserData
+ * @return
+ */
+static bool _vp_sound_alive_add_genlist_item(Evas_Object * pObj,
+ void *pUserData)
+{
+ if (pObj == NULL) {
+ VideoLogError("pObj is NULL");
+ return FALSE;
+ }
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return FALSE;
+ }
+
+ SoundAlivePopup *pSoundAlive = (SoundAlivePopup *) pUserData;
+
+ if (pSoundAlive->st_Sa_Itc) {
+ elm_genlist_item_class_free(pSoundAlive->st_Sa_Itc);
+ pSoundAlive->st_Sa_Itc = NULL;
+ }
+
+ pSoundAlive->st_Sa_Itc = elm_genlist_item_class_new();
+
+ if (pSoundAlive->st_Sa_Itc != NULL) {
+ pSoundAlive->st_Sa_Itc->version = ELM_GENLIST_ITEM_CLASS_VERSION;
+ pSoundAlive->st_Sa_Itc->item_style = "1line";
+ pSoundAlive->st_Sa_Itc->func.text_get =
+ (void *) __vp_sound_alive_genlist_text_get_cb;
+ pSoundAlive->st_Sa_Itc->func.content_get =
+ (void *) __vp_sound_alive_genlist_content_get_cb;
+ pSoundAlive->st_Sa_Itc->func.state_get = NULL;
+ pSoundAlive->st_Sa_Itc->func.del = NULL;
+ }
+
+ pSoundAlive->nListCount = 0;
+
+ elm_genlist_item_append(pObj, pSoundAlive->st_Sa_Itc,
+ (void *) VP_PLAY_STRING_SOUND_ALIVE_NORMAL,
+ NULL, ELM_GENLIST_ITEM_NONE,
+ __vp_sound_alive_genlist_item_selected_cb,
+ pUserData);
+ pSoundAlive->nListCount++;
+
+ video_sound_device_type_t nSoundDevType = VP_SOUND_DEVICE_NONE;
+ vp_sound_get_active_device(&nSoundDevType);
+ if (nSoundDevType == VP_SOUND_DEVICE_SPEAKER) {
+ elm_genlist_item_append(pObj, pSoundAlive->st_Sa_Itc,
+ (void *) VP_PLAY_STRING_SOUND_ALIVE_VOICE,
+ NULL, ELM_GENLIST_ITEM_NONE,
+ __vp_sound_alive_genlist_item_selected_cb,
+ pUserData);
+ pSoundAlive->nListCount++;
+ } else if (nSoundDevType == VP_SOUND_DEVICE_HDMI
+ || nSoundDevType == VP_SOUND_DEVICE_BLUETOOTH) {
+ } else {
+ elm_genlist_item_append(pObj, pSoundAlive->st_Sa_Itc,
+ (void *) VP_PLAY_STRING_SOUND_ALIVE_VOICE,
+ NULL, ELM_GENLIST_ITEM_NONE,
+ __vp_sound_alive_genlist_item_selected_cb,
+ pUserData);
+ pSoundAlive->nListCount++;
+ elm_genlist_item_append(pObj, pSoundAlive->st_Sa_Itc,
+ (void *) VP_PLAY_STRING_SOUND_ALIVE_MOVIE,
+ NULL, ELM_GENLIST_ITEM_NONE,
+ __vp_sound_alive_genlist_item_selected_cb,
+ pUserData);
+ pSoundAlive->nListCount++;
+ elm_genlist_item_append(pObj, pSoundAlive->st_Sa_Itc,
+ (void *) VP_PLAY_STRING_SOUND_ALIVE_71CH,
+ NULL, ELM_GENLIST_ITEM_NONE,
+ __vp_sound_alive_genlist_item_selected_cb,
+ pUserData);
+ pSoundAlive->nListCount++;
+ }
+
+ return TRUE;
+}
+
+/* external functions */
+/**
+ *
+ * @param pParent
+ * @param pMediaUrl
+ * @param pCloseCb
+ * @param nType
+ * @return
+ */
+sound_alive_handle vp_sound_alive_create(Evas_Object * pParent,
+ char *pMediaUrl,
+ PopupCloseCbFunc pCloseCb,
+ video_sound_alive_t nType)
+{
+ if (pParent == NULL) {
+ VideoLogError("pParent is NULL");
+ return NULL;
+ }
+
+ if (pMediaUrl == NULL) {
+ VideoLogError("pMediaUrl is NULL");
+ return NULL;
+ }
+
+ SoundAlivePopup *pSoundAlive = NULL;
+
+ pSoundAlive = calloc(1, sizeof(SoundAlivePopup));
+
+ if (pSoundAlive == NULL) {
+ VideoLogError("pSoundAlive alloc fail");
+ return NULL;
+ }
+
+ pSoundAlive->pParent = pParent;
+ pSoundAlive->pCloseCb = pCloseCb;
+
+ VP_STRDUP(pSoundAlive->pMediUrl, pMediaUrl);
+
+ pSoundAlive->pPopup =
+ vp_popup_create(pParent, POPUP_STYLE_MENU_LIST_NO_CANCEL_BTN,
+ VP_PLAY_STRING_POPUP_SOUND_ALIVE, NULL, 0.0, NULL,
+ __vp_sound_alive_popup_key_event_cb,
+ __vp_sound_alive_popup_mouse_event_cb,
+ (void *) pSoundAlive);
+ if (pSoundAlive->pPopup == NULL) {
+ VideoLogError("vp_popup_create fail");
+ _vp_sound_alive_destroy_handle(pSoundAlive);
+ return NULL;
+ }
+
+ pSoundAlive->pGenList =
+ _vp_sound_alive_create_genlist(pSoundAlive->pPopup);
+ if (pSoundAlive->pGenList == NULL) {
+ VideoLogError("_vp_sound_alive_create_genlist fail");
+ _vp_sound_alive_destroy_handle(pSoundAlive);
+ return NULL;
+ }
+ evas_object_data_set(pSoundAlive->pGenList,
+ VP_SOUND_ALIVE_GENLIST_DATA_KEY,
+ (void *) pSoundAlive);
+ evas_object_smart_callback_add(pSoundAlive->pGenList, "realized",
+ __vp_sound_alive_genlist_realized,
+ NULL);
+
+ pSoundAlive->pRadio = elm_radio_add(pSoundAlive->pGenList);
+
+ if (!_vp_sound_alive_add_genlist_item
+ (pSoundAlive->pGenList, (void *) pSoundAlive)) {
+ VideoLogError("_vp_sound_alive_add_genlist_item fail");
+ _vp_sound_alive_destroy_handle(pSoundAlive);
+ return NULL;
+ }
+
+ VideoLogInfo("nType: %d", nType);
+ pSoundAlive->soundAliveType = nType;
+ evas_object_smart_callback_add(pSoundAlive->pParent,
+ "rotation,changed",
+ __vp_sound_alive_popup_rotate_cb,
+ pSoundAlive);
+
+ pSoundAlive->pBox = elm_box_add(pSoundAlive->pPopup);
+
+ vp_popup_set_popup_min_size(pSoundAlive->pParent, pSoundAlive->pBox,
+ pSoundAlive->nListCount,
+ VIDEO_POPUP_DEFAULT);
+
+ elm_box_pack_end(pSoundAlive->pBox, pSoundAlive->pGenList);
+
+ elm_object_content_set(pSoundAlive->pPopup, pSoundAlive->pBox);
+
+ return pSoundAlive;
+}
+
+/**
+ *
+ * @param pSAHandle
+ */
+void vp_sound_alive_destroy(sound_alive_handle pSAHandle)
+{
+ if (pSAHandle == NULL) {
+ VideoLogError("pSAHandle is NULL");
+ return;
+ }
+
+ SoundAlivePopup *pSoundAlive = (SoundAlivePopup *) pSAHandle;
+
+ _vp_sound_alive_destroy_handle(pSoundAlive);
+
+}
+
+/**
+ *
+ * @param pSAHandle
+ * @return
+ */
+bool vp_sound_alive_realize(sound_alive_handle pSAHandle)
+{
+ if (pSAHandle == NULL) {
+ VideoLogError("pSAHandle is NULL");
+ return FALSE;
+ }
+
+ SoundAlivePopup *pSoundAlive = (SoundAlivePopup *) pSAHandle;
+
+ evas_object_show(pSoundAlive->pPopup);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pSAHandle
+ * @return
+ */
+bool vp_sound_alive_unrealize(sound_alive_handle pSAHandle)
+{
+ if (pSAHandle == NULL) {
+ VideoLogError("pSAHandle is NULL");
+ return FALSE;
+ }
+
+ SoundAlivePopup *pSoundAlive = (SoundAlivePopup *) pSAHandle;
+
+ evas_object_hide(pSoundAlive->pPopup);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pSAHandle
+ * @param pUserData
+ * @return
+ */
+bool vp_sound_alive_set_user_data(sound_alive_handle pSAHandle,
+ void *pUserData)
+{
+ if (pSAHandle == NULL) {
+ VideoLogError("pSAHandle is NULL");
+ return FALSE;
+ }
+
+ SoundAlivePopup *pSoundAlive = (SoundAlivePopup *) pSAHandle;
+
+ pSoundAlive->pUserData = pUserData;
+
+ return TRUE;
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "vp-play-string-define.h"
+#include "vp-play-value-define.h"
+#include "vp-play-type-define.h"
+#include "vp-play-macro-define.h"
+
+#include "vp-sound.h"
+#include "vp-sound-path.h"
+#include <glib.h>
+
+
+/* check temp */
+#include "vp-play-log.h"
+
+#define VP_SOUND_PATH_GENLIST_DATA_KEY "vp.sound.path.genlist"
+
+typedef struct _SoundPathPopup {
+ Evas_Object *pParent;
+ Evas_Object *pPopup;
+ Evas_Object *pRadio;
+ Evas_Object *pButton;
+ Evas_Object *pBox;
+ Evas_Object *pGenList;
+ Elm_Genlist_Item_Class *st_Sp_Itc;
+
+ void *pUserData;
+ PopupCloseCbFunc pCloseCb;
+
+ char *szBTName;
+
+ int nItemCnt;
+ video_sound_path_t soundPathType;
+} SoundPathPopup;
+
+static void __vp_sound_path_genlist_item_selected_cb(void *pUserData,
+ Evas_Object *
+ pObject,
+ void *pEventInfo);
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __vp_sound_genlist_realized(void *data, Evas_Object * obj,
+ void *event_info)
+{
+ VP_GENLIST_HIDE_BOTTOMLINE(data, obj, event_info);
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __vp_sound_path_popup_rotate_cb(void *data, Evas_Object * obj,
+ void *event_info)
+{
+ SoundPathPopup *pSoundPath = (SoundPathPopup *) data;
+ if (!pSoundPath) {
+ VideoLogError("pSoundPath IS null");
+ return;
+ }
+ if (pSoundPath->nItemCnt < VP_POPUP_MIN_ITEMS) {
+ return;
+ }
+ vp_popup_set_popup_min_size(pSoundPath->pParent, pSoundPath->pBox,
+ pSoundPath->nItemCnt, VIDEO_POPUP_DEFAULT);
+
+}
+
+/**
+ *
+ * @param pSoundPath
+ */
+static void _vp_sound_path_destroy_handle(SoundPathPopup * pSoundPath)
+{
+ if (pSoundPath == NULL) {
+ VideoLogError("pSoundPath is NULL");
+ return;
+ }
+ evas_object_smart_callback_del(pSoundPath->pParent,
+ "rotation,changed",
+ __vp_sound_path_popup_rotate_cb);
+ evas_object_smart_callback_del(pSoundPath->pGenList, "realized",
+ __vp_sound_genlist_realized);
+
+ VP_EVAS_DEL(pSoundPath->pRadio);
+ VP_EVAS_DEL(pSoundPath->pGenList);
+ VP_EVAS_DEL(pSoundPath->pButton);
+ VP_EVAS_DEL(pSoundPath->pBox);
+
+ if (pSoundPath->st_Sp_Itc) {
+ elm_genlist_item_class_free(pSoundPath->st_Sp_Itc);
+ pSoundPath->st_Sp_Itc = NULL;
+ }
+
+
+ VP_EVAS_DEL(pSoundPath->pPopup);
+
+ VP_FREE(pSoundPath->szBTName);
+
+ VP_FREE(pSoundPath);
+}
+
+/* callback functions */
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pPart
+ * @return
+ */
+static char *__vp_sound_path_genlist_text_get_cb(const void *pUserData,
+ Evas_Object * pObj,
+ const char *pPart)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return NULL;
+ }
+
+ char *szTxt = (char *) pUserData;
+
+ if (!strcmp(pPart, "elm.text.main.left")) {
+ return strdup(szTxt);
+ }
+
+ return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pPart
+ * @return
+ */
+static Evas_Object *__vp_sound_path_genlist_content_get_cb(const void
+ *pUserData,
+ Evas_Object *
+ pObj,
+ const char
+ *pPart)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return NULL;
+ }
+
+ char *szTxt = (char *) pUserData;
+
+ if (!strcmp(pPart, "elm.icon.2")) {
+ Evas_Object *pRadioObj = NULL;
+ Evas_Object *pLayout = NULL;
+
+ SoundPathPopup *pSoundPath =
+ (SoundPathPopup *) evas_object_data_get(pObj,
+ VP_SOUND_PATH_GENLIST_DATA_KEY);
+ if (pSoundPath == NULL) {
+ VideoLogWarning("evas_object_data_get is fail");
+ return NULL;
+ }
+
+ video_sound_path_t nType = VIDEO_SOUND_PATH_NONE;
+
+ if (!g_strcmp0(szTxt, VP_PLAY_STRING_SOUND_SPEAKER)) {
+ nType = VIDEO_SOUND_PATH_SPEAKER;
+ } else if (!g_strcmp0(szTxt, VP_PLAY_STRING_SOUND_EARJACK)) {
+ nType = VIDEO_SOUND_PATH_EARJACK;
+ } else if (!g_strcmp0(szTxt, pSoundPath->szBTName)) {
+ nType = VIDEO_SOUND_PATH_BLUETOOTH;
+ } else if (!g_strcmp0(szTxt, VP_PLAY_STRING_SOUND_HDMI)) {
+ nType = VIDEO_SOUND_PATH_HDMI;
+ } else if (!g_strcmp0(szTxt, VP_PLAY_STRING_SOUND_MIRRORING)) {
+ nType = VIDEO_SOUND_PATH_MIRRORING;
+ } else if (!g_strcmp0(szTxt, VP_PLAY_STRING_SOUND_USB_AUDIO)) {
+ nType = VIDEO_SOUND_PATH_USB_AUDIO;
+ }
+
+ pLayout = elm_layout_add(pObj);
+ pRadioObj = elm_radio_add(pLayout);
+
+ elm_layout_theme_set(pLayout, "layout", "list/C/type.2",
+ "default");
+ elm_radio_group_add(pRadioObj, pSoundPath->pRadio);
+ elm_radio_state_value_set(pRadioObj, nType);
+
+ if (nType == pSoundPath->soundPathType) {
+ VideoLogInfo("pSoundPath->soundPathType = %d",
+ pSoundPath->soundPathType);
+ elm_radio_value_set(pSoundPath->pRadio, nType);
+ }
+
+ evas_object_smart_callback_add(pRadioObj, "changed",
+ __vp_sound_path_genlist_item_selected_cb,
+ (void *) pUserData);
+ elm_object_part_content_set(pLayout, "elm.swallow.content",
+ pRadioObj);
+ evas_object_show(pRadioObj);
+ evas_object_show(pLayout);
+
+ return pLayout;
+ }
+ return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __vp_sound_path_genlist_item_selected_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+ if (pEventInfo == NULL) {
+ VideoLogError("pEventInfo is NULL");
+ return;
+ }
+
+ Elm_Object_Item *pItem = (Elm_Object_Item *) pEventInfo;
+ char *szTxt = (char *) elm_object_item_data_get(pItem);
+
+ SoundPathPopup *pSoundPath = (SoundPathPopup *) pUserData;
+
+ if (szTxt == NULL) {
+ VideoLogError("szTxt is NULL");
+ return;
+ }
+
+ video_sound_path_t nType = VIDEO_SOUND_PATH_NONE;
+
+ if (!g_strcmp0(szTxt, VP_PLAY_STRING_SOUND_SPEAKER)) {
+ VideoLogWarning
+ ("SELECT SOUND PATH ITEM (VP_PLAY_STRING_SOUND_SPEAKER)");
+ nType = VIDEO_SOUND_PATH_SPEAKER;
+ vp_sound_set_active_route(VP_SOUND_DEVICE_SPEAKER);
+ } else if (!g_strcmp0(szTxt, VP_PLAY_STRING_SOUND_EARJACK)) {
+ VideoLogWarning
+ ("SELECT SOUND PATH ITEM (VP_PLAY_STRING_SOUND_EARJACK)");
+ nType = VIDEO_SOUND_PATH_EARJACK;
+ vp_sound_set_active_route(VP_SOUND_DEVICE_EARJACK);
+ } else if (!g_strcmp0(szTxt, pSoundPath->szBTName)) {
+ nType = VIDEO_SOUND_PATH_BLUETOOTH;
+ VideoLogWarning
+ ("SELECT SOUND PATH ITEM (VIDEO_SOUND_PATH_BLUETOOTH)");
+ vp_sound_set_active_route(VP_SOUND_DEVICE_BLUETOOTH);
+ } else if (!g_strcmp0(szTxt, VP_PLAY_STRING_SOUND_HDMI)) {
+ VideoLogWarning("SELECT SOUND PATH ITEM (VIDEO_SOUND_PATH_HDMI)");
+ nType = VIDEO_SOUND_PATH_HDMI;
+ vp_sound_set_active_route(VP_SOUND_DEVICE_HDMI);
+ } else if (!g_strcmp0(szTxt, VP_PLAY_STRING_SOUND_MIRRORING)) {
+ VideoLogWarning
+ ("SELECT SOUND PATH ITEM (VIDEO_SOUND_PATH_MIRRORING)");
+ nType = VIDEO_SOUND_PATH_MIRRORING;
+ vp_sound_set_active_route(VP_SOUND_DEVICE_MIRRORING);
+ } else if (!g_strcmp0(szTxt, VP_PLAY_STRING_SOUND_USB_AUDIO)) {
+ VideoLogWarning
+ ("SELECT SOUND PATH ITEM (VIDEO_SOUND_PATH_USB_AUDIO)");
+ nType = VIDEO_SOUND_PATH_USB_AUDIO;
+ vp_sound_set_active_route(VP_SOUND_DEVICE_USB_AUDIO);
+ }
+
+ pSoundPath->soundPathType = nType;
+ if (pSoundPath->pCloseCb) {
+ pSoundPath->pCloseCb((int) nType, FALSE,
+ (void *) pSoundPath->pUserData);
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_sound_path_popup_key_event_cb(void *pUserData,
+ Evas_Object * pObj,
+ void *pEventInfo)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ SoundPathPopup *pSoundPath = (SoundPathPopup *) pUserData;
+
+ if (pSoundPath->pCloseCb) {
+ pSoundPath->pCloseCb(VIDEO_SOUND_PATH_NONE, FALSE,
+ (void *) pSoundPath->pUserData);
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pEvas
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_sound_path_popup_mouse_event_cb(void *pUserData,
+ Evas * pEvas,
+ Evas_Object * pObj,
+ void *pEventInfo)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ if (pEventInfo == NULL) {
+ VideoLogError("pEventInfo is NULL");
+ return;
+ }
+
+ Evas_Event_Mouse_Up *ev = pEventInfo;
+
+ if (ev->button == 3) {
+ SoundPathPopup *pSoundPath = (SoundPathPopup *) pUserData;
+
+ if (pSoundPath->pCloseCb) {
+ pSoundPath->pCloseCb(VIDEO_SOUND_PATH_NONE, FALSE,
+ (void *) pSoundPath->pUserData);
+ }
+ }
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+static Evas_Object *_vp_sound_path_create_genlist(Evas_Object * pParent)
+{
+ if (pParent == NULL) {
+ VideoLogError("pParent is NULL");
+ return NULL;
+ }
+
+ Evas_Object *pObj = NULL;
+
+ pObj = elm_genlist_add(pParent);
+ evas_object_size_hint_weight_set(pObj, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(pObj, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_show(pObj);
+ return pObj;
+}
+
+/**
+ *
+ * @param pObj
+ * @param pUserData
+ * @return
+ */
+static bool _vp_sound_path_add_genlist_item(Evas_Object * pObj,
+ void *pUserData)
+{
+ if (pObj == NULL) {
+ VideoLogError("pObj is NULL");
+ return FALSE;
+ }
+
+ SoundPathPopup *pSoundPath = (SoundPathPopup *) pUserData;
+
+ if (pSoundPath->st_Sp_Itc) {
+ elm_genlist_item_class_free(pSoundPath->st_Sp_Itc);
+ pSoundPath->st_Sp_Itc = NULL;
+ }
+
+ pSoundPath->st_Sp_Itc = elm_genlist_item_class_new();
+
+ if (pSoundPath->st_Sp_Itc != NULL) {
+ pSoundPath->st_Sp_Itc->version = ELM_GENLIST_ITEM_CLASS_VERSION;
+ pSoundPath->st_Sp_Itc->item_style = "1line";
+ pSoundPath->st_Sp_Itc->func.text_get =
+ (void *) __vp_sound_path_genlist_text_get_cb;
+ pSoundPath->st_Sp_Itc->func.content_get =
+ (void *) __vp_sound_path_genlist_content_get_cb;
+ pSoundPath->st_Sp_Itc->func.state_get = NULL;
+ pSoundPath->st_Sp_Itc->func.del = NULL;
+ }
+
+ if (vp_sound_device_is_enable(VP_SOUND_DEVICE_BLUETOOTH, pSoundPath)) {
+ char *szBTName = NULL;
+ if (vp_sound_get_a2dp_name(&szBTName)) {
+ VP_STRDUP(pSoundPath->szBTName, szBTName);
+ VP_FREE(szBTName);
+ elm_genlist_item_append(pObj, pSoundPath->st_Sp_Itc,
+ (void *) pSoundPath->szBTName, NULL,
+ ELM_GENLIST_ITEM_NONE,
+ __vp_sound_path_genlist_item_selected_cb,
+ pUserData);
+ pSoundPath->nItemCnt++;
+ }
+ }
+
+ if (vp_sound_device_is_enable(VP_SOUND_DEVICE_HDMI, pSoundPath)) {
+ elm_genlist_item_append(pObj, pSoundPath->st_Sp_Itc,
+ (void *) VP_PLAY_STRING_SOUND_HDMI, NULL,
+ ELM_GENLIST_ITEM_NONE,
+ __vp_sound_path_genlist_item_selected_cb,
+ pUserData);
+ pSoundPath->nItemCnt++;
+ }
+
+ if (vp_sound_device_is_enable(VP_SOUND_DEVICE_MIRRORING, pSoundPath)) {
+ elm_genlist_item_append(pObj, pSoundPath->st_Sp_Itc,
+ (void *) VP_PLAY_STRING_SOUND_MIRRORING,
+ NULL, ELM_GENLIST_ITEM_NONE,
+ __vp_sound_path_genlist_item_selected_cb,
+ pUserData);
+ pSoundPath->nItemCnt++;
+ }
+
+ if (vp_sound_device_is_enable(VP_SOUND_DEVICE_USB_AUDIO, pSoundPath)) {
+ elm_genlist_item_append(pObj, pSoundPath->st_Sp_Itc,
+ (void *) VP_PLAY_STRING_SOUND_USB_AUDIO,
+ NULL, ELM_GENLIST_ITEM_NONE,
+ __vp_sound_path_genlist_item_selected_cb,
+ pUserData);
+ pSoundPath->nItemCnt++;
+ }
+
+ if (vp_sound_device_is_enable(VP_SOUND_DEVICE_EARJACK, pSoundPath)) {
+ elm_genlist_item_append(pObj, pSoundPath->st_Sp_Itc,
+ (void *) VP_PLAY_STRING_SOUND_EARJACK,
+ NULL, ELM_GENLIST_ITEM_NONE,
+ __vp_sound_path_genlist_item_selected_cb,
+ pUserData);
+ pSoundPath->nItemCnt++;
+ }
+
+ if (vp_sound_device_is_enable(VP_SOUND_DEVICE_EARJACK, pSoundPath)
+ && vp_sound_device_is_enable(VP_SOUND_DEVICE_BLUETOOTH,
+ pSoundPath)) {
+ VideoLogError("Skip for sound policy");
+ } else {
+ elm_genlist_item_append(pObj, pSoundPath->st_Sp_Itc,
+ (void *) VP_PLAY_STRING_SOUND_SPEAKER,
+ NULL, ELM_GENLIST_ITEM_NONE,
+ __vp_sound_path_genlist_item_selected_cb,
+ pUserData);
+ pSoundPath->nItemCnt++;
+ }
+
+ return TRUE;
+}
+
+/* external functions */
+/**
+ *
+ * @param pParent
+ * @param pCloseCb
+ * @return
+ */
+sound_path_handle vp_sound_path_create(Evas_Object * pParent,
+ PopupCloseCbFunc pCloseCb)
+{
+ if (pParent == NULL) {
+ VideoLogError("pParent is NULL");
+ return NULL;
+ }
+
+
+ SoundPathPopup *pSoundPath = NULL;
+
+ pSoundPath = calloc(1, sizeof(SoundPathPopup));
+
+ if (pSoundPath == NULL) {
+ VideoLogError("pSoundPath alloc fail");
+ return NULL;
+ }
+
+ pSoundPath->pParent = pParent;
+ pSoundPath->pCloseCb = pCloseCb;
+
+ pSoundPath->pPopup =
+ vp_popup_create(pParent, POPUP_STYLE_MENU_LIST_NO_CANCEL_BTN,
+ VP_PLAY_STRING_SOUND_PATH, NULL, 0.0, NULL,
+ __vp_sound_path_popup_key_event_cb,
+ __vp_sound_path_popup_mouse_event_cb,
+ (void *) pSoundPath);
+ if (pSoundPath->pPopup == NULL) {
+ VideoLogError("vp_popup_create fail");
+ _vp_sound_path_destroy_handle(pSoundPath);
+ return NULL;
+ }
+
+ pSoundPath->pGenList =
+ _vp_sound_path_create_genlist(pSoundPath->pPopup);
+ if (pSoundPath->pGenList == NULL) {
+ VideoLogError("_vp_sound_path_create_genlist fail");
+ _vp_sound_path_destroy_handle(pSoundPath);
+ return NULL;
+ }
+ evas_object_smart_callback_add(pSoundPath->pGenList, "realized",
+ __vp_sound_genlist_realized, NULL);
+
+ evas_object_data_set(pSoundPath->pGenList,
+ VP_SOUND_PATH_GENLIST_DATA_KEY,
+ (void *) pSoundPath);
+
+ pSoundPath->pRadio = elm_radio_add(pSoundPath->pGenList);
+
+ if (!_vp_sound_path_add_genlist_item
+ (pSoundPath->pGenList, (void *) pSoundPath)) {
+ VideoLogError("_vp_sound_path_add_genlist_item fail");
+ _vp_sound_path_destroy_handle(pSoundPath);
+ return NULL;
+ }
+
+ video_sound_device_type_t nType = VP_SOUND_DEVICE_NONE;
+
+ vp_sound_get_active_device(&nType);
+ if (nType != VP_SOUND_DEVICE_NONE) {
+ //elm_radio_value_set(pSoundPath->pRadio, nType);
+ pSoundPath->soundPathType = nType;
+ }
+ evas_object_smart_callback_add(pSoundPath->pParent,
+ "rotation,changed",
+ __vp_sound_path_popup_rotate_cb,
+ pSoundPath);
+
+ pSoundPath->pBox = elm_box_add(pSoundPath->pPopup);
+
+ vp_popup_set_popup_min_size(pSoundPath->pParent, pSoundPath->pBox,
+ pSoundPath->nItemCnt, VIDEO_POPUP_DEFAULT);
+
+
+ elm_box_pack_end(pSoundPath->pBox, pSoundPath->pGenList);
+
+ elm_object_content_set(pSoundPath->pPopup, pSoundPath->pBox);
+
+ return pSoundPath;
+}
+
+/**
+ *
+ * @param pSoundPathHandle
+ */
+void vp_sound_path_destroy(sound_path_handle pSoundPathHandle)
+{
+ if (pSoundPathHandle == NULL) {
+ VideoLogError("pSoundPathHandle is NULL");
+ return;
+ }
+
+ SoundPathPopup *pSoundPath = (SoundPathPopup *) pSoundPathHandle;
+
+ _vp_sound_path_destroy_handle(pSoundPath);
+
+}
+
+/**
+ *
+ * @param pSoundPathHandle
+ * @return
+ */
+bool vp_sound_path_realize(sound_path_handle pSoundPathHandle)
+{
+ if (pSoundPathHandle == NULL) {
+ VideoLogError("pSoundPathHandle is NULL");
+ return FALSE;
+ }
+
+ SoundPathPopup *pSoundPath = (SoundPathPopup *) pSoundPathHandle;
+
+ evas_object_show(pSoundPath->pPopup);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pSoundPathHandle
+ * @return
+ */
+bool vp_sound_path_unrealize(sound_path_handle pSoundPathHandle)
+{
+ if (pSoundPathHandle == NULL) {
+ VideoLogError("pSoundPathHandle is NULL");
+ return FALSE;
+ }
+
+ SoundPathPopup *pSoundPath = (SoundPathPopup *) pSoundPathHandle;
+
+ evas_object_hide(pSoundPath->pPopup);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pSoundPathHandle
+ * @param pUserData
+ * @return
+ */
+bool vp_sound_path_set_user_data(sound_path_handle pSoundPathHandle,
+ void *pUserData)
+{
+ if (pSoundPathHandle == NULL) {
+ VideoLogError("pSoundPathHandle is NULL");
+ return FALSE;
+ }
+
+ SoundPathPopup *pSoundPath = (SoundPathPopup *) pSoundPathHandle;
+
+ pSoundPath->pUserData = pUserData;
+
+ return TRUE;
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "vp-play-string-define.h"
+#include "vp-play-value-define.h"
+#include "vp-play-type-define.h"
+#include "vp-play-macro-define.h"
+
+#include "vp-subtitle-alignment.h"
+
+/* check temp */
+#include "vp-play-log.h"
+
+#define VP_SUBTITLE_ALIGNMENT_GENLIST_DATA_KEY "vp.subtitle.alignment.genlist"
+
+typedef struct _SubtitleAlignmentPopup {
+ Evas_Object *pParent;
+ Evas_Object *pPopup;
+ Evas_Object *pRadio;
+ Evas_Object *pButton;
+ Evas_Object *pBox;
+ Evas_Object *pGenList;
+ Elm_Genlist_Item_Class *st_SubtitleAlignment_Itc;
+
+ int nDefaultIndex;
+ int nListCount;
+
+ void *pUserData;
+ PopupCloseCbFunc pCloseCb;
+ video_play_subtitle_alignment_t currentAlignment;
+} SubtitleAlignmentPopup;
+
+static void _vp_subtitle_alignment_destroy_handle(SubtitleAlignmentPopup *
+ pSubtitleAlignment);
+
+static void __vp_subtitle_alignment_genlist_item_selected_cb(void
+ *pUserData,
+ Evas_Object *
+ pObject, void
+ *pEventInfo);
+
+static void __vp_subtitle_alignment_genlist_realized(void *data,
+ Evas_Object * obj,
+ void *event_info)
+{
+ VP_GENLIST_HIDE_BOTTOMLINE(data, obj, event_info);
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __vp_subtitle_alignment_popup_rotate_cb(void *data,
+ Evas_Object * obj,
+ void *event_info)
+{
+ SubtitleAlignmentPopup *pSubtitleAlignment =
+ (SubtitleAlignmentPopup *) data;
+ if (!pSubtitleAlignment) {
+ VideoLogError("pSubtitleAlignment IS null");
+ return;
+ }
+ if (pSubtitleAlignment->nListCount < VP_POPUP_MIN_ITEMS) {
+ return;
+ }
+ vp_popup_set_popup_min_size(pSubtitleAlignment->pParent,
+ pSubtitleAlignment->pBox,
+ pSubtitleAlignment->nListCount,
+ VIDEO_POPUP_DEFAULT);
+
+}
+
+/* callback functions */
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pPart
+ * @return
+ */
+static char *__vp_subtitle_alignment_genlist_text_get_cb(const void
+ *pUserData,
+ Evas_Object *
+ pObj,
+ const char *pPart)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return NULL;
+ }
+
+ char *szTxt = (char *) pUserData;
+
+ if (!strcmp(pPart, "elm.text")) {
+ return strdup(szTxt);
+ }
+
+ return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pPart
+ * @return
+ */
+static Evas_Object *__vp_subtitle_alignment_genlist_content_get_cb(const
+ void
+ *pUserData,
+ Evas_Object
+ *pObj,
+ const
+ char
+ *pPart)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return NULL;
+ }
+
+ char *szTxt = (char *) pUserData;
+
+ if (!strcmp(pPart, "elm.swallow.end")) {
+ Evas_Object *pRadioObj = NULL;
+
+ SubtitleAlignmentPopup *pSubtitleAlignment =
+ (SubtitleAlignmentPopup *) evas_object_data_get(pObj,
+ VP_SUBTITLE_ALIGNMENT_GENLIST_DATA_KEY);
+ if (pSubtitleAlignment == NULL) {
+ VideoLogWarning("evas_object_data_get is fail");
+ return NULL;
+ }
+ video_play_subtitle_alignment_t nAlignment =
+ VIDEO_SUBTITLE_ALIGNMENT_CENTER;
+ if (!strcmp(szTxt, VP_PLAY_STRING_ALIGNMENT_LEFT)) {
+ nAlignment = VIDEO_SUBTITLE_ALIGNMENT_LEFT;
+ } else if (!strcmp(szTxt, VP_PLAY_STRING_ALIGNMENT_CENTER)) {
+ nAlignment = VIDEO_SUBTITLE_ALIGNMENT_CENTER;
+ } else if (!strcmp(szTxt, VP_PLAY_STRING_ALIGNMENT_RIGHT)) {
+ nAlignment = VIDEO_SUBTITLE_ALIGNMENT_RIGHT;
+ }
+
+ pRadioObj = elm_radio_add(pObj);
+ elm_radio_state_value_set(pRadioObj, nAlignment);
+ elm_radio_group_add(pRadioObj, pSubtitleAlignment->pRadio);
+ elm_radio_value_set(pSubtitleAlignment->pRadio,
+ pSubtitleAlignment->currentAlignment);
+ evas_object_smart_callback_add(pRadioObj, "changed",
+ __vp_subtitle_alignment_genlist_item_selected_cb,
+ pSubtitleAlignment);
+ evas_object_show(pRadioObj);
+
+ return pRadioObj;
+ }
+
+ return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __vp_subtitle_alignment_genlist_item_selected_cb(void
+ *pUserData,
+ Evas_Object *
+ pObject,
+ void
+ *pEventInfo)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+ if (pEventInfo == NULL) {
+ VideoLogError("pEventInfo is NULL");
+ return;
+ }
+
+ Elm_Object_Item *pItem = (Elm_Object_Item *) pEventInfo;
+ Elm_Object_Item *pSelectedItem =
+ elm_genlist_selected_item_get(pObject);
+ if (pSelectedItem) {
+ elm_genlist_item_selected_set(pSelectedItem, EINA_FALSE);
+ }
+ char *szTxt = (char *) elm_object_item_data_get(pItem);
+
+ SubtitleAlignmentPopup *pSubtitleAlignment =
+ (SubtitleAlignmentPopup *) pUserData;
+
+ if (szTxt == NULL) {
+ VideoLogError("szTxt is NULL");
+ return;
+ }
+
+ video_play_subtitle_alignment_t nAlignment =
+ VIDEO_SUBTITLE_ALIGNMENT_CENTER;
+ if (!strcmp(szTxt, VP_PLAY_STRING_ALIGNMENT_LEFT)) {
+ nAlignment = VIDEO_SUBTITLE_ALIGNMENT_LEFT;
+ } else if (!strcmp(szTxt, VP_PLAY_STRING_ALIGNMENT_CENTER)) {
+ nAlignment = VIDEO_SUBTITLE_ALIGNMENT_CENTER;
+ } else if (!strcmp(szTxt, VP_PLAY_STRING_ALIGNMENT_RIGHT)) {
+ nAlignment = VIDEO_SUBTITLE_ALIGNMENT_RIGHT;
+ }
+
+ pSubtitleAlignment->currentAlignment = nAlignment;
+ if (pSubtitleAlignment->pCloseCb) {
+ pSubtitleAlignment->pCloseCb(nAlignment, FALSE,
+ (void *)
+ pSubtitleAlignment->pUserData);
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_subtitle_alignment_popup_key_event_cb(void *pUserData,
+ Evas_Object * pObj,
+ void *pEventInfo)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ SubtitleAlignmentPopup *pSubtitleAlignment =
+ (SubtitleAlignmentPopup *) pUserData;
+
+ if (pSubtitleAlignment->pCloseCb) {
+ pSubtitleAlignment->pCloseCb(-1, FALSE,
+ (void *)
+ pSubtitleAlignment->pUserData);
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pEvas
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_subtitle_alignment_popup_mouse_event_cb(void *pUserData,
+ Evas * pEvas,
+ Evas_Object *
+ pObj,
+ void *pEventInfo)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ if (pEventInfo == NULL) {
+ VideoLogError("pEventInfo is NULL");
+ return;
+ }
+
+ Evas_Event_Mouse_Up *ev = pEventInfo;
+
+ if (ev->button == 3) {
+ SubtitleAlignmentPopup *pSubtitleAlignment =
+ (SubtitleAlignmentPopup *) pUserData;
+
+ if (pSubtitleAlignment->pCloseCb) {
+ pSubtitleAlignment->pCloseCb(-1, FALSE,
+ (void *)
+ pSubtitleAlignment->pUserData);
+ }
+ }
+}
+
+/* internal functions */
+/**
+ *
+ * @param pSubtitleAlignment
+ */
+static void _vp_subtitle_alignment_destroy_handle(SubtitleAlignmentPopup *
+ pSubtitleAlignment)
+{
+ if (pSubtitleAlignment == NULL) {
+ VideoLogError("pSubtitleAlignment is NULL");
+ return;
+ }
+
+ evas_object_smart_callback_del(pSubtitleAlignment->pParent,
+ "rotation,changed",
+ __vp_subtitle_alignment_popup_rotate_cb);
+ evas_object_smart_callback_del(pSubtitleAlignment->pGenList,
+ "realized",
+ __vp_subtitle_alignment_genlist_realized);
+
+ VP_EVAS_DEL(pSubtitleAlignment->pRadio);
+
+ VP_EVAS_DEL(pSubtitleAlignment->pGenList);
+ VP_EVAS_DEL(pSubtitleAlignment->pButton);
+ VP_EVAS_DEL(pSubtitleAlignment->pBox);
+
+ if (pSubtitleAlignment->st_SubtitleAlignment_Itc) {
+ elm_genlist_item_class_free
+ (pSubtitleAlignment->st_SubtitleAlignment_Itc);
+ pSubtitleAlignment->st_SubtitleAlignment_Itc = NULL;
+ }
+
+ VP_EVAS_DEL(pSubtitleAlignment->pPopup);
+
+ VP_FREE(pSubtitleAlignment);
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+static Evas_Object *_vp_subtitle_alignment_create_genlist(Evas_Object *
+ pParent)
+{
+ if (pParent == NULL) {
+ VideoLogError("pParent is NULL");
+ return NULL;
+ }
+
+ Evas_Object *pObj = NULL;
+
+ pObj = elm_genlist_add(pParent);
+ evas_object_size_hint_weight_set(pObj, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(pObj, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_show(pObj);
+ return pObj;
+}
+
+/**
+ *
+ * @param pObj
+ * @param pUserData
+ * @return
+ */
+static bool _vp_subtitle_alignment_add_genlist_item(Evas_Object * pObj,
+ void *pUserData)
+{
+ if (pObj == NULL) {
+ VideoLogError("pObj is NULL");
+ return FALSE;
+ }
+
+ SubtitleAlignmentPopup *pSubtitleAlignment =
+ (SubtitleAlignmentPopup *) pUserData;
+
+ if (pSubtitleAlignment->st_SubtitleAlignment_Itc) {
+ elm_genlist_item_class_free
+ (pSubtitleAlignment->st_SubtitleAlignment_Itc);
+ pSubtitleAlignment->st_SubtitleAlignment_Itc = NULL;
+ }
+
+ pSubtitleAlignment->st_SubtitleAlignment_Itc =
+ elm_genlist_item_class_new();
+
+ if (pSubtitleAlignment->st_SubtitleAlignment_Itc != NULL) {
+ pSubtitleAlignment->st_SubtitleAlignment_Itc->version =
+ ELM_GENLIST_ITEM_CLASS_VERSION;
+ pSubtitleAlignment->st_SubtitleAlignment_Itc->item_style = "type1";
+ pSubtitleAlignment->st_SubtitleAlignment_Itc->func.text_get =
+ (void *) __vp_subtitle_alignment_genlist_text_get_cb;
+ pSubtitleAlignment->st_SubtitleAlignment_Itc->func.content_get =
+ (void *) __vp_subtitle_alignment_genlist_content_get_cb;
+ pSubtitleAlignment->st_SubtitleAlignment_Itc->func.state_get =
+ NULL;
+ pSubtitleAlignment->st_SubtitleAlignment_Itc->func.del = NULL;
+ pSubtitleAlignment->nListCount = 0;
+
+ elm_genlist_item_append(pObj,
+ pSubtitleAlignment->
+ st_SubtitleAlignment_Itc,
+ (void *) VP_PLAY_STRING_ALIGNMENT_LEFT,
+ NULL, ELM_GENLIST_ITEM_NONE,
+ __vp_subtitle_alignment_genlist_item_selected_cb,
+ pUserData);
+ pSubtitleAlignment->nListCount++;
+ elm_genlist_item_append(pObj,
+ pSubtitleAlignment->
+ st_SubtitleAlignment_Itc,
+ (void *) VP_PLAY_STRING_ALIGNMENT_CENTER,
+ NULL, ELM_GENLIST_ITEM_NONE,
+ __vp_subtitle_alignment_genlist_item_selected_cb,
+ pUserData);
+ pSubtitleAlignment->nListCount++;
+ elm_genlist_item_append(pObj,
+ pSubtitleAlignment->
+ st_SubtitleAlignment_Itc,
+ (void *) VP_PLAY_STRING_ALIGNMENT_RIGHT,
+ NULL, ELM_GENLIST_ITEM_NONE,
+ __vp_subtitle_alignment_genlist_item_selected_cb,
+ pUserData);
+ pSubtitleAlignment->nListCount++;
+ }
+
+ return TRUE;
+}
+
+/* external functions */
+/**
+ *
+ * @param pParent
+ * @param pCloseCb
+ * @param nDefaultAlign
+ * @return
+ */
+subtitle_alignment_handle vp_subtitle_alignment_create(Evas_Object *
+ pParent,
+ PopupCloseCbFunc
+ pCloseCb,
+ int nDefaultAlign)
+{
+ if (pParent == NULL) {
+ VideoLogError("pParent is NULL");
+ return NULL;
+ }
+
+ SubtitleAlignmentPopup *pSubtitleAlignment = NULL;
+
+ pSubtitleAlignment = calloc(1, sizeof(SubtitleAlignmentPopup));
+
+ if (pSubtitleAlignment == NULL) {
+ VideoLogError("pSubtitleAlignment alloc fail");
+ return NULL;
+ }
+
+ pSubtitleAlignment->pParent = pParent;
+ pSubtitleAlignment->pCloseCb = pCloseCb;
+
+ pSubtitleAlignment->pPopup =
+ vp_popup_create(pParent, POPUP_STYLE_MENU_LIST_NO_CANCEL_BTN,
+ VP_PLAY_STRING_SUBTITLE_ALIGNMENT, NULL, 0.0,
+ NULL, __vp_subtitle_alignment_popup_key_event_cb,
+ __vp_subtitle_alignment_popup_mouse_event_cb,
+ (void *) pSubtitleAlignment);
+
+ if (pSubtitleAlignment->pPopup == NULL) {
+ VideoLogError("vp_popup_create fail");
+ _vp_subtitle_alignment_destroy_handle(pSubtitleAlignment);
+ return NULL;
+ }
+ pSubtitleAlignment->pGenList =
+ _vp_subtitle_alignment_create_genlist(pSubtitleAlignment->pPopup);
+ if (pSubtitleAlignment->pGenList == NULL) {
+ VideoLogError("_vp_subtitle_alignment_create_genlist fail");
+ _vp_subtitle_alignment_destroy_handle(pSubtitleAlignment);
+ return NULL;
+ }
+ evas_object_data_set(pSubtitleAlignment->pGenList,
+ VP_SUBTITLE_ALIGNMENT_GENLIST_DATA_KEY,
+ (void *) pSubtitleAlignment);
+ evas_object_smart_callback_add(pSubtitleAlignment->pGenList,
+ "realized",
+ __vp_subtitle_alignment_genlist_realized,
+ NULL);
+
+ pSubtitleAlignment->nDefaultIndex = nDefaultAlign;
+ pSubtitleAlignment->pRadio =
+ elm_radio_add(pSubtitleAlignment->pGenList);
+
+ if (!_vp_subtitle_alignment_add_genlist_item
+ (pSubtitleAlignment->pGenList, (void *) pSubtitleAlignment)) {
+ VideoLogError("_vp_subtitle_alignment_add_genlist_item fail");
+ _vp_subtitle_alignment_destroy_handle(pSubtitleAlignment);
+ return FALSE;
+ }
+
+ pSubtitleAlignment->currentAlignment = nDefaultAlign;
+ evas_object_smart_callback_add(pSubtitleAlignment->pParent,
+ "rotation,changed",
+ __vp_subtitle_alignment_popup_rotate_cb,
+ pSubtitleAlignment);
+
+ pSubtitleAlignment->pBox = elm_box_add(pSubtitleAlignment->pPopup);
+ vp_popup_set_popup_min_size(pSubtitleAlignment->pParent,
+ pSubtitleAlignment->pBox,
+ pSubtitleAlignment->nListCount,
+ VIDEO_POPUP_DEFAULT);
+ elm_box_pack_end(pSubtitleAlignment->pBox,
+ pSubtitleAlignment->pGenList);
+ elm_object_content_set(pSubtitleAlignment->pPopup,
+ pSubtitleAlignment->pBox);
+
+ return pSubtitleAlignment;
+}
+
+/**
+ *
+ * @param pSubtitleAlignmentHandle
+ */
+void vp_subtitle_alignment_destroy(subtitle_alignment_handle
+ pSubtitleAlignmentHandle)
+{
+ if (pSubtitleAlignmentHandle == NULL) {
+ VideoLogError("pSubtitleAlignmentHandle is NULL");
+ return;
+ }
+
+ SubtitleAlignmentPopup *pSubtitleAlignment =
+ (SubtitleAlignmentPopup *) pSubtitleAlignmentHandle;
+
+ _vp_subtitle_alignment_destroy_handle(pSubtitleAlignment);
+
+}
+
+/**
+ *
+ * @param pSubtitleAlignmentHandle
+ * @return
+ */
+bool vp_subtitle_alignment_realize(subtitle_alignment_handle
+ pSubtitleAlignmentHandle)
+{
+ if (pSubtitleAlignmentHandle == NULL) {
+ VideoLogError("pSubtitleAlignmentHandle is NULL");
+ return FALSE;
+ }
+
+ SubtitleAlignmentPopup *pSubtitleAlignment =
+ (SubtitleAlignmentPopup *) pSubtitleAlignmentHandle;
+
+ evas_object_show(pSubtitleAlignment->pPopup);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pSubtitleAlignmentHandle
+ * @return
+ */
+bool vp_subtitle_alignment_unrealize(subtitle_alignment_handle
+ pSubtitleAlignmentHandle)
+{
+ if (pSubtitleAlignmentHandle == NULL) {
+ VideoLogError("pSubtitleAlignmentHandle is NULL");
+ return FALSE;
+ }
+
+ SubtitleAlignmentPopup *pSubtitleAlignment =
+ (SubtitleAlignmentPopup *) pSubtitleAlignmentHandle;
+
+ evas_object_hide(pSubtitleAlignment->pPopup);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pSubtitleAlignmentHandle
+ * @param pUserData
+ * @return
+ */
+bool vp_subtitle_alignment_set_user_data(subtitle_alignment_handle
+ pSubtitleAlignmentHandle,
+ void *pUserData)
+{
+ if (pSubtitleAlignmentHandle == NULL) {
+ VideoLogError("pSubtitleAlignmentHandle is NULL");
+ return FALSE;
+ }
+
+ SubtitleAlignmentPopup *pSubtitleAlignment =
+ (SubtitleAlignmentPopup *) pSubtitleAlignmentHandle;
+
+ pSubtitleAlignment->pUserData = pUserData;
+
+ return TRUE;
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "vp-play-string-define.h"
+#include "vp-play-value-define.h"
+#include "vp-play-type-define.h"
+#include "vp-play-macro-define.h"
+
+#include "vp-subtitle-bg-color.h"
+
+/* check temp */
+#include "vp-play-log.h"
+
+#define VP_SUBTITLE_BG_COLOR_GENLIST_DATA_KEY "vp.subtitle.bg.color.genlist"
+
+
+typedef struct _SubtitleBGColorPopup {
+ Evas_Object *pParent;
+ Evas_Object *pPopup;
+ Evas_Object *pRadio;
+ Evas_Object *pButton;
+ Evas_Object *pBox;
+ Evas_Object *pGenList;
+ Elm_Genlist_Item_Class *st_SubtitleBGColor_Itc;
+
+ int nDefaultIndex;
+ int nListCount;
+
+ void *pUserData;
+ PopupCloseCbFunc pCloseCb;
+ video_play_subtitle_color_t currentBgColor;
+} SubtitleBGColorPopup;
+
+
+
+static void _vp_subtitle_bg_color_destroy_handle(SubtitleBGColorPopup *
+ pSubtitleBGColor);
+static void __vp_subtitle_bg_color_genlist_item_selected_cb(void
+ *pUserData,
+ Evas_Object *
+ pObject,
+ void
+ *pEventInfo);
+
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __vp_subtitle_bg_color_genlist_realized(void *data,
+ Evas_Object * obj,
+ void *event_info)
+{
+ VP_GENLIST_HIDE_BOTTOMLINE(data, obj, event_info);
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __vp_subtitle_bg_color_popup_rotate_cb(void *data,
+ Evas_Object * obj,
+ void *event_info)
+{
+ SubtitleBGColorPopup *pSubtitleBGColor = (SubtitleBGColorPopup *) data;
+ if (!pSubtitleBGColor) {
+ VideoLogError("pSubtitleBGColor IS null");
+ return;
+ }
+ if (pSubtitleBGColor->nListCount < VP_POPUP_MIN_ITEMS) {
+ return;
+ }
+ vp_popup_set_popup_min_size(pSubtitleBGColor->pParent,
+ pSubtitleBGColor->pBox,
+ pSubtitleBGColor->nListCount,
+ VIDEO_POPUP_DEFAULT);
+
+}
+
+/* callback functions */
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pPart
+ * @return
+ */
+static char *__vp_subtitle_bg_color_genlist_text_get_cb(const void
+ *pUserData,
+ Evas_Object * pObj,
+ const char *pPart)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return NULL;
+ }
+
+ char *szTxt = (char *) pUserData;
+
+ if (!strcmp(pPart, "elm.text")) {
+ return strdup(szTxt);
+ }
+
+ return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pPart
+ * @return
+ */
+static Evas_Object *__vp_subtitle_bg_color_genlist_content_get_cb(const
+ void
+ *pUserData,
+ Evas_Object
+ *pObj,
+ const
+ char
+ *pPart)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return NULL;
+ }
+
+ char *szTxt = (char *) pUserData;
+
+ if (!strcmp(pPart, "elm.icon")) {
+ Evas_Object *pRadioObj = NULL;
+
+ SubtitleBGColorPopup *pSubtitleBGColor =
+ (SubtitleBGColorPopup *) evas_object_data_get(pObj,
+ VP_SUBTITLE_BG_COLOR_GENLIST_DATA_KEY);
+ if (pSubtitleBGColor == NULL) {
+ VideoLogWarning("evas_object_data_get is fail");
+ return NULL;
+ }
+ video_play_subtitle_color_t nColor = VIDEO_SUBTITLE_COLOR_NONE;
+ if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_COLOR_NONE)) {
+ nColor = VIDEO_SUBTITLE_COLOR_NONE;
+ } else if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_COLOR_BLACK)) {
+ nColor = VIDEO_SUBTITLE_COLOR_BLACK;
+ } else if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_COLOR_WHITE)) {
+ nColor = VIDEO_SUBTITLE_COLOR_WHITE;
+ }
+
+ pRadioObj = elm_radio_add(pObj);
+ elm_radio_state_value_set(pRadioObj, nColor);
+ elm_radio_group_add(pRadioObj, pSubtitleBGColor->pRadio);
+ elm_radio_value_set(pSubtitleBGColor->pRadio,
+ pSubtitleBGColor->currentBgColor);
+ evas_object_smart_callback_add(pRadioObj, "changed",
+ __vp_subtitle_bg_color_genlist_item_selected_cb,
+ pSubtitleBGColor);
+ evas_object_show(pRadioObj);
+
+ return pRadioObj;
+ }
+
+ return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __vp_subtitle_bg_color_genlist_item_selected_cb(void
+ *pUserData,
+ Evas_Object *
+ pObject,
+ void
+ *pEventInfo)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+ if (pEventInfo == NULL) {
+ VideoLogError("pEventInfo is NULL");
+ return;
+ }
+
+ Elm_Object_Item *pItem = (Elm_Object_Item *) pEventInfo;
+ Elm_Object_Item *pSelectedItem =
+ elm_genlist_selected_item_get(pObject);
+ if (pSelectedItem) {
+ elm_genlist_item_selected_set(pSelectedItem, EINA_FALSE);
+ }
+ char *szTxt = (char *) elm_object_item_data_get(pItem);
+
+ SubtitleBGColorPopup *pSubtitleBGColor =
+ (SubtitleBGColorPopup *) pUserData;
+
+ if (szTxt == NULL) {
+ VideoLogError("szTxt is NULL");
+ return;
+ }
+
+ video_play_subtitle_color_t nColor = VIDEO_SUBTITLE_COLOR_NONE;
+ if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_COLOR_NONE)) {
+ nColor = VIDEO_SUBTITLE_COLOR_NONE;
+ } else if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_COLOR_BLACK)) {
+ nColor = VIDEO_SUBTITLE_COLOR_BLACK;
+ } else if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_COLOR_WHITE)) {
+ nColor = VIDEO_SUBTITLE_COLOR_WHITE;
+ }
+
+ pSubtitleBGColor->currentBgColor = nColor;
+ if (pSubtitleBGColor->pCloseCb) {
+ pSubtitleBGColor->pCloseCb(nColor, FALSE,
+ (void *) pSubtitleBGColor->pUserData);
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_subtitle_bg_color_popup_key_event_cb(void *pUserData,
+ Evas_Object * pObj,
+ void *pEventInfo)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ SubtitleBGColorPopup *pSubtitleBGColor =
+ (SubtitleBGColorPopup *) pUserData;
+
+ if (pSubtitleBGColor->pCloseCb) {
+ pSubtitleBGColor->pCloseCb(-1, FALSE,
+ (void *) pSubtitleBGColor->pUserData);
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pEvas
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_subtitle_bg_color_popup_mouse_event_cb(void *pUserData,
+ Evas * pEvas,
+ Evas_Object * pObj,
+ void *pEventInfo)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ if (pEventInfo == NULL) {
+ VideoLogError("pEventInfo is NULL");
+ return;
+ }
+
+ Evas_Event_Mouse_Up *ev = pEventInfo;
+
+ if (ev->button == 3) {
+ SubtitleBGColorPopup *pSubtitleBGColor =
+ (SubtitleBGColorPopup *) pUserData;
+
+ if (pSubtitleBGColor->pCloseCb) {
+ pSubtitleBGColor->pCloseCb(-1, FALSE,
+ (void *)
+ pSubtitleBGColor->pUserData);
+ }
+ }
+}
+
+/* internal functions */
+/**
+ *
+ * @param pSubtitleBGColor
+ */
+static void _vp_subtitle_bg_color_destroy_handle(SubtitleBGColorPopup *
+ pSubtitleBGColor)
+{
+ if (pSubtitleBGColor == NULL) {
+ VideoLogError("pSubtitleBGColor is NULL");
+ return;
+ }
+
+ evas_object_smart_callback_del(pSubtitleBGColor->pParent,
+ "rotation,changed",
+ __vp_subtitle_bg_color_popup_rotate_cb);
+ evas_object_smart_callback_del(pSubtitleBGColor->pGenList, "realized",
+ __vp_subtitle_bg_color_genlist_realized);
+
+ VP_EVAS_DEL(pSubtitleBGColor->pRadio);
+ VP_EVAS_DEL(pSubtitleBGColor->pGenList);
+ VP_EVAS_DEL(pSubtitleBGColor->pButton);
+ VP_EVAS_DEL(pSubtitleBGColor->pBox);
+
+ if (pSubtitleBGColor->st_SubtitleBGColor_Itc) {
+ elm_genlist_item_class_free
+ (pSubtitleBGColor->st_SubtitleBGColor_Itc);
+ pSubtitleBGColor->st_SubtitleBGColor_Itc = NULL;
+ }
+
+ VP_EVAS_DEL(pSubtitleBGColor->pPopup);
+
+ VP_FREE(pSubtitleBGColor);
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+static Evas_Object *_vp_subtitle_bg_color_create_genlist(Evas_Object *
+ pParent)
+{
+ if (pParent == NULL) {
+ VideoLogError("pParent is NULL");
+ return NULL;
+ }
+
+ Evas_Object *pObj = NULL;
+
+ pObj = elm_genlist_add(pParent);
+ evas_object_size_hint_weight_set(pObj, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(pObj, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_show(pObj);
+ return pObj;
+}
+
+/**
+ *
+ * @param pObj
+ * @param pUserData
+ * @return
+ */
+static bool _vp_subtitle_bg_color_add_genlist_item(Evas_Object * pObj,
+ void *pUserData)
+{
+ if (pObj == NULL) {
+ VideoLogError("pObj is NULL");
+ return FALSE;
+ }
+
+ SubtitleBGColorPopup *pSubtitleBGColor =
+ (SubtitleBGColorPopup *) pUserData;
+
+ if (pSubtitleBGColor->st_SubtitleBGColor_Itc) {
+ elm_genlist_item_class_free
+ (pSubtitleBGColor->st_SubtitleBGColor_Itc);
+ pSubtitleBGColor->st_SubtitleBGColor_Itc = NULL;
+ }
+
+ pSubtitleBGColor->st_SubtitleBGColor_Itc =
+ elm_genlist_item_class_new();
+
+ if (pSubtitleBGColor->st_SubtitleBGColor_Itc != NULL) {
+ pSubtitleBGColor->st_SubtitleBGColor_Itc->version =
+ ELM_GENLIST_ITEM_CLASS_VERSION;
+ pSubtitleBGColor->st_SubtitleBGColor_Itc->item_style =
+ "1text.1icon.3/popup";
+ pSubtitleBGColor->st_SubtitleBGColor_Itc->func.text_get =
+ (void *) __vp_subtitle_bg_color_genlist_text_get_cb;
+ pSubtitleBGColor->st_SubtitleBGColor_Itc->func.content_get =
+ (void *) __vp_subtitle_bg_color_genlist_content_get_cb;
+ pSubtitleBGColor->st_SubtitleBGColor_Itc->func.state_get = NULL;
+ pSubtitleBGColor->st_SubtitleBGColor_Itc->func.del = NULL;
+ pSubtitleBGColor->nListCount = 0;
+
+ elm_genlist_item_append(pObj,
+ pSubtitleBGColor->st_SubtitleBGColor_Itc,
+ (void *)
+ VP_PLAY_STRING_SUBTITLE_COLOR_NONE, NULL,
+ ELM_GENLIST_ITEM_NONE,
+ __vp_subtitle_bg_color_genlist_item_selected_cb,
+ pUserData);
+ pSubtitleBGColor->nListCount++;
+ elm_genlist_item_append(pObj,
+ pSubtitleBGColor->st_SubtitleBGColor_Itc,
+ (void *)
+ VP_PLAY_STRING_SUBTITLE_COLOR_BLACK, NULL,
+ ELM_GENLIST_ITEM_NONE,
+ __vp_subtitle_bg_color_genlist_item_selected_cb,
+ pUserData);
+ pSubtitleBGColor->nListCount++;
+ elm_genlist_item_append(pObj,
+ pSubtitleBGColor->st_SubtitleBGColor_Itc,
+ (void *)
+ VP_PLAY_STRING_SUBTITLE_COLOR_WHITE, NULL,
+ ELM_GENLIST_ITEM_NONE,
+ __vp_subtitle_bg_color_genlist_item_selected_cb,
+ pUserData);
+ pSubtitleBGColor->nListCount++;
+ }
+
+ return TRUE;
+}
+
+/* external functions */
+/**
+ *
+ * @param pParent
+ * @param pCloseCb
+ * @param nDefaultColor
+ * @return
+ */
+subtitle_bg_color_handle vp_subtitle_bg_color_create(Evas_Object *
+ pParent,
+ PopupCloseCbFunc
+ pCloseCb,
+ int nDefaultColor)
+{
+ if (pParent == NULL) {
+ VideoLogError("pParent is NULL");
+ return NULL;
+ }
+
+ SubtitleBGColorPopup *pSubtitleBGColor = NULL;
+
+ pSubtitleBGColor = calloc(1, sizeof(SubtitleBGColorPopup));
+
+ if (pSubtitleBGColor == NULL) {
+ VideoLogError("pSubtitleBGColor alloc fail");
+ return NULL;
+ }
+
+ pSubtitleBGColor->pParent = pParent;
+ pSubtitleBGColor->pCloseCb = pCloseCb;
+
+ pSubtitleBGColor->pPopup =
+ vp_popup_create(pParent, POPUP_STYLE_MENU_LIST_NO_CANCEL_BTN,
+ VP_PLAY_STRING_SUBTITLE_BG_COLOR, NULL, 0.0, NULL,
+ __vp_subtitle_bg_color_popup_key_event_cb,
+ __vp_subtitle_bg_color_popup_mouse_event_cb,
+ (void *) pSubtitleBGColor);
+ if (pSubtitleBGColor->pPopup == NULL) {
+ VideoLogError("vp_popup_create fail");
+ _vp_subtitle_bg_color_destroy_handle(pSubtitleBGColor);
+ return NULL;
+ }
+
+ pSubtitleBGColor->pGenList =
+ _vp_subtitle_bg_color_create_genlist(pSubtitleBGColor->pPopup);
+ if (pSubtitleBGColor->pGenList == NULL) {
+ VideoLogError("_vp_subtitle_bg_color_create_genlist fail");
+ _vp_subtitle_bg_color_destroy_handle(pSubtitleBGColor);
+ return NULL;
+ }
+ evas_object_data_set(pSubtitleBGColor->pGenList,
+ VP_SUBTITLE_BG_COLOR_GENLIST_DATA_KEY,
+ (void *) pSubtitleBGColor);
+ evas_object_smart_callback_add(pSubtitleBGColor->pGenList, "realized",
+ __vp_subtitle_bg_color_genlist_realized,
+ NULL);
+
+ pSubtitleBGColor->nDefaultIndex = nDefaultColor;
+ pSubtitleBGColor->pRadio = elm_radio_add(pSubtitleBGColor->pGenList);
+
+ if (!_vp_subtitle_bg_color_add_genlist_item
+ (pSubtitleBGColor->pGenList, (void *) pSubtitleBGColor)) {
+ VideoLogError("_vp_subtitle_bg_color_add_genlist_item fail");
+ _vp_subtitle_bg_color_destroy_handle(pSubtitleBGColor);
+ return NULL;
+ }
+
+ pSubtitleBGColor->currentBgColor = nDefaultColor;
+ evas_object_smart_callback_add(pSubtitleBGColor->pParent,
+ "rotation,changed",
+ __vp_subtitle_bg_color_popup_rotate_cb,
+ pSubtitleBGColor);
+
+ pSubtitleBGColor->pBox = elm_box_add(pSubtitleBGColor->pPopup);
+ vp_popup_set_popup_min_size(pSubtitleBGColor->pParent,
+ pSubtitleBGColor->pBox,
+ pSubtitleBGColor->nListCount,
+ VIDEO_POPUP_DEFAULT);
+
+ elm_box_pack_end(pSubtitleBGColor->pBox, pSubtitleBGColor->pGenList);
+ elm_object_content_set(pSubtitleBGColor->pPopup,
+ pSubtitleBGColor->pBox);
+
+ return pSubtitleBGColor;
+}
+
+/**
+ *
+ * @param pSubtitleBGColorHandle
+ */
+void vp_subtitle_bg_color_destroy(subtitle_bg_color_handle
+ pSubtitleBGColorHandle)
+{
+ if (pSubtitleBGColorHandle == NULL) {
+ VideoLogError("pSubtitleBGColorHandle is NULL");
+ return;
+ }
+
+ SubtitleBGColorPopup *pSubtitleBGColor =
+ (SubtitleBGColorPopup *) pSubtitleBGColorHandle;
+
+ _vp_subtitle_bg_color_destroy_handle(pSubtitleBGColor);
+
+}
+
+/**
+ *
+ * @param pSubtitleBGColorHandle
+ * @return
+ */
+bool vp_subtitle_bg_color_realize(subtitle_bg_color_handle
+ pSubtitleBGColorHandle)
+{
+ if (pSubtitleBGColorHandle == NULL) {
+ VideoLogError("pSubtitleBGColorHandle is NULL");
+ return FALSE;
+ }
+
+ SubtitleBGColorPopup *pSubtitleBGColor =
+ (SubtitleBGColorPopup *) pSubtitleBGColorHandle;
+
+ evas_object_show(pSubtitleBGColor->pPopup);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pSubtitleBGColorHandle
+ * @return
+ */
+bool vp_subtitle_bg_color_unrealize(subtitle_bg_color_handle
+ pSubtitleBGColorHandle)
+{
+ if (pSubtitleBGColorHandle == NULL) {
+ VideoLogError("pSubtitleBGColorHandle is NULL");
+ return FALSE;
+ }
+
+ SubtitleBGColorPopup *pSubtitleBGColor =
+ (SubtitleBGColorPopup *) pSubtitleBGColorHandle;
+
+ evas_object_hide(pSubtitleBGColor->pPopup);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pSubtitleBGColorHandle
+ * @param pUserData
+ * @return
+ */
+bool vp_subtitle_bg_color_set_user_data(subtitle_bg_color_handle
+ pSubtitleBGColorHandle,
+ void *pUserData)
+{
+ if (pSubtitleBGColorHandle == NULL) {
+ VideoLogError("pSubtitleBGColorHandle is NULL");
+ return FALSE;
+ }
+
+ SubtitleBGColorPopup *pSubtitleBGColor =
+ (SubtitleBGColorPopup *) pSubtitleBGColorHandle;
+
+ pSubtitleBGColor->pUserData = pUserData;
+
+ return TRUE;
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "vp-play-string-define.h"
+#include "vp-play-value-define.h"
+#include "vp-play-type-define.h"
+#include "vp-play-macro-define.h"
+
+#include "vp-subtitle-color.h"
+#include "vp-play-button.h"
+#include "vp-play-util.h"
+#include "vp-play-preference.h"
+
+/* check temp */
+#include "vp-play-log.h"
+
+#define VP_SUBTITLE_COLOR_GENLIST_DATA_KEY "vp.subtitle.color.genlist"
+#define VP_PLAY_OPACITY_MAX_VALUE 100
+#define VP_PLAY_OPACITY_MIN_VALUE 0
+
+typedef struct _SubtitleColorplane_Data {
+ Evas_Object *layout;
+ Evas_Object *colorselector;
+ Elm_Object_Item *it_last;
+ Elm_Object_Item *sel_it;
+ Eina_Bool changed;
+ int r, g, b, a;
+} SubtitleColorplaneData;
+
+typedef struct _SubtitleColorPopup {
+ Evas_Object *pParent;
+ Evas_Object *pPopup;
+#ifndef SUBTITLE_K_FEATURE
+ Evas_Object *pRadio;
+#else
+ Evas_Object *pLayout;
+ Evas_Object *pLayoutOut;
+ Evas_Object *pScroller;
+ Evas_Object *pOkButton;
+ Evas_Object *pCancelButton;
+ Evas_Object *pDelButton;
+ Evas_Object *pAddButton;
+ Evas_Object *pSlider;
+ int nOpacityVal;
+ SubtitleColorUpdateCbFunc pUpdateCb;
+#endif
+ Evas_Object *pButton;
+ Evas_Object *pBox;
+ Evas_Object *pGenList;
+ Elm_Genlist_Item_Class *st_SubtitleFontColor_Itc;
+
+ int nDefaultIndex;
+ int nListCount;
+
+ void *pUserData;
+ SubtitlePopupCloseCbFunc pCloseCb;
+ video_play_subtitle_color_t currentFontColor;
+ SubtitleColorplaneData *pColorplaneData;
+ char *pCurrentColorHex;
+} SubtitleColorPopup;
+
+/**
+ *
+ * @param pSubtitleColor
+ */
+static void _vp_subtitle_color_destroy_handle(SubtitleColorPopup *
+ pSubtitleColor);
+
+#ifndef SUBTITLE_K_FEATURE
+static void __vp_subtitle_color_genlist_item_selected_cb(void *pUserData,
+ Evas_Object *
+ pObject,
+ void *pEventInfo);
+
+static void __vp_subtitle_color_genlist_realized(void *data,
+ Evas_Object * obj,
+ void *event_info)
+{
+ VP_GENLIST_HIDE_BOTTOMLINE(data, obj, event_info);
+}
+#endif
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __vp_subtitle_color_popup_rotate_cb(void *data,
+ Evas_Object * obj,
+ void *event_info)
+{
+ SubtitleColorPopup *pSubtitleColor = (SubtitleColorPopup *) data;
+ if (!pSubtitleColor) {
+ VideoLogError("pSubtitleColor IS null");
+ return;
+ }
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VP_PLAY_SUBTITLE_COLOR_POPUP_EDJ);
+ free(path);
+#ifndef SUBTITLE_K_FEATURE
+ if (pSubtitleColor->nListCount < VP_POPUP_MIN_ITEMS) {
+ return;
+ }
+ vp_popup_set_popup_min_size(pSubtitleColor->pParent,
+ pSubtitleColor->pBox,
+ pSubtitleColor->nListCount,
+ VIDEO_POPUP_DEFAULT);
+#else
+ int nRotation = elm_win_rotation_get(pSubtitleColor->pParent);
+ if (nRotation == 90 || nRotation == 270)
+ elm_layout_file_set(pSubtitleColor->pLayoutOut,
+ edj_path,
+ "pv.subtitle.scroller.layout.landscape");
+ else
+ elm_layout_file_set(pSubtitleColor->pLayoutOut,
+ edj_path, "pv.subtitle.scroller.layout");
+#endif
+}
+
+#ifndef SUBTITLE_K_FEATURE
+
+/* callback functions */
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pPart
+ * @return
+ */
+static char *__vp_subtitle_color_genlist_text_get_cb(const void
+ *pUserData,
+ Evas_Object * pObj,
+ const char *pPart)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return NULL;
+ }
+
+ char *szTxt = (char *) pUserData;
+
+ if (!strcmp(pPart, "elm.text")) {
+ return strdup(szTxt);
+ }
+
+ return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pPart
+ * @return
+ */
+static Evas_Object *__vp_subtitle_color_genlist_content_get_cb(const void
+ *pUserData,
+ Evas_Object
+ *pObj,
+ const char
+ *pPart)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return NULL;
+ }
+
+ char *szTxt = (char *) pUserData;
+
+ if (!strcmp(pPart, "elm.icon")) {
+ Evas_Object *pRadioObj = NULL;
+
+ SubtitleColorPopup *pSubtitleColor =
+ (SubtitleColorPopup *) evas_object_data_get(pObj,
+ VP_SUBTITLE_COLOR_GENLIST_DATA_KEY);
+ if (pSubtitleColor == NULL) {
+ VideoLogWarning("evas_object_data_get is fail");
+ return NULL;
+ }
+ video_play_subtitle_color_t nColor = VIDEO_SUBTITLE_COLOR_BLACK;
+ if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_COLOR_BLACK)) {
+ nColor = VIDEO_SUBTITLE_COLOR_BLACK;
+ } else if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_COLOR_BLUE)) {
+ nColor = VIDEO_SUBTITLE_COLOR_BLUE;
+ } else if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_COLOR_GREEN)) {
+ nColor = VIDEO_SUBTITLE_COLOR_GREEN;
+ } else if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_COLOR_WHITE)) {
+ nColor = VIDEO_SUBTITLE_COLOR_WHITE;
+ }
+
+ pRadioObj = elm_radio_add(pObj);
+ elm_radio_state_value_set(pRadioObj, nColor);
+ elm_radio_group_add(pRadioObj, pSubtitleColor->pRadio);
+ elm_radio_value_set(pSubtitleColor->pRadio,
+ pSubtitleColor->currentFontColor);
+ evas_object_smart_callback_add(pRadioObj, "changed",
+ __vp_subtitle_color_genlist_item_selected_cb,
+ pSubtitleColor);
+ evas_object_show(pRadioObj);
+
+ return pRadioObj;
+ }
+
+ return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __vp_subtitle_color_genlist_item_selected_cb(void *pUserData,
+ Evas_Object *
+ pObject,
+ void *pEventInfo)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+ if (pEventInfo == NULL) {
+ VideoLogError("pEventInfo is NULL");
+ return;
+ }
+
+ Elm_Object_Item *pItem = (Elm_Object_Item *) pEventInfo;
+ Elm_Object_Item *pSelectedItem =
+ elm_genlist_selected_item_get(pObject);
+ if (pSelectedItem) {
+ elm_genlist_item_selected_set(pSelectedItem, EINA_FALSE);
+ }
+ char *szTxt = (char *) elm_object_item_data_get(pItem);
+
+ SubtitleColorPopup *pSubtitleColor = (SubtitleColorPopup *) pUserData;
+
+ if (szTxt == NULL) {
+ VideoLogError("szTxt is NULL");
+ return;
+ }
+
+ video_play_subtitle_color_t nColor = VIDEO_SUBTITLE_COLOR_BLACK;
+ if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_COLOR_BLACK)) {
+ nColor = VIDEO_SUBTITLE_COLOR_BLACK;
+ } else if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_COLOR_BLUE)) {
+ nColor = VIDEO_SUBTITLE_COLOR_BLUE;
+ } else if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_COLOR_GREEN)) {
+ nColor = VIDEO_SUBTITLE_COLOR_GREEN;
+ } else if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_COLOR_WHITE)) {
+ nColor = VIDEO_SUBTITLE_COLOR_WHITE;
+ }
+
+ pSubtitleColor->currentFontColor = nColor;
+ if (pSubtitleColor->pCloseCb) {
+ pSubtitleColor->pCloseCb(nColor, FALSE,
+ (void *) pSubtitleColor->pUserData);
+ }
+}
+
+#endif
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_subtitle_color_popup_key_event_cb(void *pUserData,
+ Evas_Object * pObj,
+ void *pEventInfo)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ SubtitleColorPopup *pSubtitleColor = (SubtitleColorPopup *) pUserData;
+
+ if (pSubtitleColor->pCloseCb) {
+#ifndef SUBTITLE_K_FEATURE
+ pSubtitleColor->pCloseCb(-1, FALSE,
+ (void *) pSubtitleColor->pUserData);
+#else
+ pSubtitleColor->pCloseCb(pSubtitleColor->pCurrentColorHex, FALSE,
+ (void *) pSubtitleColor->pUserData);
+#endif
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pEvas
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_subtitle_color_popup_mouse_event_cb(void *pUserData,
+ Evas * pEvas,
+ Evas_Object * pObj,
+ void *pEventInfo)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ if (pEventInfo == NULL) {
+ VideoLogError("pEventInfo is NULL");
+ return;
+ }
+
+ Evas_Event_Mouse_Up *ev = pEventInfo;
+
+ if (ev->button == 3) {
+ SubtitleColorPopup *pSubtitleColor =
+ (SubtitleColorPopup *) pUserData;
+
+#ifndef SUBTITLE_K_FEATURE
+ pSubtitleColor->pCloseCb(-1, FALSE,
+ (void *) pSubtitleColor->pUserData);
+#else
+ pSubtitleColor->pCloseCb(pSubtitleColor->pCurrentColorHex, FALSE,
+ (void *) pSubtitleColor->pUserData);
+#endif
+ }
+}
+
+/* internal functions */
+/**
+ *
+ * @param colorHex
+ * @return
+ */
+int _vp_subtitle_color_get_opacity(char *colorHex)
+{
+ if (colorHex == NULL) {
+ VideoLogError("colorHex is NULL");
+ return 0;
+ }
+
+ char *szOpacity = g_strndup(colorHex + 7, 2);
+
+ float fOpacity = strtol(szOpacity, NULL, 16);
+
+ VP_FREE(szOpacity);
+
+ int nOpacity = (int) ((fOpacity * 100) / 255.0 + 0.5);
+
+ VideoLogInfo("nOpacity", nOpacity);
+
+ return nOpacity;
+}
+
+/**
+ *
+ * @param colorHex
+ * @return
+ */
+int _vp_subtitle_color_get_platte_index(char *colorHex)
+{
+ if (colorHex == NULL) {
+ VideoLogError("colorHex is NULL");
+ return 0;
+ }
+ int nIndex = 0;
+ char *pColorHex = g_strndup(colorHex, 7);
+ VideoLogInfo("pColorHex %s", pColorHex);
+ if (pColorHex == NULL) {
+ VideoLogError("pColorHex is NULL");
+ return 0;
+ }
+ if (!strcmp(pColorHex, "#ffffff")) {
+ nIndex = 0;
+ } else if (!strcmp(pColorHex, "#ffff00")) {
+ nIndex = 1;
+ } else if (!strcmp(pColorHex, "#ff8080")) {
+ nIndex = 2;
+ } else if (!strcmp(pColorHex, "#ff0000")) {
+ nIndex = 3;
+ } else if (!strcmp(pColorHex, "#f74acd")) {
+ nIndex = 4;
+ } else if (!strcmp(pColorHex, "#cd84ff")) {
+ nIndex = 5;
+ } else if (!strcmp(pColorHex, "#7037de")) {
+ nIndex = 6;
+ } else if (!strcmp(pColorHex, "#5add32")) {
+ nIndex = 7;
+ } else if (!strcmp(pColorHex, "#1e8d31")) {
+ nIndex = 8;
+ } else if (!strcmp(pColorHex, "#38a8fe")) {
+ nIndex = 9;
+ } else if (!strcmp(pColorHex, "#0000ff")) {
+ nIndex = 10;
+ } else if (!strcmp(pColorHex, "#09296b")) {
+ nIndex = 11;
+ } else if (!strcmp(pColorHex, "#a7a4a5")) {
+ nIndex = 12;
+ } else if (!strcmp(pColorHex, "#000000")) {
+ nIndex = 13;
+ }
+
+ VP_FREE(pColorHex);
+ return nIndex;
+}
+
+/**
+ *
+ * @param pColor
+ * @param nOpacity
+ * @return
+ */
+char *_vp_subtitle_color_get_select_color(char *pColor, int nOpacity)
+{
+ if (pColor == NULL) {
+ VideoLogError("colorHex is NULL");
+ return 0;
+ }
+
+ int nOpacitytmp = (int) (((float) (nOpacity * 255) / 100.0) + 0.5);
+
+ char *pOpacityHex = g_strdup_printf("%02x", nOpacitytmp);
+
+ char *polorHex = g_strndup(pColor, 7);
+
+ char *pColorHex = g_strdup_printf("%s%s", polorHex, pOpacityHex);
+
+ VP_FREE(pOpacityHex);
+ VP_FREE(polorHex);
+
+ return pColorHex;
+}
+
+/**
+ *
+ * @param pSubtitleColor
+ */
+static void _vp_subtitle_color_destroy_handle(SubtitleColorPopup *
+ pSubtitleColor)
+{
+ if (pSubtitleColor == NULL) {
+ VideoLogError("pSubtitleColor is NULL");
+ return;
+ }
+
+ evas_object_smart_callback_del(pSubtitleColor->pParent,
+ "rotation,changed",
+ __vp_subtitle_color_popup_rotate_cb);
+#ifndef SUBTITLE_K_FEATURE
+ evas_object_smart_callback_del(pSubtitleColor->pGenList, "realized",
+ __vp_subtitle_color_genlist_realized);
+#endif
+
+
+#ifndef SUBTITLE_K_FEATURE
+ VP_EVAS_DEL(pSubtitleColor->pRadio);
+ VP_EVAS_DEL(pSubtitleColor->pGenList);
+ VP_EVAS_DEL(pSubtitleColor->pButton);
+ VP_EVAS_DEL(pSubtitleColor->pBox);
+#else
+ VP_FREE(pSubtitleColor->pColorplaneData);
+ pSubtitleColor->pColorplaneData = NULL;
+
+ VP_FREE(pSubtitleColor->pCurrentColorHex);
+ pSubtitleColor->pCurrentColorHex = NULL;
+
+ VP_EVAS_DEL(pSubtitleColor->pOkButton);
+ VP_EVAS_DEL(pSubtitleColor->pCancelButton);
+#endif
+ if (pSubtitleColor->st_SubtitleFontColor_Itc) {
+ elm_genlist_item_class_free
+ (pSubtitleColor->st_SubtitleFontColor_Itc);
+ pSubtitleColor->st_SubtitleFontColor_Itc = NULL;
+ }
+
+ VP_EVAS_DEL(pSubtitleColor->pPopup);
+
+ VP_FREE(pSubtitleColor);
+}
+
+#ifndef SUBTITLE_K_FEATURE
+/**
+ *
+ * @param pParent
+ * @return
+ */
+static Evas_Object *_vp_subtitle_color_create_genlist(Evas_Object *
+ pParent)
+{
+ if (pParent == NULL) {
+ VideoLogError("pParent is NULL");
+ return NULL;
+ }
+
+ Evas_Object *pObj = NULL;
+
+ pObj = elm_genlist_add(pParent);
+ evas_object_size_hint_weight_set(pObj, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(pObj, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_show(pObj);
+ return pObj;
+}
+
+/**
+ *
+ * @param pObj
+ * @param pUserData
+ * @return
+ */
+static bool _vp_subtitle_color_add_genlist_item(Evas_Object * pObj,
+ void *pUserData)
+{
+ if (pObj == NULL) {
+ VideoLogError("pObj is NULL");
+ return FALSE;
+ }
+
+ SubtitleColorPopup *pSubtitleColor = (SubtitleColorPopup *) pUserData;
+
+ if (pSubtitleColor->st_SubtitleFontColor_Itc) {
+ elm_genlist_item_class_free
+ (pSubtitleColor->st_SubtitleFontColor_Itc);
+ pSubtitleColor->st_SubtitleFontColor_Itc = NULL;
+ }
+
+ pSubtitleColor->st_SubtitleFontColor_Itc =
+ elm_genlist_item_class_new();
+ pSubtitleColor->st_SubtitleFontColor_Itc->version =
+ ELM_GENLIST_ITEM_CLASS_VERSION;
+ pSubtitleColor->st_SubtitleFontColor_Itc->item_style =
+ "1text.1icon.3/popup";
+ pSubtitleColor->st_SubtitleFontColor_Itc->func.text_get =
+ (void *) __vp_subtitle_color_genlist_text_get_cb;
+ pSubtitleColor->st_SubtitleFontColor_Itc->func.content_get =
+ (void *) __vp_subtitle_color_genlist_content_get_cb;
+ pSubtitleColor->st_SubtitleFontColor_Itc->func.state_get = NULL;
+ pSubtitleColor->st_SubtitleFontColor_Itc->func.del = NULL;
+ pSubtitleColor->nListCount = 0;
+
+ elm_genlist_item_append(pObj,
+ pSubtitleColor->st_SubtitleFontColor_Itc,
+ (void *) VP_PLAY_STRING_SUBTITLE_COLOR_WHITE,
+ NULL, ELM_GENLIST_ITEM_NONE,
+ __vp_subtitle_color_genlist_item_selected_cb,
+ pUserData);
+ pSubtitleColor->nListCount++;
+ elm_genlist_item_append(pObj,
+ pSubtitleColor->st_SubtitleFontColor_Itc,
+ (void *) VP_PLAY_STRING_SUBTITLE_COLOR_BLUE,
+ NULL, ELM_GENLIST_ITEM_NONE,
+ __vp_subtitle_color_genlist_item_selected_cb,
+ pUserData);
+ pSubtitleColor->nListCount++;
+ elm_genlist_item_append(pObj,
+ pSubtitleColor->st_SubtitleFontColor_Itc,
+ (void *) VP_PLAY_STRING_SUBTITLE_COLOR_GREEN,
+ NULL, ELM_GENLIST_ITEM_NONE,
+ __vp_subtitle_color_genlist_item_selected_cb,
+ pUserData);
+ pSubtitleColor->nListCount++;
+ elm_genlist_item_append(pObj,
+ pSubtitleColor->st_SubtitleFontColor_Itc,
+ (void *) VP_PLAY_STRING_SUBTITLE_COLOR_BLACK,
+ NULL, ELM_GENLIST_ITEM_NONE,
+ __vp_subtitle_color_genlist_item_selected_cb,
+ pUserData);
+ pSubtitleColor->nListCount++;
+
+ return TRUE;
+}
+#else
+
+/* callback functions */
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_play_subtitle_color_popup_ok_btn_cb(void *pUserData,
+ Evas_Object * pObj,
+ void *pEventInfo)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ SubtitleColorPopup *pSubtitleColor = (SubtitleColorPopup *) pUserData;
+ char *pColorHex =
+ _vp_subtitle_color_get_select_color
+ (pSubtitleColor->pCurrentColorHex,
+ pSubtitleColor->nOpacityVal);
+
+ if (pSubtitleColor->pCloseCb) {
+ pSubtitleColor->pCloseCb(pColorHex, TRUE,
+ (void *) pSubtitleColor->pUserData);
+ }
+ VP_FREE(pColorHex);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_play_subtitle_color_popup_cancel_btn_cb(void *pUserData,
+ Evas_Object *
+ pObj,
+ void *pEventInfo)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ SubtitleColorPopup *pSubtitleColor = (SubtitleColorPopup *) pUserData;
+
+ if (pSubtitleColor->pCloseCb) {
+ pSubtitleColor->pCloseCb(pSubtitleColor->pCurrentColorHex, FALSE,
+ (void *) pSubtitleColor->pUserData);
+ }
+}
+
+/**
+ *
+ * @param pParent
+ * @param pUserData
+ * @return
+ */
+static Evas_Object
+ *_vp_play_subtitle_color_popup_create_ok_button(Evas_Object *pParent,
+ void *pUserData)
+{
+ if (pParent == NULL) {
+ VideoLogError("pParent is NULL");
+ return NULL;
+ }
+
+ Evas_Object *pObj = NULL;
+ pObj = elm_button_add(pParent);
+ elm_object_style_set(pObj, "popup_button/default");
+ elm_object_domain_translatable_text_set(pObj, VP_SYS_STR_PREFIX,
+ VP_PLAY_STRING_COM_DONE);
+ elm_object_part_content_set(pParent, "button2", pObj);
+ evas_object_smart_callback_add(pObj, "clicked",
+ __vp_play_subtitle_color_popup_ok_btn_cb,
+ pUserData);
+ evas_object_show(pObj);
+
+ return pObj;
+}
+
+/**
+ *
+ * @param pParent
+ * @param pUserData
+ * @return
+ */
+static Evas_Object
+ *_vp_play_subtitle_color_popup_create_cancel_button(Evas_Object
+ *pParent,
+ void *pUserData)
+{
+ if (pParent == NULL) {
+ VideoLogError("pParent is NULL");
+ return NULL;
+ }
+
+ Evas_Object *pObj = NULL;
+ pObj = elm_button_add(pParent);
+ elm_object_style_set(pObj, "popup_button/default");
+ elm_object_domain_translatable_text_set(pObj, VP_SYS_STR_PREFIX,
+ VP_PLAY_STRING_COM_CANCEL_IDS);
+ elm_object_part_content_set(pParent, "button1", pObj);
+ evas_object_smart_callback_add(pObj, "clicked",
+ __vp_play_subtitle_color_popup_cancel_btn_cb,
+ pUserData);
+ evas_object_show(pObj);
+
+ return pObj;
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void _vp_play_subtitle_color_popup_colorpalette_cb(void *data,
+ Evas_Object *
+ obj,
+ void *event_info)
+{
+ if (data == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+ VideoLogInfo("");
+
+ SubtitleColorPopup *pSubtitleColor = (SubtitleColorPopup *) data;
+
+ int r = 255, g = 255, b = 255, a = 255;
+ SubtitleColorplaneData *cp = pSubtitleColor->pColorplaneData;
+ Elm_Object_Item *color_it = (Elm_Object_Item *) event_info;
+ cp->sel_it = color_it;
+ elm_colorselector_palette_item_color_get(color_it, &r, &g, &b, &a);
+ elm_colorselector_color_set(cp->colorselector, r, g, b, a);
+
+ VP_FREE(pSubtitleColor->pCurrentColorHex);
+ pSubtitleColor->pCurrentColorHex =
+ vp_play_util_convert_rgba_to_hex(r, g, b, a);
+
+ char *color_fmt = "<color=%s>%s</color>";
+ char *caption_txt =
+ g_strdup_printf(color_fmt, pSubtitleColor->pCurrentColorHex,
+ VP_PLAY_STRING_PREVIEW_SUBTITLE_CC);
+ elm_object_part_text_set(cp->layout, "pv.subtitle-color-popup.subject",
+ caption_txt);
+
+ //Need Free;
+ free(caption_txt);
+ VideoLogInfo("p = %s", pSubtitleColor->pCurrentColorHex);
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void _vp_play_subtitle_color_popup_colorplane_cb(void *data,
+ Evas_Object * obj,
+ void *event_info)
+{
+ if (data == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+ VideoLogInfo("");
+
+ SubtitleColorPopup *pSubtitleColor = (SubtitleColorPopup *) data;
+
+ int r = 255, g = 255, b = 255, a = 255;
+ SubtitleColorplaneData *cp = pSubtitleColor->pColorplaneData;
+ if (!cp->changed) {
+ elm_object_item_signal_emit(cp->it_last, "elm,state,custom,hide",
+ "");
+ cp->changed = EINA_TRUE;
+ }
+ elm_colorselector_color_get(cp->colorselector, &r, &g, &b, &a);
+ cp->r = r;
+ cp->g = g;
+ cp->b = b;
+ cp->a = a;
+
+ VP_FREE(pSubtitleColor->pCurrentColorHex);
+ pSubtitleColor->pCurrentColorHex =
+ vp_play_util_convert_rgba_to_hex(r, g, b, a);
+
+}
+
+/**
+ *
+ * @param layout
+ * @param pSubtitleColorPopup
+ */
+static void _vp_play_subtitle_color_popup_create_colorpalette(Evas_Object *
+ layout,
+ SubtitleColorPopup
+ *
+ pSubtitleColorPopup)
+{
+ if (pSubtitleColorPopup == NULL) {
+ VideoLogError("pSubtitleColorPopup is NULL");
+ return;
+ }
+
+ if (pSubtitleColorPopup->pColorplaneData == NULL) {
+ VideoLogError("pSubtitleColorPopup is NULL");
+ return;
+ }
+ VideoLogInfo("");
+
+ SubtitleColorplaneData *cp = pSubtitleColorPopup->pColorplaneData;
+
+ int nIndex =
+ _vp_subtitle_color_get_platte_index
+ (pSubtitleColorPopup->pCurrentColorHex);
+
+ /* add color palette widget */
+ Eina_List *last_list;
+ const Eina_List *color_list;
+
+ cp->layout = layout;
+ cp->colorselector = elm_colorselector_add(layout);
+ elm_object_style_set(cp->colorselector, "colorplane");
+ evas_object_size_hint_fill_set(cp->colorselector, EVAS_HINT_FILL,
+ EVAS_HINT_FILL);
+ evas_object_size_hint_weight_set(cp->colorselector, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ elm_object_part_content_set(layout,
+ "pv.subtitle-color-popup.colorpalette.swallow",
+ cp->colorselector);
+ evas_object_smart_callback_add(cp->colorselector,
+ "color,item,selected",
+ _vp_play_subtitle_color_popup_colorpalette_cb,
+ pSubtitleColorPopup);
+
+ edje_object_message_signal_process(elm_layout_edje_get(layout));
+ elm_colorselector_palette_color_add(cp->colorselector, 255, 255, 255, 255); //white
+ elm_colorselector_palette_color_add(cp->colorselector, 255, 255, 0, 255); //yellow
+ elm_colorselector_palette_color_add(cp->colorselector, 255, 128, 128, 255); //Orange
+ elm_colorselector_palette_color_add(cp->colorselector, 255, 0, 0, 255); //red
+ elm_colorselector_palette_color_add(cp->colorselector, 247, 74, 205, 255); //pink
+ elm_colorselector_palette_color_add(cp->colorselector, 205, 132, 255, 255); //violet
+ elm_colorselector_palette_color_add(cp->colorselector, 112, 55, 222, 255); //Blue violet
+ elm_colorselector_palette_color_add(cp->colorselector, 90, 221, 50, 255); //lime-green
+ elm_colorselector_palette_color_add(cp->colorselector, 30, 141, 33, 255); //forest-green
+ elm_colorselector_palette_color_add(cp->colorselector, 56, 168, 254, 255); //dodger blue
+ elm_colorselector_palette_color_add(cp->colorselector, 0, 0, 255, 255); //blue
+ elm_colorselector_palette_color_add(cp->colorselector, 9, 41, 107, 255); //sapphire
+ elm_colorselector_palette_color_add(cp->colorselector, 167, 164, 165, 255); //grey
+ elm_colorselector_palette_color_add(cp->colorselector, 0, 0, 0, 255); //black
+
+ color_list = elm_colorselector_palette_items_get(cp->colorselector);
+ last_list = eina_list_last(color_list);
+ cp->it_last = eina_list_data_get(last_list);
+ cp->changed = EINA_FALSE;
+ evas_object_smart_callback_add(cp->colorselector, "changed",
+ _vp_play_subtitle_color_popup_colorplane_cb,
+ pSubtitleColorPopup);
+ cp->sel_it = eina_list_nth(color_list, nIndex);
+ elm_object_item_signal_emit(cp->sel_it, "elm,state,selected", "elm");
+
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+static Evas_Object
+ *_vp_play_subtitle_color_popup_create_layout(Evas_Object * pParent)
+{
+ if (pParent == NULL) {
+ VideoLogError("pParent is NULL");
+ return NULL;
+ }
+
+ Evas_Object *pLayout = elm_layout_add(pParent);
+ if (pLayout == NULL) {
+ VideoLogError("pLayout object is NULL");
+ return NULL;
+ }
+ char edj_path[1024] = { 0 };
+ char *szColorHex = NULL;
+ int r = 255, g = 255, b = 255, a = 255;
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VP_PLAY_SUBTITLE_COLOR_POPUP_EDJ);
+ free(path);
+ elm_layout_file_set(pLayout, edj_path,
+ VP_PLAY_EDJ_GROUP_PLAY_SUBTITLE_COLOR_POPUP);
+
+ evas_object_size_hint_weight_set(pLayout, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(pLayout, EVAS_HINT_FILL,
+ EVAS_HINT_FILL);
+
+ if (vp_play_preference_get_subtitle_font_color_hex_key(&szColorHex) ==
+ TRUE) {
+ vp_play_util_convert_hex_to_rgba(szColorHex, &r, &g, &b, &a);
+ char *color_fmt = "<color=%s>%s</color>";
+ char *caption_txt =
+ g_strdup_printf(color_fmt, szColorHex,
+ VP_PLAY_STRING_PREVIEW_SUBTITLE_CC);
+ elm_object_part_text_set(pLayout,
+ "pv.subtitle-color-popup.subject",
+ caption_txt);
+ free(caption_txt);
+ VP_FREE(szColorHex);
+ }
+
+
+ elm_object_part_text_set(pLayout, "pv.subtitle-color-popup.subject",
+ VP_PLAY_STRING_PREVIEW_SUBTITLE_CC);
+ evas_object_show(pLayout);
+
+ return pLayout;
+
+}
+
+/**
+ *
+ * @param pSubtitleColorPopup
+ */
+static void _vp_play_subtitle_color_update_text(SubtitleColorPopup *
+ pSubtitleColorPopup)
+{
+ if (pSubtitleColorPopup == NULL) {
+ VideoLogError("pSubtitleColorPopup is NULL");
+ return;
+ }
+
+ char szValue[6] = { 0, };
+
+ snprintf(szValue, 6, "%2d %%", (int) pSubtitleColorPopup->nOpacityVal);
+ elm_object_part_text_set(pSubtitleColorPopup->pLayout,
+ "pv.subtitle-color-popup.opacity.percent",
+ szValue);
+
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEvent
+ */
+static void __vp_play_subtitle_color_btn_clicked_cb(void *pUserData,
+ Evas_Object * pObj,
+ void *pEvent)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ SubtitleColorPopup *pSubtitleColorPopup =
+ (SubtitleColorPopup *) pUserData;
+
+ int nValue = elm_slider_value_get(pSubtitleColorPopup->pSlider);
+ VideoLogDebug("== %d ==", nValue);
+
+ if (pObj == pSubtitleColorPopup->pAddButton) {
+ nValue += 1;
+ if (nValue > (int) VP_PLAY_OPACITY_MAX_VALUE) {
+ nValue = (int) VP_PLAY_OPACITY_MAX_VALUE;
+ }
+ elm_slider_value_set(pSubtitleColorPopup->pSlider, nValue);
+
+ if (nValue != pSubtitleColorPopup->nOpacityVal) {
+ pSubtitleColorPopup->nOpacityVal = nValue;
+ _vp_play_subtitle_color_update_text(pSubtitleColorPopup);
+ }
+
+ } else if (pObj == pSubtitleColorPopup->pDelButton) {
+ nValue -= 1;
+ if (nValue < (double) VP_PLAY_OPACITY_MIN_VALUE) {
+ nValue = (double) VP_PLAY_OPACITY_MIN_VALUE;
+ }
+
+ elm_slider_value_set(pSubtitleColorPopup->pSlider, nValue);
+ if (nValue != pSubtitleColorPopup->nOpacityVal) {
+ pSubtitleColorPopup->nOpacityVal = nValue;
+ _vp_play_subtitle_color_update_text(pSubtitleColorPopup);
+ }
+ }
+}
+
+/**
+ *
+ * @param pParent
+ * @param pUserData
+ * @return
+ */
+static bool _vp_play_subtitle_color_popup_create_button(Evas_Object *
+ pParent,
+ void *pUserData)
+{
+ if (pParent == NULL) {
+ VideoLogError("pParent is NULL");
+ return FALSE;
+ }
+
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VP_PLAY_RESROUCE_EDJ_PATH);
+ free(path);
+ SubtitleColorPopup *pSubtitleColorPopup =
+ (SubtitleColorPopup *) pUserData;
+
+ pSubtitleColorPopup->pDelButton =
+ vp_button_create(pParent, "custom/flat_63_78/default",
+ NULL, (Evas_Smart_Cb)
+ __vp_play_subtitle_color_btn_clicked_cb,
+ (Evas_Smart_Cb) NULL, (Evas_Smart_Cb) NULL,
+ (void *) pSubtitleColorPopup);
+
+ pSubtitleColorPopup->pAddButton =
+ vp_button_create(pParent, "custom/flat_63_78/default",
+ NULL, (Evas_Smart_Cb)
+ __vp_play_subtitle_color_btn_clicked_cb,
+ (Evas_Smart_Cb) NULL, (Evas_Smart_Cb) NULL,
+ (void *) pSubtitleColorPopup);
+
+ Evas_Object *pIcon = NULL;
+
+ pIcon =
+ vp_button_create_icon(pSubtitleColorPopup->pDelButton,
+ edj_path, VP_PLAY_RES_BUTTON_DEL);
+ elm_object_part_content_set(pSubtitleColorPopup->pDelButton,
+ VP_PLAY_SWALLOW_BUTTON_ICON, pIcon);
+
+ pIcon =
+ vp_button_create_icon(pSubtitleColorPopup->pDelButton,
+ edj_path, VP_PLAY_RES_BUTTON_DEL_PRESS);
+ elm_object_part_content_set(pSubtitleColorPopup->pDelButton,
+ VP_PLAY_SWALLOW_BUTTON_PRESS_ICON, pIcon);
+
+ pIcon =
+ vp_button_create_icon(pSubtitleColorPopup->pDelButton,
+ edj_path, VP_PLAY_RES_BUTTON_DEL);
+ elm_object_part_content_set(pSubtitleColorPopup->pDelButton,
+ VP_PLAY_SWALLOW_BUTTON_DIM_ICON, pIcon);
+
+ pIcon =
+ vp_button_create_icon(pSubtitleColorPopup->pAddButton,
+ edj_path, VP_PLAY_RES_BUTTON_ADD);
+ elm_object_part_content_set(pSubtitleColorPopup->pAddButton,
+ VP_PLAY_SWALLOW_BUTTON_ICON, pIcon);
+
+ pIcon =
+ vp_button_create_icon(pSubtitleColorPopup->pAddButton,
+ edj_path, VP_PLAY_RES_BUTTON_ADD_PRESS);
+ elm_object_part_content_set(pSubtitleColorPopup->pAddButton,
+ VP_PLAY_SWALLOW_BUTTON_PRESS_ICON, pIcon);
+
+ pIcon =
+ vp_button_create_icon(pSubtitleColorPopup->pAddButton,
+ edj_path, VP_PLAY_RES_BUTTON_ADD);
+ elm_object_part_content_set(pSubtitleColorPopup->pAddButton,
+ VP_PLAY_SWALLOW_BUTTON_DIM_ICON, pIcon);
+
+ elm_object_part_content_set(pParent, "elm.swallow.icon.1",
+ pSubtitleColorPopup->pDelButton);
+ elm_object_part_content_set(pParent, "elm.swallow.icon.2",
+ pSubtitleColorPopup->pAddButton);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_play_subtitle_color_popup_slider_change_cb(void
+ *pUserData,
+ Evas_Object *
+ pObj,
+ void
+ *pEventInfo)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+ SubtitleColorPopup *pSubtitleColor = (SubtitleColorPopup *) pUserData;
+
+ int nValue = elm_slider_value_get(pSubtitleColor->pSlider);
+ VideoLogDebug("== %d ==", nValue);
+
+ if (nValue != pSubtitleColor->nOpacityVal) {
+ pSubtitleColor->nOpacityVal = nValue;
+ _vp_play_subtitle_color_update_text(pSubtitleColor);
+ }
+
+ char szValue[6] = { 0, };
+ snprintf(szValue, 6, "%2d %%", (int) pSubtitleColor->nOpacityVal);
+ int realValue = atoi(szValue);
+
+ if (pSubtitleColor->nOpacityVal != realValue) {
+ elm_slider_value_set(pSubtitleColor->pSlider, (int) realValue);
+ pSubtitleColor->nOpacityVal = realValue;
+ }
+
+}
+
+/**
+ *
+ * @param pParent
+ * @param pUserData
+ * @return
+ */
+static Evas_Object
+ *_vp_play_subtitle_color_popup_create_slider(Evas_Object * pParent,
+ void *pUserData)
+{
+ if (pParent == NULL) {
+ VideoLogError("pParent is NULL");
+ return NULL;
+ }
+ Evas_Object *pObj = NULL;
+
+ pObj = elm_slider_add(pParent);
+ elm_slider_indicator_show_set(pObj, EINA_FALSE);
+ evas_object_size_hint_weight_set(pObj, EVAS_HINT_EXPAND, 0.0);
+ evas_object_size_hint_align_set(pObj, EVAS_HINT_FILL, 0.5);
+
+ elm_slider_min_max_set(pObj, 0, 100);
+ evas_object_smart_callback_add(pObj, "changed",
+ __vp_play_subtitle_color_popup_slider_change_cb,
+ pUserData);
+
+ return pObj;
+}
+
+#endif
+
+/* external functions */
+#ifndef SUBTITLE_K_FEATURE
+subtitle_color_handle vp_subtitle_color_create(Evas_Object * pParent,
+ SubtitlePopupCloseCbFunc
+ pCloseCb, int nDefaultColor)
+#else
+
+/**
+ *
+ * @param pParent
+ * @param pCloseCb
+ * @param pDefaultColor
+ * @return
+ */
+subtitle_color_handle vp_subtitle_color_hex_create(Evas_Object * pParent,
+ SubtitlePopupCloseCbFunc
+ pCloseCb,
+ char *pDefaultColor)
+#endif
+{
+ if (pParent == NULL) {
+ VideoLogError("pParent is NULL");
+ return NULL;
+ }
+
+ SubtitleColorPopup *pSubtitleColor = NULL;
+
+ pSubtitleColor = calloc(1, sizeof(SubtitleColorPopup));
+
+ if (pSubtitleColor == NULL) {
+ VideoLogError("pSubtitleColor alloc fail");
+ return NULL;
+ }
+
+ pSubtitleColor->pParent = pParent;
+ pSubtitleColor->pCloseCb = pCloseCb;
+
+#ifndef SUBTITLE_K_FEATURE
+ pSubtitleColor->pPopup =
+ vp_popup_create(pParent, POPUP_STYLE_MENU_LIST_NO_CANCEL_BTN,
+ VP_PLAY_STRING_SUBTITLE_TEXT, NULL, 0.0, NULL,
+ __vp_subtitle_color_popup_key_event_cb,
+ __vp_subtitle_color_popup_mouse_event_cb,
+ (void *) pSubtitleColor);
+#else
+ pSubtitleColor->pPopup =
+ vp_popup_create(pParent, POPUP_STYLE_EXPAND_WITH_CANCEL_BTN,
+ VP_PLAY_STRING_SUBTITLE_COLOR, NULL,
+ 0.0, NULL, __vp_subtitle_color_popup_key_event_cb,
+ __vp_subtitle_color_popup_mouse_event_cb,
+ (void *) pSubtitleColor);
+#endif
+ if (pSubtitleColor->pPopup == NULL) {
+ VideoLogError("vp_popup_create fail");
+ _vp_subtitle_color_destroy_handle(pSubtitleColor);
+ return NULL;
+ }
+ elm_popup_align_set(pSubtitleColor->pPopup, ELM_NOTIFY_ALIGN_FILL,
+ 1.0);
+
+#ifndef SUBTITLE_K_FEATURE
+ pSubtitleColor->pGenList =
+ _vp_subtitle_color_create_genlist(pSubtitleColor->pPopup);
+ if (pSubtitleColor->pGenList == NULL) {
+ VideoLogError("_vp_subtitle_color_create_genlist fail");
+ _vp_subtitle_color_destroy_handle(pSubtitleColor);
+ return NULL;
+ }
+ evas_object_data_set(pSubtitleColor->pGenList,
+ VP_SUBTITLE_COLOR_GENLIST_DATA_KEY,
+ (void *) pSubtitleColor);
+ evas_object_smart_callback_add(pSubtitleColor->pGenList, "realized",
+ __vp_subtitle_color_genlist_realized,
+ NULL);
+
+ pSubtitleColor->nDefaultIndex = nDefaultColor;
+ pSubtitleColor->pRadio = elm_radio_add(pSubtitleColor->pGenList);
+
+ if (!_vp_subtitle_color_add_genlist_item
+ (pSubtitleColor->pGenList, (void *) pSubtitleColor)) {
+ VideoLogError("_vp_subtitle_color_add_genlist_item fail");
+ return FALSE;
+ }
+ //elm_radio_value_set(pSubtitleColor->pRadio, nDefaultColor);
+ pSubtitleColor->currentFontColor = nDefaultColor;
+ evas_object_smart_callback_add(pSubtitleColor->pParent,
+ "rotation,changed",
+ __vp_subtitle_color_popup_rotate_cb,
+ pSubtitleColor);
+
+ pSubtitleColor->pBox = elm_box_add(pSubtitleColor->pPopup);
+ vp_popup_set_popup_min_size(pSubtitleColor->pParent,
+ pSubtitleColor->pBox,
+ pSubtitleColor->nListCount,
+ VIDEO_POPUP_DEFAULT);
+ elm_box_pack_end(pSubtitleColor->pBox, pSubtitleColor->pGenList);
+ elm_object_content_set(pSubtitleColor->pPopup, pSubtitleColor->pBox);
+#else
+ pSubtitleColor->pCurrentColorHex = strdup(pDefaultColor);
+
+ pSubtitleColor->pCancelButton =
+ _vp_play_subtitle_color_popup_create_cancel_button
+ (pSubtitleColor->pPopup, (void *) pSubtitleColor);
+ if (pSubtitleColor->pCancelButton == NULL) {
+ VideoLogError("_vp_play_speed_popup_create_cancel_button fail");
+ _vp_subtitle_color_destroy_handle(pSubtitleColor);
+ return NULL;
+ }
+
+ pSubtitleColor->pOkButton =
+ _vp_play_subtitle_color_popup_create_ok_button
+ (pSubtitleColor->pPopup, (void *)
+ pSubtitleColor);
+ if (pSubtitleColor->pOkButton == NULL) {
+ VideoLogError("_vp_play_speed_popup_create_ok_button fail");
+ _vp_subtitle_color_destroy_handle(pSubtitleColor);
+ return NULL;
+ }
+
+ pSubtitleColor->pLayout =
+ _vp_play_subtitle_color_popup_create_layout
+ (pSubtitleColor->pPopup);
+ if (pSubtitleColor->pLayout == NULL) {
+ VideoLogError("_vp_play_speed_popup_create_layout fail");
+ _vp_subtitle_color_destroy_handle(pSubtitleColor);
+ return NULL;
+ }
+
+ pSubtitleColor->pColorplaneData =
+ (SubtitleColorplaneData *) malloc(sizeof(SubtitleColorplaneData));
+ if (!pSubtitleColor->pColorplaneData) {
+ _vp_subtitle_color_destroy_handle(pSubtitleColor);
+ return NULL;
+ }
+ memset(pSubtitleColor->pColorplaneData, 0,
+ sizeof(SubtitleColorplaneData));
+
+ _vp_play_subtitle_color_popup_create_colorpalette
+ (pSubtitleColor->pLayout, pSubtitleColor);
+
+ pSubtitleColor->pSlider =
+ _vp_play_subtitle_color_popup_create_slider
+ (pSubtitleColor->pLayout, pSubtitleColor);
+ if (pSubtitleColor->pSlider == NULL) {
+ VideoLogError("_vp_play_subtitle_color_popup_create_slider fail");
+ _vp_subtitle_color_destroy_handle(pSubtitleColor);
+ return NULL;
+ }
+ _vp_play_subtitle_color_popup_create_button(pSubtitleColor->pLayout,
+ pSubtitleColor);
+ pSubtitleColor->nOpacityVal =
+ _vp_subtitle_color_get_opacity(pSubtitleColor->pCurrentColorHex);
+ elm_slider_value_set(pSubtitleColor->pSlider,
+ (int) pSubtitleColor->nOpacityVal);
+ _vp_play_subtitle_color_update_text(pSubtitleColor);
+
+ elm_object_part_content_set(pSubtitleColor->pLayout,
+ "elm.swallow.content",
+ pSubtitleColor->pSlider);
+
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VP_PLAY_SUBTITLE_COLOR_POPUP_EDJ);
+ free(path);
+ pSubtitleColor->pLayoutOut = elm_layout_add(pSubtitleColor->pPopup);
+ int nRotation = elm_win_rotation_get(pSubtitleColor->pParent);
+ if (nRotation == 90 || nRotation == 270)
+ elm_layout_file_set(pSubtitleColor->pLayoutOut,
+ edj_path,
+ "pv.subtitle.scroller.layout.landscape");
+ else
+ elm_layout_file_set(pSubtitleColor->pLayoutOut,
+ edj_path, "pv.subtitle.scroller.layout");
+ evas_object_size_hint_weight_set(pSubtitleColor->pLayoutOut,
+ EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+ pSubtitleColor->pScroller =
+ elm_scroller_add(pSubtitleColor->pLayoutOut);
+ elm_scroller_bounce_set(pSubtitleColor->pScroller, EINA_TRUE,
+ EINA_TRUE);
+ elm_scroller_policy_set(pSubtitleColor->pScroller,
+ ELM_SCROLLER_POLICY_OFF,
+ ELM_SCROLLER_POLICY_AUTO);
+ evas_object_show(pSubtitleColor->pScroller);
+ elm_object_content_set(pSubtitleColor->pScroller,
+ pSubtitleColor->pLayout);
+
+ elm_object_part_content_set(pSubtitleColor->pLayoutOut,
+ "elm.swallow.content",
+ pSubtitleColor->pScroller);
+ elm_object_content_set(pSubtitleColor->pPopup,
+ pSubtitleColor->pLayoutOut);
+
+ evas_object_smart_callback_add(pSubtitleColor->pParent,
+ "rotation,changed",
+ __vp_subtitle_color_popup_rotate_cb,
+ pSubtitleColor);
+ evas_object_show(pSubtitleColor->pLayout);
+
+#endif
+ return pSubtitleColor;
+}
+
+/**
+ *
+ * @param pSubtitleColorHandle
+ */
+void vp_subtitle_color_destroy(subtitle_color_handle pSubtitleColorHandle)
+{
+ if (pSubtitleColorHandle == NULL) {
+ VideoLogError("pSubtitleColorHandle is NULL");
+ return;
+ }
+
+ SubtitleColorPopup *pSubtitleColor =
+ (SubtitleColorPopup *) pSubtitleColorHandle;
+
+ _vp_subtitle_color_destroy_handle(pSubtitleColor);
+
+}
+
+/**
+ *
+ * @param pSubtitleColorHandle
+ * @return
+ */
+bool vp_subtitle_color_realize(subtitle_color_handle pSubtitleColorHandle)
+{
+ if (pSubtitleColorHandle == NULL) {
+ VideoLogError("pSubtitleColorHandle is NULL");
+ return FALSE;
+ }
+
+ SubtitleColorPopup *pSubtitleColor =
+ (SubtitleColorPopup *) pSubtitleColorHandle;
+
+ evas_object_show(pSubtitleColor->pPopup);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pSubtitleColorHandle
+ * @return
+ */
+bool vp_subtitle_color_unrealize(subtitle_color_handle
+ pSubtitleColorHandle)
+{
+ if (pSubtitleColorHandle == NULL) {
+ VideoLogError("pSubtitleColorHandle is NULL");
+ return FALSE;
+ }
+
+ SubtitleColorPopup *pSubtitleColor =
+ (SubtitleColorPopup *) pSubtitleColorHandle;
+
+ evas_object_hide(pSubtitleColor->pPopup);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pSubtitleColorHandle
+ * @param pUserData
+ * @return
+ */
+bool vp_subtitle_color_set_user_data(subtitle_color_handle
+ pSubtitleColorHandle, void *pUserData)
+{
+ if (pSubtitleColorHandle == NULL) {
+ VideoLogError("pSubtitleColorHandle is NULL");
+ return FALSE;
+ }
+
+ SubtitleColorPopup *pSubtitleColor =
+ (SubtitleColorPopup *) pSubtitleColorHandle;
+
+ pSubtitleColor->pUserData = pUserData;
+
+ return TRUE;
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include <glib.h>
+
+#include "vp-play-string-define.h"
+#include "vp-play-value-define.h"
+#include "vp-play-type-define.h"
+#include "vp-play-macro-define.h"
+
+#include "vp-subtitle-edge.h"
+
+/* check temp */
+#include "vp-play-log.h"
+
+#define VP_SUBTITLE_EDGE_GENLIST_DATA_KEY "vp.subtitle.edge.genlist"
+
+
+typedef struct _SubtitleEdgePopup {
+ Evas_Object *pParent;
+ Evas_Object *pPopup;
+ Evas_Object *pRadio;
+ Evas_Object *pButton;
+ Evas_Object *pBox;
+ Evas_Object *pGenList;
+ Elm_Genlist_Item_Class *st_SubtitleEdge_Itc;
+
+ int nListCount;
+
+ void *pUserData;
+ PopupCloseCbFunc pCloseCb;
+ video_play_subtitle_edge_t currentSubtitleEdge;
+} SubtitleEdgePopup;
+
+
+
+static void _vp_subtitle_edge_destroy_handle(SubtitleEdgePopup *
+ pSubtitleEdge);
+static void __vp_subtitle_edge_genlist_item_selected_cb(void *pUserData,
+ Evas_Object *
+ pObject,
+ void *pEventInfo);
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __vp_subtitle_edge_genlist_realized(void *data,
+ Evas_Object * obj,
+ void *event_info)
+{
+ VP_GENLIST_HIDE_BOTTOMLINE(data, obj, event_info);
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __vp_subtitle_edge_popup_rotate_cb(void *data,
+ Evas_Object * obj,
+ void *event_info)
+{
+ SubtitleEdgePopup *pSubtitleEdge = (SubtitleEdgePopup *) data;
+ if (!pSubtitleEdge) {
+ VideoLogError("pSubtitleEdge IS null");
+ return;
+ }
+ if (pSubtitleEdge->nListCount < VP_POPUP_MIN_ITEMS) {
+ return;
+ }
+ vp_popup_set_popup_min_size(pSubtitleEdge->pParent,
+ pSubtitleEdge->pBox,
+ pSubtitleEdge->nListCount,
+ VIDEO_POPUP_DEFAULT);
+
+}
+
+/* callback functions */
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pPart
+ * @return
+ */
+static char *__vp_subtitle_edge_genlist_text_get_cb(const void *pUserData,
+ Evas_Object * pObj,
+ const char *pPart)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return NULL;
+ }
+
+ char *szTxt = (char *) pUserData;
+
+ if (!g_strcmp0(pPart, "elm.text")) {
+ return strdup(szTxt);
+ }
+
+ return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pPart
+ * @return
+ */
+static Evas_Object *__vp_subtitle_edge_genlist_content_get_cb(const void
+ *pUserData,
+ Evas_Object *
+ pObj,
+ const char
+ *pPart)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return NULL;
+ }
+
+ char *szTxt = (char *) pUserData;
+
+ if (!g_strcmp0(pPart, "elm.icon")) {
+ Evas_Object *pRadioObj = NULL;
+
+ SubtitleEdgePopup *pSubtitleEdge =
+ (SubtitleEdgePopup *) evas_object_data_get(pObj,
+ VP_SUBTITLE_EDGE_GENLIST_DATA_KEY);
+ if (pSubtitleEdge == NULL) {
+ VideoLogWarning("evas_object_data_get is fail");
+ return NULL;
+ }
+ video_play_subtitle_edge_t nEdge = VIDEO_SUBTITLE_EDGE_NONE;
+ if (!g_strcmp0(szTxt, VP_PLAY_STRING_EDGE_RAISED)) {
+ nEdge = VIDEO_SUBTITLE_EDGE_RAISED;
+ } else if (!g_strcmp0(szTxt, VP_PLAY_STRING_EDGE_DEPRESSED)) {
+ nEdge = VIDEO_SUBTITLE_EDGE_DEPRESSED;
+ } else if (!g_strcmp0(szTxt, VP_PLAY_STRING_EDGE_UNIFORM)) {
+ nEdge = VIDEO_SUBTITLE_EDGE_UNIFORM;
+ } else if (!g_strcmp0(szTxt, VP_PLAY_STRING_EDGE_DROP_SHADOW)) {
+ nEdge = VIDEO_SUBTITLE_EDGE_DROP_SHADOW;
+ }
+
+ pRadioObj = elm_radio_add(pObj);
+ elm_radio_state_value_set(pRadioObj, nEdge);
+ elm_radio_group_add(pRadioObj, pSubtitleEdge->pRadio);
+ elm_radio_value_set(pSubtitleEdge->pRadio,
+ pSubtitleEdge->currentSubtitleEdge);
+ evas_object_smart_callback_add(pRadioObj, "changed",
+ __vp_subtitle_edge_genlist_item_selected_cb,
+ pSubtitleEdge);
+ evas_object_show(pRadioObj);
+
+ return pRadioObj;
+ }
+
+ return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __vp_subtitle_edge_genlist_item_selected_cb(void *pUserData,
+ Evas_Object *
+ pObject,
+ void *pEventInfo)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+ if (pEventInfo == NULL) {
+ VideoLogError("pEventInfo is NULL");
+ return;
+ }
+
+ Elm_Object_Item *pItem = (Elm_Object_Item *) pEventInfo;
+ Elm_Object_Item *pSelectedItem =
+ elm_genlist_selected_item_get(pObject);
+ if (pSelectedItem) {
+ elm_genlist_item_selected_set(pSelectedItem, EINA_FALSE);
+ }
+ char *szTxt = (char *) elm_object_item_data_get(pItem);
+
+ SubtitleEdgePopup *pSubtitleEdge = (SubtitleEdgePopup *) pUserData;
+
+ if (szTxt == NULL) {
+ VideoLogError("szTxt is NULL");
+ return;
+ }
+ video_play_subtitle_edge_t nEdge = VIDEO_SUBTITLE_EDGE_NONE;
+ if (!g_strcmp0(szTxt, VP_PLAY_STRING_EDGE_RAISED)) {
+ nEdge = VIDEO_SUBTITLE_EDGE_RAISED;
+ } else if (!g_strcmp0(szTxt, VP_PLAY_STRING_EDGE_DEPRESSED)) {
+ nEdge = VIDEO_SUBTITLE_EDGE_DEPRESSED;
+ } else if (!g_strcmp0(szTxt, VP_PLAY_STRING_EDGE_UNIFORM)) {
+ nEdge = VIDEO_SUBTITLE_EDGE_UNIFORM;
+ } else if (!g_strcmp0(szTxt, VP_PLAY_STRING_EDGE_DROP_SHADOW)) {
+ nEdge = VIDEO_SUBTITLE_EDGE_DROP_SHADOW;
+ }
+
+ pSubtitleEdge->currentSubtitleEdge = nEdge;
+ if (pSubtitleEdge->pCloseCb) {
+ pSubtitleEdge->pCloseCb(nEdge, FALSE,
+ (void *) pSubtitleEdge->pUserData);
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_subtitle_edge_popup_key_event_cb(void *pUserData,
+ Evas_Object * pObj,
+ void *pEventInfo)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ SubtitleEdgePopup *pSubtitleEdge = (SubtitleEdgePopup *) pUserData;
+
+ if (pSubtitleEdge->pCloseCb) {
+ pSubtitleEdge->pCloseCb(-1, FALSE,
+ (void *) pSubtitleEdge->pUserData);
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pEvas
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_subtitle_edge_popup_mouse_event_cb(void *pUserData,
+ Evas * pEvas,
+ Evas_Object * pObj,
+ void *pEventInfo)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ if (pEventInfo == NULL) {
+ VideoLogError("pEventInfo is NULL");
+ return;
+ }
+
+ Evas_Event_Mouse_Up *ev = pEventInfo;
+
+ if (ev->button == 3) {
+ SubtitleEdgePopup *pSubtitleEdge = (SubtitleEdgePopup *) pUserData;
+
+ if (pSubtitleEdge->pCloseCb) {
+ pSubtitleEdge->pCloseCb(-1, FALSE,
+ (void *) pSubtitleEdge->pUserData);
+ }
+ }
+}
+
+/* internal functions */
+/**
+ *
+ * @param pSubtitleEdge
+ */
+static void _vp_subtitle_edge_destroy_handle(SubtitleEdgePopup *
+ pSubtitleEdge)
+{
+ if (pSubtitleEdge == NULL) {
+ VideoLogError("pSubtitleEdge is NULL");
+ return;
+ }
+
+ evas_object_smart_callback_del(pSubtitleEdge->pParent,
+ "rotation,changed",
+ __vp_subtitle_edge_popup_rotate_cb);
+ evas_object_smart_callback_del(pSubtitleEdge->pGenList, "realized",
+ __vp_subtitle_edge_genlist_realized);
+
+ VP_EVAS_DEL(pSubtitleEdge->pRadio);
+ VP_EVAS_DEL(pSubtitleEdge->pGenList);
+ VP_EVAS_DEL(pSubtitleEdge->pButton);
+ VP_EVAS_DEL(pSubtitleEdge->pBox);
+
+ if (pSubtitleEdge->st_SubtitleEdge_Itc) {
+ elm_genlist_item_class_free(pSubtitleEdge->st_SubtitleEdge_Itc);
+ pSubtitleEdge->st_SubtitleEdge_Itc = NULL;
+ }
+
+ VP_EVAS_DEL(pSubtitleEdge->pPopup);
+
+ VP_FREE(pSubtitleEdge);
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+static Evas_Object *_vp_subtitle_edge_create_genlist(Evas_Object * pParent)
+{
+ if (pParent == NULL) {
+ VideoLogError("pParent is NULL");
+ return NULL;
+ }
+
+ Evas_Object *pObj = NULL;
+
+ pObj = elm_genlist_add(pParent);
+ evas_object_size_hint_weight_set(pObj, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(pObj, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_show(pObj);
+ return pObj;
+}
+
+/**
+ *
+ * @param pObj
+ * @param pUserData
+ * @return
+ */
+static bool _vp_subtitle_edge_add_genlist_item(Evas_Object * pObj,
+ void *pUserData)
+{
+ if (pObj == NULL) {
+ VideoLogError("pObj is NULL");
+ return FALSE;
+ }
+
+ SubtitleEdgePopup *pSubtitleEdge = (SubtitleEdgePopup *) pUserData;
+
+ if (pSubtitleEdge->st_SubtitleEdge_Itc) {
+ elm_genlist_item_class_free(pSubtitleEdge->st_SubtitleEdge_Itc);
+ pSubtitleEdge->st_SubtitleEdge_Itc = NULL;
+ }
+
+ pSubtitleEdge->st_SubtitleEdge_Itc = elm_genlist_item_class_new();
+
+ if (pSubtitleEdge->st_SubtitleEdge_Itc != NULL) {
+ pSubtitleEdge->st_SubtitleEdge_Itc->version =
+ ELM_GENLIST_ITEM_CLASS_VERSION;
+ pSubtitleEdge->st_SubtitleEdge_Itc->item_style =
+ "1text.1icon.3/popup";
+ pSubtitleEdge->st_SubtitleEdge_Itc->func.text_get =
+ (void *) __vp_subtitle_edge_genlist_text_get_cb;
+ pSubtitleEdge->st_SubtitleEdge_Itc->func.content_get =
+ (void *) __vp_subtitle_edge_genlist_content_get_cb;
+ pSubtitleEdge->st_SubtitleEdge_Itc->func.state_get = NULL;
+ pSubtitleEdge->st_SubtitleEdge_Itc->func.del = NULL;
+ pSubtitleEdge->nListCount = 0;
+
+ elm_genlist_item_append(pObj, pSubtitleEdge->st_SubtitleEdge_Itc,
+ (void *) VP_PLAY_STRING_EDGE_NO_EDGE, NULL,
+ ELM_GENLIST_ITEM_NONE,
+ __vp_subtitle_edge_genlist_item_selected_cb,
+ pUserData);
+ pSubtitleEdge->nListCount++;
+ elm_genlist_item_append(pObj, pSubtitleEdge->st_SubtitleEdge_Itc,
+ (void *) VP_PLAY_STRING_EDGE_RAISED, NULL,
+ ELM_GENLIST_ITEM_NONE,
+ __vp_subtitle_edge_genlist_item_selected_cb,
+ pUserData);
+ pSubtitleEdge->nListCount++;
+ elm_genlist_item_append(pObj, pSubtitleEdge->st_SubtitleEdge_Itc,
+ (void *) VP_PLAY_STRING_EDGE_DEPRESSED,
+ NULL, ELM_GENLIST_ITEM_NONE,
+ __vp_subtitle_edge_genlist_item_selected_cb,
+ pUserData);
+ pSubtitleEdge->nListCount++;
+ elm_genlist_item_append(pObj, pSubtitleEdge->st_SubtitleEdge_Itc,
+ (void *) VP_PLAY_STRING_EDGE_UNIFORM, NULL,
+ ELM_GENLIST_ITEM_NONE,
+ __vp_subtitle_edge_genlist_item_selected_cb,
+ pUserData);
+ pSubtitleEdge->nListCount++;
+ elm_genlist_item_append(pObj, pSubtitleEdge->st_SubtitleEdge_Itc,
+ (void *) VP_PLAY_STRING_EDGE_DROP_SHADOW,
+ NULL, ELM_GENLIST_ITEM_NONE,
+ __vp_subtitle_edge_genlist_item_selected_cb,
+ pUserData);
+ pSubtitleEdge->nListCount++;
+ }
+
+ return TRUE;
+}
+
+/* external functions */
+/**
+ *
+ * @param pParent
+ * @param pCloseCb
+ * @param nDefaultSize
+ * @return
+ */
+subtitle_edge_handle vp_subtitle_edge_create(Evas_Object * pParent,
+ PopupCloseCbFunc pCloseCb,
+ int nDefaultSize)
+{
+ if (pParent == NULL) {
+ VideoLogError("pParent is NULL");
+ return NULL;
+ }
+
+ SubtitleEdgePopup *pSubtitleEdge = NULL;
+
+ pSubtitleEdge = calloc(1, sizeof(SubtitleEdgePopup));
+
+ if (pSubtitleEdge == NULL) {
+ VideoLogError("pSubtitleEdge alloc fail");
+ return NULL;
+ }
+
+ pSubtitleEdge->pParent = pParent;
+ pSubtitleEdge->pCloseCb = pCloseCb;
+
+ pSubtitleEdge->pPopup =
+ vp_popup_create(pParent, POPUP_STYLE_MENU_LIST_NO_CANCEL_BTN,
+ VP_PLAY_STRING_SUBTITLE_EDGE, NULL, 0.0, NULL,
+ __vp_subtitle_edge_popup_key_event_cb,
+ __vp_subtitle_edge_popup_mouse_event_cb,
+ (void *) pSubtitleEdge);
+ if (pSubtitleEdge->pPopup == NULL) {
+ VideoLogError("vp_popup_create fail");
+ _vp_subtitle_edge_destroy_handle(pSubtitleEdge);
+ return NULL;
+ }
+
+ pSubtitleEdge->pGenList =
+ _vp_subtitle_edge_create_genlist(pSubtitleEdge->pPopup);
+ if (pSubtitleEdge->pGenList == NULL) {
+ VideoLogError("_vp_subtitle_size_create_genlist fail");
+ _vp_subtitle_edge_destroy_handle(pSubtitleEdge);
+ return NULL;
+ }
+ evas_object_data_set(pSubtitleEdge->pGenList,
+ VP_SUBTITLE_EDGE_GENLIST_DATA_KEY,
+ (void *) pSubtitleEdge);
+ evas_object_smart_callback_add(pSubtitleEdge->pGenList, "realized",
+ __vp_subtitle_edge_genlist_realized,
+ NULL);
+
+ pSubtitleEdge->pRadio = elm_radio_add(pSubtitleEdge->pGenList);
+
+ if (!_vp_subtitle_edge_add_genlist_item
+ (pSubtitleEdge->pGenList, (void *) pSubtitleEdge)) {
+ VideoLogError("_vp_subtitle_size_add_genlist_item fail");
+ _vp_subtitle_edge_destroy_handle(pSubtitleEdge);
+ return NULL;
+ }
+
+ pSubtitleEdge->currentSubtitleEdge = nDefaultSize;
+ evas_object_smart_callback_add(pSubtitleEdge->pParent,
+ "rotation,changed",
+ __vp_subtitle_edge_popup_rotate_cb,
+ pSubtitleEdge);
+
+ pSubtitleEdge->pBox = elm_box_add(pSubtitleEdge->pPopup);
+ vp_popup_set_popup_min_size(pSubtitleEdge->pParent,
+ pSubtitleEdge->pBox,
+ pSubtitleEdge->nListCount,
+ VIDEO_POPUP_DEFAULT);
+ elm_box_pack_end(pSubtitleEdge->pBox, pSubtitleEdge->pGenList);
+ elm_object_content_set(pSubtitleEdge->pPopup, pSubtitleEdge->pBox);
+
+ return pSubtitleEdge;
+}
+
+/**
+ *
+ * @param pSubtitleEdgeHandle
+ */
+void vp_subtitle_edge_destroy(subtitle_edge_handle pSubtitleEdgeHandle)
+{
+ if (pSubtitleEdgeHandle == NULL) {
+ VideoLogError("pSubtitleEdgeHandle is NULL");
+ return;
+ }
+
+ SubtitleEdgePopup *pSubtitleEdge =
+ (SubtitleEdgePopup *) pSubtitleEdgeHandle;
+
+ _vp_subtitle_edge_destroy_handle(pSubtitleEdge);
+
+}
+
+/**
+ *
+ * @param pSubtitleEdgeHandle
+ * @return
+ */
+bool vp_subtitle_edge_realize(subtitle_edge_handle pSubtitleEdgeHandle)
+{
+ if (pSubtitleEdgeHandle == NULL) {
+ VideoLogError("pSubtitleEdgeHandle is NULL");
+ return FALSE;
+ }
+
+ SubtitleEdgePopup *pSubtitleEdge =
+ (SubtitleEdgePopup *) pSubtitleEdgeHandle;
+
+ evas_object_show(pSubtitleEdge->pPopup);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pSubtitleEdgeHandle
+ * @return
+ */
+bool vp_subtitle_edge_unrealize(subtitle_edge_handle pSubtitleEdgeHandle)
+{
+ if (pSubtitleEdgeHandle == NULL) {
+ VideoLogError("pSubtitleEdgeHandle is NULL");
+ return FALSE;
+ }
+
+ SubtitleEdgePopup *pSubtitleEdge =
+ (SubtitleEdgePopup *) pSubtitleEdgeHandle;
+
+ evas_object_hide(pSubtitleEdge->pPopup);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pSubtitleEdgeHandle
+ * @param pUserData
+ * @return
+ */
+bool vp_subtitle_edge_set_user_data(subtitle_edge_handle
+ pSubtitleEdgeHandle, void *pUserData)
+{
+ if (pSubtitleEdgeHandle == NULL) {
+ VideoLogError("pSubtitleEdgeHandle is NULL");
+ return FALSE;
+ }
+
+ SubtitleEdgePopup *pSubtitleEdge =
+ (SubtitleEdgePopup *) pSubtitleEdgeHandle;
+
+ pSubtitleEdge->pUserData = pUserData;
+
+ return TRUE;
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <glib.h>
+#include <fontconfig/fontconfig.h>
+
+#include "vp-play-string-define.h"
+#include "vp-play-value-define.h"
+#include "vp-play-type-define.h"
+#include "vp-play-macro-define.h"
+
+#include "vp-subtitle-font.h"
+
+/* check temp */
+#include "vp-play-log.h"
+
+#define VP_SUBTITLE_FONT_GENLIST_DATA_KEY "vp.subtitle.font.genlist"
+#define VP_FONT_PRELOAD_FONT_PATH "/usr/share/fonts"
+#define VP_FONT_DOWNLOADED_FONT_PATH "/opt/share/fonts"
+#define VP_FONT_DEFAULT_FONT_NAME "Tizen"
+#define VP_FONT_UDRGOTHIC_FONT_NAME "UDRGothic"
+#define VP_FONT_UDMINCHO_FONT_NAME "UDMincho"
+#define VP_FONT_POP_FONT_NAME "POP"
+#define VP_FONT_CHOCOCOOKY_FONT_NAME "Choco cooky"
+#define VP_FONT_COOLJAZZ_FONT_NAME "Cool jazz"
+#define VP_FONT_ROSEMARY_FONT_NAME "Rosemary"
+
+typedef struct _SubtitleFontPopup {
+ Evas_Object *pParent;
+ Evas_Object *pPopup;
+ Evas_Object *pRadio;
+ Evas_Object *pButton;
+ Evas_Object *pBox;
+ Evas_Object *pGenList;
+ Elm_Genlist_Item_Class *st_SubtitleFont_Itc;
+
+ int nCurrentFontIdx;
+ int nAppendCount;
+ char *szCurrentFont;
+
+ void *pUserData;
+ SubtitleFontCbFunc pCloseCb;
+ GList *pFontList;
+ char *szSelectFont;
+} SubtitleFontPopup;
+
+
+
+static void _vp_subtitle_font_destroy_handle(SubtitleFontPopup *
+ pSubtitleFont);
+static void __vp_subtitle_font_genlist_item_selected_cb(void *pUserData,
+ Evas_Object *
+ pObject,
+ void *pEventInfo);
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __vp_subtitle_font_genlist_realized(void *data,
+ Evas_Object * obj,
+ void *event_info)
+{
+ VP_GENLIST_HIDE_BOTTOMLINE(data, obj, event_info);
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __vp_subtitle_font_popup_rotate_cb(void *data,
+ Evas_Object * obj,
+ void *event_info)
+{
+ SubtitleFontPopup *pSubtitleFont = (SubtitleFontPopup *) data;
+ if (!pSubtitleFont) {
+ VideoLogError("pSubtitleFont IS null");
+ return;
+ }
+ if (pSubtitleFont->nAppendCount < VP_POPUP_MIN_ITEMS) {
+ return;
+ }
+ vp_popup_set_popup_min_size(pSubtitleFont->pParent,
+ pSubtitleFont->pBox,
+ pSubtitleFont->nAppendCount,
+ VIDEO_POPUP_DEFAULT);
+
+}
+
+/* callback functions */
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pPart
+ * @return
+ */
+static char *__vp_subtitle_font_genlist_text_get_cb(const void *pUserData,
+ Evas_Object * pObj,
+ const char *pPart)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return NULL;
+ }
+
+ char *szTxt = (char *) pUserData;
+
+ if (!strcmp(pPart, "elm.text")) {
+ char *szFormat = NULL;
+ if (strcmp(szTxt, VP_PLAY_STRING_COM_DEFAULT) == 0) {
+ szFormat =
+ g_strdup_printf("<font='%s'>%s</font>",
+ VP_FONT_DEFAULT_FONT_NAME,
+ VP_PLAY_STRING_FONT_DEFAULT);
+ } else if (strcmp(szTxt, VP_FONT_UDRGOTHIC_FONT_NAME) == 0) {
+ szFormat =
+ g_strdup_printf("<font='%s'>%s</font>",
+ VP_FONT_UDRGOTHIC_FONT_NAME,
+ VP_PLAY_STRING_FONT_UDRCOTHICM);
+ } else if (strcmp(szTxt, VP_FONT_UDMINCHO_FONT_NAME) == 0) {
+ szFormat =
+ g_strdup_printf("<font='%s'>%s</font>",
+ VP_FONT_UDMINCHO_FONT_NAME,
+ VP_PLAY_STRING_FONT_UDMINCHO);
+ } else if (strcmp(szTxt, VP_FONT_POP_FONT_NAME) == 0) {
+ szFormat =
+ g_strdup_printf("<font='%s'>%s</font>",
+ VP_FONT_POP_FONT_NAME,
+ VP_PLAY_STRING_FONT_POP);
+ } else if (strcmp(szTxt, VP_FONT_CHOCOCOOKY_FONT_NAME) == 0) {
+ szFormat =
+ g_strdup_printf("<font='%s'>%s</font>",
+ VP_FONT_CHOCOCOOKY_FONT_NAME,
+ VP_PLAY_STRING_FONT_CHOCO_COOKY);
+ } else if (strcmp(szTxt, VP_FONT_COOLJAZZ_FONT_NAME) == 0) {
+ szFormat =
+ g_strdup_printf("<font='%s'>%s</font>",
+ VP_FONT_COOLJAZZ_FONT_NAME,
+ VP_PLAY_STRING_FONT_COOL_JAZZ);
+ } else if (strcmp(szTxt, VP_FONT_ROSEMARY_FONT_NAME) == 0) {
+ szFormat =
+ g_strdup_printf("<font='%s'>%s</font>",
+ VP_FONT_ROSEMARY_FONT_NAME,
+ VP_PLAY_STRING_FONT_ROSEMARY);
+ }
+
+ return szFormat;
+ }
+
+ return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pPart
+ * @return
+ */
+static Evas_Object *__vp_subtitle_font_genlist_content_get_cb(const void
+ *pUserData,
+ Evas_Object *
+ pObj,
+ const char
+ *pPart)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return NULL;
+ }
+
+ char *szTxt = (char *) pUserData;
+
+ if (!strcmp(pPart, "elm.icon")) {
+ Evas_Object *pRadioObj = NULL;
+
+ SubtitleFontPopup *pSubtitleFont =
+ (SubtitleFontPopup *) evas_object_data_get(pObj,
+ VP_SUBTITLE_FONT_GENLIST_DATA_KEY);
+ if (pSubtitleFont == NULL) {
+ VideoLogWarning("evas_object_data_get is fail");
+ return NULL;
+ }
+
+ int nCount = 0;
+ int i = 0;
+ int nIndex = 0;
+
+ nCount = g_list_length(pSubtitleFont->pFontList);
+ for (i = 0; i < nCount; i++) {
+ char *szName = NULL;
+ szName = (char *) g_list_nth_data(pSubtitleFont->pFontList, i);
+ if (szName == NULL) {
+ continue;
+ }
+ if (strcmp(szName, szTxt) == 0) {
+ nIndex = i + 1;
+ }
+ }
+
+ /* get font list */
+ pRadioObj = elm_radio_add(pObj);
+ elm_radio_state_value_set(pRadioObj, nIndex);
+ elm_radio_group_add(pRadioObj, pSubtitleFont->pRadio);
+ elm_radio_value_set(pSubtitleFont->pRadio,
+ pSubtitleFont->nCurrentFontIdx);
+ evas_object_smart_callback_add(pRadioObj, "changed",
+ __vp_subtitle_font_genlist_item_selected_cb,
+ pSubtitleFont);
+ evas_object_show(pRadioObj);
+
+ return pRadioObj;
+ }
+
+ return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __vp_subtitle_font_genlist_item_selected_cb(void *pUserData,
+ Evas_Object *
+ pObject,
+ void *pEventInfo)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+ if (pEventInfo == NULL) {
+ VideoLogError("pEventInfo is NULL");
+ return;
+ }
+
+ Elm_Object_Item *pItem = (Elm_Object_Item *) pEventInfo;
+ Elm_Object_Item *pSelectedItem =
+ elm_genlist_selected_item_get(pObject);
+ if (pSelectedItem) {
+ elm_genlist_item_selected_set(pSelectedItem, EINA_FALSE);
+ }
+ char *szTxt = (char *) elm_object_item_data_get(pItem);
+ VideoLogError("szTxt = %s", szTxt);
+ if (szTxt == NULL) {
+ VideoLogError("szTxt is NULL");
+ return;
+ }
+
+ SubtitleFontPopup *pSubtitleFont = (SubtitleFontPopup *) pUserData;
+ int nIdx = 0;
+ char *szFontText = NULL;
+ if (strcmp(szTxt, VP_PLAY_STRING_COM_DEFAULT) == 0) {
+ szFontText = VP_FONT_DEFAULT_FONT_NAME;
+ nIdx = 0;
+ } else {
+ szFontText = szTxt;
+
+ int i = 0;
+ int nCount = g_list_length(pSubtitleFont->pFontList);
+ for (i = 0; i < nCount; i++) {
+ char *szName = NULL;
+ szName = (char *) g_list_nth_data(pSubtitleFont->pFontList, i);
+ if (szName == NULL) {
+ continue;
+ }
+ if (strcmp(szName, szTxt) == 0) {
+ nIdx = i + 1;
+ }
+ }
+ }
+
+ VP_FREE(pSubtitleFont->szSelectFont);
+ VP_STRDUP(pSubtitleFont->szSelectFont, szFontText);
+ pSubtitleFont->nCurrentFontIdx = nIdx;
+ if (pSubtitleFont->pCloseCb) {
+ pSubtitleFont->pCloseCb(szTxt, (void *) pSubtitleFont->pUserData);
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_subtitle_font_popup_key_event_cb(void *pUserData,
+ Evas_Object * pObj,
+ void *pEventInfo)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ SubtitleFontPopup *pSubtitleFont = (SubtitleFontPopup *) pUserData;
+
+ if (pSubtitleFont->pCloseCb) {
+ pSubtitleFont->pCloseCb(NULL, (void *) pSubtitleFont->pUserData);
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pEvas
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_subtitle_font_popup_mouse_event_cb(void *pUserData,
+ Evas * pEvas,
+ Evas_Object * pObj,
+ void *pEventInfo)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ if (pEventInfo == NULL) {
+ VideoLogError("pEventInfo is NULL");
+ return;
+ }
+
+ Evas_Event_Mouse_Up *ev = pEventInfo;
+
+ if (ev->button == 3) {
+ SubtitleFontPopup *pSubtitleFont = (SubtitleFontPopup *) pUserData;
+
+ if (pSubtitleFont->pCloseCb) {
+ pSubtitleFont->pCloseCb(NULL,
+ (void *) pSubtitleFont->pUserData);
+ }
+ }
+}
+
+/* internal functions */
+/**
+ *
+ * @param pSubtitleFont
+ */
+static void _vp_subtitle_font_destroy_handle(SubtitleFontPopup *
+ pSubtitleFont)
+{
+ if (pSubtitleFont == NULL) {
+ VideoLogError("pSubtitleFont is NULL");
+ return;
+ }
+ int nCount = 0;
+ int i = 0;
+ evas_object_smart_callback_del(pSubtitleFont->pParent,
+ "rotation,changed",
+ __vp_subtitle_font_popup_rotate_cb);
+ evas_object_smart_callback_del(pSubtitleFont->pGenList, "realized",
+ __vp_subtitle_font_genlist_realized);
+
+ VP_EVAS_DEL(pSubtitleFont->pRadio);
+ VP_EVAS_DEL(pSubtitleFont->pGenList);
+ VP_EVAS_DEL(pSubtitleFont->pButton);
+ VP_EVAS_DEL(pSubtitleFont->pBox);
+
+ if (pSubtitleFont->st_SubtitleFont_Itc) {
+ elm_genlist_item_class_free(pSubtitleFont->st_SubtitleFont_Itc);
+ pSubtitleFont->st_SubtitleFont_Itc = NULL;
+ }
+
+ nCount = g_list_length(pSubtitleFont->pFontList);
+ for (i = 0; i < nCount; i++) {
+ char *szName = NULL;
+ szName = (char *) g_list_nth_data(pSubtitleFont->pFontList, i);
+ VP_FREE(szName);
+ }
+ g_list_free(pSubtitleFont->pFontList);
+ pSubtitleFont->pFontList = NULL;
+
+ VP_EVAS_DEL(pSubtitleFont->pPopup);
+ VP_FREE(pSubtitleFont->szCurrentFont);
+ VP_FREE(pSubtitleFont->szSelectFont);
+
+ VP_FREE(pSubtitleFont);
+
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+static Evas_Object *_vp_subtitle_font_create_genlist(Evas_Object * pParent)
+{
+ if (pParent == NULL) {
+ VideoLogError("pParent is NULL");
+ return NULL;
+ }
+
+ Evas_Object *pObj = NULL;
+
+ pObj = elm_genlist_add(pParent);
+ evas_object_size_hint_weight_set(pObj, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(pObj, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_show(pObj);
+ return pObj;
+}
+
+/**
+ *
+ * @param pObj
+ * @param pUserData
+ * @return
+ */
+static bool _vp_subtitle_font_add_genlist_item(Evas_Object * pObj,
+ void *pUserData)
+{
+ if (pObj == NULL) {
+ VideoLogError("pObj is NULL");
+ return FALSE;
+ }
+
+ SubtitleFontPopup *pSubtitleFont = (SubtitleFontPopup *) pUserData;
+
+ if (pSubtitleFont->st_SubtitleFont_Itc) {
+ elm_genlist_item_class_free(pSubtitleFont->st_SubtitleFont_Itc);
+ pSubtitleFont->st_SubtitleFont_Itc = NULL;
+ }
+
+ pSubtitleFont->st_SubtitleFont_Itc = elm_genlist_item_class_new();
+
+ if (pSubtitleFont->st_SubtitleFont_Itc != NULL) {
+ pSubtitleFont->st_SubtitleFont_Itc->version =
+ ELM_GENLIST_ITEM_CLASS_VERSION;
+ pSubtitleFont->st_SubtitleFont_Itc->item_style =
+ "video.multiline/1text.1icon";
+ pSubtitleFont->st_SubtitleFont_Itc->func.text_get =
+ (void *) __vp_subtitle_font_genlist_text_get_cb;
+ pSubtitleFont->st_SubtitleFont_Itc->func.content_get =
+ (void *) __vp_subtitle_font_genlist_content_get_cb;
+ pSubtitleFont->st_SubtitleFont_Itc->func.state_get = NULL;
+ pSubtitleFont->st_SubtitleFont_Itc->func.del = NULL;
+
+ elm_genlist_item_append(pObj, pSubtitleFont->st_SubtitleFont_Itc,
+ (void *) VP_PLAY_STRING_COM_DEFAULT, NULL,
+ ELM_GENLIST_ITEM_NONE,
+ __vp_subtitle_font_genlist_item_selected_cb,
+ pUserData);
+ pSubtitleFont->nAppendCount++;
+
+ int nCount = 0;
+ int i = 0;
+
+ nCount = g_list_length(pSubtitleFont->pFontList);
+ for (i = 0; i < nCount; i++) {
+ char *szName = NULL;
+ szName = (char *) g_list_nth_data(pSubtitleFont->pFontList, i);
+ if (szName == NULL) {
+ continue;
+ }
+ elm_genlist_item_append(pObj,
+ pSubtitleFont->st_SubtitleFont_Itc,
+ (void *) szName, NULL,
+ ELM_GENLIST_ITEM_NONE,
+ __vp_subtitle_font_genlist_item_selected_cb,
+ pUserData);
+ pSubtitleFont->nAppendCount++;
+ }
+ }
+ return TRUE;
+}
+
+/**
+ *
+ * @param pSubtitleFont
+ * @return
+ */
+static bool __vp_subtitle_font_load_font_list(SubtitleFontPopup *
+ pSubtitleFont)
+{
+ if (pSubtitleFont == NULL) {
+ VideoLogError("pSubtitleFont is NULL");
+ return FALSE;
+ }
+
+ FcObjectSet *os = NULL;
+ FcFontSet *fs = NULL;
+ FcPattern *pat = NULL;
+ FcConfig *font_config = NULL;
+
+ font_config = FcInitLoadConfigAndFonts();
+ pat = FcPatternCreate();
+ os = FcObjectSetBuild(FC_FAMILY, FC_FILE, (char *) 0);
+ if (os) {
+ fs = FcFontList(font_config, pat, os);
+ FcObjectSetDestroy(os);
+ os = NULL;
+ }
+
+ if (pat) {
+ FcPatternDestroy(pat);
+ pat = NULL;
+ }
+
+ int nPreloadPathLen = strlen(VP_FONT_PRELOAD_FONT_PATH);
+ int nDownloadPathLen = strlen(VP_FONT_DOWNLOADED_FONT_PATH);
+
+ if (fs) {
+ int j;
+ VideoLogError("fs->nfont = %d", fs->nfont);
+
+ for (j = 0; j < fs->nfont; j++) {
+ FcChar8 *szfamily = NULL;
+ FcChar8 *szFile = NULL;
+
+ if (FcPatternGetString(fs->fonts[j], FC_FILE, 0, &szFile) ==
+ FcResultMatch) {
+ if (szFile == NULL) {
+ continue;
+ }
+ if (strncmp
+ ((const char *) szFile, VP_FONT_PRELOAD_FONT_PATH,
+ nPreloadPathLen) == 0
+ || strncmp((const char *) szFile,
+ VP_FONT_DOWNLOADED_FONT_PATH,
+ nDownloadPathLen) == 0) {
+ if (FcPatternGetString
+ (fs->fonts[j], FC_FAMILY, 0,
+ &szfamily) == FcResultMatch) {
+ bool bIsExist = FALSE;
+
+ if (szfamily == NULL) {
+ continue;
+ }
+
+ if (pSubtitleFont->pFontList) {
+ int nCount = 0;
+ int nIdx = 0;
+
+ nCount =
+ g_list_length(pSubtitleFont->pFontList);
+ for (nIdx = 0; nIdx < nCount; nIdx++) {
+ char *szListName = NULL;
+ szListName = (char *)
+ g_list_nth_data
+ (pSubtitleFont->pFontList, nIdx);
+ if (szListName) {
+ if (strcmp
+ ((char *) szfamily,
+ szListName) == 0) {
+ bIsExist = TRUE;
+ }
+ }
+ }
+ }
+ if (bIsExist == FALSE) {
+ if ((strcmp
+ ((char *) szfamily,
+ VP_FONT_UDRGOTHIC_FONT_NAME) == 0)
+ ||
+ (strcmp
+ ((char *) szfamily,
+ VP_FONT_UDMINCHO_FONT_NAME) == 0)
+ ||
+ (strcmp
+ ((char *) szfamily,
+ VP_FONT_POP_FONT_NAME) == 0)
+ ||
+ (strcmp
+ ((char *) szfamily,
+ VP_FONT_CHOCOCOOKY_FONT_NAME) == 0)
+ ||
+ (strcmp
+ ((char *) szfamily,
+ VP_FONT_COOLJAZZ_FONT_NAME) == 0)
+ ||
+ (strcmp
+ ((char *) szfamily,
+ VP_FONT_ROSEMARY_FONT_NAME) == 0)) {
+ char *szFontName = NULL;
+ VP_STRDUP(szFontName, (char *) szfamily);
+ if (szFontName) {
+ pSubtitleFont->pFontList =
+ g_list_append
+ (pSubtitleFont->pFontList,
+ szFontName);
+ if (strcmp
+ (pSubtitleFont->szCurrentFont,
+ szFontName) == 0) {
+ pSubtitleFont->nCurrentFontIdx =
+ g_list_length
+ (pSubtitleFont->pFontList);
+ }
+ }
+ VideoLogError("==> [%d] : %s ", j,
+ szfamily);
+ }
+ }
+ }
+ }
+ }
+ }
+ FcFontSetDestroy(fs);
+ fs = NULL;
+ }
+ FcConfigDestroy(font_config);
+ font_config = NULL;
+
+ return TRUE;
+}
+
+/* external functions */
+/**
+ *
+ * @param pParent
+ * @param pCloseCb
+ * @param szCurrentFont
+ * @return
+ */
+subtitle_font_handle vp_subtitle_font_create(Evas_Object * pParent,
+ SubtitleFontCbFunc pCloseCb,
+ char *szCurrentFont)
+{
+ if (pParent == NULL) {
+ VideoLogError("pParent is NULL");
+ return NULL;
+ }
+
+ if (szCurrentFont == NULL) {
+ VideoLogError("szCurrentFont is NULL");
+ return NULL;
+ }
+ SubtitleFontPopup *pSubtitleFont = NULL;
+
+
+ pSubtitleFont = calloc(1, sizeof(SubtitleFontPopup));
+
+ if (pSubtitleFont == NULL) {
+ VideoLogError("pSubtitleFont alloc fail");
+ return NULL;
+ }
+
+ pSubtitleFont->pParent = pParent;
+ pSubtitleFont->pCloseCb = pCloseCb;
+ VP_STRDUP(pSubtitleFont->szCurrentFont, szCurrentFont);
+ pSubtitleFont->nCurrentFontIdx = 0;
+
+ pSubtitleFont->pPopup =
+ vp_popup_create(pParent, POPUP_STYLE_MENU_LIST_NO_CANCEL_BTN,
+ VP_PLAY_STRING_SUBTITLE_FONT, NULL, 0.0, NULL,
+ __vp_subtitle_font_popup_key_event_cb,
+ __vp_subtitle_font_popup_mouse_event_cb,
+ (void *) pSubtitleFont);
+ if (pSubtitleFont->pPopup == NULL) {
+ VideoLogError("vp_popup_create fail");
+ _vp_subtitle_font_destroy_handle(pSubtitleFont);
+ return NULL;
+ }
+
+ pSubtitleFont->pGenList =
+ _vp_subtitle_font_create_genlist(pSubtitleFont->pPopup);
+ if (pSubtitleFont->pGenList == NULL) {
+ VideoLogError("_vp_subtitle_font_create_genlist fail");
+ _vp_subtitle_font_destroy_handle(pSubtitleFont);
+ return NULL;
+ }
+ evas_object_data_set(pSubtitleFont->pGenList,
+ VP_SUBTITLE_FONT_GENLIST_DATA_KEY,
+ (void *) pSubtitleFont);
+ evas_object_smart_callback_add(pSubtitleFont->pGenList, "realized",
+ __vp_subtitle_font_genlist_realized,
+ NULL);
+
+ pSubtitleFont->pRadio = elm_radio_add(pSubtitleFont->pGenList);
+
+ __vp_subtitle_font_load_font_list(pSubtitleFont);
+
+ elm_genlist_mode_set(pSubtitleFont->pGenList, ELM_LIST_COMPRESS);
+
+ if (!_vp_subtitle_font_add_genlist_item
+ (pSubtitleFont->pGenList, (void *) pSubtitleFont)) {
+ VideoLogError("_vp_subtitle_font_add_genlist_item fail");
+ _vp_subtitle_font_destroy_handle(pSubtitleFont);
+ return NULL;
+ }
+
+ evas_object_smart_callback_add(pSubtitleFont->pParent,
+ "rotation,changed",
+ __vp_subtitle_font_popup_rotate_cb,
+ pSubtitleFont);
+
+ pSubtitleFont->pBox = elm_box_add(pSubtitleFont->pPopup);
+ vp_popup_set_popup_min_size(pSubtitleFont->pParent,
+ pSubtitleFont->pBox,
+ pSubtitleFont->nAppendCount,
+ VIDEO_POPUP_DEFAULT);
+
+ elm_box_pack_end(pSubtitleFont->pBox, pSubtitleFont->pGenList);
+ elm_object_content_set(pSubtitleFont->pPopup, pSubtitleFont->pBox);
+
+ return pSubtitleFont;
+}
+
+/**
+ *
+ * @param pSubtitleFontHandle
+ */
+void vp_subtitle_font_destroy(subtitle_font_handle pSubtitleFontHandle)
+{
+ if (pSubtitleFontHandle == NULL) {
+ VideoLogError("pSubtitleFontHandle is NULL");
+ return;
+ }
+
+ SubtitleFontPopup *pSubtitleFont =
+ (SubtitleFontPopup *) pSubtitleFontHandle;
+
+ _vp_subtitle_font_destroy_handle(pSubtitleFont);
+
+}
+
+/**
+ *
+ * @param pSubtitleFontHandle
+ * @return
+ */
+bool vp_subtitle_font_realize(subtitle_font_handle pSubtitleFontHandle)
+{
+ if (pSubtitleFontHandle == NULL) {
+ VideoLogError("pSubtitleFontHandle is NULL");
+ return FALSE;
+ }
+
+ SubtitleFontPopup *pSubtitleFont =
+ (SubtitleFontPopup *) pSubtitleFontHandle;
+
+ evas_object_show(pSubtitleFont->pPopup);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pSubtitleFontHandle
+ * @return
+ */
+bool vp_subtitle_font_unrealize(subtitle_font_handle pSubtitleFontHandle)
+{
+ if (pSubtitleFontHandle == NULL) {
+ VideoLogError("pSubtitleFontHandle is NULL");
+ return FALSE;
+ }
+
+ SubtitleFontPopup *pSubtitleFont =
+ (SubtitleFontPopup *) pSubtitleFontHandle;
+
+ evas_object_hide(pSubtitleFont->pPopup);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pSubtitleFontHandle
+ * @param pUserData
+ * @return
+ */
+bool vp_subtitle_font_set_user_data(subtitle_font_handle
+ pSubtitleFontHandle, void *pUserData)
+{
+ if (pSubtitleFontHandle == NULL) {
+ VideoLogError("pSubtitleFontHandle is NULL");
+ return FALSE;
+ }
+
+ SubtitleFontPopup *pSubtitleFont =
+ (SubtitleFontPopup *) pSubtitleFontHandle;
+
+ pSubtitleFont->pUserData = pUserData;
+
+ return TRUE;
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#include "vp-play-string-define.h"
+#include "vp-play-value-define.h"
+#include "vp-play-macro-define.h"
+
+#include "vp-subtitle-select.h"
+
+/* check temp */
+#include "vp-play-log.h"
+#include "vp-file-util.h"
+#include "vp-play-preference.h"
+
+#define VP_SUBTITLE_SELECT_GENLIST_DATA_KEY "vp.subtitle.select.genlist"
+
+
+typedef struct _SubtitleSelectPopup {
+ Evas_Object *pParent;
+ Evas_Object *pPopup;
+ Evas_Object *pRadio;
+ Evas_Object *pButton;
+ Evas_Object *pBox;
+ Evas_Object *pGenList;
+ Elm_Genlist_Item_Class *st_SubtitleSelect_Itc;
+ Elm_Genlist_Item_Class *st_SubtitleSelect_Itc1;
+
+ int nAppendCount;
+
+ void *pUserData;
+ SubtitleCloseCbFunc pCloseCb;
+ SubtitleCloseCbFunc pButtonCb;
+ GList *pItemList;
+ int nSubtitleIdx;
+} SubtitleSelectPopup;
+
+
+
+static void _vp_subtitle_select_destroy_handle(SubtitleSelectPopup *
+ pSubtitleSelect);
+static void __vp_subtitle_select_genlist_item_selected_cb(void *pUserData,
+ Evas_Object *
+ pObj,
+ void
+ *pEventInfo);
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __vp_subtitle_select_genlist_realized(void *data,
+ Evas_Object * obj,
+ void *event_info)
+{
+ VP_GENLIST_HIDE_BOTTOMLINE(data, obj, event_info);
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __vp_subtitle_select_popup_rotate_cb(void *data,
+ Evas_Object * obj,
+ void *event_info)
+{
+ SubtitleSelectPopup *pSubtitleSelect = (SubtitleSelectPopup *) data;
+ if (!pSubtitleSelect) {
+ VideoLogError("pSubtitleSelect IS null");
+ return;
+ }
+ if (pSubtitleSelect->nAppendCount < VP_POPUP_MIN_ITEMS) {
+ return;
+ }
+ vp_popup_set_popup_min_size(pSubtitleSelect->pParent,
+ pSubtitleSelect->pBox,
+ pSubtitleSelect->nAppendCount,
+ VIDEO_POPUP_2_TEXT_1_ICON);
+}
+
+/* callback functions */
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pPart
+ * @return
+ */
+static char *__vp_subtitle_select_genlist_text_get_cb(const void
+ *pUserData,
+ Evas_Object * pObj,
+ const char *pPart)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return NULL;
+ }
+
+ const char *szTxt = (const char *) pUserData;
+
+ if (!strcmp(pPart, "elm.text")) {
+ const char *szFileName = vp_file_get(szTxt);
+ if (szFileName) {
+ return strdup(szFileName);
+ }
+ }
+
+ return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pPart
+ * @return
+ */
+static Evas_Object *__vp_subtitle_select_genlist_content_get_cb(const void
+ *pUserData,
+ Evas_Object
+ *pObj,
+ const char
+ *pPart)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return NULL;
+ }
+
+ char *szTxt = (char *) pUserData;
+
+ if (!strcmp(pPart, "elm.swallow.end")) {
+ Evas_Object *pRadioObj = NULL;
+
+ SubtitleSelectPopup *pSubtitleSelect =
+ (SubtitleSelectPopup *) evas_object_data_get(pObj,
+ VP_SUBTITLE_SELECT_GENLIST_DATA_KEY);
+ if (pSubtitleSelect == NULL) {
+ VideoLogWarning("evas_object_data_get is fail");
+ return NULL;
+ }
+
+ if (pSubtitleSelect->pItemList == NULL) {
+ // sub-title does not exist
+ pRadioObj = elm_radio_add(pObj);
+ return pRadioObj;
+ } else {
+ // sub-title exist
+ int nIndex = 0;
+ int nCount = 0;
+ int i = 0;
+
+ nCount = g_list_length(pSubtitleSelect->pItemList);
+ for (i = 0; i < nCount; i++) {
+ char *szName = NULL;
+ szName =
+ (char *) g_list_nth_data(pSubtitleSelect->pItemList,
+ i);
+
+ if (szName == NULL) {
+ continue;
+ }
+ if (strcmp(szName, szTxt) == 0) {
+ break;
+ }
+ nIndex++;
+ }
+
+ /* get file name list */
+ pRadioObj = elm_radio_add(pObj);
+ elm_radio_state_value_set(pRadioObj, nIndex);
+ elm_radio_group_add(pRadioObj, pSubtitleSelect->pRadio);
+ elm_radio_value_set(pSubtitleSelect->pRadio,
+ pSubtitleSelect->nSubtitleIdx);
+ evas_object_smart_callback_add(pRadioObj, "changed",
+ __vp_subtitle_select_genlist_item_selected_cb,
+ pSubtitleSelect);
+ evas_object_show(pRadioObj);
+ return pRadioObj;
+ }
+ }
+
+ return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __vp_subtitle_select_genlist_item_selected_cb(void *pUserData,
+ Evas_Object *
+ pObject,
+ void *pEventInfo)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+ if (pEventInfo == NULL) {
+ VideoLogError("pEventInfo is NULL");
+ return;
+ }
+
+ Elm_Object_Item *pItem = (Elm_Object_Item *) pEventInfo;
+ Elm_Object_Item *pSelectedItem =
+ elm_genlist_selected_item_get(pObject);
+ if (pSelectedItem) {
+ elm_genlist_item_selected_set(pSelectedItem, EINA_FALSE);
+ }
+ char *szTxt = (char *) elm_object_item_data_get(pItem);
+
+ VideoSecureLogInfo("Selected subtitle path=%s", szTxt);
+ if (szTxt == NULL) {
+ VideoLogError("szTxt is NULL");
+ return;
+ }
+
+ SubtitleSelectPopup *pSubtitleSelect =
+ (SubtitleSelectPopup *) pUserData;
+ int nIndex = 0;
+ int nCount = 0;
+ int i = 0;
+
+ nCount = g_list_length(pSubtitleSelect->pItemList);
+ for (i = 0; i < nCount; i++) {
+ char *szName = NULL;
+ szName = (char *) g_list_nth_data(pSubtitleSelect->pItemList, i);
+
+ if (szName == NULL) {
+ continue;
+ }
+ if (strcmp(szName, szTxt) == 0) {
+ break;
+ }
+ nIndex++;
+ }
+
+ pSubtitleSelect->nSubtitleIdx = nIndex;
+ if (szTxt) {
+ char *szName = NULL;
+ VP_STRDUP(szName, szTxt);
+ if (pSubtitleSelect->pCloseCb) {
+ pSubtitleSelect->pCloseCb(szName,
+ (void *) pSubtitleSelect->pUserData);
+ }
+ VP_FREE(szName);
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_subtitle_select_popup_cancel_cb(void *pUserData,
+ Evas_Object * pObj,
+ void *pEventInfo)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ SubtitleSelectPopup *pSubtitleSelect =
+ (SubtitleSelectPopup *) pUserData;
+
+ if (pSubtitleSelect->pButtonCb) {
+ pSubtitleSelect->pButtonCb("cancel",
+ (void *) pSubtitleSelect->pUserData);
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_subtitle_select_popup_settings_cb(void *pUserData,
+ Evas_Object * pObj,
+ void *pEventInfo)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ SubtitleSelectPopup *pSubtitleSelect =
+ (SubtitleSelectPopup *) pUserData;
+
+ if (pSubtitleSelect->pButtonCb) {
+ pSubtitleSelect->pButtonCb("settings",
+ (void *) pSubtitleSelect->pUserData);
+ }
+}
+
+/* internal functions */
+/**
+ *
+ * @param pSubtitleSelect
+ */
+static void _vp_subtitle_select_destroy_handle(SubtitleSelectPopup *
+ pSubtitleSelect)
+{
+ if (pSubtitleSelect == NULL) {
+ VideoLogError("pSubtitleSelect is NULL");
+ return;
+ }
+ int nCount = 0;
+ int i = 0;
+
+ evas_object_smart_callback_del(pSubtitleSelect->pParent,
+ "rotation,changed",
+ __vp_subtitle_select_popup_rotate_cb);
+ evas_object_smart_callback_del(pSubtitleSelect->pGenList, "realized",
+ __vp_subtitle_select_genlist_realized);
+
+
+ VP_EVAS_DEL(pSubtitleSelect->pRadio);
+ VP_EVAS_DEL(pSubtitleSelect->pGenList);
+ VP_EVAS_DEL(pSubtitleSelect->pButton);
+ VP_EVAS_DEL(pSubtitleSelect->pBox);
+
+ if (pSubtitleSelect->st_SubtitleSelect_Itc) {
+ elm_genlist_item_class_free(pSubtitleSelect->
+ st_SubtitleSelect_Itc);
+ pSubtitleSelect->st_SubtitleSelect_Itc = NULL;
+ }
+
+ nCount = g_list_length(pSubtitleSelect->pItemList);
+ for (i = 0; i < nCount; i++) {
+ char *szName = NULL;
+ szName = (char *) g_list_nth_data(pSubtitleSelect->pItemList, i);
+ VP_FREE(szName);
+ }
+
+ g_list_free(pSubtitleSelect->pItemList);
+ pSubtitleSelect->pItemList = NULL;
+ VP_EVAS_DEL(pSubtitleSelect->pPopup);
+
+ VP_FREE(pSubtitleSelect);
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+static Evas_Object *_vp_subtitle_select_create_genlist(Evas_Object *
+ pParent)
+{
+ if (pParent == NULL) {
+ VideoLogError("pParent is NULL");
+ return NULL;
+ }
+
+ Evas_Object *pObj = NULL;
+
+ pObj = elm_genlist_add(pParent);
+ evas_object_size_hint_weight_set(pObj, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(pObj, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_show(pObj);
+ return pObj;
+}
+
+
+/**
+ *
+ * @param pObj
+ * @param pUserData
+ * @return
+ */
+static bool _vp_subtitle_select_add_genlist_item(Evas_Object * pObj,
+ void *pUserData)
+{
+ if (pObj == NULL) {
+ VideoLogError("pObj is NULL");
+ return FALSE;
+ }
+
+ SubtitleSelectPopup *pSubtitleSelect =
+ (SubtitleSelectPopup *) pUserData;
+
+ if (pSubtitleSelect->st_SubtitleSelect_Itc) {
+ elm_genlist_item_class_free(pSubtitleSelect->
+ st_SubtitleSelect_Itc);
+ pSubtitleSelect->st_SubtitleSelect_Itc = NULL;
+ }
+
+ pSubtitleSelect->st_SubtitleSelect_Itc = elm_genlist_item_class_new();
+
+ if (pSubtitleSelect->st_SubtitleSelect_Itc != NULL) {
+ pSubtitleSelect->st_SubtitleSelect_Itc->version =
+ ELM_GENLIST_ITEM_CLASS_VERSION;
+ pSubtitleSelect->st_SubtitleSelect_Itc->item_style = "type1";
+ pSubtitleSelect->st_SubtitleSelect_Itc->func.text_get =
+ (void *) __vp_subtitle_select_genlist_text_get_cb;
+ pSubtitleSelect->st_SubtitleSelect_Itc->func.content_get =
+ (void *) __vp_subtitle_select_genlist_content_get_cb;
+ pSubtitleSelect->st_SubtitleSelect_Itc->func.state_get = NULL;
+ pSubtitleSelect->st_SubtitleSelect_Itc->func.del = NULL;
+ }
+
+ int nCount = 0;
+ int i = 0;
+ pSubtitleSelect->nAppendCount = 0;
+ Elm_Object_Item *it = NULL;
+ nCount = g_list_length(pSubtitleSelect->pItemList);
+ for (i = 0; i < nCount; i++) {
+ char *szName = NULL;
+ szName = (char *) g_list_nth_data(pSubtitleSelect->pItemList, i);
+ if (szName == NULL) {
+ continue;
+ }
+ it = elm_genlist_item_append(pObj,
+ pSubtitleSelect->
+ st_SubtitleSelect_Itc,
+ (void *) szName, NULL,
+ ELM_GENLIST_ITEM_NONE,
+ __vp_subtitle_select_genlist_item_selected_cb,
+ pUserData);
+ pSubtitleSelect->nAppendCount++;
+ }
+ if (pSubtitleSelect->nAppendCount == 1) {
+ elm_object_item_disabled_set(it, EINA_TRUE);
+ }
+ VideoLogError("pSubtitleSelect->nAppendCount= %d",
+ pSubtitleSelect->nAppendCount);
+
+ return TRUE;
+}
+
+/* external functions */
+/**
+ *
+ * @param pParent
+ * @param pCloseCb
+ * @param pButtonCb
+ * @param pFileList
+ * @param szCurrentPath
+ * @param isSubtitleOff
+ * @return
+ */
+subtitle_select_handle vp_subtitle_select_create(Evas_Object * pParent,
+ SubtitleCloseCbFunc
+ pCloseCb,
+ SubtitleCloseCbFunc
+ pButtonCb,
+ GList * pFileList,
+ char *szCurrentPath,
+ bool isSubtitleOff)
+{
+ if (pParent == NULL) {
+ VideoLogError("pParent is NULL");
+ return NULL;
+ }
+
+ SubtitleSelectPopup *pSubtitleSelect = NULL;
+
+ pSubtitleSelect = calloc(1, sizeof(SubtitleSelectPopup));
+
+ if (pSubtitleSelect == NULL) {
+ VideoLogError("pSubtitleSelect alloc fail");
+ return NULL;
+ }
+
+ pSubtitleSelect->pParent = pParent;
+ pSubtitleSelect->pCloseCb = pCloseCb;
+ pSubtitleSelect->pButtonCb = pButtonCb;
+ int nItemCount = 0;
+ if (pFileList) {
+ nItemCount = g_list_length(pFileList);
+ }
+ if (nItemCount > 0)
+ pSubtitleSelect->pPopup =
+ vp_two_button_popup_create(pParent,
+ VP_PLAY_STRING_SUBTITLE_SELECT_SUBTITLES,
+ NULL, VP_PLAY_STRING_COM_CANCEL,
+ __vp_subtitle_select_popup_cancel_cb,
+ VP_PLAY_STRING_SETTINGS,
+ __vp_subtitle_select_popup_settings_cb,
+ (void *) pSubtitleSelect);
+ else {
+ pSubtitleSelect->pPopup =
+ vp_two_button_popup_create(pParent,
+ VP_PLAY_STRING_SUBTITLE_SELECT_SUBTITLES,
+ NULL, VP_PLAY_STRING_COM_CANCEL,
+ __vp_subtitle_select_popup_cancel_cb,
+ VP_PLAY_STRING_SETTINGS, NULL,
+ (void *) pSubtitleSelect);
+ Elm_Object_Item *it = NULL;
+ it = (Evas_Object *) elm_object_part_content_get(pSubtitleSelect->
+ pPopup,
+ "button2");
+ if (it) {
+ elm_object_disabled_set(it, EINA_TRUE);
+ }
+ }
+ eext_object_event_callback_add(pSubtitleSelect->pPopup,
+ EEXT_CALLBACK_BACK,
+ __vp_subtitle_select_popup_cancel_cb,
+ (void *) pSubtitleSelect);
+ if (pSubtitleSelect->pPopup == NULL) {
+ VideoLogError("vp_popup_create fail");
+ _vp_subtitle_select_destroy_handle(pSubtitleSelect);
+ return NULL;
+ }
+
+ pSubtitleSelect->pGenList =
+ _vp_subtitle_select_create_genlist(pSubtitleSelect->pPopup);
+ if (pSubtitleSelect->pGenList == NULL) {
+ VideoLogError("_vp_subtitle_select_create_genlist fail");
+ _vp_subtitle_select_destroy_handle(pSubtitleSelect);
+ return NULL;
+ }
+ evas_object_data_set(pSubtitleSelect->pGenList,
+ VP_SUBTITLE_SELECT_GENLIST_DATA_KEY,
+ (void *) pSubtitleSelect);
+ elm_genlist_mode_set(pSubtitleSelect->pGenList, ELM_LIST_COMPRESS);
+ evas_object_smart_callback_add(pSubtitleSelect->pGenList, "realized",
+ __vp_subtitle_select_genlist_realized,
+ NULL);
+
+ pSubtitleSelect->pRadio = elm_radio_add(pSubtitleSelect->pGenList);
+
+ int i = 0;
+ int nCount = 0;
+
+ if (pFileList) {
+ for (i = 0; i < nItemCount; i++) {
+ char *szName = NULL;
+ char *szItem = NULL;
+ szName = (char *) g_list_nth_data(pFileList, i);
+ if (szName == NULL) {
+ continue;
+ }
+ if (szCurrentPath) {
+ if (strcmp(szName, szCurrentPath) == 0) {
+ pSubtitleSelect->nSubtitleIdx = nCount;
+ elm_radio_value_set(pSubtitleSelect->pRadio,
+ pSubtitleSelect->nSubtitleIdx);
+ }
+ }
+ VP_STRDUP(szItem, szName);
+ pSubtitleSelect->pItemList =
+ g_list_append(pSubtitleSelect->pItemList, (void *) szItem);
+ nCount++;
+ }
+ }
+
+ char *szItem = NULL;
+ VP_STRDUP(szItem, VP_PLAY_STRING_SUBTITLE_OFF);
+ pSubtitleSelect->pItemList =
+ g_list_append(pSubtitleSelect->pItemList, (void *) szItem);
+ nCount++;
+ bool bOn = FALSE;
+ vp_play_preference_get_subtitle_show_key(&bOn);
+ if (!_vp_subtitle_select_add_genlist_item
+ (pSubtitleSelect->pGenList, (void *) pSubtitleSelect)) {
+ VideoLogError("_vp_subtitle_select_add_genlist_item fail");
+ _vp_subtitle_select_destroy_handle(pSubtitleSelect);
+ return FALSE;
+ }
+ if (isSubtitleOff || !bOn) {
+ pSubtitleSelect->nSubtitleIdx = (nCount - 1);
+ elm_radio_value_set(pSubtitleSelect->pRadio,
+ pSubtitleSelect->nSubtitleIdx);
+ }
+ evas_object_smart_callback_add(pSubtitleSelect->pParent,
+ "rotation,changed",
+ __vp_subtitle_select_popup_rotate_cb,
+ pSubtitleSelect);
+
+ pSubtitleSelect->pBox = elm_box_add(pSubtitleSelect->pPopup);
+ vp_popup_set_popup_min_size(pSubtitleSelect->pParent,
+ pSubtitleSelect->pBox,
+ pSubtitleSelect->nAppendCount,
+ VIDEO_POPUP_DEFAULT);
+
+ elm_box_pack_end(pSubtitleSelect->pBox, pSubtitleSelect->pGenList);
+ elm_object_content_set(pSubtitleSelect->pPopup, pSubtitleSelect->pBox);
+
+ return pSubtitleSelect;
+}
+
+/**
+ *
+ * @param pSubtitleSelectHandle
+ */
+void vp_subtitle_select_destroy(subtitle_select_handle
+ pSubtitleSelectHandle)
+{
+ if (pSubtitleSelectHandle == NULL) {
+ VideoLogError("pSubtitleSelectHandle is NULL");
+ return;
+ }
+
+ SubtitleSelectPopup *pSubtitleSelect =
+ (SubtitleSelectPopup *) pSubtitleSelectHandle;
+
+ _vp_subtitle_select_destroy_handle(pSubtitleSelect);
+}
+
+/**
+ *
+ * @param pSubtitleSelectHandle
+ * @return
+ */
+bool vp_subtitle_select_realize(subtitle_select_handle
+ pSubtitleSelectHandle)
+{
+ if (pSubtitleSelectHandle == NULL) {
+ VideoLogError("pSubtitleSelectHandle is NULL");
+ return FALSE;
+ }
+
+ SubtitleSelectPopup *pSubtitleSelect =
+ (SubtitleSelectPopup *) pSubtitleSelectHandle;
+
+ evas_object_show(pSubtitleSelect->pPopup);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pSubtitleSelectHandle
+ * @return
+ */
+bool vp_subtitle_select_unrealize(subtitle_select_handle
+ pSubtitleSelectHandle)
+{
+ if (pSubtitleSelectHandle == NULL) {
+ VideoLogError("pSubtitleSelectHandle is NULL");
+ return FALSE;
+ }
+
+ SubtitleSelectPopup *pSubtitleSelect =
+ (SubtitleSelectPopup *) pSubtitleSelectHandle;
+
+ evas_object_hide(pSubtitleSelect->pPopup);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pSubtitleSelectHandle
+ * @param pUserData
+ * @return
+ */
+bool vp_subtitle_select_set_user_data(subtitle_select_handle
+ pSubtitleSelectHandle,
+ void *pUserData)
+{
+ if (pSubtitleSelectHandle == NULL) {
+ VideoLogError("pSubtitleSelectHandle is NULL");
+ return FALSE;
+ }
+
+ SubtitleSelectPopup *pSubtitleSelect =
+ (SubtitleSelectPopup *) pSubtitleSelectHandle;
+
+ pSubtitleSelect->pUserData = pUserData;
+
+ return TRUE;
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "vp-play-string-define.h"
+#include "vp-play-value-define.h"
+#include "vp-play-type-define.h"
+#include "vp-play-macro-define.h"
+
+#include "vp-subtitle-size.h"
+
+/* check temp */
+#include "vp-play-log.h"
+
+#define VP_SUBTITLE_SIZE_GENLIST_DATA_KEY "vp.subtitle.size.genlist"
+
+
+typedef struct _SubtitleSizePopup {
+ Evas_Object *pParent;
+ Evas_Object *pPopup;
+ Evas_Object *pRadio;
+ Evas_Object *pButton;
+ Evas_Object *pBox;
+ Evas_Object *pGenList;
+ Elm_Genlist_Item_Class *st_SubtitleSize_Itc;
+
+ int nListCount;
+
+ void *pUserData;
+ PopupCloseCbFunc pCloseCb;
+ video_play_subtitle_size_t currentSubtitleSize;
+} SubtitleSizePopup;
+
+
+
+static void _vp_subtitle_size_destroy_handle(SubtitleSizePopup *
+ pSubtitleSize);
+static void __vp_subtitle_size_genlist_item_selected_cb(void *pUserData,
+ Evas_Object *
+ pObject,
+ void *pEventInfo);
+
+/**
+ * .
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __vp_subtitle_size_genlist_realized(void *data,
+ Evas_Object * obj,
+ void *event_info)
+{
+ VP_GENLIST_HIDE_BOTTOMLINE(data, obj, event_info);
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __vp_subtitle_size_popup_rotate_cb(void *data,
+ Evas_Object * obj,
+ void *event_info)
+{
+ SubtitleSizePopup *pSubtitleSize = (SubtitleSizePopup *) data;
+ if (!pSubtitleSize) {
+ VideoLogError("pSubtitleSize IS null");
+ return;
+ }
+ if (pSubtitleSize->nListCount < VP_POPUP_MIN_ITEMS) {
+ return;
+ }
+ vp_popup_set_popup_min_size(pSubtitleSize->pParent,
+ pSubtitleSize->pBox,
+ pSubtitleSize->nListCount,
+ VIDEO_POPUP_DEFAULT);
+
+}
+
+/* callback functions */
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pPart
+ * @return
+ */
+static char *__vp_subtitle_size_genlist_text_get_cb(const void *pUserData,
+ Evas_Object * pObj,
+ const char *pPart)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return NULL;
+ }
+
+ if (!strcmp(pPart, "elm.text")) {
+
+ char *szTxt = (char *) pUserData;
+ char szTmp[VP_STRING_LEN_MAX] = { 0, };
+ int nSize = 0;
+
+ if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_SIZE_SMALL)) {
+ nSize = VP_SUBTITLE_SIZE_SMALL_VALUE;
+ } else if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_SIZE_MEDIUM)) {
+ nSize = VP_SUBTITLE_SIZE_MEDIUM_VALUE;
+ } else if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_SIZE_LARGE)) {
+ nSize = VP_SUBTITLE_SIZE_LARGE_VALUE;
+ }
+
+ snprintf(szTmp, VP_STRING_LEN_MAX - 1,
+ "<font_size=%d>%s</font_size>", nSize, szTxt);
+
+ return strdup(szTmp);
+ }
+
+ return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pPart
+ * @return
+ */
+static Evas_Object *__vp_subtitle_size_genlist_content_get_cb(const void
+ *pUserData,
+ Evas_Object *
+ pObj,
+ const char
+ *pPart)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return NULL;
+ }
+
+ char *szTxt = (char *) pUserData;
+
+ if (!strcmp(pPart, "elm.swallow.end")) {
+ Evas_Object *pRadioObj = NULL;
+
+ SubtitleSizePopup *pSubtitleSize =
+ (SubtitleSizePopup *) evas_object_data_get(pObj,
+ VP_SUBTITLE_SIZE_GENLIST_DATA_KEY);
+ if (pSubtitleSize == NULL) {
+ VideoLogWarning("evas_object_data_get is fail");
+ return NULL;
+ }
+ video_play_subtitle_size_t nSize = VIDEO_SUBTITLE_SIZE_MEDIUM;
+ if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_SIZE_SMALL)) {
+ nSize = VIDEO_SUBTITLE_SIZE_SMALL;
+ } else if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_SIZE_MEDIUM)) {
+ nSize = VIDEO_SUBTITLE_SIZE_MEDIUM;
+ } else if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_SIZE_LARGE)) {
+ nSize = VIDEO_SUBTITLE_SIZE_LARGE;
+ }
+
+ pRadioObj = elm_radio_add(pObj);
+ elm_radio_state_value_set(pRadioObj, nSize);
+ elm_radio_group_add(pRadioObj, pSubtitleSize->pRadio);
+ elm_radio_value_set(pSubtitleSize->pRadio,
+ pSubtitleSize->currentSubtitleSize);
+ evas_object_smart_callback_add(pRadioObj, "changed",
+ __vp_subtitle_size_genlist_item_selected_cb,
+ pSubtitleSize);
+ evas_object_show(pRadioObj);
+
+ return pRadioObj;
+ }
+
+ return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __vp_subtitle_size_genlist_item_selected_cb(void *pUserData,
+ Evas_Object *
+ pObject,
+ void *pEventInfo)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+ if (pEventInfo == NULL) {
+ VideoLogError("pEventInfo is NULL");
+ return;
+ }
+
+ Elm_Object_Item *pItem = (Elm_Object_Item *) pEventInfo;
+ Elm_Object_Item *pSelectedItem =
+ elm_genlist_selected_item_get(pObject);
+ if (pSelectedItem) {
+ elm_genlist_item_selected_set(pSelectedItem, EINA_FALSE);
+ }
+ char *szTxt = (char *) elm_object_item_data_get(pItem);
+
+ SubtitleSizePopup *pSubtitleSize = (SubtitleSizePopup *) pUserData;
+
+ if (szTxt == NULL) {
+ VideoLogError("szTxt is NULL");
+ return;
+ }
+ video_play_subtitle_size_t nSize = VIDEO_SUBTITLE_SIZE_MEDIUM;
+ if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_SIZE_SMALL)) {
+ nSize = VIDEO_SUBTITLE_SIZE_SMALL;
+ } else if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_SIZE_MEDIUM)) {
+ nSize = VIDEO_SUBTITLE_SIZE_MEDIUM;
+ } else if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_SIZE_LARGE)) {
+ nSize = VIDEO_SUBTITLE_SIZE_LARGE;
+ }
+
+ pSubtitleSize->currentSubtitleSize = nSize;
+ if (pSubtitleSize->pCloseCb) {
+ pSubtitleSize->pCloseCb(nSize, FALSE,
+ (void *) pSubtitleSize->pUserData);
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_subtitle_size_popup_key_event_cb(void *pUserData,
+ Evas_Object * pObj,
+ void *pEventInfo)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ SubtitleSizePopup *pSubtitleSize = (SubtitleSizePopup *) pUserData;
+
+ if (pSubtitleSize->pCloseCb) {
+ pSubtitleSize->pCloseCb(-1, FALSE,
+ (void *) pSubtitleSize->pUserData);
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pEvas
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_subtitle_size_popup_mouse_event_cb(void *pUserData,
+ Evas * pEvas,
+ Evas_Object * pObj,
+ void *pEventInfo)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ if (pEventInfo == NULL) {
+ VideoLogError("pEventInfo is NULL");
+ return;
+ }
+
+ Evas_Event_Mouse_Up *ev = pEventInfo;
+
+ if (ev->button == 3) {
+ SubtitleSizePopup *pSubtitleSize = (SubtitleSizePopup *) pUserData;
+
+ if (pSubtitleSize->pCloseCb) {
+ pSubtitleSize->pCloseCb(-1, FALSE,
+ (void *) pSubtitleSize->pUserData);
+ }
+ }
+}
+
+/* internal functions */
+/**
+ *
+ * @param pSubtitleSize
+ */
+static void _vp_subtitle_size_destroy_handle(SubtitleSizePopup *
+ pSubtitleSize)
+{
+ if (pSubtitleSize == NULL) {
+ VideoLogError("pSubtitleSize is NULL");
+ return;
+ }
+
+ evas_object_smart_callback_del(pSubtitleSize->pParent,
+ "rotation,changed",
+ __vp_subtitle_size_popup_rotate_cb);
+ evas_object_smart_callback_del(pSubtitleSize->pGenList, "realized",
+ __vp_subtitle_size_genlist_realized);
+
+ VP_EVAS_DEL(pSubtitleSize->pRadio);
+ VP_EVAS_DEL(pSubtitleSize->pGenList);
+ VP_EVAS_DEL(pSubtitleSize->pButton);
+ VP_EVAS_DEL(pSubtitleSize->pBox);
+
+ if (pSubtitleSize->st_SubtitleSize_Itc) {
+ elm_genlist_item_class_free(pSubtitleSize->st_SubtitleSize_Itc);
+ pSubtitleSize->st_SubtitleSize_Itc = NULL;
+ }
+
+ VP_EVAS_DEL(pSubtitleSize->pPopup);
+
+ VP_FREE(pSubtitleSize);
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+static Evas_Object *_vp_subtitle_size_create_genlist(Evas_Object * pParent)
+{
+ if (pParent == NULL) {
+ VideoLogError("pParent is NULL");
+ return NULL;
+ }
+
+ Evas_Object *pObj = NULL;
+
+ pObj = elm_genlist_add(pParent);
+ evas_object_size_hint_weight_set(pObj, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(pObj, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_show(pObj);
+ return pObj;
+}
+
+/**
+ *
+ * @param pObj
+ * @param pUserData
+ * @return
+ */
+static bool _vp_subtitle_size_add_genlist_item(Evas_Object * pObj,
+ void *pUserData)
+{
+ if (pObj == NULL) {
+ VideoLogError("pObj is NULL");
+ return FALSE;
+ }
+
+ SubtitleSizePopup *pSubtitleSize = (SubtitleSizePopup *) pUserData;
+
+ if (pSubtitleSize->st_SubtitleSize_Itc) {
+ elm_genlist_item_class_free(pSubtitleSize->st_SubtitleSize_Itc);
+ pSubtitleSize->st_SubtitleSize_Itc = NULL;
+ }
+
+ pSubtitleSize->st_SubtitleSize_Itc = elm_genlist_item_class_new();
+
+ if (pSubtitleSize->st_SubtitleSize_Itc != NULL) {
+ pSubtitleSize->st_SubtitleSize_Itc->version =
+ ELM_GENLIST_ITEM_CLASS_VERSION;
+ pSubtitleSize->st_SubtitleSize_Itc->item_style = "type1";
+ pSubtitleSize->st_SubtitleSize_Itc->func.text_get =
+ (void *) __vp_subtitle_size_genlist_text_get_cb;
+ pSubtitleSize->st_SubtitleSize_Itc->func.content_get =
+ (void *) __vp_subtitle_size_genlist_content_get_cb;
+ pSubtitleSize->st_SubtitleSize_Itc->func.state_get = NULL;
+ pSubtitleSize->st_SubtitleSize_Itc->func.del = NULL;
+ pSubtitleSize->nListCount = 0;
+
+ elm_genlist_item_append(pObj,
+ pSubtitleSize->st_SubtitleSize_Itc,
+ (void *)
+ VP_PLAY_STRING_SUBTITLE_SIZE_LARGE, NULL,
+ ELM_GENLIST_ITEM_NONE,
+ __vp_subtitle_size_genlist_item_selected_cb,
+ pUserData);
+ pSubtitleSize->nListCount++;
+ elm_genlist_item_append(pObj, pSubtitleSize->st_SubtitleSize_Itc,
+ (void *)
+ VP_PLAY_STRING_SUBTITLE_SIZE_MEDIUM, NULL,
+ ELM_GENLIST_ITEM_NONE,
+ __vp_subtitle_size_genlist_item_selected_cb,
+ pUserData);
+ pSubtitleSize->nListCount++;
+ elm_genlist_item_append(pObj, pSubtitleSize->st_SubtitleSize_Itc,
+ (void *)
+ VP_PLAY_STRING_SUBTITLE_SIZE_SMALL, NULL,
+ ELM_GENLIST_ITEM_NONE,
+ __vp_subtitle_size_genlist_item_selected_cb,
+ pUserData);
+ pSubtitleSize->nListCount++;
+ }
+
+ return TRUE;
+}
+
+/* external functions */
+/**
+ *
+ * @param pParent
+ * @param pCloseCb
+ * @param nDefaultSize
+ * @return
+ */
+subtitle_size_handle vp_subtitle_size_create(Evas_Object * pParent,
+ PopupCloseCbFunc pCloseCb,
+ int nDefaultSize)
+{
+ if (pParent == NULL) {
+ VideoLogError("pParent is NULL");
+ return NULL;
+ }
+
+ SubtitleSizePopup *pSubtitleSize = NULL;
+
+ pSubtitleSize = calloc(1, sizeof(SubtitleSizePopup));
+
+ if (pSubtitleSize == NULL) {
+ VideoLogError("pSubtitleSize alloc fail");
+ return NULL;
+ }
+
+ pSubtitleSize->pParent = pParent;
+ pSubtitleSize->pCloseCb = pCloseCb;
+
+ pSubtitleSize->pPopup =
+ vp_popup_create(pParent, POPUP_STYLE_MENU_LIST_NO_CANCEL_BTN,
+ VP_PLAY_STRING_SUBTITLE_SIZE, NULL, 0.0, NULL,
+ __vp_subtitle_size_popup_key_event_cb,
+ __vp_subtitle_size_popup_mouse_event_cb,
+ (void *) pSubtitleSize);
+ if (pSubtitleSize->pPopup == NULL) {
+ VideoLogError("vp_popup_create fail");
+ _vp_subtitle_size_destroy_handle(pSubtitleSize);
+ return NULL;
+ }
+
+ pSubtitleSize->pGenList =
+ _vp_subtitle_size_create_genlist(pSubtitleSize->pPopup);
+ if (pSubtitleSize->pGenList == NULL) {
+ VideoLogError("_vp_subtitle_size_create_genlist fail");
+ _vp_subtitle_size_destroy_handle(pSubtitleSize);
+ return NULL;
+ }
+ evas_object_data_set(pSubtitleSize->pGenList,
+ VP_SUBTITLE_SIZE_GENLIST_DATA_KEY,
+ (void *) pSubtitleSize);
+ evas_object_smart_callback_add(pSubtitleSize->pGenList, "realized",
+ __vp_subtitle_size_genlist_realized,
+ NULL);
+
+ pSubtitleSize->pRadio = elm_radio_add(pSubtitleSize->pGenList);
+
+ if (!_vp_subtitle_size_add_genlist_item
+ (pSubtitleSize->pGenList, (void *) pSubtitleSize)) {
+ VideoLogError("_vp_subtitle_size_add_genlist_item fail");
+ _vp_subtitle_size_destroy_handle(pSubtitleSize);
+ return NULL;
+ }
+
+ pSubtitleSize->currentSubtitleSize = nDefaultSize;
+ evas_object_smart_callback_add(pSubtitleSize->pParent,
+ "rotation,changed",
+ __vp_subtitle_size_popup_rotate_cb,
+ pSubtitleSize);
+
+ pSubtitleSize->pBox = elm_box_add(pSubtitleSize->pPopup);
+ vp_popup_set_popup_min_size(pSubtitleSize->pParent,
+ pSubtitleSize->pBox,
+ pSubtitleSize->nListCount,
+ VIDEO_POPUP_DEFAULT);
+ elm_box_pack_end(pSubtitleSize->pBox, pSubtitleSize->pGenList);
+ elm_object_content_set(pSubtitleSize->pPopup, pSubtitleSize->pBox);
+
+ return pSubtitleSize;
+}
+
+/**
+ *
+ * @param pSubtitleSizeHandle
+ */
+void vp_subtitle_size_destroy(subtitle_size_handle pSubtitleSizeHandle)
+{
+ if (pSubtitleSizeHandle == NULL) {
+ VideoLogError("pSubtitleSizeHandle is NULL");
+ return;
+ }
+
+ SubtitleSizePopup *pSubtitleSize =
+ (SubtitleSizePopup *) pSubtitleSizeHandle;
+
+ _vp_subtitle_size_destroy_handle(pSubtitleSize);
+
+}
+
+/**
+ *
+ * @param pSubtitleSizeHandle
+ * @return
+ */
+bool vp_subtitle_size_realize(subtitle_size_handle pSubtitleSizeHandle)
+{
+ if (pSubtitleSizeHandle == NULL) {
+ VideoLogError("pSubtitleSizeHandle is NULL");
+ return FALSE;
+ }
+
+ SubtitleSizePopup *pSubtitleSize =
+ (SubtitleSizePopup *) pSubtitleSizeHandle;
+
+ evas_object_show(pSubtitleSize->pPopup);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pSubtitleSizeHandle
+ * @return
+ */
+bool vp_subtitle_size_unrealize(subtitle_size_handle pSubtitleSizeHandle)
+{
+ if (pSubtitleSizeHandle == NULL) {
+ VideoLogError("pSubtitleSizeHandle is NULL");
+ return FALSE;
+ }
+
+ SubtitleSizePopup *pSubtitleSize =
+ (SubtitleSizePopup *) pSubtitleSizeHandle;
+
+ evas_object_hide(pSubtitleSize->pPopup);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pSubtitleSizeHandle
+ * @param pUserData
+ * @return
+ */
+bool vp_subtitle_size_set_user_data(subtitle_size_handle
+ pSubtitleSizeHandle, void *pUserData)
+{
+ if (pSubtitleSizeHandle == NULL) {
+ VideoLogError("pSubtitleSizeHandle is NULL");
+ return FALSE;
+ }
+
+ SubtitleSizePopup *pSubtitleSize =
+ (SubtitleSizePopup *) pSubtitleSizeHandle;
+
+ pSubtitleSize->pUserData = pUserData;
+
+ return TRUE;
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "vp-play-string-define.h"
+#include "vp-play-macro-define.h"
+
+#include "vp-subtitle-sync.h"
+#include "vp-play-button.h"
+
+/* check temp */
+#include "vp-play-log.h"
+
+#define VP_SUBTITLE_SYNC_MAX_VALUE 30.0
+#define VP_SUBTITLE_SYNC_MIN_VALUE -30.0
+
+typedef struct _SubtitleSyncPopup {
+ Evas_Object *pParent;
+ Evas_Object *pPopup;
+ Evas_Object *pLayout;
+ Evas_Object *pBox;
+ Evas_Object *pSlider;
+ Evas_Object *pOkButton;
+ Evas_Object *pCancelButton;
+ Evas_Object *pAddButton;
+ Evas_Object *pDelButton;
+
+ float fSyncVal;
+
+ void *pUserData;
+
+ SubtitleSyncDoneCbFunc pDoneCb;
+ SubtitleSyncUpdateCbFunc pUpdateCb;
+
+} SubtitleSyncPopup;
+
+
+
+static void _vp_subtitle_sync_popup_destroy_handle(SubtitleSyncPopup *
+ pSubtitleSyncPopup);
+static void _vp_subtitle_sync_update_text(SubtitleSyncPopup *
+ pSubtitleSyncPopup);
+
+
+/* callback functions */
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_subtitle_sync_popup_ok_btn_cb(void *pUserData,
+ Evas_Object * pObj,
+ void *pEventInfo)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ SubtitleSyncPopup *pSubtitleSyncPopup =
+ (SubtitleSyncPopup *) pUserData;
+
+ if (pSubtitleSyncPopup->pDoneCb) {
+ pSubtitleSyncPopup->pDoneCb(pSubtitleSyncPopup->fSyncVal, TRUE,
+ (void *)
+ pSubtitleSyncPopup->pUserData);
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_subtitle_sync_popup_cancel_btn_cb(void *pUserData,
+ Evas_Object * pObj,
+ void *pEventInfo)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ SubtitleSyncPopup *pSubtitleSyncPopup =
+ (SubtitleSyncPopup *) pUserData;
+
+ if (pSubtitleSyncPopup->pDoneCb) {
+ pSubtitleSyncPopup->pDoneCb(pSubtitleSyncPopup->fSyncVal, FALSE,
+ (void *)
+ pSubtitleSyncPopup->pUserData);
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_subtitle_sync_popup_key_event_cb(void *pUserData,
+ Evas_Object * pObj,
+ void *pEventInfo)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ SubtitleSyncPopup *pSubtitleSyncPopup =
+ (SubtitleSyncPopup *) pUserData;
+
+ if (pSubtitleSyncPopup->pDoneCb) {
+ pSubtitleSyncPopup->pDoneCb(pSubtitleSyncPopup->fSyncVal, FALSE,
+ (void *)
+ pSubtitleSyncPopup->pUserData);
+ }
+
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pEvas
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_subtitle_sync_popup_mouse_event_cb(void *pUserData,
+ Evas * pEvas,
+ Evas_Object * pObj,
+ void *pEventInfo)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ if (pEventInfo == NULL) {
+ VideoLogError("pEventInfo is NULL");
+ return;
+ }
+
+ Evas_Event_Mouse_Up *ev = pEventInfo;
+
+ if (ev->button == 3) {
+ SubtitleSyncPopup *pSubtitleSyncPopup =
+ (SubtitleSyncPopup *) pUserData;
+ if (pSubtitleSyncPopup->pDoneCb) {
+ pSubtitleSyncPopup->pDoneCb(pSubtitleSyncPopup->fSyncVal,
+ FALSE,
+ (void *)
+ pSubtitleSyncPopup->pUserData);
+ }
+
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_subtitle_sync_popup_slider_change_cb(void *pUserData,
+ Evas_Object * pObj,
+ void *pEventInfo)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ SubtitleSyncPopup *pSubtitleSyncPopup =
+ (SubtitleSyncPopup *) pUserData;
+
+ float fValue =
+ (float) elm_slider_value_get(pSubtitleSyncPopup->pSlider);
+
+ if (fValue != pSubtitleSyncPopup->fSyncVal) {
+ if (pSubtitleSyncPopup->pUpdateCb) {
+ pSubtitleSyncPopup->pUpdateCb(pSubtitleSyncPopup->fSyncVal,
+ (void *)
+ pSubtitleSyncPopup->pUserData);
+ pSubtitleSyncPopup->fSyncVal = fValue;
+ _vp_subtitle_sync_update_text(pSubtitleSyncPopup);
+ }
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEvent
+ */
+static void __vp_subtitle_sync_btn_clicked_cb(void *pUserData,
+ Evas_Object * pObj,
+ void *pEvent)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ SubtitleSyncPopup *pSubtitleSyncPopup =
+ (SubtitleSyncPopup *) pUserData;
+
+ float fValue =
+ (float) elm_slider_value_get(pSubtitleSyncPopup->pSlider);
+ VideoLogWarning("== %f ==", fValue);
+
+ if (pObj == pSubtitleSyncPopup->pAddButton) {
+ fValue += 0.2;
+ if (fValue <= VP_SUBTITLE_SYNC_MAX_VALUE) {
+ VideoLogWarning("== %f ==", fValue);
+ elm_slider_value_set(pSubtitleSyncPopup->pSlider,
+ (double) fValue);
+ if (pSubtitleSyncPopup->pUpdateCb) {
+ pSubtitleSyncPopup->pUpdateCb(pSubtitleSyncPopup->fSyncVal,
+ (void *)
+ pSubtitleSyncPopup->pUserData);
+ pSubtitleSyncPopup->fSyncVal = fValue;
+ _vp_subtitle_sync_update_text(pSubtitleSyncPopup);
+ }
+ }
+ } else if (pObj == pSubtitleSyncPopup->pDelButton) {
+ fValue -= 0.2;
+ if (fValue >= VP_SUBTITLE_SYNC_MIN_VALUE) {
+ VideoLogWarning("== %f ==", fValue);
+ elm_slider_value_set(pSubtitleSyncPopup->pSlider,
+ (double) fValue);
+ if (pSubtitleSyncPopup->pUpdateCb) {
+ pSubtitleSyncPopup->pUpdateCb(pSubtitleSyncPopup->fSyncVal,
+ (void *)
+ pSubtitleSyncPopup->pUserData);
+ pSubtitleSyncPopup->fSyncVal = fValue;
+ _vp_subtitle_sync_update_text(pSubtitleSyncPopup);
+ }
+ }
+ }
+}
+
+/* internal functions */
+/**
+ *
+ * @param pSubtitleSyncPopup
+ */
+static void _vp_subtitle_sync_popup_destroy_handle(SubtitleSyncPopup *
+ pSubtitleSyncPopup)
+{
+ if (pSubtitleSyncPopup == NULL) {
+ VideoLogError("pSubtitleSyncPopup is NULL");
+ return;
+ }
+
+ VP_EVAS_DEL(pSubtitleSyncPopup->pAddButton);
+ VP_EVAS_DEL(pSubtitleSyncPopup->pDelButton);
+
+ VP_EVAS_DEL(pSubtitleSyncPopup->pOkButton);
+ VP_EVAS_DEL(pSubtitleSyncPopup->pCancelButton);
+ VP_EVAS_DEL(pSubtitleSyncPopup->pSlider);
+ VP_EVAS_DEL(pSubtitleSyncPopup->pBox);
+ VP_EVAS_DEL(pSubtitleSyncPopup->pLayout);
+ VP_EVAS_DEL(pSubtitleSyncPopup->pPopup);
+
+ VP_FREE(pSubtitleSyncPopup);
+}
+
+/**
+ *
+ * @param pSubtitleSyncPopup
+ */
+static void _vp_subtitle_sync_update_text(SubtitleSyncPopup *
+ pSubtitleSyncPopup)
+{
+ if (pSubtitleSyncPopup == NULL) {
+ VideoLogError("pSubtitleSyncPopup is NULL");
+ return;
+ }
+
+ char szValue[6] = { 0, };
+
+ snprintf(szValue, 6, "%0.1f", (double) pSubtitleSyncPopup->fSyncVal);
+ elm_object_part_text_set(pSubtitleSyncPopup->pLayout,
+ "elm.text.title", szValue);
+
+}
+
+
+/**
+ *
+ * @param pParent
+ * @param pUserData
+ * @return
+ */
+static Evas_Object *_vp_subtitle_sync_popup_create_ok_button(Evas_Object *
+ pParent,
+ void
+ *pUserData)
+{
+ if (pParent == NULL) {
+ VideoLogError("pParent is NULL");
+ return NULL;
+ }
+
+ Evas_Object *pObj = NULL;
+ pObj = elm_button_add(pParent);
+ elm_object_style_set(pObj, "popup_button/default");
+ elm_object_domain_translatable_text_set(pObj, VP_SYS_STR_PREFIX,
+ VP_PLAY_STRING_COM_OK_IDS);
+ elm_object_part_content_set(pParent, "button2", pObj);
+ evas_object_smart_callback_add(pObj, "clicked",
+ __vp_subtitle_sync_popup_ok_btn_cb,
+ pUserData);
+ evas_object_show(pObj);
+
+ return pObj;
+}
+
+/**
+ *
+ * @param pParent
+ * @param pUserData
+ * @return
+ */
+static Evas_Object
+ *_vp_subtitle_sync_popup_create_cancel_button(Evas_Object * pParent,
+ void *pUserData)
+{
+ if (pParent == NULL) {
+ VideoLogError("pParent is NULL");
+ return NULL;
+ }
+
+ Evas_Object *pObj = NULL;
+ pObj = elm_button_add(pParent);
+ elm_object_style_set(pObj, "popup_button/default");
+ elm_object_domain_translatable_text_set(pObj, VP_SYS_STR_PREFIX,
+ VP_PLAY_STRING_COM_CANCEL_IDS);
+ elm_object_part_content_set(pParent, "button1", pObj);
+ evas_object_smart_callback_add(pObj, "clicked",
+ __vp_subtitle_sync_popup_cancel_btn_cb,
+ pUserData);
+ evas_object_show(pObj);
+
+ return pObj;
+}
+
+/**
+ *
+ * @param pParent
+ * @param pUserData
+ * @return
+ */
+static Evas_Object *_vp_subtitle_sync_popup_create_slider(Evas_Object *
+ pParent,
+ void *pUserData)
+{
+ if (pParent == NULL) {
+ VideoLogError("pParent is NULL");
+ return NULL;
+ }
+ Evas_Object *pObj = NULL;
+
+ pObj = elm_slider_add(pParent);
+ elm_slider_indicator_show_set(pObj, EINA_FALSE);
+ evas_object_size_hint_weight_set(pObj, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(pObj, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+ elm_slider_min_max_set(pObj, VP_SUBTITLE_SYNC_MIN_VALUE,
+ VP_SUBTITLE_SYNC_MAX_VALUE);
+ evas_object_smart_callback_add(pObj, "changed",
+ __vp_subtitle_sync_popup_slider_change_cb,
+ pUserData);
+
+ return pObj;
+}
+
+/**
+ *
+ * @param pParent
+ * @param pUserData
+ * @return
+ */
+static bool _vp_subtitle_sync_popup_create_button(Evas_Object * pParent,
+ void *pUserData)
+{
+ if (pParent == NULL) {
+ VideoLogError("pParent is NULL");
+ return FALSE;
+ }
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VP_PLAY_RESROUCE_EDJ_PATH);
+ free(path);
+ SubtitleSyncPopup *pSubtitleSyncPopup =
+ (SubtitleSyncPopup *) pUserData;
+
+ pSubtitleSyncPopup->pDelButton =
+ vp_button_create(pParent, "custom/flat_63_78/default",
+ NULL, (Evas_Smart_Cb)
+ __vp_subtitle_sync_btn_clicked_cb,
+ (Evas_Smart_Cb) NULL, (Evas_Smart_Cb) NULL,
+ (void *) pSubtitleSyncPopup);
+
+
+
+ pSubtitleSyncPopup->pAddButton =
+ vp_button_create(pParent, "custom/flat_63_78/default",
+ NULL, (Evas_Smart_Cb)
+ __vp_subtitle_sync_btn_clicked_cb,
+ (Evas_Smart_Cb) NULL, (Evas_Smart_Cb) NULL,
+ (void *) pSubtitleSyncPopup);
+
+ Evas_Object *pIcon = NULL;
+
+ pIcon =
+ vp_button_create_icon(pSubtitleSyncPopup->pDelButton,
+ edj_path, VP_PLAY_RES_BUTTON_DEL);
+ elm_object_part_content_set(pSubtitleSyncPopup->pDelButton,
+ VP_PLAY_SWALLOW_BUTTON_ICON, pIcon);
+
+ pIcon =
+ vp_button_create_icon(pSubtitleSyncPopup->pDelButton,
+ edj_path, VP_PLAY_RES_BUTTON_DEL_PRESS);
+ elm_object_part_content_set(pSubtitleSyncPopup->pDelButton,
+ VP_PLAY_SWALLOW_BUTTON_PRESS_ICON, pIcon);
+
+ pIcon =
+ vp_button_create_icon(pSubtitleSyncPopup->pDelButton,
+ edj_path, VP_PLAY_RES_BUTTON_DEL);
+ elm_object_part_content_set(pSubtitleSyncPopup->pDelButton,
+ VP_PLAY_SWALLOW_BUTTON_DIM_ICON, pIcon);
+
+ pIcon =
+ vp_button_create_icon(pSubtitleSyncPopup->pAddButton,
+ edj_path, VP_PLAY_RES_BUTTON_ADD);
+ elm_object_part_content_set(pSubtitleSyncPopup->pAddButton,
+ VP_PLAY_SWALLOW_BUTTON_ICON, pIcon);
+
+ pIcon =
+ vp_button_create_icon(pSubtitleSyncPopup->pAddButton,
+ edj_path, VP_PLAY_RES_BUTTON_ADD_PRESS);
+ elm_object_part_content_set(pSubtitleSyncPopup->pAddButton,
+ VP_PLAY_SWALLOW_BUTTON_PRESS_ICON, pIcon);
+
+ pIcon =
+ vp_button_create_icon(pSubtitleSyncPopup->pAddButton,
+ edj_path, VP_PLAY_RES_BUTTON_ADD);
+ elm_object_part_content_set(pSubtitleSyncPopup->pAddButton,
+ VP_PLAY_SWALLOW_BUTTON_DIM_ICON, pIcon);
+
+ elm_object_part_content_set(pParent, "elm.swallow.icon.1",
+ pSubtitleSyncPopup->pDelButton);
+ elm_object_part_content_set(pParent, "elm.swallow.icon.2",
+ pSubtitleSyncPopup->pAddButton);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+static Evas_Object *_vp_subtitle_sync_popup_create_layout(Evas_Object *
+ pParent)
+{
+ if (pParent == NULL) {
+ VideoLogError("pParent is NULL");
+ return NULL;
+ }
+
+ Evas_Object *pLayout = elm_layout_add(pParent);
+ if (pLayout == NULL) {
+ VideoLogError("pLayout object is NULL");
+ return NULL;
+ }
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VP_PLAY_SPEED_POPUP_EDJ);
+ free(path);
+ elm_layout_file_set(pLayout, edj_path,
+ VP_PLAY_EDJ_GROUP_PLAY_SPEED_POPUP);
+
+ evas_object_size_hint_weight_set(pLayout, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(pLayout, EVAS_HINT_FILL,
+ EVAS_HINT_FILL);
+
+ evas_object_show(pLayout);
+
+ return pLayout;
+
+}
+
+/* external functions */
+/**
+ *
+ * @param pParent
+ * @param fSyncVal
+ * @param pUpdateCb
+ * @param pDoneCb
+ * @return
+ */
+subtitle_sync_popup vp_subtitle_sync_popup_create(Evas_Object * pParent,
+ float fSyncVal,
+ SubtitleSyncUpdateCbFunc
+ pUpdateCb,
+ SubtitleSyncDoneCbFunc
+ pDoneCb)
+{
+ if (pParent == NULL) {
+ VideoLogError("pParent is NULL");
+ return NULL;
+ }
+
+ SubtitleSyncPopup *pSubtitleSyncPopup = NULL;
+
+ pSubtitleSyncPopup = calloc(1, sizeof(SubtitleSyncPopup));
+
+ if (pSubtitleSyncPopup == NULL) {
+ VideoLogError("pSubtitleSyncPopup alloc fail");
+ return NULL;
+ }
+
+ pSubtitleSyncPopup->pParent = pParent;
+ pSubtitleSyncPopup->pUpdateCb = pUpdateCb;
+ pSubtitleSyncPopup->pDoneCb = pDoneCb;
+ pSubtitleSyncPopup->fSyncVal = fSyncVal;
+
+ pSubtitleSyncPopup->pPopup =
+ vp_popup_create(pParent, POPUP_STYLE_EXPAND_WITH_CANCEL_BTN,
+ VP_PLAY_STRING_SUBTITLE_SYNC, NULL, 0.0, NULL,
+ __vp_subtitle_sync_popup_key_event_cb,
+ __vp_subtitle_sync_popup_mouse_event_cb,
+ (void *) pSubtitleSyncPopup);
+
+ if (pSubtitleSyncPopup->pPopup == NULL) {
+ VideoLogError("vp_popup_create fail");
+ _vp_subtitle_sync_popup_destroy_handle(pSubtitleSyncPopup);
+ return NULL;
+ }
+
+ pSubtitleSyncPopup->pCancelButton =
+ _vp_subtitle_sync_popup_create_cancel_button
+ (pSubtitleSyncPopup->pPopup, (void *)
+ pSubtitleSyncPopup);
+ if (pSubtitleSyncPopup->pCancelButton == NULL) {
+ VideoLogError("_vp_subtitle_sync_popup_create_cancel_button fail");
+ _vp_subtitle_sync_popup_destroy_handle(pSubtitleSyncPopup);
+ return NULL;
+ }
+
+ pSubtitleSyncPopup->pOkButton =
+ _vp_subtitle_sync_popup_create_ok_button
+ (pSubtitleSyncPopup->pPopup, (void *)
+ pSubtitleSyncPopup);
+ if (pSubtitleSyncPopup->pOkButton == NULL) {
+ VideoLogError("_vp_subtitle_sync_popup_create_ok_button fail");
+ _vp_subtitle_sync_popup_destroy_handle(pSubtitleSyncPopup);
+ return NULL;
+ }
+
+ pSubtitleSyncPopup->pLayout =
+ _vp_subtitle_sync_popup_create_layout(pSubtitleSyncPopup->pPopup);
+ if (pSubtitleSyncPopup->pLayout == NULL) {
+ VideoLogError("_vp_subtitle_sync_popup_create_layout fail");
+ _vp_subtitle_sync_popup_destroy_handle(pSubtitleSyncPopup);
+ return NULL;
+ }
+
+ pSubtitleSyncPopup->pSlider =
+ _vp_subtitle_sync_popup_create_slider(pSubtitleSyncPopup->pLayout,
+ pSubtitleSyncPopup);
+ if (pSubtitleSyncPopup->pSlider == NULL) {
+ VideoLogError("_vp_subtitle_sync_popup_create_slider fail");
+ _vp_subtitle_sync_popup_destroy_handle(pSubtitleSyncPopup);
+ return NULL;
+ }
+
+ _vp_subtitle_sync_popup_create_button(pSubtitleSyncPopup->pLayout,
+ pSubtitleSyncPopup);
+
+ elm_slider_value_set(pSubtitleSyncPopup->pSlider,
+ (double) pSubtitleSyncPopup->fSyncVal);
+ _vp_subtitle_sync_update_text(pSubtitleSyncPopup);
+
+ elm_object_part_content_set(pSubtitleSyncPopup->pLayout,
+ "elm.swallow.content",
+ pSubtitleSyncPopup->pSlider);
+ elm_object_content_set(pSubtitleSyncPopup->pPopup,
+ pSubtitleSyncPopup->pLayout);
+ evas_object_show(pSubtitleSyncPopup->pLayout);
+
+ elm_popup_orient_set(pSubtitleSyncPopup->pPopup,
+ ELM_POPUP_ORIENT_CENTER);
+
+ return pSubtitleSyncPopup;
+}
+
+/**
+ *
+ * @param pSubtitleSync
+ */
+void vp_subtitle_sync_popup_destroy(subtitle_sync_popup pSubtitleSync)
+{
+ if (pSubtitleSync == NULL) {
+ VideoLogError("pSubtitleSync is NULL");
+ return;
+ }
+
+ SubtitleSyncPopup *pSubtitleSyncPopup =
+ (SubtitleSyncPopup *) pSubtitleSync;
+
+ _vp_subtitle_sync_popup_destroy_handle(pSubtitleSyncPopup);
+
+}
+
+/**
+ *
+ * @param pSubtitleSync
+ * @return
+ */
+bool vp_subtitle_sync_popup_realize(subtitle_sync_popup pSubtitleSync)
+{
+ if (pSubtitleSync == NULL) {
+ VideoLogError("pSubtitleSync is NULL");
+ return FALSE;
+ }
+
+ SubtitleSyncPopup *pSubtitleSyncPopup =
+ (SubtitleSyncPopup *) pSubtitleSync;
+
+ evas_object_show(pSubtitleSyncPopup->pPopup);
+
+ return TRUE;
+}
+
+
+/**
+ *
+ * @param pSubtitleSync
+ * @return
+ */
+bool vp_subtitle_sync_popup_unrealize(subtitle_sync_popup pSubtitleSync)
+{
+ if (pSubtitleSync == NULL) {
+ VideoLogError("pSubtitleSync is NULL");
+ return FALSE;
+ }
+
+ SubtitleSyncPopup *pSubtitleSyncPopup =
+ (SubtitleSyncPopup *) pSubtitleSync;
+
+ evas_object_hide(pSubtitleSyncPopup->pPopup);
+
+ return TRUE;
+}
+
+
+/**
+ *
+ * @param pSubtitleSync
+ * @param pUserData
+ * @return
+ */
+bool vp_subtitle_sync_popup_set_user_data(subtitle_sync_popup
+ pSubtitleSync, void *pUserData)
+{
+ if (pSubtitleSync == NULL) {
+ VideoLogError("pSubtitleSync is NULL");
+ return FALSE;
+ }
+
+ SubtitleSyncPopup *pSubtitleSyncPopup =
+ (SubtitleSyncPopup *) pSubtitleSync;
+
+ pSubtitleSyncPopup->pUserData = pUserData;
+
+ return TRUE;
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include <glib.h>
+
+#include "vp-play-string-define.h"
+#include "vp-play-value-define.h"
+#include "vp-play-macro-define.h"
+#include "vp-play-util.h"
+#include "vp-subtitle-track.h"
+#include "vp-device-language.h"
+
+/* check temp */
+#include "vp-play-log.h"
+
+#define VP_SUBTITLE_TRACK_GENLIST_DATA_KEY "vp.subtitle.track.genlist"
+
+
+typedef struct _SubtitleTrackItem {
+ Elm_Object_Item *pItem;
+ char *szName;
+ int nIndex;
+ void *pSubtitleTrackPopup;
+#ifdef _SUBTITLE_MULTI_LANGUAGE
+ bool bCheck;
+#endif
+} SubtitleTrackItem;
+
+
+typedef struct _SubtitleTrackPopup {
+ Evas_Object *pParent;
+ Evas_Object *pPopup;
+#ifndef _SUBTITLE_MULTI_LANGUAGE
+ Evas_Object *pRadio;
+#endif
+ Evas_Object *pButton;
+ Evas_Object *pBox;
+ Evas_Object *pGenList;
+ Elm_Genlist_Item_Class *st_SubtitleTrack_Itc;
+
+ int nCurrentIndex;
+ int nListCount;
+
+ void *pUserData;
+#ifdef _SUBTITLE_MULTI_LANGUAGE
+ SubtitleLanguageChangeCbFunc pAddLanguageCb;
+ SubtitleLanguageChangeCbFunc pRemoveLanguageCb;
+#endif
+ PopupCloseCbFunc pCloseCb;
+
+ GList *pItemList;
+} SubtitleTrackPopup;
+
+
+
+static void _vp_subtitle_track_destroy_handle(SubtitleTrackPopup *
+ pSubtitleTrack);
+#ifdef _SUBTITLE_MULTI_LANGUAGE
+static void __vp_subtitle_track_popup_check_state_change_cb(void
+ *pUserData,
+ Evas_Object *
+ pObject, void
+ *pEventInfo);
+#else
+static void __vp_subtitle_track_genlist_item_selected_cb(void *pUserData,
+ Evas_Object *
+ pObject, void
+ *pEventInfo);
+#endif
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __vp_subtitle_track_genlist_realized(void *data,
+ Evas_Object * obj,
+ void *event_info)
+{
+ VP_GENLIST_HIDE_BOTTOMLINE(data, obj, event_info);
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __vp_subtitle_track_popup_rotate_cb(void *data,
+ Evas_Object * obj,
+ void *event_info)
+{
+ SubtitleTrackPopup *pSubtitleTrack = (SubtitleTrackPopup *) data;
+ if (!pSubtitleTrack) {
+ VideoLogError("pSubtitleSize IS null");
+ return;
+ }
+ if (pSubtitleTrack->nListCount < VP_POPUP_MIN_ITEMS) {
+ return;
+ }
+ vp_popup_set_popup_min_size(pSubtitleTrack->pParent,
+ pSubtitleTrack->pBox,
+ pSubtitleTrack->nListCount,
+ VIDEO_POPUP_DEFAULT);
+
+}
+
+/* callback functions */
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pPart
+ * @return
+ */
+static char *__vp_subtitle_track_genlist_text_get_cb(const void
+ *pUserData,
+ Evas_Object * pObj,
+ const char *pPart)
+{
+ if (pUserData == NULL) {
+ VideoLogError("Invalid user data");
+ return NULL;
+ }
+
+ SubtitleTrackItem *pTrackItem = (SubtitleTrackItem *) pUserData;
+
+ if (!strcmp(pPart, "elm.text")) {
+ return strdup(pTrackItem->szName);
+ }
+ return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pPart
+ * @return
+ */
+static Evas_Object *__vp_subtitle_track_genlist_content_get_cb(const void
+ *pUserData,
+ Evas_Object
+ *pObj,
+ const char
+ *pPart)
+{
+ if (pUserData == NULL) {
+ VideoLogError("Invalid user data");
+ return NULL;
+ }
+
+ SubtitleTrackItem *pTrackItem = (SubtitleTrackItem *) pUserData;
+
+ if (!strcmp(pPart, "elm.icon")) {
+ SubtitleTrackPopup *pSubtitleTrack =
+ (SubtitleTrackPopup *) pTrackItem->pSubtitleTrackPopup;
+ if (pSubtitleTrack == NULL) {
+ VideoLogWarning("evas_object_data_get is fail");
+ return NULL;
+ }
+#ifdef _SUBTITLE_MULTI_LANGUAGE
+ Evas_Object *pCheckBox = elm_check_add(pObj);
+ evas_object_propagate_events_set(pCheckBox, EINA_FALSE);
+ evas_object_smart_callback_add(pCheckBox, "changed",
+ __vp_subtitle_track_popup_check_state_change_cb,
+ pUserData);
+ elm_check_state_set(pCheckBox, pTrackItem->bCheck);
+ evas_object_show(pCheckBox);
+
+ return pCheckBox;
+#else
+ Evas_Object *pRadioObj = NULL;
+ pRadioObj = elm_radio_add(pObj);
+ elm_radio_state_value_set(pRadioObj, pTrackItem->nIndex);
+ elm_radio_group_add(pRadioObj, pSubtitleTrack->pRadio);
+ elm_radio_value_set(pSubtitleTrack->pRadio,
+ pSubtitleTrack->nCurrentIndex);
+ evas_object_smart_callback_add(pRadioObj, "changed",
+ __vp_subtitle_track_genlist_item_selected_cb,
+ pTrackItem);
+ evas_object_show(pRadioObj);
+
+ return pRadioObj;
+#endif
+ }
+
+ return NULL;
+}
+
+#ifdef _SUBTITLE_MULTI_LANGUAGE
+/**
+ *
+ * @param pSubtitleTrackPopup
+ * @return
+ */
+static bool __vp_subtitle_track_select_no_item(SubtitleTrackPopup *
+ pSubtitleTrackPopup)
+{
+ if (pSubtitleTrackPopup == NULL) {
+ VideoLogError("pSubtitleTrackPopup is NULL");
+ return false;
+ }
+
+ if (pSubtitleTrackPopup->pItemList == NULL) {
+ VideoLogError("pItemList is NULL");
+ return false;
+ }
+
+ bool ret = true;
+ int index = 0;
+ for (; index < g_list_length(pSubtitleTrackPopup->pItemList); ++index) {
+ SubtitleTrackItem *pItem = NULL;
+ pItem =
+ (SubtitleTrackItem *)
+ g_list_nth_data(pSubtitleTrackPopup->pItemList, index);
+ if (pItem && pItem->bCheck) {
+ ret = false;
+ break;
+ }
+ }
+
+ return ret;
+}
+
+/**
+ *
+ * @param pSubtitleTrackPopup
+ * @param bDisabled
+ */
+static void __vp_subtitle_track_popup_disable_button(SubtitleTrackPopup *
+ pSubtitleTrackPopup,
+ bool bDisabled)
+{
+ if (pSubtitleTrackPopup == NULL) {
+ VideoLogError("pSubtitleTrackPopup is NULL");
+ return;
+ }
+
+ if (pSubtitleTrackPopup->pPopup == NULL) {
+ VideoLogError("pPopup is NULL");
+ return;
+ }
+
+ Evas_Object *pRightButton =
+ elm_object_part_content_get(pSubtitleTrackPopup->pPopup,
+ "button2");
+ if (pRightButton && bDisabled != elm_object_disabled_get(pRightButton)) {
+ elm_object_disabled_set(pRightButton, bDisabled);
+ }
+}
+#endif
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __vp_subtitle_track_genlist_item_selected_cb(void *pUserData,
+ Evas_Object *
+ pObject,
+ void *pEventInfo)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ SubtitleTrackItem *pTrackItem = (SubtitleTrackItem *) pUserData;
+ Elm_Object_Item *pSelectedItem =
+ elm_genlist_selected_item_get(pObject);
+ if (pSelectedItem) {
+ elm_genlist_item_selected_set(pSelectedItem, EINA_FALSE);
+ }
+ SubtitleTrackPopup *pSubtitleTrackPopup =
+ (SubtitleTrackPopup *) pTrackItem->pSubtitleTrackPopup;
+ if (pSubtitleTrackPopup == NULL) {
+ VideoLogError("SubtitleTrackPopup is NULL");
+ return;
+ }
+#ifdef _SUBTITLE_MULTI_LANGUAGE
+ Evas_Object *pCheckBox =
+ elm_object_item_part_content_get(pSelectedItem, "elm.icon");
+ if (pCheckBox) {
+ pTrackItem->bCheck = !pTrackItem->bCheck;
+ elm_check_state_set(pCheckBox, pTrackItem->bCheck);
+ VideoLogInfo("bCheck: %d, nIndex: %d", pTrackItem->bCheck,
+ pTrackItem->nIndex);
+ if (__vp_subtitle_track_select_no_item(pSubtitleTrackPopup)) {
+ vp_play_util_status_noti_show
+ (VP_PLAY_STRING_SELECTED_LANGUAGE);
+ __vp_subtitle_track_popup_disable_button(pSubtitleTrackPopup,
+ true);
+ } else {
+ __vp_subtitle_track_popup_disable_button(pSubtitleTrackPopup,
+ false);
+ }
+ }
+#else
+ if (pTrackItem->nIndex == pSubtitleTrackPopup->nCurrentIndex) {
+ if (pSubtitleTrackPopup->pCloseCb) {
+ VideoLogInfo("Selected lang track indexp[%d]",
+ pTrackItem->nIndex);
+ pSubtitleTrackPopup->pCloseCb(pTrackItem->nIndex, FALSE,
+ (void *)
+ pSubtitleTrackPopup->pUserData);
+ }
+ } else {
+ pSubtitleTrackPopup->nCurrentIndex = pTrackItem->nIndex;
+ elm_radio_value_set(pSubtitleTrackPopup->pRadio,
+ pSubtitleTrackPopup->nCurrentIndex);
+ }
+#endif
+}
+
+#ifdef _SUBTITLE_MULTI_LANGUAGE
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __vp_subtitle_track_popup_check_state_change_cb(void
+ *pUserData,
+ Evas_Object *
+ pObject,
+ void
+ *pEventInfo)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ SubtitleTrackItem *pTrackItem = (SubtitleTrackItem *) pUserData;
+ SubtitleTrackPopup *pSubtitleTrackPopup =
+ (SubtitleTrackPopup *) pTrackItem->pSubtitleTrackPopup;
+ if (pSubtitleTrackPopup == NULL) {
+ VideoLogError("SubtitleTrackPopup is NULL");
+ return;
+ }
+ pTrackItem->bCheck = elm_check_state_get(pObject);
+ VideoLogInfo("bCheck: %d, nIndex: %d", pTrackItem->bCheck,
+ pTrackItem->nIndex);
+
+ if (__vp_subtitle_track_select_no_item(pSubtitleTrackPopup)) {
+ vp_play_util_status_noti_show(VP_PLAY_STRING_SELECTED_LANGUAGE);
+ __vp_subtitle_track_popup_disable_button(pSubtitleTrackPopup,
+ true);
+ } else {
+ __vp_subtitle_track_popup_disable_button(pSubtitleTrackPopup,
+ false);
+ }
+}
+#endif
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_subtitle_track_popup_key_event_cb(void *pUserData,
+ Evas_Object * pObj,
+ void *pEventInfo)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ SubtitleTrackPopup *pSubtitleTrack = (SubtitleTrackPopup *) pUserData;
+
+ if (pSubtitleTrack->pCloseCb) {
+ pSubtitleTrack->pCloseCb(-1, FALSE,
+ (void *) pSubtitleTrack->pUserData);
+ }
+}
+
+#ifndef _SUBTITLE_MULTI_LANGUAGE
+/**
+ *
+ * @param pUserData
+ * @param pEvas
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_subtitle_track_popup_mouse_event_cb(void *pUserData,
+ Evas * pEvas,
+ Evas_Object * pObj,
+ void *pEventInfo)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ if (pEventInfo == NULL) {
+ VideoLogError("pEventInfo is NULL");
+ return;
+ }
+
+ Evas_Event_Mouse_Up *ev = pEventInfo;
+
+ if (ev->button == 3) {
+ SubtitleTrackPopup *pSubtitleTrack =
+ (SubtitleTrackPopup *) pUserData;
+
+ if (pSubtitleTrack->pCloseCb) {
+ pSubtitleTrack->pCloseCb(-1, FALSE,
+ (void *) pSubtitleTrack->pUserData);
+ }
+ }
+}
+#endif
+/* internal functions */
+/**
+ *
+ * @param pSubtitleTrack
+ */
+static void _vp_subtitle_track_clear_item_list(SubtitleTrackPopup *
+ pSubtitleTrack)
+{
+ if (pSubtitleTrack == NULL) {
+ VideoLogError("pSubtitleTrack is NULL");
+ return;
+ }
+
+ if (pSubtitleTrack->pItemList == NULL) {
+ VideoLogError("pSubtitleTrack->pItemList is NULL");
+ return;
+ }
+
+
+ int len = g_list_length(pSubtitleTrack->pItemList);
+ int idx = 0;
+ for (idx = 0; idx < len; idx++) {
+ SubtitleTrackItem *pItem = NULL;
+
+ pItem =
+ (SubtitleTrackItem *)
+ g_list_nth_data(pSubtitleTrack->pItemList, idx);
+ if (pItem) {
+ VP_EVAS_ITEM_DEL(pItem->pItem);
+ VP_FREE(pItem->szName);
+
+ memset(pItem, 0x00, sizeof(SubtitleTrackItem));
+ VP_FREE(pItem);
+ }
+ }
+
+ g_list_free(pSubtitleTrack->pItemList);
+ pSubtitleTrack->pItemList = NULL;
+}
+
+/**
+ *
+ * @param pSubtitleTrack
+ */
+static void _vp_subtitle_track_destroy_handle(SubtitleTrackPopup *
+ pSubtitleTrack)
+{
+ if (pSubtitleTrack == NULL) {
+ VideoLogError("pSubtitleTrack is NULL");
+ return;
+ }
+
+ evas_object_smart_callback_del(pSubtitleTrack->pGenList, "realized",
+ __vp_subtitle_track_genlist_realized);
+ evas_object_smart_callback_del(pSubtitleTrack->pParent,
+ "rotation,changed",
+ __vp_subtitle_track_popup_rotate_cb);
+
+ _vp_subtitle_track_clear_item_list(pSubtitleTrack);
+#ifndef _SUBTITLE_MULTI_LANGUAGE
+ VP_EVAS_DEL(pSubtitleTrack->pRadio);
+#endif
+ VP_EVAS_DEL(pSubtitleTrack->pGenList);
+ VP_EVAS_DEL(pSubtitleTrack->pButton);
+ VP_EVAS_DEL(pSubtitleTrack->pBox);
+
+ if (pSubtitleTrack->st_SubtitleTrack_Itc) {
+ elm_genlist_item_class_free(pSubtitleTrack->st_SubtitleTrack_Itc);
+ pSubtitleTrack->st_SubtitleTrack_Itc = NULL;
+ }
+
+ VP_EVAS_DEL(pSubtitleTrack->pPopup);
+
+ VP_FREE(pSubtitleTrack);
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+static Evas_Object *_vp_subtitle_track_create_genlist(Evas_Object *
+ pParent)
+{
+ if (pParent == NULL) {
+ VideoLogError("pParent is NULL");
+ return NULL;
+ }
+
+ Evas_Object *pObj = NULL;
+
+ pObj = elm_genlist_add(pParent);
+ evas_object_size_hint_weight_set(pObj, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(pObj, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_show(pObj);
+ return pObj;
+}
+
+
+/**
+ *
+ * @param pObj
+ * @param pUserData
+ * @return
+ */
+static bool _vp_subtitle_track_add_genlist_item(Evas_Object * pObj,
+ void *pUserData)
+{
+ if (pObj == NULL) {
+ VideoLogError("pObj is NULL");
+ return FALSE;
+ }
+
+ SubtitleTrackPopup *pSubtitleTrack = (SubtitleTrackPopup *) pUserData;
+
+ if (pSubtitleTrack->st_SubtitleTrack_Itc) {
+ elm_genlist_item_class_free(pSubtitleTrack->st_SubtitleTrack_Itc);
+ pSubtitleTrack->st_SubtitleTrack_Itc = NULL;
+ }
+
+ pSubtitleTrack->st_SubtitleTrack_Itc = elm_genlist_item_class_new();
+
+ if (pSubtitleTrack->st_SubtitleTrack_Itc) {
+ pSubtitleTrack->st_SubtitleTrack_Itc->version =
+ ELM_GENLIST_ITEM_CLASS_VERSION;
+ pSubtitleTrack->st_SubtitleTrack_Itc->item_style =
+ "1text.1icon.3/popup";
+ pSubtitleTrack->st_SubtitleTrack_Itc->func.text_get =
+ (void *) __vp_subtitle_track_genlist_text_get_cb;
+ pSubtitleTrack->st_SubtitleTrack_Itc->func.content_get =
+ (void *) __vp_subtitle_track_genlist_content_get_cb;
+ pSubtitleTrack->st_SubtitleTrack_Itc->func.state_get = NULL;
+ pSubtitleTrack->st_SubtitleTrack_Itc->func.del = NULL;
+ }
+
+ int len = g_list_length(pSubtitleTrack->pItemList);
+ int idx = 0;
+ pSubtitleTrack->nListCount = 0;
+
+ for (idx = 0; idx < len; idx++) {
+ SubtitleTrackItem *pItem = NULL;
+
+ pItem =
+ (SubtitleTrackItem *)
+ g_list_nth_data(pSubtitleTrack->pItemList, idx);
+ if (pItem) {
+ pItem->pItem = elm_genlist_item_append(pObj,
+ pSubtitleTrack->st_SubtitleTrack_Itc,
+ (void *) pItem, NULL,
+ ELM_GENLIST_ITEM_NONE,
+ __vp_subtitle_track_genlist_item_selected_cb,
+ pItem);
+ pSubtitleTrack->nListCount++;
+ }
+ }
+
+ return TRUE;
+}
+
+#ifdef _SUBTITLE_MULTI_LANGUAGE
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_subtitle_track_popup_left_button_cb(void *pUserData,
+ Evas_Object * pObj,
+ void *pEventInfo)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+ VideoLogInfo("");
+ SubtitleTrackPopup *pSubtitleTrack = (SubtitleTrackPopup *) pUserData;
+
+ if (pSubtitleTrack->pCloseCb) {
+ pSubtitleTrack->pCloseCb(-1, FALSE,
+ (void *) pSubtitleTrack->pUserData);
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_subtitle_track_popup_right_button_cb(void *pUserData,
+ Evas_Object * pObj,
+ void *pEventInfo)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+ VideoLogInfo("");
+ SubtitleTrackPopup *pSubtitleTrack = (SubtitleTrackPopup *) pUserData;
+
+ if (pSubtitleTrack->pItemList == NULL) {
+ VideoLogError("pSubtitleTrack->pItemList is NULL");
+ return;
+ }
+
+
+ int len = g_list_length(pSubtitleTrack->pItemList);
+ int idx = 0;
+ for (idx = 0; idx < len; idx++) {
+ SubtitleTrackItem *pItem = NULL;
+
+ pItem =
+ (SubtitleTrackItem *)
+ g_list_nth_data(pSubtitleTrack->pItemList, idx);
+ /*set subtitle's language */
+ if (pItem) {
+ VideoLogInfo("nIndex=%d,bCheck=%d", pItem->nIndex,
+ pItem->bCheck);
+ if (pItem->bCheck && pSubtitleTrack->pAddLanguageCb) {
+ pSubtitleTrack->pAddLanguageCb(pItem->nIndex,
+ (void *)
+ pSubtitleTrack->pUserData);
+ } else if (!pItem->bCheck && pSubtitleTrack->pRemoveLanguageCb) {
+ pSubtitleTrack->pRemoveLanguageCb(pItem->nIndex, (void *)
+ pSubtitleTrack->pUserData);
+ }
+ }
+ }
+
+ if (pSubtitleTrack->pCloseCb) {
+ pSubtitleTrack->pCloseCb(-1, FALSE,
+ (void *) pSubtitleTrack->pUserData);
+ }
+}
+#endif
+/* external functions */
+#ifdef _SUBTITLE_MULTI_LANGUAGE
+subtitle_track_handle vp_subtitle_track_create(Evas_Object * pParent,
+ PopupCloseCbFunc pCloseCb)
+#else
+/**
+ *
+ * @param pParent
+ * @param pCloseCb
+ * @param nDefaultIndex
+ * @return
+ */
+subtitle_track_handle vp_subtitle_track_create(Evas_Object * pParent,
+ PopupCloseCbFunc pCloseCb,
+ int nDefaultIndex)
+#endif
+{
+ if (pParent == NULL) {
+ VideoLogError("pParent is NULL");
+ return NULL;
+ }
+
+ SubtitleTrackPopup *pSubtitleTrack = NULL;
+
+ pSubtitleTrack = calloc(1, sizeof(SubtitleTrackPopup));
+
+ if (pSubtitleTrack == NULL) {
+ VideoLogError("pSubtitleTrack alloc fail");
+ return NULL;
+ }
+
+ pSubtitleTrack->pParent = pParent;
+ pSubtitleTrack->pCloseCb = pCloseCb;
+#ifdef _SUBTITLE_MULTI_LANGUAGE
+ pSubtitleTrack->pPopup = vp_title_two_button_popup_create(pParent,
+ VP_PLAY_STRING_SUBTITLE_LANGUAGE,
+ NULL,
+ VP_PLAY_STRING_COM_CANCEL,
+ __vp_subtitle_track_popup_left_button_cb,
+ VP_PLAY_STRING_COM_OK,
+ __vp_subtitle_track_popup_right_button_cb,
+ (void *)
+ pSubtitleTrack);
+#else
+ pSubtitleTrack->pPopup =
+ vp_popup_create(pParent, POPUP_STYLE_MENU_LIST_NO_CANCEL_BTN,
+ VP_PLAY_STRING_SUBTITLE_LANGUAGE, NULL, 0.0, NULL,
+ __vp_subtitle_track_popup_key_event_cb,
+ __vp_subtitle_track_popup_mouse_event_cb,
+ (void *) pSubtitleTrack);
+#endif
+ if (pSubtitleTrack->pPopup == NULL) {
+ VideoLogError("vp_popup_create fail");
+ _vp_subtitle_track_destroy_handle(pSubtitleTrack);
+ return NULL;
+ }
+#ifdef _SUBTITLE_MULTI_LANGUAGE
+ eext_object_event_callback_add(pSubtitleTrack->pPopup,
+ EEXT_CALLBACK_BACK,
+ __vp_subtitle_track_popup_key_event_cb,
+ (void *) pSubtitleTrack);
+#endif
+
+ pSubtitleTrack->pGenList =
+ _vp_subtitle_track_create_genlist(pSubtitleTrack->pPopup);
+ if (pSubtitleTrack->pGenList == NULL) {
+ VideoLogError("_vp_subtitle_track_create_genlist fail");
+ _vp_subtitle_track_destroy_handle(pSubtitleTrack);
+ return NULL;
+ }
+
+ evas_object_smart_callback_add(pSubtitleTrack->pGenList, "realized",
+ __vp_subtitle_track_genlist_realized,
+ NULL);
+ evas_object_smart_callback_add(pSubtitleTrack->pParent,
+ "rotation,changed",
+ __vp_subtitle_track_popup_rotate_cb,
+ pSubtitleTrack);
+
+ evas_object_data_set(pSubtitleTrack->pGenList,
+ VP_SUBTITLE_TRACK_GENLIST_DATA_KEY,
+ (void *) pSubtitleTrack);
+#ifndef _SUBTITLE_MULTI_LANGUAGE
+ pSubtitleTrack->nCurrentIndex = nDefaultIndex;
+ pSubtitleTrack->pRadio = elm_radio_add(pSubtitleTrack->pGenList);
+#endif
+ pSubtitleTrack->pBox = elm_box_add(pSubtitleTrack->pPopup);
+
+
+ return pSubtitleTrack;
+}
+
+/**
+ *
+ * @param pSubtitleTrackHandle
+ */
+void vp_subtitle_track_destroy(subtitle_track_handle pSubtitleTrackHandle)
+{
+ if (pSubtitleTrackHandle == NULL) {
+ VideoLogError("pSubtitleTrackHandle is NULL");
+ return;
+ }
+
+ SubtitleTrackPopup *pSubtitleTrack =
+ (SubtitleTrackPopup *) pSubtitleTrackHandle;
+
+ _vp_subtitle_track_destroy_handle(pSubtitleTrack);
+
+}
+
+/**
+ *
+ * @param pSubtitleTrackHandle
+ * @return
+ */
+bool vp_subtitle_track_realize(subtitle_track_handle pSubtitleTrackHandle)
+{
+ if (pSubtitleTrackHandle == NULL) {
+ VideoLogError("pSubtitleTrackHandle is NULL");
+ return FALSE;
+ }
+
+ SubtitleTrackPopup *pSubtitleTrack =
+ (SubtitleTrackPopup *) pSubtitleTrackHandle;
+
+ if (!_vp_subtitle_track_add_genlist_item
+ (pSubtitleTrack->pGenList, (void *) pSubtitleTrack)) {
+ VideoLogError("_vp_subtitle_track_add_genlist_item fail");
+ return FALSE;
+ }
+ if (pSubtitleTrack->nListCount == 1) {
+ vp_popup_set_popup_min_size(pSubtitleTrack->pParent,
+ pSubtitleTrack->pBox,
+ pSubtitleTrack->nListCount,
+ VIDEO_POPUP_DEFAULT);
+ elm_scroller_policy_set(pSubtitleTrack->pGenList,
+ ELM_SCROLLER_POLICY_OFF,
+ ELM_SCROLLER_POLICY_OFF);
+ } else {
+ vp_popup_set_popup_min_size(pSubtitleTrack->pParent,
+ pSubtitleTrack->pBox,
+ pSubtitleTrack->nListCount,
+ VIDEO_POPUP_DEFAULT);
+ }
+
+ elm_box_pack_end(pSubtitleTrack->pBox, pSubtitleTrack->pGenList);
+ elm_object_content_set(pSubtitleTrack->pPopup, pSubtitleTrack->pBox);
+
+ evas_object_show(pSubtitleTrack->pPopup);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pSubtitleTrackHandle
+ * @return
+ */
+bool vp_subtitle_track_unrealize(subtitle_track_handle
+ pSubtitleTrackHandle)
+{
+ if (pSubtitleTrackHandle == NULL) {
+ VideoLogError("pSubtitleTrackHandle is NULL");
+ return FALSE;
+ }
+
+ SubtitleTrackPopup *pSubtitleTrack =
+ (SubtitleTrackPopup *) pSubtitleTrackHandle;
+
+ _vp_subtitle_track_clear_item_list(pSubtitleTrack);
+
+ evas_object_hide(pSubtitleTrack->pPopup);
+
+ return TRUE;
+}
+
+#ifdef _SUBTITLE_MULTI_LANGUAGE
+bool vp_subtitle_track_add_Item(subtitle_track_handle
+ pSubtitleTrackHandle, char *szCode,
+ int nIndex, bool bCheck)
+#else
+/**
+ *
+ * @param pSubtitleTrackHandle
+ * @param szCode
+ * @param nIndex
+ * @return
+ */
+bool vp_subtitle_track_add_Item(subtitle_track_handle
+ pSubtitleTrackHandle, char *szCode,
+ int nIndex)
+#endif
+{
+ if (pSubtitleTrackHandle == NULL) {
+ VideoLogError("pSubtitleTrackHandle is NULL");
+ return FALSE;
+ }
+
+ SubtitleTrackPopup *pSubtitleTrack =
+ (SubtitleTrackPopup *) pSubtitleTrackHandle;
+
+ SubtitleTrackItem *pItem = calloc(1, sizeof(SubtitleTrackItem));
+ if (pItem == NULL) {
+ VideoLogError("SubtitleTrackItem alloc fail");
+ return FALSE;
+ }
+
+ pItem->pSubtitleTrackPopup = (void *) pSubtitleTrack;
+ pItem->nIndex = nIndex;
+#ifdef _SUBTITLE_MULTI_LANGUAGE
+ pItem->bCheck = bCheck;
+#endif
+ char *pName = NULL;
+ pName = vp_language_get_name(szCode);
+ if (pName) {
+ pItem->szName = pName;
+ } else {
+ pName = g_strdup_printf("%s", VP_PLAY_STRING_COM_UNKNOWN);
+ pItem->szName = pName;
+ }
+
+ pSubtitleTrack->pItemList =
+ g_list_append(pSubtitleTrack->pItemList, pItem);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pSubtitleTrackHandle
+ * @param pUserData
+ * @return
+ */
+bool vp_subtitle_track_set_user_data(subtitle_track_handle
+ pSubtitleTrackHandle, void *pUserData)
+{
+ if (pSubtitleTrackHandle == NULL) {
+ VideoLogError("pSubtitleTrackHandle is NULL");
+ return FALSE;
+ }
+
+ SubtitleTrackPopup *pSubtitleTrack =
+ (SubtitleTrackPopup *) pSubtitleTrackHandle;
+
+ pSubtitleTrack->pUserData = pUserData;
+
+ return TRUE;
+}
+
+#ifdef _SUBTITLE_MULTI_LANGUAGE
+/**
+ *
+ * @param pSubtitleTrackHandle
+ * @param pCallback
+ * @return
+ */
+bool vp_subtitle_track_set_add_language_cb(subtitle_track_handle
+ pSubtitleTrackHandle,
+ SubtitleLanguageChangeCbFunc
+ pCallback)
+{
+ if (pSubtitleTrackHandle == NULL) {
+ VideoLogError("pSubtitleTrackHandle is NULL");
+ return FALSE;
+ }
+
+ SubtitleTrackPopup *pSubtitleTrack =
+ (SubtitleTrackPopup *) pSubtitleTrackHandle;
+
+ pSubtitleTrack->pAddLanguageCb = pCallback;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pSubtitleTrackHandle
+ * @param pCallback
+ * @return
+ */
+bool vp_subtitle_track_set_remove_language_cb(subtitle_track_handle
+ pSubtitleTrackHandle,
+ SubtitleLanguageChangeCbFunc
+ pCallback)
+{
+ if (pSubtitleTrackHandle == NULL) {
+ VideoLogError("pSubtitleTrackHandle is NULL");
+ return FALSE;
+ }
+
+ SubtitleTrackPopup *pSubtitleTrack =
+ (SubtitleTrackPopup *) pSubtitleTrackHandle;
+
+ pSubtitleTrack->pRemoveLanguageCb = pCallback;
+
+ return TRUE;
+}
+#endif
+/**
+ *
+ * @param szCode
+ * @param szName
+ * @return
+ */
+bool vp_subtitle_track_get_name(char *szCode, char **szName)
+{
+ if (szCode == NULL) {
+ VideoLogError("szCode is NULL");
+ return FALSE;
+ }
+ char *pName = NULL;
+ pName = vp_language_get_name(szCode);
+ if (pName) {
+ *szName = pName;
+ } else {
+ char *pUnknown = NULL;
+ pUnknown = g_strdup_printf("%s", VP_PLAY_STRING_COM_UNKNOWN);
+ *szName = pUnknown;
+ }
+
+ return TRUE;
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <glib.h>
+
+#include "vp-play-string-define.h"
+#include "vp-play-value-define.h"
+#include "vp-play-macro-define.h"
+#include "vp-play-type-define.h"
+
+#include "vp-subtitle.h"
+#include "vp-play-preference.h"
+#include "vp-util.h"
+#include "vp-play-util.h"
+
+/* check temp */
+#include "vp-play-log.h"
+
+
+/** @li font_weight - Overrides the weight defined in "font". E.g: "font_weight=Bold" is the same as "font=:style=Bold". Supported weights: "normal", "thin", "ultralight",
+ "light", "book", "medium", "semibold", "bold", "ultrabold", "black", and "extrablack".
+* @li font_style - Overrides the style defined in "font". E.g: "font_style=Italic" is the same as "font=:style=Italic". Supported styles: "normal", "oblique", and "italic".
+* @li font_width - Overrides the width defined in "font". E.g: "font_width=Condensed" is the same as "font=:style=Condensed". Supported widths: "normal",
+ "ultracondensed", "extracondensed", "condensed", "semicondensed", "semiexpanded", "expanded", "extraexpanded", and "ultraexpanded".
+*/
+
+#define VP_SUBTITLE_GENLIST_DATA_KEY "vp.subtitle.genlist"
+#define VP_SUBTITLE_TXT_FORMAT "<font_size= %d><align=center><style=%s><font='%s' font_weight=%s color=%s backing_color=%s backing=%s align=%s>%s</font></style></font_size>"
+#define VP_SUBTITLE_COLOR_LEN 7
+#define VP_SUBTITLE_SET_CAPTION_WINDOW_PREVIEW_COLOR_ID 1
+
+typedef struct _SubtitlePopup {
+ Evas_Object *pParent;
+ Evas_Object *pPopup;
+ Evas_Object *pPopupTitle;
+ Evas_Object *pCaptionLayout;
+ Evas_Object *pBox;
+ Evas_Object *pContentBox;
+ Evas_Object *pGenList;
+
+ Evas_Object *pActivationCheck;
+ Elm_Object_Item *pSelectItem;
+
+ Elm_Genlist_Item_Class *st_Subtitle_Itc_1;
+ Elm_Genlist_Item_Class *st_Subtitle_Itc_2;
+ Elm_Genlist_Item_Class *st_Subtitle_Itc_1icon;
+ Elm_Genlist_Item_Class *st_Subtitle_Itc_groupindex;
+#ifdef SUBTITLE_K_FEATURE
+ Elm_Genlist_Item_Class *st_Subtitle_Itc_3;
+#endif
+ SubtitleInfo *pSubtitleInfo;
+
+ void *pUserData;
+ PopupCloseCbFunc pCloseCb;
+
+} SubtitlePopup;
+
+static void _vp_subtitle_destroy_handle(SubtitlePopup * pSubtitle);
+char *_vp_subtitle_get_opacity(char *colorHex);
+Elm_Object_Item *_vp_subtitle_list_item_next_get(Elm_Object_Item *
+ gl_item);
+static void _vp_subtitle_set_activation(SubtitlePopup * pSubtitle,
+ bool bOn);
+static void _vp_subtitle_destroy_subtitle_info(SubtitlePopup * pSubtitle);
+static Evas_Object *_vp_subtitle_create_caption_layout(SubtitlePopup *
+ pSubtitle,
+ Evas_Object *
+ pParent);
+static void _vp_subtitle_cancel_button_cb(void *data, Evas_Object * obj,
+ void *Event_info);
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __vp_subtitle_genlist_realized(void *data, Evas_Object * obj,
+ void *event_info)
+{
+ if (event_info == NULL) {
+ VideoLogError("pEventInfo is NULL");
+ return;
+ }
+
+ if (obj == NULL) {
+ VideoLogError("obj is NULL");
+ return;
+ }
+
+ Elm_Object_Item *pItem = (Elm_Object_Item *) event_info;
+
+ int nIndexGenlist = elm_genlist_item_index_get(pItem);
+ VideoLogInfo("nIndexGenlist=%d", nIndexGenlist);
+
+ if (nIndexGenlist == 2) {
+ elm_object_item_signal_emit(pItem, "elm,state,bottomline,hide",
+ "");
+ }
+
+ VP_GENLIST_HIDE_BOTTOMLINE(data, obj, event_info);
+}
+
+/**
+ *
+ * @param pSubtitle
+ */
+static void __vp_subtitle_popup_size_set(SubtitlePopup * pSubtitle)
+{
+ if (!pSubtitle) {
+ VideoLogError("pSubtitle is null");
+ return;
+ }
+
+ if (!pSubtitle->pParent) {
+ VideoLogError("pParent is null");
+ return;
+ }
+
+ if (!pSubtitle->pBox) {
+ VideoLogError("pBox is null");
+ return;
+ }
+
+ if (!pSubtitle->pContentBox) {
+ VideoLogError("pContentBox is null");
+ return;
+ }
+
+ int nWidth = 0, nHeight = 0;
+ if (vp_popup_check_landspace_by_win(pSubtitle->pParent)) {
+ nWidth = 480;
+ nHeight = VP_POPUP_MAX_HEIGHT_L;
+ } else {
+ nWidth = 480;
+ nHeight = VP_POPUP_MAX_HEIGHT;
+ }
+ VideoLogInfo("nWidth=%d, nHeight=%d", nWidth, nHeight);
+ evas_object_size_hint_min_set(pSubtitle->pBox, nWidth,
+ (nHeight) * VP_SCALE);
+ evas_object_size_hint_min_set(pSubtitle->pContentBox, nWidth,
+ (nHeight -
+ VP_POPUP_TITLE_HEIGHT) * VP_SCALE);
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __vp_subtitle_popup_rotate_cb(void *data, Evas_Object * obj,
+ void *event_info)
+{
+ SubtitlePopup *pSubtitle = (SubtitlePopup *) data;
+ if (!pSubtitle) {
+ VideoLogError("pSubtitle IS null");
+ return;
+ }
+ __vp_subtitle_popup_size_set(pSubtitle);
+
+ evas_object_show(pSubtitle->pBox);
+ evas_object_show(pSubtitle->pPopup);
+}
+
+/* callback functions */
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_subtitle_check_change_cb(void *pUserData,
+ Evas_Object * pObj,
+ void *pEventInfo)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ SubtitlePopup *pSubtitle = (SubtitlePopup *) pUserData;
+
+ if (pObj == pSubtitle->pActivationCheck) {
+ bool bOn = FALSE;
+ vp_play_preference_get_subtitle_show_key(&bOn);
+ vp_play_preference_set_subtitle_show_key(!bOn);
+
+ vp_subtitle_mode_t nType = VP_SUBTITLE_MODE_NONE;
+ nType = VP_SUBTITLE_MODE_ACTIVATION;
+ _vp_subtitle_set_activation(pSubtitle, !bOn);
+
+ if (pSubtitle->pCloseCb) {
+ pSubtitle->pCloseCb((int) nType, FALSE,
+ (void *) pSubtitle->pUserData);
+ }
+ }
+}
+
+/**
+ *
+ * @param pSubtitleInfo
+ * @param bActivation
+ * @return
+ */
+static char *_vp_play_subtitle_text_get(SubtitleInfo * pSubtitleInfo,
+ bool bActivation)
+{
+ if (!pSubtitleInfo) {
+ VideoLogError("pSubtitle is NULL");
+ return NULL;
+ }
+ if (!pSubtitleInfo->szText || (strlen(pSubtitleInfo->szText) < 1)) {
+ VideoLogError("pSubtitleInfo->szText is NULL");
+ return NULL;
+ }
+
+ char *szMarkup = elm_entry_markup_to_utf8(pSubtitleInfo->szText);
+ char *szOutput = elm_entry_utf8_to_markup(szMarkup);
+ char *szTxtFormat = NULL;
+ char *szColor = NULL;
+ char *szBGColor = NULL;
+ char *szBGColorOn = NULL;
+ char *szFontEdge = NULL;
+ char *szAlignment = NULL;
+ char *szFontWeight = NULL;
+
+ int nSize = 0;
+
+ if (pSubtitleInfo->nFontSize == VIDEO_SUBTITLE_SIZE_SMALL) {
+ nSize = VP_SUBTITLE_SIZE_SMALL_VALUE * pSubtitleInfo->fZoom;
+ } else if (pSubtitleInfo->nFontSize == VIDEO_SUBTITLE_SIZE_LARGE) {
+ nSize = VP_SUBTITLE_SIZE_LARGE_VALUE * pSubtitleInfo->fZoom;
+ } else {
+ nSize = VP_SUBTITLE_SIZE_MEDIUM_VALUE * pSubtitleInfo->fZoom;
+ }
+
+ if (nSize < VP_SUBTITLE_SIZE_SMALL_VALUE) {
+ nSize = VP_SUBTITLE_SIZE_SMALL_VALUE;
+ }
+
+ if (nSize > VP_SUBTITLE_SIZE_LARGE_VALUE) {
+ nSize = VP_SUBTITLE_SIZE_LARGE_VALUE;
+ }
+#ifndef SUBTITLE_K_FEATURE
+ if (pSubtitleInfo->nTextColor == VIDEO_SUBTITLE_COLOR_BLACK) {
+ szColor = g_strdup_printf("#000000");
+ } else if (pSubtitleInfo->nTextColor == VIDEO_SUBTITLE_COLOR_BLUE) {
+ szColor = g_strdup_printf("#0000FF");
+ } else if (pSubtitleInfo->nTextColor == VIDEO_SUBTITLE_COLOR_GREEN) {
+ szColor = g_strdup_printf("#00FF00");
+ } else if (pSubtitleInfo->nTextColor == VIDEO_SUBTITLE_COLOR_WHITE) {
+ szColor = g_strdup_printf("#FFFFFF");
+ }
+
+ if (pSubtitleInfo->nBGColor == VIDEO_SUBTITLE_COLOR_NONE) {
+ szBGColorOn = g_strdup_printf("off");
+ szBGColor = g_strdup_printf("#000000");
+ } else if (pSubtitleInfo->nBGColor == VIDEO_SUBTITLE_COLOR_BLACK) {
+ szBGColorOn = g_strdup_printf("on");
+ szBGColor = g_strdup_printf("#000000");
+ } else if (pSubtitleInfo->nBGColor == VIDEO_SUBTITLE_COLOR_WHITE) {
+ szBGColorOn = g_strdup_printf("on");
+ szBGColor = g_strdup_printf("#FFFFFF");
+ }
+#else
+
+ if (pSubtitleInfo->pTextColorHex && bActivation) {
+ szColor = strdup(pSubtitleInfo->pTextColorHex);
+ } else {
+ szColor = g_strdup_printf("#00000000");
+ }
+
+ if (pSubtitleInfo->pBGColorHex && bActivation) {
+ szBGColorOn = g_strdup_printf("on");
+ szBGColor = strdup(pSubtitleInfo->pBGColorHex);
+ } else {
+ szBGColorOn = g_strdup_printf("off");
+ szBGColor = g_strdup_printf("#00000000");
+ }
+
+ if (pSubtitleInfo->eAlignment == VIDEO_SUBTITLE_ALIGNMENT_LEFT) {
+ szAlignment = g_strdup_printf("left");
+ } else if (pSubtitleInfo->eAlignment ==
+ VIDEO_SUBTITLE_ALIGNMENT_CENTER) {
+ szAlignment = g_strdup_printf("center");
+ } else if (pSubtitleInfo->eAlignment == VIDEO_SUBTITLE_ALIGNMENT_RIGHT) {
+ szAlignment = g_strdup_printf("right");
+ }
+#endif
+ szTxtFormat =
+ g_strdup_printf(VP_SUBTITLE_TXT_FORMAT, nSize, szFontEdge,
+ pSubtitleInfo->szFontName, szFontWeight, szColor,
+ szBGColor, szBGColorOn, szAlignment, szOutput);
+
+ VP_FREE(szBGColor);
+ VP_FREE(szBGColorOn);
+ VP_FREE(szColor);
+ VP_FREE(szOutput);
+ VP_FREE(szMarkup);
+ VP_FREE(szFontEdge);
+ VP_FREE(szFontWeight);
+ VP_FREE(szAlignment);
+
+ return szTxtFormat;
+}
+
+/**
+ *
+ * @param szColorHex
+ * @return
+ */
+static char *__vp_subtitle_get_color_and_opacity(char *szColorHex)
+{
+ if (szColorHex == NULL) {
+ VideoLogError("szColorHex is NULL");
+ return NULL;
+ }
+
+ char *szColorAndOpacity = NULL;
+ char *szOpacity = _vp_subtitle_get_opacity(szColorHex);
+ VideoSecureLogInfo
+ ("========pSubtitleInfo->nCaptionWinColorHex=%s, szOpacity=%s",
+ szColorHex, szOpacity);
+
+ if (!strncasecmp(szColorHex, "#000000", VP_SUBTITLE_COLOR_LEN)) {
+ szColorAndOpacity =
+ g_strdup_printf("%s,%s", VP_PLAY_STRING_SUBTITLE_COLOR_BLACK,
+ szOpacity);
+ } else if (!strncasecmp(szColorHex, "#0000ff", VP_SUBTITLE_COLOR_LEN)) {
+ szColorAndOpacity =
+ g_strdup_printf("%s,%s", VP_PLAY_STRING_SUBTITLE_COLOR_BLUE,
+ szOpacity);
+ } else if (!strncasecmp(szColorHex, "#00ff00", VP_SUBTITLE_COLOR_LEN)) {
+ szColorAndOpacity =
+ g_strdup_printf("%s,%s", VP_PLAY_STRING_SUBTITLE_COLOR_GREEN,
+ szOpacity);
+ } else if (!strncasecmp(szColorHex, "#ffffff", VP_SUBTITLE_COLOR_LEN)) {
+ szColorAndOpacity =
+ g_strdup_printf("%s,%s", VP_PLAY_STRING_SUBTITLE_COLOR_WHITE,
+ szOpacity);
+ } else if (!strncasecmp(szColorHex, "#ff0000", VP_SUBTITLE_COLOR_LEN)) {
+ szColorAndOpacity =
+ g_strdup_printf("%s,%s", VP_PLAY_STRING_SUBTITLE_COLOR_RED,
+ szOpacity);
+ } else if (!strncasecmp(szColorHex, "#ffff00", VP_SUBTITLE_COLOR_LEN)) {
+ szColorAndOpacity =
+ g_strdup_printf("%s,%s", VP_PLAY_STRING_SUBTITLE_COLOR_YELLOW,
+ szOpacity);
+ } else if (!strncasecmp(szColorHex, "#ff00ff", VP_SUBTITLE_COLOR_LEN)) {
+ szColorAndOpacity =
+ g_strdup_printf("%s,%s", VP_PLAY_STRING_SUBTITLE_COLOR_MAGENTA,
+ szOpacity);
+ } else if (!strncasecmp(szColorHex, "#00ffff", VP_SUBTITLE_COLOR_LEN)) {
+ szColorAndOpacity =
+ g_strdup_printf("%s,%s", VP_PLAY_STRING_SUBTITLE_COLOR_CYAN,
+ szOpacity);
+ } else {
+ szColorAndOpacity =
+ g_strdup_printf("%s,%s", VP_PLAY_STRING_SUBTITLE_COLOR_CUSTOM,
+ szOpacity);
+ }
+
+ VP_FREE(szOpacity);
+ return szColorAndOpacity;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pPart
+ * @return
+ */
+static char *__vp_subtitle_genlist_text_get_cb(const void *pUserData,
+ Evas_Object * pObj,
+ const char *pPart)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return NULL;
+ }
+
+ char *szTxt = (char *) pUserData;
+
+ if (!strcmp(pPart, "elm.text.main.left")) {
+ if (!g_strcmp0(VP_PLAY_STRING_ACTIVATION, szTxt)) {
+ return strdup(szTxt);
+ }
+ }
+
+ if (!g_strcmp0(VP_PLAY_STRING_SETTINGS, szTxt)) {
+ if (!strcmp(pPart, "elm.text")) {
+ return strdup(szTxt);
+ }
+ }
+
+ if (!g_strcmp0(VP_PLAY_STRING_SUBTITLE_SELECT_SUBTITLES, szTxt)
+ || !g_strcmp0(VP_PLAY_STRING_SUBTITLE_ALIGNMENT, szTxt)
+ || !g_strcmp0(VP_PLAY_STRING_SUBTITLE_SIZE, szTxt)) {
+ if (!strcmp(pPart, "elm.text")) {
+ return strdup(szTxt);
+ } else if (!strcmp(pPart, "elm.text.sub")) {
+ SubtitlePopup *pSubtitle =
+ (SubtitlePopup *) evas_object_data_get(pObj,
+ VP_SUBTITLE_GENLIST_DATA_KEY);
+ if (pSubtitle == NULL) {
+ VideoLogWarning("evas_object_data_get is fail");
+ return NULL;
+ }
+
+ SubtitleInfo *pSubtitleInfo = pSubtitle->pSubtitleInfo;
+ if (pSubtitleInfo == NULL) {
+ VideoLogWarning("pSubtitleInfo is NULL");
+ return NULL;
+ }
+
+ if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_SELECT_SUBTITLES)) {
+ if (pSubtitleInfo->szURL) {
+ return vp_util_convert_file_location(pSubtitleInfo->
+ szURL);
+ }
+ } else if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_ALIGNMENT)) {
+ switch (pSubtitleInfo->eAlignment) {
+ case VIDEO_SUBTITLE_ALIGNMENT_LEFT:{
+ return strdup(VP_PLAY_STRING_ALIGNMENT_LEFT);
+ }
+ case VIDEO_SUBTITLE_ALIGNMENT_CENTER:{
+ return strdup(VP_PLAY_STRING_ALIGNMENT_CENTER);
+ }
+ case VIDEO_SUBTITLE_ALIGNMENT_RIGHT:{
+ return strdup(VP_PLAY_STRING_ALIGNMENT_RIGHT);
+ }
+ default:
+ break;
+ }
+ } else if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_SIZE)) {
+ if (pSubtitleInfo->nFontSize == VIDEO_SUBTITLE_SIZE_LARGE) {
+ return strdup(VP_PLAY_STRING_SUBTITLE_SIZE_LARGE);
+ } else if (pSubtitleInfo->nFontSize ==
+ VIDEO_SUBTITLE_SIZE_MEDIUM) {
+ return strdup(VP_PLAY_STRING_SUBTITLE_SIZE_MEDIUM);
+ } else if (pSubtitleInfo->nFontSize ==
+ VIDEO_SUBTITLE_SIZE_SMALL) {
+ return strdup(VP_PLAY_STRING_SUBTITLE_SIZE_SMALL);
+ }
+ }
+ }
+ }
+#if 1
+ if (!strcmp(pPart, "elm.text")) {
+ return strdup(szTxt);
+ } else if (!strcmp(pPart, "elm.text.1")) {
+ return strdup(szTxt);
+ } else if (!strcmp(pPart, "elm.text.2")) {
+
+ SubtitlePopup *pSubtitle =
+ (SubtitlePopup *) evas_object_data_get(pObj,
+ VP_SUBTITLE_GENLIST_DATA_KEY);
+ if (pSubtitle == NULL) {
+ VideoLogWarning("evas_object_data_get is fail");
+ return NULL;
+ }
+
+ SubtitleInfo *pSubtitleInfo = pSubtitle->pSubtitleInfo;
+ if (pSubtitleInfo == NULL) {
+ VideoLogWarning("pSubtitleInfo is NULL");
+ return NULL;
+ }
+
+ if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_SYNC)) {
+ char szTemp[10] = { 0, };
+ snprintf(szTemp, sizeof(szTemp), "%0.1f",
+ pSubtitleInfo->fSync);
+
+ return g_strdup_printf(VP_PLAY_STRING_SUBTITLE_SECS, szTemp);
+ } else if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_LANGUAGE)) {
+ if (pSubtitleInfo->szLanguage) {
+ return strdup(pSubtitleInfo->szLanguage);
+ }
+ }
+#ifdef SUBTITLE_K_FEATURE
+ else if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_ALIGNMENT)) {
+ switch (pSubtitleInfo->eAlignment) {
+ case VIDEO_SUBTITLE_ALIGNMENT_LEFT:{
+ return strdup(VP_PLAY_STRING_ALIGNMENT_LEFT);
+ }
+ case VIDEO_SUBTITLE_ALIGNMENT_CENTER:{
+ return strdup(VP_PLAY_STRING_ALIGNMENT_CENTER);
+ }
+ case VIDEO_SUBTITLE_ALIGNMENT_RIGHT:{
+ return strdup(VP_PLAY_STRING_ALIGNMENT_RIGHT);
+ }
+ default:
+ break;
+ }
+ }
+#endif
+ else if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_SELECT_SUBTITLES)) {
+ if (pSubtitleInfo->szURL) {
+ return vp_util_convert_file_location(pSubtitleInfo->szURL);
+ }
+ } else if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_FONT)) {
+ if (pSubtitleInfo->szFontName) {
+ return strdup(pSubtitleInfo->szFontName);
+ }
+ } else if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_SIZE)) {
+ if (pSubtitleInfo->nFontSize == VIDEO_SUBTITLE_SIZE_LARGE) {
+ return strdup(VP_PLAY_STRING_SUBTITLE_SIZE_LARGE);
+ } else if (pSubtitleInfo->nFontSize ==
+ VIDEO_SUBTITLE_SIZE_MEDIUM) {
+ return strdup(VP_PLAY_STRING_SUBTITLE_SIZE_MEDIUM);
+ } else if (pSubtitleInfo->nFontSize ==
+ VIDEO_SUBTITLE_SIZE_SMALL) {
+ return strdup(VP_PLAY_STRING_SUBTITLE_SIZE_SMALL);
+ }
+ } else if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_EDGE)) {
+ switch (pSubtitleInfo->nEdge) {
+ case VP_SUBTITLE_EDGE_NO_EDGE:
+ return strdup(VP_PLAY_STRING_EDGE_NO_EDGE);
+ case VP_SUBTITLE_EDGE_RAISED:
+ return strdup(VP_PLAY_STRING_EDGE_RAISED);
+ case VP_SUBTITLE_EDGE_DEPRESSED:
+ return strdup(VP_PLAY_STRING_EDGE_DEPRESSED);
+ case VP_SUBTITLE_EDGE_UNIFORM:
+ return strdup(VP_PLAY_STRING_EDGE_UNIFORM);
+ case VP_SUBTITLE_EDGE_DROP_SHADOW:
+ return strdup(VP_PLAY_STRING_EDGE_DROP_SHADOW);
+ default:
+ return strdup(VP_PLAY_STRING_EDGE_NO_EDGE);
+ }
+ } else if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_TEXT)) {
+#ifndef SUBTITLE_K_FEATURE
+ if (pSubtitleInfo->nTextColor == VIDEO_SUBTITLE_COLOR_BLACK) {
+ return strdup(VP_PLAY_STRING_SUBTITLE_COLOR_BLACK);
+ } else if (pSubtitleInfo->nTextColor ==
+ VIDEO_SUBTITLE_COLOR_BLUE) {
+ return strdup(VP_PLAY_STRING_SUBTITLE_COLOR_BLUE);
+ } else if (pSubtitleInfo->nTextColor ==
+ VIDEO_SUBTITLE_COLOR_GREEN) {
+ return strdup(VP_PLAY_STRING_SUBTITLE_COLOR_GREEN);
+ } else if (pSubtitleInfo->nTextColor ==
+ VIDEO_SUBTITLE_COLOR_WHITE) {
+ return strdup(VP_PLAY_STRING_SUBTITLE_COLOR_WHITE);
+ }
+#else
+ return __vp_subtitle_get_color_and_opacity(pSubtitleInfo->
+ pTextColorHex);
+#endif
+ } else if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_BG_COLOR)) {
+#ifndef SUBTITLE_K_FEATURE
+ if (pSubtitleInfo->nBGColor == VIDEO_SUBTITLE_COLOR_BLACK) {
+ return strdup(VP_PLAY_STRING_SUBTITLE_COLOR_BLACK);
+ } else if (pSubtitleInfo->nBGColor ==
+ VIDEO_SUBTITLE_COLOR_WHITE) {
+ return strdup(VP_PLAY_STRING_SUBTITLE_COLOR_WHITE);
+ } else if (pSubtitleInfo->nBGColor ==
+ VIDEO_SUBTITLE_COLOR_NONE) {
+ return strdup(VP_PLAY_STRING_SUBTITLE_COLOR_NONE);
+ }
+#else
+ return __vp_subtitle_get_color_and_opacity(pSubtitleInfo->
+ pBGColorHex);
+#endif
+ }
+#ifdef SUBTITLE_K_FEATURE
+ else if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_CAPTION_WINDOW)) {
+ return __vp_subtitle_get_color_and_opacity(pSubtitleInfo->
+ pCaptionWinColorHex);
+ }
+#endif
+ }
+#endif
+ return NULL;
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param part
+ * @return
+ */
+static Evas_Object *__vp_subtitle_genlist_content_get_cb(void *data,
+ Evas_Object * obj,
+ const char *part)
+{
+ SubtitlePopup *pSubtitle =
+ (SubtitlePopup *) evas_object_data_get(obj,
+ VP_SUBTITLE_GENLIST_DATA_KEY);
+ if (pSubtitle == NULL) {
+ VideoLogWarning("evas_object_data_get is fail");
+ return NULL;
+ }
+ VideoLogWarning("part = %s", part);
+
+ if (!strcmp(part, "elm.swallow.icon")) {
+ if (!g_strcmp0(VP_PLAY_STRING_PREVIEW_SUBTITLE_CC, (char *) data)) {
+ Evas_Object *pCaption =
+ _vp_subtitle_create_caption_layout(pSubtitle, obj);
+ evas_object_size_hint_align_set(pCaption, EVAS_HINT_FILL,
+ EVAS_HINT_FILL);
+ evas_object_size_hint_weight_set(pCaption, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ return pCaption;
+ }
+ }
+
+ if (!strcmp(part, "elm.swallow.end")) {
+ if (!g_strcmp0(VP_PLAY_STRING_ACTIVATION, (char *) data)) {
+ Evas_Object *pCheck = NULL;
+ pCheck = elm_check_add(obj);
+ bool bShow = FALSE;
+ vp_play_preference_get_subtitle_show_key(&bShow);
+ evas_object_size_hint_align_set(pCheck, EVAS_HINT_FILL,
+ EVAS_HINT_FILL);
+ evas_object_size_hint_weight_set(pCheck, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ elm_check_state_set(pCheck, bShow);
+ elm_object_style_set(pCheck, "on&off");
+ evas_object_propagate_events_set(pCheck, EINA_FALSE);
+ evas_object_smart_callback_add(pCheck, "changed",
+ __vp_subtitle_check_change_cb,
+ (void *) pSubtitle);
+ pSubtitle->pActivationCheck = pCheck;
+ evas_object_show(pCheck);
+ return pCheck;
+ } else
+ if (!g_strcmp0(VP_PLAY_STRING_SUBTITLE_COLOR, (char *) data)) {
+ Evas_Object *fontColor =
+ evas_object_rectangle_add(evas_object_evas_get(obj));
+ char *szColorHex = NULL;
+ int r = 255, g = 255, b = 255, a = 255;
+ if (vp_play_preference_get_subtitle_font_color_hex_key
+ (&szColorHex) == TRUE) {
+ vp_play_util_convert_hex_to_rgba(szColorHex, &r, &g, &b,
+ &a);
+ evas_object_size_hint_min_set(fontColor, 100, 100);
+ evas_object_color_set(fontColor, r, g, b, 255);
+ VP_FREE(szColorHex);
+ }
+
+
+ return fontColor;
+ }
+ }
+
+ return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __vp_subtitle_genlist_item_selected_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+ if (pEventInfo == NULL) {
+ VideoLogError("pEventInfo is NULL");
+ return;
+ }
+
+ Elm_Object_Item *pItem = (Elm_Object_Item *) pEventInfo;
+ char *szTxt = (char *) elm_object_item_data_get(pItem);
+ elm_genlist_item_selected_set(pItem, EINA_FALSE);
+ SubtitlePopup *pSubtitle = (SubtitlePopup *) pUserData;
+ pSubtitle->pSelectItem = pItem;
+ if (szTxt == NULL) {
+ VideoLogError("szTxt is NULL");
+ return;
+ }
+ vp_subtitle_mode_t nType = VP_SUBTITLE_MODE_NONE;
+
+ if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_SYNC)) {
+ VideoLogWarning
+ ("SELECT SUBTITLE ITEM (VP_PLAY_STRING_SUBTITLE_SYNC)");
+ nType = VP_SUBTITLE_MODE_SYNC;
+ if (pSubtitle->pCloseCb) {
+ pSubtitle->pCloseCb((int) nType, TRUE,
+ (void *) pSubtitle->pUserData);
+ }
+ } else if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_SELECT_SUBTITLES)) {
+ VideoLogWarning
+ ("SELECT SUBTITLE ITEM (VP_PLAY_STRING_SUBTITLE_SELECT_SUBTITLES)");
+ nType = VP_SUBTITLE_MODE_SELECT;
+ if (pSubtitle->pCloseCb) {
+ pSubtitle->pCloseCb((int) nType, TRUE,
+ (void *) pSubtitle->pUserData);
+ }
+ } else if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_LANGUAGE)) {
+ VideoLogWarning
+ ("SELECT SUBTITLE ITEM (VP_PLAY_STRING_SUBTITLE_LANGUAGE)");
+ nType = VP_SUBTITLE_MODE_LANGUAGE;
+ if (pSubtitle->pCloseCb) {
+ pSubtitle->pCloseCb((int) nType, TRUE,
+ (void *) pSubtitle->pUserData);
+ }
+ }
+#ifdef SUBTITLE_K_FEATURE
+ else if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_ALIGNMENT)) {
+ VideoLogWarning
+ ("SELECT SUBTITLE ITEM (VP_PLAY_STRING_SUBTITLE_ALIGNMENT)");
+ nType = VP_SUBTITLE_MODE_ALIGNMENT;
+ if (pSubtitle->pCloseCb) {
+ pSubtitle->pCloseCb((int) nType, TRUE,
+ (void *) pSubtitle->pUserData);
+ }
+ }
+#endif
+ else if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_FONT)) {
+ VideoLogWarning
+ ("SELECT SUBTITLE ITEM (VP_PLAY_STRING_SUBTITLE_FONT)");
+ nType = VP_SUBTITLE_MODE_FONT;
+ if (pSubtitle->pCloseCb) {
+ pSubtitle->pCloseCb((int) nType, TRUE,
+ (void *) pSubtitle->pUserData);
+ }
+ } else if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_SIZE)) {
+ VideoLogWarning
+ ("SELECT SUBTITLE ITEM (VP_PLAY_STRING_SUBTITLE_SIZE)");
+ nType = VP_SUBTITLE_MODE_SIZE;
+ if (pSubtitle->pCloseCb) {
+ pSubtitle->pCloseCb((int) nType, TRUE,
+ (void *) pSubtitle->pUserData);
+ }
+ }
+//#ifdef SUBTITLE_K_FEATURE
+ else if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_EDGE)) {
+ VideoLogWarning
+ ("SELECT SUBTITLE ITEM (VP_PLAY_STRING_SUBTITLE_EDGE)");
+ nType = VP_SUBTITLE_MODE_EDGE;
+ if (pSubtitle->pCloseCb) {
+ pSubtitle->pCloseCb((int) nType, TRUE,
+ (void *) pSubtitle->pUserData);
+ }
+ } else if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_TEXT)) {
+ VideoLogWarning
+ ("SELECT SUBTITLE ITEM (VP_PLAY_STRING_SUBTITLE_TEXT)");
+ nType = VP_SUBTITLE_MODE_TEXT;
+ if (pSubtitle->pCloseCb) {
+ pSubtitle->pCloseCb((int) nType, TRUE,
+ (void *) pSubtitle->pUserData);
+ }
+ } else if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_BG_COLOR)) {
+ VideoLogWarning
+ ("SELECT SUBTITLE ITEM (VP_PLAY_STRING_SUBTITLE_BG_COLOR)");
+ nType = VP_SUBTITLE_MODE_BG_COLOR;
+ if (pSubtitle->pCloseCb) {
+ pSubtitle->pCloseCb((int) nType, TRUE,
+ (void *) pSubtitle->pUserData);
+ }
+ } else if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_COLOR)) {
+ VideoLogWarning
+ ("SELECT SUBTITLE ITEM (VP_PLAY_STRING_SUBTITLE_BG_COLOR)");
+ nType = VP_SUBTITLE_MODE_FONT_COLOR;
+ if (pSubtitle->pCloseCb) {
+ pSubtitle->pCloseCb((int) nType, TRUE,
+ (void *) pSubtitle->pUserData);
+ }
+ }
+#ifdef SUBTITLE_K_FEATURE
+ else if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_CAPTION_WINDOW)) {
+ VideoLogWarning
+ ("SELECT SUBTITLE ITEM (VP_PLAY_STRING_SUBTITLE_CAPTION_WINDOW)");
+ nType = VP_SUBTITLE_MODE_CAPTION_WINDOW;
+ if (pSubtitle->pCloseCb) {
+ pSubtitle->pCloseCb((int) nType, TRUE,
+ (void *) pSubtitle->pUserData);
+ }
+ }
+#endif
+
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_subtitle_popup_key_event_cb(void *pUserData,
+ Evas_Object * pObj,
+ void *pEventInfo)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ SubtitlePopup *pSubtitle = (SubtitlePopup *) pUserData;
+ _vp_subtitle_cancel_button_cb(pSubtitle, NULL, NULL);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pEvas
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_subtitle_popup_mouse_event_cb(void *pUserData,
+ Evas * pEvas,
+ Evas_Object * pObj,
+ void *pEventInfo)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ if (pEventInfo == NULL) {
+ VideoLogError("pEventInfo is NULL");
+ return;
+ }
+
+ Evas_Event_Mouse_Up *ev = pEventInfo;
+
+ if (ev->button == 3) {
+ SubtitlePopup *pSubtitle = (SubtitlePopup *) pUserData;
+ _vp_subtitle_cancel_button_cb(pSubtitle, NULL, NULL);
+ }
+}
+
+/* internal functions */
+/**
+ *
+ * @param pSubtitle
+ */
+static void _vp_subtitle_destroy_subtitle_info(SubtitlePopup * pSubtitle)
+{
+ if (pSubtitle == NULL) {
+ VideoLogError("pSubtitle is NULL");
+ return;
+ }
+
+ if (pSubtitle->pSubtitleInfo) {
+ VP_FREE(pSubtitle->pSubtitleInfo->szFontName);
+ VP_FREE(pSubtitle->pSubtitleInfo->szLanguage);
+ VP_FREE(pSubtitle->pSubtitleInfo->szText);
+#ifdef SUBTITLE_K_FEATURE
+ VP_FREE(pSubtitle->pSubtitleInfo->pTextColorHex);
+ VP_FREE(pSubtitle->pSubtitleInfo->pBGColorHex);
+ VP_FREE(pSubtitle->pSubtitleInfo->pCaptionWinColorHex);
+#endif
+ }
+}
+
+/**
+ *
+ * @param pSubtitle
+ */
+static void _vp_subtitle_destroy_handle(SubtitlePopup * pSubtitle)
+{
+ if (pSubtitle == NULL) {
+ VideoLogError("pSubtitle is NULL");
+ return;
+ }
+ evas_object_smart_callback_del(pSubtitle->pParent, "rotation,changed",
+ __vp_subtitle_popup_rotate_cb);
+ evas_object_smart_callback_del(pSubtitle->pGenList, "realized",
+ __vp_subtitle_genlist_realized);
+
+ if (pSubtitle->st_Subtitle_Itc_1) {
+ elm_genlist_item_class_free(pSubtitle->st_Subtitle_Itc_1);
+ pSubtitle->st_Subtitle_Itc_1 = NULL;
+ }
+
+ if (pSubtitle->st_Subtitle_Itc_2) {
+ elm_genlist_item_class_free(pSubtitle->st_Subtitle_Itc_2);
+ pSubtitle->st_Subtitle_Itc_2 = NULL;
+ }
+
+ if (pSubtitle->st_Subtitle_Itc_1icon) {
+ elm_genlist_item_class_free(pSubtitle->st_Subtitle_Itc_1icon);
+ pSubtitle->st_Subtitle_Itc_1icon = NULL;
+ }
+#ifdef SUBTITLE_K_FEATURE
+ if (pSubtitle->st_Subtitle_Itc_3) {
+ elm_genlist_item_class_free(pSubtitle->st_Subtitle_Itc_3);
+ pSubtitle->st_Subtitle_Itc_3 = NULL;
+ }
+#endif
+
+ if (pSubtitle->st_Subtitle_Itc_groupindex) {
+ elm_genlist_item_class_free(pSubtitle->st_Subtitle_Itc_groupindex);
+ pSubtitle->st_Subtitle_Itc_groupindex = NULL;
+ }
+
+ pSubtitle->pActivationCheck = NULL;
+ VP_EVAS_DEL(pSubtitle->pCaptionLayout);
+ VP_EVAS_DEL(pSubtitle->pGenList);
+ VP_EVAS_DEL(pSubtitle->pContentBox);
+ VP_EVAS_DEL(pSubtitle->pBox);
+
+ VP_EVAS_DEL(pSubtitle->pPopup);
+ _vp_subtitle_destroy_subtitle_info(pSubtitle);
+ VP_FREE(pSubtitle->pSubtitleInfo);
+
+ VP_FREE(pSubtitle);
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+static Evas_Object *_vp_subtitle_create_genlist(Evas_Object * pParent)
+{
+ if (pParent == NULL) {
+ VideoLogError("pParent is NULL");
+ return NULL;
+ }
+
+ Evas_Object *pObj = NULL;
+
+ pObj = elm_genlist_add(pParent);
+ evas_object_size_hint_weight_set(pObj, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(pObj, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_show(pObj);
+ return pObj;
+}
+
+/**
+ *
+ * @param pGenList
+ * @param bOn
+ */
+static void _vp_subtitle_genlist_disabled_set(Evas_Object * pGenList,
+ bool bOn)
+{
+ if (pGenList == NULL) {
+ VideoLogError("pGenList is NULL");
+ return;
+ }
+
+ Elm_Object_Item *gl_item = elm_genlist_first_item_get(pGenList);
+ if (gl_item) {
+ gl_item = _vp_subtitle_list_item_next_get(gl_item);
+ for (; gl_item; gl_item = _vp_subtitle_list_item_next_get(gl_item)) {
+ elm_object_item_disabled_set(gl_item, !bOn);
+ }
+ }
+}
+
+/**
+ *
+ * @param pObj
+ * @param pUserData
+ * @return
+ */
+static bool _vp_subtitle_add_genlist_item(Evas_Object * pObj,
+ void *pUserData)
+{
+ if (pObj == NULL) {
+ VideoLogError("pObj is NULL");
+ return FALSE;
+ }
+
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return FALSE;
+ }
+
+ SubtitlePopup *pSubtitle = (SubtitlePopup *) pUserData;
+
+ if (pSubtitle->pSubtitleInfo == NULL) {
+ VideoLogError("pSubtitleInfo is NULL");
+ return FALSE;
+ }
+
+ if (pSubtitle->st_Subtitle_Itc_1) {
+ elm_genlist_item_class_free(pSubtitle->st_Subtitle_Itc_1);
+ pSubtitle->st_Subtitle_Itc_1 = NULL;
+ }
+
+ if (pSubtitle->st_Subtitle_Itc_2) {
+ elm_genlist_item_class_free(pSubtitle->st_Subtitle_Itc_2);
+ pSubtitle->st_Subtitle_Itc_2 = NULL;
+ }
+
+ if (pSubtitle->st_Subtitle_Itc_1icon) {
+ elm_genlist_item_class_free(pSubtitle->st_Subtitle_Itc_1icon);
+ pSubtitle->st_Subtitle_Itc_1icon = NULL;
+ }
+#ifdef SUBTITLE_K_FEATURE
+ if (pSubtitle->st_Subtitle_Itc_3) {
+ elm_genlist_item_class_free(pSubtitle->st_Subtitle_Itc_3);
+ pSubtitle->st_Subtitle_Itc_3 = NULL;
+ }
+#endif
+
+ if (pSubtitle->st_Subtitle_Itc_groupindex) {
+ elm_genlist_item_class_free(pSubtitle->st_Subtitle_Itc_groupindex);
+ pSubtitle->st_Subtitle_Itc_groupindex = NULL;
+ }
+
+ pSubtitle->st_Subtitle_Itc_1 = elm_genlist_item_class_new();
+
+ if (pSubtitle->st_Subtitle_Itc_1 != NULL) {
+ pSubtitle->st_Subtitle_Itc_1->version =
+ ELM_GENLIST_ITEM_CLASS_VERSION;
+ pSubtitle->st_Subtitle_Itc_1->item_style = "type1";
+ pSubtitle->st_Subtitle_Itc_1->func.text_get =
+ (void *) __vp_subtitle_genlist_text_get_cb;
+ pSubtitle->st_Subtitle_Itc_1->func.content_get =
+ (void *) __vp_subtitle_genlist_content_get_cb;
+ pSubtitle->st_Subtitle_Itc_1->func.state_get = NULL;
+ pSubtitle->st_Subtitle_Itc_1->func.del = NULL;
+ }
+
+ pSubtitle->st_Subtitle_Itc_2 = elm_genlist_item_class_new();
+
+ if (pSubtitle->st_Subtitle_Itc_2 != NULL) {
+ pSubtitle->st_Subtitle_Itc_2->version =
+ ELM_GENLIST_ITEM_CLASS_VERSION;
+ pSubtitle->st_Subtitle_Itc_2->item_style = "type1";
+ pSubtitle->st_Subtitle_Itc_2->func.text_get =
+ (void *) __vp_subtitle_genlist_text_get_cb;
+ pSubtitle->st_Subtitle_Itc_2->func.content_get = NULL;
+ pSubtitle->st_Subtitle_Itc_2->func.state_get = NULL;
+ pSubtitle->st_Subtitle_Itc_2->func.del = NULL;
+ }
+
+ pSubtitle->st_Subtitle_Itc_1icon = elm_genlist_item_class_new();
+
+ if (pSubtitle->st_Subtitle_Itc_1icon != NULL) {
+ pSubtitle->st_Subtitle_Itc_1icon->version =
+ ELM_GENLIST_ITEM_CLASS_VERSION;
+ pSubtitle->st_Subtitle_Itc_1icon->item_style = "1icon";
+ pSubtitle->st_Subtitle_Itc_1icon->func.text_get = NULL;
+ pSubtitle->st_Subtitle_Itc_1icon->func.content_get =
+ (void *) __vp_subtitle_genlist_content_get_cb;
+ pSubtitle->st_Subtitle_Itc_1icon->func.state_get = NULL;
+ pSubtitle->st_Subtitle_Itc_1icon->func.del = NULL;
+ }
+
+ if (pSubtitle->st_Subtitle_Itc_groupindex != NULL) {
+ pSubtitle->st_Subtitle_Itc_groupindex =
+ elm_genlist_item_class_new();
+ pSubtitle->st_Subtitle_Itc_groupindex->version =
+ ELM_GENLIST_ITEM_CLASS_VERSION;
+ pSubtitle->st_Subtitle_Itc_groupindex->item_style = "group_index";
+ pSubtitle->st_Subtitle_Itc_groupindex->func.text_get =
+ (void *) __vp_subtitle_genlist_text_get_cb;
+ pSubtitle->st_Subtitle_Itc_groupindex->func.content_get = NULL;
+ pSubtitle->st_Subtitle_Itc_groupindex->func.state_get = NULL;
+ pSubtitle->st_Subtitle_Itc_groupindex->func.del = NULL;
+ }
+
+ Elm_Object_Item *pItem = NULL;
+ VideoLogInfo("subtitle text pre is %s",
+ pSubtitle->pSubtitleInfo->szText);
+ pItem =
+ elm_genlist_item_append(pObj, pSubtitle->st_Subtitle_Itc_1,
+ (void *) VP_PLAY_STRING_ACTIVATION, NULL,
+ ELM_GENLIST_ITEM_NONE,
+ __vp_subtitle_genlist_item_selected_cb,
+ pUserData);
+ elm_genlist_item_select_mode_set(pItem,
+ ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+ //elm_genlist_item_append(pObj, pSubtitle->st_Subtitle_Itc_2, (void *)VP_PLAY_STRING_SUBTITLE_SELECT_SUBTITLES, NULL, ELM_GENLIST_ITEM_NONE, __vp_subtitle_genlist_item_selected_cb, pUserData);
+
+ pItem =
+ elm_genlist_item_append(pObj,
+ pSubtitle->st_Subtitle_Itc_groupindex,
+ (void *) VP_PLAY_STRING_SETTINGS, NULL,
+ ELM_GENLIST_ITEM_NONE, NULL, pUserData);
+ elm_genlist_item_select_mode_set(pItem,
+ ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+
+ pItem =
+ elm_genlist_item_append(pObj, pSubtitle->st_Subtitle_Itc_1icon,
+ (void *)
+ VP_PLAY_STRING_PREVIEW_SUBTITLE_CC, NULL,
+ ELM_GENLIST_ITEM_NONE, NULL, pUserData);
+ elm_genlist_item_select_mode_set(pItem,
+ ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+ elm_genlist_item_append(pObj, pSubtitle->st_Subtitle_Itc_2,
+ (void *) VP_PLAY_STRING_SUBTITLE_ALIGNMENT,
+ NULL, ELM_GENLIST_ITEM_NONE,
+ __vp_subtitle_genlist_item_selected_cb,
+ pUserData);
+ elm_genlist_item_append(pObj, pSubtitle->st_Subtitle_Itc_2,
+ (void *) VP_PLAY_STRING_SUBTITLE_SIZE, NULL,
+ ELM_GENLIST_ITEM_NONE,
+ __vp_subtitle_genlist_item_selected_cb,
+ pUserData);
+ elm_genlist_item_append(pObj, pSubtitle->st_Subtitle_Itc_1,
+ (void *) VP_PLAY_STRING_SUBTITLE_COLOR, NULL,
+ ELM_GENLIST_ITEM_NONE,
+ __vp_subtitle_genlist_item_selected_cb,
+ pUserData);
+
+ bool bOn = FALSE;
+ vp_play_preference_get_subtitle_show_key(&bOn);
+ _vp_subtitle_genlist_disabled_set(pSubtitle->pGenList, bOn);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param Event_info
+ */
+static void _vp_subtitle_done_button_cb(void *data, Evas_Object * obj,
+ void *Event_info)
+{
+ SubtitlePopup *pSubtitle = (SubtitlePopup *) data;
+
+ if (pSubtitle->pCloseCb) {
+ pSubtitle->pCloseCb(VP_SUBTITLE_MODE_CLOSE, FALSE,
+ (void *) pSubtitle->pUserData);
+ }
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param Event_info
+ */
+static void _vp_subtitle_cancel_button_cb(void *data, Evas_Object * obj,
+ void *Event_info)
+{
+ SubtitlePopup *pSubtitle = (SubtitlePopup *) data;
+ pSubtitle->pSubtitleInfo->eAlignment =
+ pSubtitle->pSubtitleInfo->original_eAlignment;
+ pSubtitle->pSubtitleInfo->nFontSize =
+ pSubtitle->pSubtitleInfo->original_nFontSize;
+ vp_play_preference_set_subtitle_alignment_key(pSubtitle->
+ pSubtitleInfo->
+ original_eAlignment);
+ vp_play_preference_set_subtitle_size_key(pSubtitle->pSubtitleInfo->
+ original_nFontSize);
+ if (pSubtitle->pSubtitleInfo->pOriginalTextColorHex) {
+ VP_FREE(pSubtitle->pSubtitleInfo->pTextColorHex);
+ VP_STRDUP(pSubtitle->pSubtitleInfo->pTextColorHex,
+ pSubtitle->pSubtitleInfo->pOriginalTextColorHex);
+ vp_play_preference_set_subtitle_font_color_hex_key(pSubtitle->
+ pSubtitleInfo->
+ pTextColorHex);
+ }
+ bool bOn = FALSE;
+ vp_play_preference_get_subtitle_show_key(&bOn);
+ if (bOn != pSubtitle->pSubtitleInfo->original_activation) {
+ bOn = pSubtitle->pSubtitleInfo->original_activation;
+ vp_play_preference_set_subtitle_show_key(bOn);
+ _vp_subtitle_set_activation(pSubtitle, bOn);
+ }
+ if (pSubtitle->pCloseCb) {
+ pSubtitle->pCloseCb(VP_SUBTITLE_MODE_CLOSE, FALSE,
+ (void *) pSubtitle->pUserData);
+ }
+}
+
+/**
+ *
+ * @param pSubtitle
+ */
+static void _vp_subtitle_create_title(SubtitlePopup * pSubtitle)
+{
+ if (pSubtitle == NULL) {
+ VideoLogError("pSubtitle is NULL");
+ return;
+ }
+
+ if (pSubtitle->pBox == NULL) {
+ VideoLogError("pBox is NULL");
+ return;
+ }
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VP_PLAY_POPUP_EDJ_PATH);
+ free(path);
+ pSubtitle->pPopupTitle = elm_layout_add(pSubtitle->pBox);
+ evas_object_size_hint_align_set(pSubtitle->pPopupTitle, EVAS_HINT_FILL,
+ EVAS_HINT_FILL);
+ elm_layout_file_set(pSubtitle->pPopupTitle, edj_path,
+ VP_PLAY_EDJ_GROUP_TITLE_POPUP);
+
+ /*set title */
+ elm_object_part_text_set(pSubtitle->pPopupTitle, "elm.text.title",
+ VP_PLAY_STRING_POPUP_SUBTITLE);
+
+ /* Title Cancel Button */
+ Evas_Object *btn = NULL;
+ btn = elm_button_add(pSubtitle->pPopupTitle);
+ elm_object_style_set(btn, "naviframe/title_left");
+ evas_object_smart_callback_add(btn, "clicked",
+ (Evas_Smart_Cb)
+ _vp_subtitle_cancel_button_cb,
+ pSubtitle);
+ elm_object_part_content_set(pSubtitle->pPopupTitle,
+ "elm.swallow.title.left.icon", btn);
+ elm_object_text_set(btn, VP_PLAY_STRING_SUBTITLE_CANCEL);
+
+ /* Title Done Button */
+ btn = elm_button_add(pSubtitle->pPopupTitle);
+ elm_object_style_set(btn, "naviframe/title_right");
+ evas_object_smart_callback_add(btn, "clicked",
+ (Evas_Smart_Cb)
+ _vp_subtitle_done_button_cb, pSubtitle);
+ elm_object_part_content_set(pSubtitle->pPopupTitle,
+ "elm.swallow.title.right.icon", btn);
+ elm_object_text_set(btn, VP_PLAY_STRING_SUBTITLE_DONE);
+
+ elm_box_pack_end(pSubtitle->pBox, pSubtitle->pPopupTitle);
+ evas_object_show(pSubtitle->pPopupTitle);
+}
+
+/**
+ *
+ * @param parent
+ * @return
+ */
+static Evas_Object *_vp_subtitle_create_label(Evas_Object * parent)
+{
+ Evas_Object *pLabel = elm_label_add(parent);
+ evas_object_size_hint_weight_set(pLabel, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(pLabel, EVAS_HINT_FILL,
+ EVAS_HINT_FILL);
+ elm_label_ellipsis_set(pLabel, EINA_TRUE);
+ elm_object_style_set(pLabel, "popup/default");
+ evas_object_size_hint_min_set(pLabel, EVAS_HINT_EXPAND,
+ VP_POPUP_LIST_CLOSED_CAPTION_HEIGHT *
+ VP_SCALE);
+
+ evas_object_show(pLabel);
+
+ return pLabel;
+}
+
+/**
+ *
+ * @param pSubtitle
+ * @param pParent
+ * @return
+ */
+static Evas_Object *_vp_subtitle_create_caption_layout(SubtitlePopup *
+ pSubtitle,
+ Evas_Object *
+ pParent)
+{
+ if (pSubtitle == NULL) {
+ VideoLogError("pSubtitle is NULL");
+ return NULL;
+ }
+
+ if (pSubtitle->pBox == NULL) {
+ VideoLogError("pBox is NULL");
+ return NULL;
+ }
+
+ if (pSubtitle->pSubtitleInfo == NULL) {
+ VideoLogError("pSubtitleInfo is NULL");
+ return NULL;
+ }
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VP_PLAY_POPUP_EDJ_PATH);
+ free(path);
+ pSubtitle->pCaptionLayout = elm_layout_add(pParent);
+ evas_object_size_hint_weight_set(pSubtitle->pCaptionLayout,
+ EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(pSubtitle->pCaptionLayout,
+ EVAS_HINT_FILL, EVAS_HINT_FILL);
+ elm_layout_file_set(pSubtitle->pCaptionLayout, edj_path,
+ VP_PLAY_EDJ_GROUP_CAPTION_POPUP);
+
+ char *szText = NULL;
+ Evas_Object *pLab = NULL;
+ pLab = _vp_subtitle_create_label(pSubtitle->pCaptionLayout);
+
+ bool bOn = FALSE;
+ vp_play_preference_get_subtitle_show_key(&bOn);
+ szText = _vp_play_subtitle_text_get(pSubtitle->pSubtitleInfo, bOn);
+ VideoSecureLogInfo("preview title =%S", szText);
+ elm_object_text_set(pLab, szText);
+ VP_FREE(szText);
+
+ elm_object_part_content_set(pSubtitle->pCaptionLayout,
+ "elm.swallow.content", pLab);
+ evas_object_show(pLab);
+ evas_object_show(pSubtitle->pCaptionLayout);
+
+
+
+ return pSubtitle->pCaptionLayout;
+}
+
+/**
+ *
+ * @param pSubtitle
+ * @param bActivation
+ * @return
+ */
+static bool _vp_subtitle_update_caption_layout(SubtitlePopup * pSubtitle,
+ bool bActivation)
+{
+ if (pSubtitle == NULL) {
+ VideoLogError("pSubtitle is NULL");
+ return FALSE;
+ }
+
+ if (pSubtitle->pBox == NULL) {
+ VideoLogError("pBox is NULL");
+ return FALSE;
+ }
+
+ if (pSubtitle->pSubtitleInfo == NULL) {
+ VideoLogError("pSubtitleInfo is NULL");
+ return FALSE;
+ }
+
+ if (pSubtitle->pCaptionLayout == NULL) {
+ VideoLogError("pCaptionLayout is NULL");
+ return FALSE;
+ }
+
+ char *szText = NULL;
+ Evas_Object *pLab = NULL;
+ pLab =
+ elm_object_part_content_get(pSubtitle->pCaptionLayout,
+ "elm.swallow.content");
+ szText =
+ _vp_play_subtitle_text_get(pSubtitle->pSubtitleInfo, bActivation);
+ VideoSecureLogInfo("preview title =%s", szText);
+ elm_object_text_set(pLab, szText);
+ VP_FREE(szText);
+ return TRUE;
+}
+
+/**
+ *
+ * @param pParent
+ * @param pCancelKeyCb
+ * @param pCancelMouseCb
+ * @param pUserData
+ * @return
+ */
+static Evas_Object *_vp_subtitle_popup_create(Evas_Object * pParent,
+ Eext_Event_Cb pCancelKeyCb,
+ Evas_Object_Event_Cb
+ pCancelMouseCb,
+ void *pUserData)
+{
+ if (pParent == NULL) {
+ VideoLogError("pParent is NULL");
+ return NULL;
+ }
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return NULL;
+ }
+
+ Evas_Object *pObj = NULL;
+
+ pObj = vp_popup_create(pParent, 0,
+ NULL,
+ NULL, 0.0, NULL,
+ pCancelKeyCb,
+ pCancelMouseCb, (void *) pUserData);
+
+ return pObj;
+}
+
+/**
+ *
+ * @param pSubtitle
+ * @param pSubtitleInfo
+ */
+static void _vp_subtitle_get_subtitle_info(SubtitlePopup * pSubtitle,
+ SubtitleInfo * pSubtitleInfo)
+{
+ if (pSubtitle == NULL) {
+ VideoLogError("pSubtitle is NULL");
+ return;
+ }
+
+ if (pSubtitleInfo == NULL) {
+ VideoLogError("pSubtitleInfo is NULL");
+ return;
+ }
+
+ if (pSubtitle->pSubtitleInfo == NULL) {
+ VideoLogError("pSubtitleInfo is NULL");
+ return;
+ }
+
+ _vp_subtitle_destroy_subtitle_info(pSubtitle);
+
+ pSubtitle->pSubtitleInfo->bClosedCaption =
+ pSubtitleInfo->bClosedCaption;
+ pSubtitle->pSubtitleInfo->fSync = pSubtitleInfo->fSync;
+ VP_STRDUP(pSubtitle->pSubtitleInfo->szLanguage,
+ pSubtitleInfo->szLanguage);
+ VP_STRDUP(pSubtitle->pSubtitleInfo->szFontName,
+ pSubtitleInfo->szFontName);
+ VP_STRDUP(pSubtitle->pSubtitleInfo->szURL, pSubtitleInfo->szURL);
+ VP_STRDUP(pSubtitle->pSubtitleInfo->szText,
+ VP_PLAY_STRING_PREVIEW_SUBTITLE_CC);
+
+ pSubtitle->pSubtitleInfo->nFontSize = pSubtitleInfo->nFontSize;
+ pSubtitle->pSubtitleInfo->nEdge = pSubtitleInfo->nEdge;
+
+#ifndef SUBTITLE_K_FEATURE
+ pSubtitle->pSubtitleInfo->nTextColor = pSubtitleInfo->nTextColor;
+ pSubtitle->pSubtitleInfo->nBGColor = pSubtitleInfo->nBGColor;
+#else
+ VP_STRDUP(pSubtitle->pSubtitleInfo->pTextColorHex,
+ pSubtitleInfo->pTextColorHex);
+ VP_STRDUP(pSubtitle->pSubtitleInfo->pBGColorHex,
+ pSubtitleInfo->pBGColorHex);
+ VP_STRDUP(pSubtitle->pSubtitleInfo->pCaptionWinColorHex,
+ pSubtitleInfo->pCaptionWinColorHex);
+ pSubtitle->pSubtitleInfo->eAlignment = pSubtitleInfo->eAlignment;
+#endif
+ pSubtitle->pSubtitleInfo->fZoom = pSubtitleInfo->fZoom;
+ pSubtitle->pSubtitleInfo->bSupportSelect =
+ pSubtitleInfo->bSupportSelect;
+}
+
+/**
+ *
+ * @param gl_item
+ * @return
+ */
+Elm_Object_Item *_vp_subtitle_list_item_next_get(Elm_Object_Item * gl_item)
+{
+ if (!gl_item) {
+ VideoLogError("gl_item is null!");
+ return NULL;
+ }
+
+ Elm_Object_Item *next = gl_item;
+ do {
+ next = elm_genlist_item_next_get(next);
+ } while (next && elm_genlist_item_expanded_depth_get(next) > 0);
+
+ return next;
+}
+
+/**
+ *
+ * @param pSubtitle
+ * @param bOn
+ */
+static void _vp_subtitle_set_activation(SubtitlePopup * pSubtitle,
+ bool bOn)
+{
+ if (pSubtitle == NULL) {
+ VideoLogError("pSubtitle is NULL");
+ return;
+ }
+ VideoLogInfo("");
+
+ _vp_subtitle_update_caption_layout(pSubtitle, bOn);
+ _vp_subtitle_genlist_disabled_set(pSubtitle->pGenList, bOn);
+}
+
+/* external functions */
+/**
+ *
+ * @param pParent
+ * @param pSubtitleInfo
+ * @param pCloseCb
+ * @return
+ */
+subtitle_popup_handle vp_subtitle_create(Evas_Object * pParent,
+ SubtitleInfo * pSubtitleInfo,
+ PopupCloseCbFunc pCloseCb)
+{
+ if (pParent == NULL) {
+ VideoLogError("pParent is NULL");
+ return NULL;
+ }
+
+ if (pSubtitleInfo == NULL) {
+ VideoLogError("pSubtitleInfo is NULL");
+ return NULL;
+ }
+
+ SubtitlePopup *pSubtitle = NULL;
+
+ pSubtitle = calloc(1, sizeof(SubtitlePopup));
+
+ if (pSubtitle == NULL) {
+ VideoLogError("pSubtitle alloc fail");
+ return NULL;
+ }
+
+ pSubtitle->pParent = pParent;
+ pSubtitle->pCloseCb = pCloseCb;
+
+ pSubtitle->pSubtitleInfo = calloc(1, sizeof(SubtitleInfo));
+ if (pSubtitle->pSubtitleInfo == NULL) {
+ VideoLogError("pSubtitleInfo alloc fail");
+ _vp_subtitle_destroy_handle(pSubtitle);
+ return NULL;
+ }
+ _vp_subtitle_get_subtitle_info(pSubtitle, pSubtitleInfo);
+ pSubtitle->pSubtitleInfo->original_eAlignment =
+ pSubtitleInfo->eAlignment;
+ pSubtitle->pSubtitleInfo->original_nFontSize =
+ pSubtitleInfo->nFontSize;
+ if (pSubtitleInfo->pTextColorHex) {
+ VP_FREE(pSubtitle->pSubtitleInfo->pOriginalTextColorHex);
+ VP_STRDUP(pSubtitle->pSubtitleInfo->pOriginalTextColorHex,
+ pSubtitleInfo->pTextColorHex);
+ }
+
+ bool bOn = FALSE;
+ vp_play_preference_get_subtitle_show_key(&bOn);
+ pSubtitle->pSubtitleInfo->original_activation = bOn;
+
+ pSubtitle->pPopup =
+ _vp_subtitle_popup_create(pParent,
+ __vp_subtitle_popup_key_event_cb,
+ __vp_subtitle_popup_mouse_event_cb,
+ (void *) pSubtitle);
+ if (pSubtitle->pPopup == NULL) {
+ VideoLogError("_vp_subtitle_create_popup fail");
+ _vp_subtitle_destroy_handle(pSubtitle);
+ return NULL;
+ }
+
+ pSubtitle->pGenList = _vp_subtitle_create_genlist(pSubtitle->pPopup);
+ if (pSubtitle->pGenList == NULL) {
+ VideoLogError("_vp_subtitle_create_genlist fail");
+ _vp_subtitle_destroy_handle(pSubtitle);
+ return NULL;
+ }
+
+ evas_object_smart_callback_add(pSubtitle->pParent, "rotation,changed",
+ __vp_subtitle_popup_rotate_cb,
+ pSubtitle);
+ evas_object_smart_callback_add(pSubtitle->pGenList, "realized",
+ __vp_subtitle_genlist_realized, NULL);
+ evas_object_data_set(pSubtitle->pGenList, VP_SUBTITLE_GENLIST_DATA_KEY,
+ (void *) pSubtitle);
+ elm_genlist_mode_set(pSubtitle->pGenList, ELM_LIST_COMPRESS);
+
+ if (!_vp_subtitle_add_genlist_item
+ (pSubtitle->pGenList, (void *) pSubtitle)) {
+ VideoLogError("_vp_subtitle_add_genlist_item fail");
+ _vp_subtitle_destroy_handle(pSubtitle);
+ return NULL;
+ }
+
+ pSubtitle->pBox = elm_box_add(pSubtitle->pPopup);
+ evas_object_size_hint_weight_set(pSubtitle->pBox, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(pSubtitle->pBox, EVAS_HINT_FILL,
+ EVAS_HINT_FILL);
+ elm_box_homogeneous_set(pSubtitle->pBox, FALSE);
+
+ pSubtitle->pContentBox = elm_box_add(pSubtitle->pBox);
+ evas_object_size_hint_weight_set(pSubtitle->pContentBox,
+ EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(pSubtitle->pContentBox, EVAS_HINT_FILL,
+ EVAS_HINT_FILL);
+
+ __vp_subtitle_popup_size_set(pSubtitle);
+ elm_box_pack_end(pSubtitle->pContentBox, pSubtitle->pGenList);
+
+ _vp_subtitle_create_title(pSubtitle);
+
+ evas_object_show(pSubtitle->pContentBox);
+
+ elm_box_pack_end(pSubtitle->pBox, pSubtitle->pContentBox);
+
+ evas_object_show(pSubtitle->pGenList);
+ elm_object_content_set(pSubtitle->pPopup, pSubtitle->pBox);
+
+ return pSubtitle;
+}
+
+/**
+ *
+ * @param pSubtitleHandle
+ */
+void vp_subtitle_destroy(subtitle_popup_handle pSubtitleHandle)
+{
+ if (pSubtitleHandle == NULL) {
+ VideoLogError("pSubtitleHandle is NULL");
+ return;
+ }
+
+ SubtitlePopup *pSubtitle = (SubtitlePopup *) pSubtitleHandle;
+
+ _vp_subtitle_destroy_handle(pSubtitle);
+
+}
+
+/**
+ *
+ * @param pSubtitleHandle
+ * @return
+ */
+bool vp_subtitle_realize(subtitle_popup_handle pSubtitleHandle)
+{
+ if (pSubtitleHandle == NULL) {
+ VideoLogError("pSubtitleHandle is NULL");
+ return FALSE;
+ }
+
+ SubtitlePopup *pSubtitle = (SubtitlePopup *) pSubtitleHandle;
+
+ evas_object_show(pSubtitle->pPopup);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pSubtitleHandle
+ * @return
+ */
+bool vp_subtitle_unrealize(subtitle_popup_handle pSubtitleHandle)
+{
+ if (pSubtitleHandle == NULL) {
+ VideoLogError("pSubtitleHandle is NULL");
+ return FALSE;
+ }
+
+ SubtitlePopup *pSubtitle = (SubtitlePopup *) pSubtitleHandle;
+
+ evas_object_hide(pSubtitle->pPopup);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pSubtitleHandle
+ * @param pSubtitleInfo
+ * @return
+ */
+bool vp_subtitle_update(subtitle_popup_handle pSubtitleHandle,
+ SubtitleInfo * pSubtitleInfo)
+{
+ if (pSubtitleHandle == NULL) {
+ VideoLogError("pSubtitleHandle is NULL");
+ return FALSE;
+ }
+
+ if (pSubtitleInfo == NULL) {
+ VideoLogError("pSubtitleInfo is NULL");
+ return FALSE;
+ }
+
+ SubtitlePopup *pSubtitle = (SubtitlePopup *) pSubtitleHandle;
+ _vp_subtitle_get_subtitle_info(pSubtitle, pSubtitleInfo);
+
+ if (!_vp_subtitle_update_caption_layout(pSubtitle, TRUE)) {
+ VideoLogError("_vp_subtitle_update_caption_layout failed");
+ return FALSE;
+ }
+
+ if (pSubtitle->pSelectItem) {
+ VideoLogInfo("pSubtitle->pSelectItem=%p", pSubtitle->pSelectItem);
+ elm_genlist_item_update(pSubtitle->pSelectItem);
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pSubtitleHandle
+ * @param pUserData
+ * @return
+ */
+bool vp_subtitle_set_user_data(subtitle_popup_handle pSubtitleHandle,
+ void *pUserData)
+{
+ if (pSubtitleHandle == NULL) {
+ VideoLogError("pSubtitleHandle is NULL");
+ return FALSE;
+ }
+
+ SubtitlePopup *pSubtitle = (SubtitlePopup *) pSubtitleHandle;
+
+ pSubtitle->pUserData = pUserData;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param colorHex
+ * @return
+ */
+char *_vp_subtitle_get_opacity(char *colorHex)
+{
+ if (colorHex == NULL) {
+ VideoLogError("colorHex is NULL");
+ return NULL;
+ }
+
+ char *szOpacity = g_strndup(colorHex + 7, 2);
+
+ float fOpacity = strtol(szOpacity, NULL, 16);
+
+ VideoLogInfo("szOpacity=%s, fOpacity=%f", szOpacity, fOpacity);
+
+ VP_FREE(szOpacity);
+
+ return g_strdup_printf("%d%%", (int) ((fOpacity * 100) / 255.0 + 0.5));
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "vp-play-string-define.h"
+#include "vp-play-macro-define.h"
+
+#include "vp-zoom-guide.h"
+
+/* check temp */
+#include "vp-play-log.h"
+
+
+typedef struct _ZoomGuideWidget {
+ Evas_Object *pParent;
+ Evas_Object *pLayout;
+ Evas_Object *pItemLayout;
+
+ Ecore_Timer *pHideTimer;
+
+ bool bRealized;
+
+ double fPosX;
+ double fPosY;
+ double fResultPosX;
+ double fResultPosY;
+
+ double fZoomValue;
+
+ Evas_Coord_Rectangle rtOldRect;
+} ZoomGuideWidget;
+
+
+
+static void _vp_zoom_guide_destory_handle(ZoomGuideWidget *
+ pZoomGuideWidget);
+static void _vp_zoom_guide_update_item(ZoomGuideWidget * pZoomGuideWidget,
+ bool bUpdate);
+
+
+/* callback functions */
+/**
+ *
+ * @param pUserData
+ * @return
+ */
+static Eina_Bool __vp_zoom_guide_hide_timer_cb(void *pUserData)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return EINA_FALSE;
+ }
+
+ ZoomGuideWidget *pZoomGuideWidget = (ZoomGuideWidget *) pUserData;
+
+ elm_object_signal_emit(pZoomGuideWidget->pLayout,
+ VP_NORMAL_SIGNAL_ZOOM_GUIDE_HIDE, "*");
+
+ evas_object_hide(pZoomGuideWidget->pLayout);
+ evas_object_hide(pZoomGuideWidget->pItemLayout);
+
+ pZoomGuideWidget->pHideTimer = NULL;
+ return EINA_FALSE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pEvas
+ * @param pObj
+ * @param pEvent
+ */
+static void __vp_zoom_guide_resize_cb(void *pUserData, Evas * pEvas,
+ Evas_Object * pObj, void *pEvent)
+{
+ if (!pUserData) {
+ VideoLogError("[ERR] No Exist pUserData.");
+ return;
+ }
+
+ ZoomGuideWidget *pZoomGuideWidget = (ZoomGuideWidget *) pUserData;
+ Evas_Coord_Rectangle rtCurRect = { 0, };
+
+ evas_object_geometry_get(pObj, &(rtCurRect.x), &(rtCurRect.y),
+ &(rtCurRect.w), &(rtCurRect.h));
+
+ if (pZoomGuideWidget->rtOldRect.x != rtCurRect.x ||
+ pZoomGuideWidget->rtOldRect.y != rtCurRect.y ||
+ pZoomGuideWidget->rtOldRect.w != rtCurRect.w ||
+ pZoomGuideWidget->rtOldRect.h != rtCurRect.h) {
+
+ pZoomGuideWidget->rtOldRect.x = rtCurRect.x;
+ pZoomGuideWidget->rtOldRect.y = rtCurRect.y;
+ pZoomGuideWidget->rtOldRect.w = rtCurRect.w;
+ pZoomGuideWidget->rtOldRect.h = rtCurRect.h;
+
+ _vp_zoom_guide_update_item(pZoomGuideWidget, FALSE);
+ }
+
+}
+
+/* internal functions */
+/**
+ *
+ * @param pZoomGuideWidget
+ * @param bUpdate
+ */
+static void _vp_zoom_guide_update_item(ZoomGuideWidget * pZoomGuideWidget,
+ bool bUpdate)
+{
+ if (pZoomGuideWidget == NULL) {
+ VideoLogError("pZoomGuideWidget is NULL");
+ return;
+ }
+ Evas_Object *pParent = pZoomGuideWidget->pLayout;
+ Evas_Object *pItem = pZoomGuideWidget->pItemLayout;
+
+ if (pParent == NULL) {
+ VideoLogError("pParent is NULL");
+ return;
+ }
+
+ if (pItem == NULL) {
+ VideoLogError("pItem is NULL");
+ return;
+ }
+
+ Evas_Coord_Rectangle nRect = { 0, };
+ Evas_Coord_Rectangle nDstRect = { 0, };
+
+ evas_object_geometry_get(pParent, &(nRect.x), &(nRect.y), &(nRect.w),
+ &(nRect.h));
+
+ nDstRect.w = nRect.w * pZoomGuideWidget->fZoomValue;
+ nDstRect.h = nRect.h * pZoomGuideWidget->fZoomValue;
+
+ nDstRect.x =
+ nRect.x + (nRect.w * pZoomGuideWidget->fPosX) - (nDstRect.w / 2);
+ nDstRect.y =
+ nRect.y + (nRect.h * pZoomGuideWidget->fPosY) - (nDstRect.h / 2);
+
+ if (nDstRect.x < nRect.x) {
+ nDstRect.x = nRect.x;
+ }
+
+ if (nDstRect.y < nRect.y) {
+ nDstRect.y = nRect.y;
+ }
+
+ if (nDstRect.w + nDstRect.x > nRect.w + nRect.x) {
+ nDstRect.x = (nRect.w + nRect.x) - nDstRect.w;
+ }
+
+ if (nDstRect.h + nDstRect.y > nRect.h + nRect.y) {
+ nDstRect.y = (nRect.h + nRect.y) - nDstRect.h;
+ }
+
+ pZoomGuideWidget->fResultPosX =
+ (double) ((double) (nDstRect.x - nRect.x) / (double) (nRect.w));
+ pZoomGuideWidget->fResultPosY =
+ (double) ((double) (nDstRect.y - nRect.y) / (double) (nRect.h));
+
+ evas_object_move(pItem, nDstRect.x, nDstRect.y);
+ evas_object_resize(pItem, nDstRect.w, nDstRect.h);
+
+ if (bUpdate) {
+ elm_object_signal_emit(pZoomGuideWidget->pLayout,
+ VP_NORMAL_SIGNAL_ZOOM_GUIDE_SHOW, "*");
+ evas_object_show(pZoomGuideWidget->pLayout);
+ evas_object_show(pZoomGuideWidget->pItemLayout);
+
+ VP_EVAS_TIMER_DEL(pZoomGuideWidget->pHideTimer);
+ pZoomGuideWidget->pHideTimer =
+ ecore_timer_add(1.5, __vp_zoom_guide_hide_timer_cb,
+ (void *) pZoomGuideWidget);
+ }
+
+}
+
+/**
+ *
+ * @param pZoomGuideWidget
+ */
+static void _vp_zoom_guide_destory_handle(ZoomGuideWidget *
+ pZoomGuideWidget)
+{
+ if (pZoomGuideWidget == NULL) {
+ VideoLogError("pZoomGuideWidget is NULL");
+ return;
+ }
+
+ VP_EVAS_TIMER_DEL(pZoomGuideWidget->pHideTimer);
+
+ VP_EVAS_DEL(pZoomGuideWidget->pLayout);
+ VP_EVAS_DEL(pZoomGuideWidget->pItemLayout);
+
+ VP_FREE(pZoomGuideWidget);
+}
+
+/**
+ *
+ * @param pParent
+ * @param pUserData
+ * @return
+ */
+static Evas_Object *_vp_zoom_guide_create_layout(Evas_Object * pParent,
+ void *pUserData)
+{
+ if (!pParent) {
+ VideoLogError("Parent is NULL");
+ return NULL;
+ }
+
+ Evas_Object *pObj = NULL;
+ Eina_Bool bRet = EINA_FALSE;
+
+ pObj = elm_layout_add(pParent);
+ if (pObj == NULL) {
+ VideoLogError("elm_layout_add object is NULL");
+ return NULL;
+ }
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VP_PLAY_ZOOM_GUIDE_EDJ_PATH);
+ free(path);
+ bRet =
+ elm_layout_file_set(pObj, edj_path, VP_PLAY_EDJ_GROUP_ZOOM_GUIDE);
+ if (bRet != EINA_TRUE) {
+ VideoLogError("elm_layout_file_set fail");
+ return NULL;
+ }
+ evas_object_event_callback_add(pObj, EVAS_CALLBACK_RESIZE,
+ __vp_zoom_guide_resize_cb, pUserData);
+
+ evas_object_event_callback_add(pObj, EVAS_CALLBACK_MOVE,
+ __vp_zoom_guide_resize_cb, pUserData);
+
+
+ evas_object_show(pObj);
+
+ return pObj;
+
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+static Evas_Object *_vp_zoom_guide_create_item_layout(Evas_Object *
+ pParent)
+{
+ if (!pParent) {
+ VideoLogError("Parent is NULL");
+ return NULL;
+ }
+
+ Evas_Object *pObj = NULL;
+ Eina_Bool bRet = EINA_FALSE;
+
+ pObj = elm_layout_add(pParent);
+ if (pObj == NULL) {
+ VideoLogError("elm_layout_add object is NULL");
+ return NULL;
+ }
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VP_PLAY_ZOOM_GUIDE_EDJ_PATH);
+ free(path);
+ bRet =
+ elm_layout_file_set(pObj, edj_path,
+ VP_PLAY_EDJ_GROUP_ZOOM_GUIDE_ITEM);
+ if (bRet != EINA_TRUE) {
+ VideoLogError("elm_layout_file_set fail");
+ return NULL;
+ }
+
+ evas_object_show(pObj);
+
+ return pObj;
+
+}
+
+/**
+ *
+ * @param pZoomGuideWidget
+ * @return
+ */
+static bool _vp_zoom_guide_init_layout(ZoomGuideWidget * pZoomGuideWidget)
+{
+ if (pZoomGuideWidget == NULL) {
+ VideoLogError("pZoomGuideWidget is NULL");
+ return FALSE;
+ }
+
+ Evas_Object *pParent = pZoomGuideWidget->pParent;
+
+ pZoomGuideWidget->pLayout =
+ _vp_zoom_guide_create_layout(pParent, (void *) pZoomGuideWidget);
+ if (pZoomGuideWidget->pLayout == NULL) {
+ VideoLogError("_vp_zoom_guide_create_layout is fail");
+ return FALSE;
+ }
+
+ pZoomGuideWidget->pItemLayout =
+ _vp_zoom_guide_create_item_layout(pZoomGuideWidget->pLayout);
+ if (pZoomGuideWidget->pItemLayout == NULL) {
+ VideoLogError("_vp_zoom_guide_create_item_layout is fail");
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/* external functions */
+/**
+ *
+ * @param pParent
+ * @return
+ */
+zoom_guide_handle vp_zoom_guide_create(Evas_Object * pParent)
+{
+ if (pParent == NULL) {
+ VideoLogError("pParent is NULL");
+ return NULL;
+ }
+
+ ZoomGuideWidget *pZoomGuideWidget = NULL;
+
+ pZoomGuideWidget = calloc(1, sizeof(ZoomGuideWidget));
+
+ if (pZoomGuideWidget == NULL) {
+ VideoLogError("pZoomGuideWidget alloc fail");
+ return NULL;
+ }
+
+ pZoomGuideWidget->pParent = pParent;
+ pZoomGuideWidget->bRealized = FALSE;
+ pZoomGuideWidget->fZoomValue = 1.0;
+ pZoomGuideWidget->fPosX = 0.0;
+ pZoomGuideWidget->fPosY = 0.0;
+
+ if (!_vp_zoom_guide_init_layout(pZoomGuideWidget)) {
+ VideoLogError("_vp_zoom_guide_init_layout is fail");
+ _vp_zoom_guide_destory_handle(pZoomGuideWidget);
+ return NULL;
+ }
+
+ return (zoom_guide_handle) pZoomGuideWidget;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ */
+void vp_zoom_guide_destroy(zoom_guide_handle pWidgetHandle)
+{
+ if (pWidgetHandle == NULL) {
+ VideoLogError("pWidgetHandle is NULL");
+ return;
+ }
+
+ ZoomGuideWidget *pZoomGuideWidget = (ZoomGuideWidget *) pWidgetHandle;
+
+ vp_zoom_guide_unrealize((zoom_guide_handle) pZoomGuideWidget);
+
+ _vp_zoom_guide_destory_handle(pZoomGuideWidget);
+
+ return;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @return
+ */
+bool vp_zoom_guide_realize(zoom_guide_handle pWidgetHandle)
+{
+ if (pWidgetHandle == NULL) {
+ VideoLogError("pWidgetHandle is NULL");
+ return FALSE;
+ }
+
+ ZoomGuideWidget *pZoomGuideWidget = (ZoomGuideWidget *) pWidgetHandle;
+ pZoomGuideWidget->bRealized = TRUE;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @return
+ */
+bool vp_zoom_guide_unrealize(zoom_guide_handle pWidgetHandle)
+{
+ if (pWidgetHandle == NULL) {
+ VideoLogError("pWidgetHandle is NULL");
+ return FALSE;
+ }
+
+ ZoomGuideWidget *pZoomGuideWidget = (ZoomGuideWidget *) pWidgetHandle;
+
+ pZoomGuideWidget->bRealized = FALSE;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @return
+ */
+Evas_Object *vp_zoom_guide_get_object(zoom_guide_handle pWidgetHandle)
+{
+ if (pWidgetHandle == NULL) {
+ VideoLogError("pWidgetHandle is NULL");
+ return NULL;
+ }
+
+ ZoomGuideWidget *pZoomGuideWidget = (ZoomGuideWidget *) pWidgetHandle;
+
+ return pZoomGuideWidget->pLayout;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param fZoomVal
+ * @return
+ */
+bool vp_zoom_guide_set_zoom_value(zoom_guide_handle pWidgetHandle,
+ double fZoomVal)
+{
+ if (pWidgetHandle == NULL) {
+ VideoLogError("pWidgetHandle is NULL");
+ return FALSE;
+ }
+
+ ZoomGuideWidget *pZoomGuideWidget = (ZoomGuideWidget *) pWidgetHandle;
+
+ pZoomGuideWidget->fZoomValue = 1.0 / fZoomVal;
+
+ _vp_zoom_guide_update_item(pZoomGuideWidget, TRUE);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param fZoomVal
+ * @return
+ */
+bool vp_zoom_guide_get_zoom_value(zoom_guide_handle pWidgetHandle,
+ double *fZoomVal)
+{
+ if (pWidgetHandle == NULL) {
+ VideoLogError("pWidgetHandle is NULL");
+ return FALSE;
+ }
+
+ ZoomGuideWidget *pZoomGuideWidget = (ZoomGuideWidget *) pWidgetHandle;
+
+ *fZoomVal = pZoomGuideWidget->fZoomValue;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param fPosX
+ * @param fPosY
+ * @return
+ */
+bool vp_zoom_guide_set_move_position(zoom_guide_handle pWidgetHandle,
+ double fPosX, double fPosY)
+{
+ if (pWidgetHandle == NULL) {
+ VideoLogError("pWidgetHandle is NULL");
+ return FALSE;
+ }
+
+ ZoomGuideWidget *pZoomGuideWidget = (ZoomGuideWidget *) pWidgetHandle;
+
+ pZoomGuideWidget->fPosX = fPosX;
+ pZoomGuideWidget->fPosY = fPosY;
+
+ if (pZoomGuideWidget->fPosX > 1.0) {
+ pZoomGuideWidget->fPosX = 1.0;
+ }
+
+ if (pZoomGuideWidget->fPosY > 1.0) {
+ pZoomGuideWidget->fPosY = 1.0;
+ }
+
+ if (pZoomGuideWidget->fPosX < 0.0) {
+ pZoomGuideWidget->fPosX = 0.0;
+ }
+
+ if (pZoomGuideWidget->fPosY < 0.0) {
+ pZoomGuideWidget->fPosY = 0.0;
+ }
+
+ _vp_zoom_guide_update_item(pZoomGuideWidget, TRUE);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param fPosX
+ * @param fPosY
+ * @return
+ */
+bool vp_zoom_guide_get_move_position(zoom_guide_handle pWidgetHandle,
+ double *fPosX, double *fPosY)
+{
+ if (pWidgetHandle == NULL) {
+ VideoLogError("pWidgetHandle is NULL");
+ return FALSE;
+ }
+
+ ZoomGuideWidget *pZoomGuideWidget = (ZoomGuideWidget *) pWidgetHandle;
+
+ *fPosX = pZoomGuideWidget->fPosX;
+ *fPosY = pZoomGuideWidget->fPosY;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param fPosX
+ * @param fPosY
+ * @return
+ */
+bool vp_zoom_guide_get_real_position(zoom_guide_handle pWidgetHandle,
+ double *fPosX, double *fPosY)
+{
+ if (pWidgetHandle == NULL) {
+ VideoLogError("pWidgetHandle is NULL");
+ return FALSE;
+ }
+
+ ZoomGuideWidget *pZoomGuideWidget = (ZoomGuideWidget *) pWidgetHandle;
+
+ *fPosX = pZoomGuideWidget->fResultPosX;
+ *fPosY = pZoomGuideWidget->fResultPosY;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @return
+ */
+bool vp_zoom_guide_update(zoom_guide_handle pWidgetHandle)
+{
+ if (pWidgetHandle == NULL) {
+ VideoLogError("pWidgetHandle is NULL");
+ return FALSE;
+ }
+
+ ZoomGuideWidget *pZoomGuideWidget = (ZoomGuideWidget *) pWidgetHandle;
+
+ _vp_zoom_guide_update_item(pZoomGuideWidget, TRUE);
+
+ return TRUE;
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#pragma once
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <limits.h>
+#include <errno.h>
+#include <assert.h>
+#include <efl_extension.h>
+
+#ifndef TRUE
+#define TRUE 1
+#endif
+
+#ifndef FALSE
+#define FALSE 0
+#endif
+
+#define _EDJ(o) elm_layout_edje_get(o)
+#define VP_SCALE elm_config_scale_get()
+
+#define VP_MAX_HEAP_SIZE 5*1024*1024 /*Malloc more than this will not be allowd */
+
+#define VP_ASSERT(scalar_exp) \
+ assert(scalar_exp); \
+
+
+#define VP_GENLIST_HIDE_BOTTOMLINE(data, obj, event_info) \
+do { \
+ if (!event_info || !obj) { \
+ return; \
+ } \
+ elm_object_item_signal_emit(elm_genlist_last_item_get(obj), "elm,state,bottomline,hide", ""); \
+} while (0);
+
+
+#define VP_CALLOC(ptr, no_elements, type) \
+ do { \
+ if ((int)(no_elements) <= 0) { \
+ ptr = NULL; \
+ } \
+ else if (VP_MAX_HEAP_SIZE < no_elements * sizeof(type)) { \
+ assert(0); \
+ } \
+ else { \
+ ptr = (type *) calloc(no_elements , sizeof(type)); \
+ VP_ASSERT(ptr); \
+ } \
+ } while (0);
+
+#define VP_SNPRINTF(dest, size, format, arg...) \
+ do { \
+ if (dest != NULL && format != NULL) { \
+ snprintf(dest, size, format, ##arg); \
+ } \
+ } while (0);
+
+ /* If the same pointer is passed to free twice, known as a double free.
+ To avoid this, set pointers to NULL after passing them to free:
+ free(NULL) is safe (it does nothing). */
+
+#define VP_FREE(ptr) \
+ do { \
+ if (ptr != NULL) { \
+ free(ptr); \
+ ptr = NULL; \
+ } \
+ } while (0);
+
+#define VP_STRNCPY(dest, src, size) \
+ do { \
+ if (src != NULL && dest != NULL && size > 0) { \
+ strncpy(dest, src, size); \
+ } \
+ } while (0);
+ /*
+ * string wrappers
+ */
+#define VP_STRDUP(destptr, sourceptr)\
+ do { \
+ if (sourceptr == NULL)\
+ destptr = NULL; \
+ else \
+ destptr = strdup(sourceptr); \
+ } while (0);
+
+
+
+#define VP_EVAS_DEL(evas_obj) \
+ do { \
+ if (evas_obj != NULL) { \
+ evas_object_del(evas_obj); \
+ evas_obj = NULL; \
+ } \
+ } while (0);
+
+
+#define VP_EVAS_ITEM_DEL(evas_obj) \
+ do { \
+ if (evas_obj != NULL) { \
+ elm_object_item_del(evas_obj); \
+ evas_obj = NULL; \
+ } \
+ } while (0);
+
+
+#define VP_EVAS_TIMER_DEL(evas_obj) \
+ do { \
+ if (evas_obj != NULL) { \
+ ecore_timer_del(evas_obj); \
+ evas_obj = NULL; \
+ } \
+ } while (0);
+
+#define VP_EVAS_PIPE_DEL(evas_obj) \
+ do { \
+ if (evas_obj != NULL) { \
+ ecore_pipe_del(evas_obj); \
+ evas_obj = NULL; \
+ } \
+ } while (0);
+
+
+#define VP_EVAS_IDLER_DEL(evas_obj) \
+ do { \
+ if (evas_obj != NULL) { \
+ ecore_idler_del(evas_obj); \
+ evas_obj = NULL; \
+ } \
+ } while (0);
+
+
+#define VP_EVAS_JOB_DEL(evas_obj) \
+ do { \
+ if (evas_obj != NULL) { \
+ ecore_job_del(evas_obj); \
+ evas_obj = NULL; \
+ } \
+ } while (0);
+
+
+#define VP_EVAS_EVENT_HANDLER_DEL(evas_obj) \
+ do { \
+ if (evas_obj != NULL) { \
+ ecore_event_handler_del(evas_obj); \
+ evas_obj = NULL; \
+ } \
+ } while (0);
+
+#define VP_EVAS_DISABLE_SET(evas_obj, value) \
+ do { \
+ if (evas_obj != NULL) {\
+ elm_object_disabled_set(evas_obj, value); \
+ } \
+ } while (0);
+
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#pragma once
+
+#include <app.h>
+
+#define VP_PLAY_FILE_PREFIX "file://"
+
+
+/* window name */
+#define VP_PLAY_MAIN_WINDOW_NAME "video-player"
+#define VP_PLAY_MAIN_MULTI_WINDOW_NAME "multi_view"
+
+#define VP_LOCAL_STR_PREFIX "video-player"
+#define VP_SYS_STR_PREFIX "video-player"
+
+#define VP_PLAY_IMAGE_BUFFER_PATH "/opt/usr/media/.video_thumb/.image_buff.jpg"
+
+#define VP_PLAY_SCREEN_SHOT_DIR "/opt/usr/media/Screenshots"
+
+#define VP_PLAY_MEDIA_DIR "/opt/usr/media/Videos"
+#define VP_PLAY_PERSONAL_HEAD_STR "/opt/storage/PersonalStorage"
+#define VP_ROOT_PATH_MMC "/opt/storage/sdcard"
+
+
+/* EDJ FILE PATH */
+#define VP_PLAY_CUSTOM_THEME "pv-custom-winset.edj"
+#define VP_PLAY_RESROUCE_EDJ_PATH "pv-resource.edj"
+#define VP_PLAY_POPUP_EDJ_PATH "pv-popup.edj"
+
+#define VP_PLAY_NORMAL_MAIN_EDJ "pv-normal-main.edj"
+#define VP_PLAY_NORMAL_TOP_CONTROL_EDJ "pv-normal-top-control.edj"
+#define VP_PLAY_NORMAL_CONTROL_EDJ "pv-normal-control.edj"
+#define VP_PLAY_NORMAL_FUNCTION_EDJ_PATH "pv-normal-function.edj"
+
+#define VP_PLAY_BOOKMARK_EDJ_PATH "pv-bookmark.edj"
+#define VP_PLAY_BOOKMARK_ITEM_EDJ_PATH "pv-bookmark-item.edj"
+#define VP_PLAY_PROGRESSBAR_EDJ_PATH "pv-progressbar.edj"
+#define VP_PLAY_VOLUME_EDJ_PATH "pv-volume.edj"
+#define VP_PLAY_VOLUME_POPUP_EDJ_PATH "pv-volume-popup.edj"
+#define VP_PLAY_BRIGHTNESS_POPUP_EDJ_PATH "pv-brightness-popup.edj"
+#define VP_PLAY_ZOOM_GUIDE_EDJ_PATH "pv-zoom-guide.edj"
+
+#define MINICON_EDJ_NAME "pv-minicontroller.edj"
+#define LOCKSCREENMINI_EDJ_NAME "pv-lockscreenmini.edj"
+
+#define VP_PLAY_SUBTITLE_EDJ_PATH "pv-subtitle.edj"
+
+#define VP_PLAY_MULTI_MAIN_EDJ "pv-multi-main.edj"
+
+#define VP_PLAY_SPEED_POPUP_EDJ "pv-speed-popup.edj"
+#define VP_PLAY_GESTURE_EDJ "pv-gesture.edj"
+#define VP_PLAY_SUBTITLE_COLOR_POPUP_EDJ "pv-subtitle-color-popup.edj"
+
+/* EDJ GROUP & SWALLOW*/
+#define VP_PLAY_CUSTOM_LAYOUT_KLASS "layout"
+#define VP_PLAY_CUSTOM_LAYOUT_GROUP "application"
+#define VP_PLAY_CUSTOM_LAYOUT_STYLE "play_view"
+#define VP_PLAY_CUSTOM_MULTI_LAYOUT_STYLE "multi_view"
+#define VP_PLAY_DETAIL_LAYOUT_STYLE "detail_view"
+
+#define VP_PLAY_EDJ_GROUP_GESTURE "pv.gesture"
+
+#define VP_PLAY_EDJ_GROUP_NORMAL_MAIN "pv.normal.main"
+#define VP_PLAY_EDJ_GROUP_NORMAL_TOP_CONTROL "pv.normal.top"
+#define VP_PLAY_EDJ_GROUP_NORMAL_CONTROL "pv.normal.control"
+#define VP_PLAY_EDJ_GROUP_NORMAL_FUNCTION "pv.normal.function"
+
+
+#define VP_PLAY_EDJ_GROUP_MULTI "pv.multi.main"
+#define VP_PLAY_EDJ_GROUP_PROGRESSBAR "pv.progress"
+#define VP_PLAY_EDJ_GROUP_BOOKMARK "pv.bookmark"
+#define VP_PLAY_EDJ_GROUP_BOOKMARK_ITEM "pv.bookmark.item"
+#define VP_PLAY_EDJ_GROUP_BOOKMARK_ITEM_END "pv.bookmark.item.end"
+#define VP_PLAY_EDJ_GROUP_ZOOM_GUIDE "pv.zoom.guide"
+#define VP_PLAY_EDJ_GROUP_ZOOM_GUIDE_ITEM "pv.zoom.guide.item"
+
+#define VP_PLAY_EDJ_GROUP_TRIM_MAIN "pv.trim.main"
+#define VP_PLAY_EDJ_GROUP_TRIM_TOP_CONTROL "pv.trim.top"
+#define VP_PLAY_EDJ_GROUP_TRIM_CONTROL "pv.trim.control"
+#define VP_PLAY_EDJ_GROUP_VOLUME "pv.volume"
+#define VP_PLAY_EDJ_GROUP_VOLUME_POPUP "pv.volume.popup"
+#define VP_PLAY_EDJ_GROUP_BRIGHTNESS_POPUP "pv.brightness.popup"
+
+#define VP_PLAY_EDJ_GROUP_PLAY_SPEED_POPUP "pv.play.speed.popup"
+
+#define VP_PLAY_EDJ_GROUP_PLAY_SUBTITLE_COLOR_POPUP "pv.subtitle-color-popup"
+
+#define VP_PLAY_EDJ_GROUP_CONNECT_POPUP "pv.connect.popup"
+
+
+#define VP_PLAY_EDJ_GROUP_SUBTITLE "pv.subtitle"
+#define VP_PLAY_EDJ_GROUP_SUBTITLE_MULTI "pv.multi-subtitle"
+#define VP_PLAY_EDJ_GROUP_LOADING_ANI "pv.loading.ani"
+
+#define VP_PLAY_EDJ_GROUP_TRIM_ITEM "pv.trim.item"
+
+#define VP_PLAY_EDJ_GROUP_CHAPTER_MAIN "pv.chapter.main"
+
+#define VP_PLAY_EDJ_GROUP_TAG_BUDDY "pv.tag.buddy"
+#define VP_PLAY_EDJ_GROUP_TAG_PREVIEW "pv.tag.preview"
+#define VP_PLAY_EDJ_GROUP_TAG_NARMAL "pv.tag.buddy.normal"
+
+
+
+#define VP_PLAY_EDJ_GROUP_SESNOR_MAIN "pv.sensor.popup"
+#define VP_PLAY_EDJ_GROUP_SESNOR_IMAGE "pv.sensor.popup.image"
+
+#define VP_PLAY_EDJ_GROUP_TITLE_LIST_POPUP "pv.title.list"
+#define VP_PLAY_EDJ_GROUP_PROGRESS_POPUP "pv.popup.progress"
+#define VP_PLAY_EDJ_GROUP_ENTRY_POPUP "pv.popup.entry"
+#define VP_PLAY_EDJ_GROUP_CAPTION_POPUP "pv.popup.caption"
+#define VP_PLAY_EDJ_GROUP_TITLE_POPUP "pv.popup.title"
+
+#define VP_PLAY_EDJ_GROUP_MICROSEEK_TEXT "pv.normal.main.microseek.text"
+#define VP_PLAY_EDJ_GROUP_MICROSEEK_IMAGE "pv.normal.main.microseek.image"
+#define VP_PLAY_EDJ_GROUP_FLICKJUMP_SEEK "pv.normal.main.flickjump.seek"
+
+#define VP_PLAY_SWALLOW_BUTTON_ICON "elm.swallow.content"
+#define VP_PLAY_SWALLOW_BUTTON_PRESS_ICON "elm.swallow.content.press"
+#define VP_PLAY_SWALLOW_BUTTON_DIM_ICON "elm.swallow.content.dim"
+
+
+/* normal view swallow */
+#define VP_PLAY_SWALLOW_NORMAL_LOCKSCREEN "pv.normal.main.lockscreen"
+
+#define VP_PLAY_SWALLOW_NORMAL_IMAGE_BUFFER "pv.normal.main.image.buffer"
+#define VP_PLAY_SWALLOW_NORMAL_ERROR_IMAGE "pv.normal.main.error.image"
+
+#define VP_PLAY_SWALLOW_NORMAL_TOP_CONTROL "pv.normal.top.control"
+#define VP_PLAY_SWALLOW_NORMAL_CONTROL "pv.normal.main.control"
+#define VP_PLAY_SWALLOW_NORMAL_ROTATE "pv.normal.main.rotate.icon"
+
+#define VP_PLAY_SWALLOW_NORMAL_VOLUME "pv.normal.main.volume.icon"
+#define VP_PLAY_SWALLOW_NORMAL_SCREENSIZE "pv.normal.control.toolbar.screensize"
+#define VP_PLAY_SWALLOW_NORMAL_POPUP_PLAYER "pv.normal.control.toolbar.popupPlayer"
+
+#define VP_PLAY_SWALLOW_NORMAL_PLAY "pv.normal.control.play"
+#define VP_PLAY_SWALLOW_NORMAL_REW "pv.normal.control.rew"
+#define VP_PLAY_SWALLOW_NORMAL_FF "pv.normal.control.ff"
+#define VP_PLAY_SWALLOW_NORMAL_PLAY_FOCUS "pv.normal.control.play.focus"
+
+
+#define VP_PLAY_SWALLOW_NORMAL_SCREENSHOT_PORTRAIT "pv.normal.main.screenshot.portrait"
+#define VP_PLAY_SWALLOW_NORMAL_SCREENSHOT_LANDSCAPE "pv.normal.main.screenshot.landscape"
+
+#define VP_PLAY_SWALLOW_NORMAL_BOOKMARK "pv.normal.control.bookmark"
+#define VP_PLAY_SWALLOW_NORMAL_PROGRESS "pv.normal.control.progress"
+#define VP_PLAY_SWALLOW_NORMAL_FUNCTION "pv.normal.control.function"
+
+#define VP_PLAY_SWALLOW_NORMAL_TOP_CAPTURE "pv.normal.top.capture"
+#define VP_PLAY_SWALLOW_NORMAL_TOP_CAPTURE_REW "pv.normal.top.capture.rew"
+#define VP_PLAY_SWALLOW_NORMAL_TOP_CAPTURE_FF "pv.normal.top.capture.ff"
+#define VP_PLAY_SWALLOW_NORMAL_TOP_ROTATE "pv.normal.top.rotate"
+
+#define VP_PLAY_SWALLOW_NORMAL_ZOOM_GUIDE "pv.normal.main.zoom.guide.rect"
+
+#define VP_PLAY_SWALLOW_PROGRESS_BG "pv.progress.bg"
+#define VP_PLAY_SWALLOW_PROGRESS_PLAYING_LABEL "pv.progress.playing.txt"
+#define VP_PLAY_SWALLOW_PROGRESS_DURATION_LABEL "pv.progress.duration.txt"
+#define VP_PLAY_SWALLOW_PROGRESS_DRAG_RECT "pv.progress.playing"
+#define VP_PLAY_SWALLOW_PROGRESS_BAR "pv.progress.bar.bg"
+#define VP_PLAY_SWALLOW_PROGRESS_POINT "pv.progress.point"
+
+#define VP_PLAY_SWALLOW_BOOKMARK_ADD_BUTTON "pv.bookmark.add.button"
+#define VP_PLAY_SWALLOW_BOOKMARK_LIST "pv.bookmark.item.list"
+
+#define VP_PLAY_SWALLOW_BOOKMARK_ITEM_ICON "pv.bookmark.item.icon"
+#define VP_PLAY_SWALLOW_BOOKMARK_ITEM_TXT "pv.bookmark.item.txt"
+#define VP_PLAY_SWALLOW_BOOKMARK_ITEM_DEL "pv.bookmark.item.del"
+
+#define VP_PLAY_SWALLOW_VOLUME_DRAG_RECT "pv.volume.playing"
+#define VP_PLAY_SWALLOW_VOLUME_VALUE_LABEL "pv.volume.txt"
+
+#define VP_PLAY_SWALLOW_VOLUME_POPUP_DRAG_RECT "pv.volume.popup.playing"
+#define VP_PLAY_SWALLOW_VOLUME_POPUP_VALUE_LABEL "pv.volume.popup.txt"
+
+#define VP_PLAY_SWALLOW_BRIGHTNESS_POPUP_DRAG_RECT "pv.brightness.popup.playing"
+#define VP_PLAY_SWALLOW_BRIGHTNESS_POPUP_VALUE_LABEL "pv.brightness.popup.txt"
+#define VP_PLAY_SWALLOW_BRIGHTNESS_POPUP_ICON "pv.brightness.popup.icon"
+
+#define VP_PLAY_SWALLOW_NORMAL_FUNCTION_1 "pv.normal.function.button.1"
+#define VP_PLAY_SWALLOW_NORMAL_FUNCTION_2 "pv.normal.function.button.2"
+#define VP_PLAY_SWALLOW_NORMAL_FUNCTION_3 "pv.normal.function.button.3"
+
+#define VP_PLAY_SWALLOW_NORMAL_SUBTITLE "pv.normal.main.subtitle"
+#define VP_PLAY_SWALLOW_NORMAL_LOADING_ANI "pv.normal.main.loading"
+
+
+#define VP_PLAY_SWALLOW_NORMAL_SINK "pv.normal.videosink"
+
+/* zoom guide swallow */
+
+/* multi view swallow */
+#define VP_PLAY_SWALLOW_MULTI_IMAGE_BUFFER "pv.multi.image.buffer"
+
+#define VP_PLAY_SWALLOW_MULTI_SINK "pv.multi.videosink"
+
+#define VP_PLAY_SWALLOW_MULTI_CLOSE "pv.multi.close"
+#define VP_PLAY_SWALLOW_MULTI_FULL_SIZE "pv.multi.full.size"
+#define VP_PLAY_SWALLOW_MULTI_MINIMIZE "pv.multi.minimize"
+#define VP_PLAY_SWALLOW_MULTI_RESIZE "pv.multi.resize"
+#define VP_PLAY_SWALLOW_MULTI_PLAY_PAUSE "pv.multi.control.play"
+#define VP_PLAY_SWALLOW_MULTI_PLAY_FOCUS "pv.multi.control.play.focus"
+#define VP_PLAY_SWALLOW_MULTI_REW "pv.multi.control.rew"
+#define VP_PLAY_SWALLOW_MULTI_FF "pv.multi.control.ff"
+#define VP_PLAY_SWALLOW_MULTI_LOADING_ANI "pv.multi.main.loading"
+#define VP_PLAY_SWALLOW_MULTI_SUBTITLE "pv.multi.main.subtitle"
+
+
+/* trim view swallow */
+#define VP_PLAY_SWALLOW_TRIM_TOP_CONTROL "pv.trim.top.control"
+#define VP_PLAY_SWALLOW_TRIM_CONTROL "pv.trim.main.control"
+
+#define VP_PLAY_SWALLOW_TRIM_ROTATE "pv.trim.top.rotate"
+
+#define VP_PLAY_SWALLOW_TRIM_SAVE "pv.trim.control.toolbar.save"
+#define VP_PLAY_SWALLOW_TRIM_BACK "pv.trim.control.toolbar.back"
+
+#define VP_PLAY_SWALLOW_TRIM_PLAY "pv.trim.control.play"
+#define VP_PLAY_SWALLOW_TRIM_REW "pv.trim.control.rew"
+#define VP_PLAY_SWALLOW_TRIM_FF "pv.trim.control.ff"
+
+#define VP_PLAY_SWALLOW_TRIM_GENGRID "pv.trim.control.gengrid.rect"
+#define VP_PLAY_SWALLOW_TRIM_ITEM "pv.trim.item.icon"
+
+#define VP_PLAY_SWALLOW_TRIM_DRAG_RECT "pv.trim.control.playing"
+#define VP_PLAY_SWALLOW_TRIM_START_LABEL "pv.trim.start.txt"
+#define VP_PLAY_SWALLOW_TRIM_TOTAL_LABEL "pv.trim.total.txt"
+
+#define VP_PLAY_SWALLOW_TRIM_LOADING_ANI "pv.trim.main.loading"
+#define VP_PLAY_SWALLOW_TRIM_BUTTON "pv.trim.main.button"
+
+/* tag view swallow */
+#define VP_PLAY_SWALLOW_TAG_PREVIEW "pv.tag.buddy.preview"
+#define VP_PLAY_SWALLOW_TAG_LIST "pv.tag.buddy.list"
+
+#define VP_PLAY_SWALLOW_TAG_PREVIEW_IMAGE "pv.tag.preview.image"
+#define VP_PLAY_SWALLOW_TAG_PREVIEW_ACCUWEATHER "pv.tag.preview.accuweather"
+#define VP_PLAY_SWALLOW_TAG_PREVIEW_TABLE "pv.tag.preview.table"
+#define VP_PLAY_SWALLOW_TAG_PREVIEW_TIME "pv.tag.preview.time"
+
+#define VP_PLAY_SWALLOW_TAG_PREVIEW_TIME_SHADOW "pv.tag.preview.time.shadow"
+#define VP_PLAY_SWALLOW_TAG_PREVIEW_TABLE_SHADOW "pv.tag.preview.table.shadow"
+
+#define VP_PLAY_SWALLOW_TAG_BG "pv.tag.bg"
+
+
+/* normal part */
+#define VP_PLAY_PART_NORMAL_PLAYING_SPEED_TXT "pv.normal.main.playingspeed.txt"
+#define VP_PLAY_PART_NORMAL_SPEED_TXT "pv.normal.main.speed.txt"
+
+/* multi part */
+#define VP_PLAY_PART_MULTI_TITLE "pv.multi.title.txt"
+#define VP_PLAY_PART_MULTI_NOCONTENTS_TXT "pv.multi.nocontents.txt"
+
+#define VP_PLAY_PART_MULTI_SPEED_TXT "pv.multi.main.speed.txt"
+
+
+/* trim drag part */
+#define VP_PLAY_PART_TRIM_DRAG_PLAYING "pv.trim.control.playing"
+#define VP_PLAY_PART_TRIM_DRAG_START "pv.trim.control.confine.start"
+#define VP_PLAY_PART_TRIM_DRAG_END "pv.trim.control.confine.end"
+
+
+
+/* subtitle part */
+#define VP_PLAY_PART_SUBTITLE_TEXT "pv.multi.subtitle.label.txt"
+#define VP_PLAY_SWALLOW_SUBTITLE_TEXT "pv.subtitle.swallow.txt"
+
+
+/* flick jump seek part */
+#define VP_PLAY_PART_FLICKJUMP_SEEK_REW_TEXT "pv.normal.main.flickjump.seek.rewtext"
+#define VP_PLAY_PART_FLICKJUMP_SEEK_FF_TEXT "pv.normal.main.flickjump.seek.fftext"
+
+
+/* signal emit strings */
+#define VP_PLAY_COMMON_SIGNAL_DRAG "drag"
+#define VP_PLAY_COMMON_SIGNAL_DRAG_START "drag,start"
+#define VP_PLAY_COMMON_SIGNAL_DRAG_STOP "drag,stop"
+
+#define VP_MULTI_VIEW_SIGNAL_SHOW_CONTROL "signal.pv.multi.show.control"
+#define VP_MULTI_VIEW_SIGNAL_HIDE_CONTROL "signal.pv.multi.hide.control"
+
+#define VP_MULTI_SIGNAL_MAIN_SPEED_SHOW "signal.pv.multi.main.speed.show"
+#define VP_MULTI_SIGNAL_MAIN_SPEED_HIDE "signal.pv.multi.main.speed.hide"
+
+#define VP_MULTI_VIEW_SIGNAL_SHOW_NOCONTENTS "signal.pv.multi.show.nocontents"
+#define VP_MULTI_VIEW_SIGNAL_HIDE_NOCONTENTS "signal.pv.multi.hide.nocontents"
+
+#define VP_MULTI_VIEW_TITLE_FOCUS_IN_CONTROL "signal.pv.multi.focus.in.control"
+#define VP_MULTI_VIEW_TITLE_FOCUS_OUT_CONTROL "signal.pv.multi.focus.out.control"
+
+#define VP_MULTI_VIEW_TITLE_CLOSE_BTN_PRESSED "signal.pv.multi.close.pressed"
+#define VP_MULTI_VIEW_TITLE_CLOSE_BTN_RELEASED "signal.pv.multi.close.released"
+
+#define VP_MULTI_VIEW_TITLE_FULLSIZE_BTN_PRESSED "signal.pv.multi.fullsize.pressed"
+#define VP_MULTI_VIEW_TITLE_FULLSIZE_BTN_RELEASED "signal.pv.multi.fullsize.released"
+
+#define VP_MULTI_VIEW_TITLE_MINIMIZE_BTN_PRESSED "signal.pv.multi.minimize.pressed"
+#define VP_MULTI_VIEW_TITLE_MINIMIZE_BTN_RELEASED "signal.pv.multi.minimize.released"
+
+#define VP_NORMAL_SIGNAL_VIDEO_OFF "signal.pv.normal.main.video.off"
+#define VP_NORMAL_SIGNAL_VIDEO_ON "signal.pv.normal.main.video.on"
+
+#define VP_NORMAL_SIGNAL_ZOOM_GUIDE_SHOW "signal.pv.zoom.guide.show"
+#define VP_NORMAL_SIGNAL_ZOOM_GUIDE_HIDE "signal.pv.zoom.guide.hide"
+
+#define VP_NORMAL_SIGNAL_LOCKSCREEN_SHOW "signal.pv.normal.lockscreen.show"
+#define VP_NORMAL_SIGNAL_LOCKSCREEN_HIDE "signal.pv.normal.lockscreen.hide"
+
+#define VP_NORMAL_SIGNAL_NO_CONTNES_SHOW "signal.pv.normal.no.contents.show"
+#define VP_NORMAL_SIGNAL_NO_CONTNES_HIDE "signal.pv.normal.no.contents.hide"
+
+#define VP_NORMAL_SIGNAL_NAVIFRAME_TITLE_SHOW "elm,state,title,show"
+#define VP_NORMAL_SIGNAL_NAVIFRAME_TITLE_HIDE "elm,state,title,hide"
+#define VP_NORMAL_SIGNAL_NAVIFRAME_TITLE_NO_EFFECT_HIDE "elm,state,title,no,effect,hide"
+
+#define VP_NORMAL_SIGNAL_MAIN_SHOW_FINISH "signal.pv.normal.main.control.show.finish"
+#define VP_NORMAL_SIGNAL_MAIN_HIDE_FINISH "signal.pv.normal.main.control.hide.finish"
+
+#define VP_NORMAL_SIGNAL_MAIN_PLAYING_SPEED_SHOW "signal.pv.normal.main.playingspeed.show"
+#define VP_NORMAL_SIGNAL_MAIN_PLAYING_SPEED_HIDE "signal.pv.normal.main.playingspeed.hide"
+
+#define VP_NORMAL_SIGNAL_MAIN_SPEED_SHOW "signal.pv.normal.main.speed.show"
+#define VP_NORMAL_SIGNAL_MAIN_SPEED_HIDE "signal.pv.normal.main.speed.hide"
+
+#define VP_NORMAL_SIGNAL_MAIN_SCREEN_PORTRAIT_SHOW "signal.pv.normal.main.screenshot.portrait.show"
+#define VP_NORMAL_SIGNAL_MAIN_SCREEN_LANDSCAPE_SHOW "signal.pv.normal.main.screenshot.landscape.show"
+#define VP_NORMAL_SIGNAL_MAIN_SCREEN_HIDE "signal.pv.normal.main.screenshot.hide"
+
+#define VP_NORMAL_SIGNAL_MAIN_BOOKMARK_ON "signal.pv.normal.main.bookmark.on"
+#define VP_NORMAL_SIGNAL_MAIN_BOOKMARK_OFF "signal.pv.normal.main.bookmark.off"
+
+#define VP_NORMAL_SIGNAL_MAIN_PORTRAIT_SHOW "signal.pv.normal.main.portrait.show"
+#define VP_NORMAL_SIGNAL_MAIN_LANDSCAPE_SHOW "signal.pv.normal.main.landscape.show"
+
+#define VP_NORMAL_SIGNAL_MAIN_NO_EFFECT_PORTRAIT_SHOW "signal.pv.normal.main.no.effect.portrait.show"
+#define VP_NORMAL_SIGNAL_MAIN_NO_EFFECT_LANDSCAPE_SHOW "signal.pv.normal.main.no.effect.landscape.show"
+
+#define VP_NORMAL_SIGNAL_MAIN_NO_EFFECT_HIDE "signal.pv.normal.main.no.effect.hide"
+#define VP_NORMAL_SIGNAL_MAIN_HIDE "signal.pv.normal.main.control.hide"
+#define VP_NORMAL_SIGNAL_MAIN_ROTATE_SHOW "signal.pv.normal.main.rotate.icon.show"
+#define VP_NORMAL_SIGNAL_MAIN_ROTATE_HIDE "signal.pv.normal.main.rotate.icon.hide"
+#define VP_NORMAL_SIGNAL_MAIN_VOLUME_PORTRAIT_SHOW "signal.pv.normal.main.volume.icon.portrait.show"
+#define VP_NORMAL_SIGNAL_MAIN_VOLUME_LANDSCAPE_SHOW "signal.pv.normal.main.volume.icon.landscape.show"
+#define VP_NORMAL_SIGNAL_MAIN_VOLUME_HIDE "signal.pv.normal.main.volume.icon.hide"
+
+#define VP_NORMAL_SIGNAL_MAIN_SUBTITLE_PORTRAIT "signal.pv.normal.main.portrait.subtitle"
+#define VP_NORMAL_SIGNAL_MAIN_SUBTITLE_HIDE "signal.pv.normal.main.subtitle.hide"
+
+#define VP_NORMAL_SIGNAL_CONTROL_PORTRAIT_MODE "signal.pv.normal.control.portrait.mode"
+#define VP_NORMAL_SIGNAL_CONTROL_LANDSCAPE_MODE "signal.pv.normal.control.landscape.mode"
+
+#define VP_NORMAL_SIGNAL_FUNCTION_PORTRAIT_MODE "signal.pv.normal.function.portrait.mode"
+#define VP_NORMAL_SIGNAL_FUNCTION_LANDSCAPE_MODE "signal.pv.normal.function.landscape.mode"
+
+#define VP_NORMAL_SIGNAL_PROGRESS_PORTRAIT_MODE "signal.pv.normal.progress.portrait.mode"
+#define VP_NORMAL_SIGNAL_PROGRESS_LANDSCAPE_MODE "signal.pv.normal.progress.landscape.mode"
+#define VP_NORMAL_SIGNAL_PROGRESS_OPACITY_DEFAULT "signal.pv.normal.progress.opacity_default"
+#define VP_NORMAL_SIGNAL_PROGRESS_OPACITY_60 "signal.pv.normal.progress.opacity_60"
+
+#define VP_NORMAL_SIGNAL_PROGRESS_PRESS "signal.pv.normal.progress.click"
+#define VP_NORMAL_SIGNAL_PROGRESS_UNPRESS "signal.pv.normal.progress.unclick"
+
+#define VP_NORMAL_SIGNAL_VOLUME_PORTRAIT_MODE "signal.pv.volume.portrait.mode"
+#define VP_NORMAL_SIGNAL_VOLUME_LANDSCAPE_MODE "signal.pv.volume.landscape.mode"
+
+#define VP_NORMAL_SIGNAL_MICROSEEK_TEXT_SHOW "signal.pv.normal.main.microseek.text.show"
+#define VP_NORMAL_SIGNAL_MICROSEEK_TEXT_HIDE "signal.pv.normal.main.microseek.text.hide"
+#define VP_NORMAL_SIGNAL_MICROSEEK_SPEED_TEXT "pv.normal.main.microseek.speed.text"
+
+#define VP_NORMAL_SIGNAL_MICROSEEK_IMAGE_SHOW "signal.pv.normal.main.microseek.image.show"
+#define VP_NORMAL_SIGNAL_MICROSEEK_IMAGE_HIDE "signal.pv.normal.main.microseek.image.hide"
+
+#define VP_NORMAL_SIGNAL_FLICKJUMP_FF "signal.pv.normal.main.flickjump.ff"
+#define VP_NORMAL_SIGNAL_FLICKJUMP_REW "signal.pv.normal.main.flickjump.rew"
+
+
+#define VP_SUBTITLE_SIGNAL_MAIN_PORTRAIT_SHOW "signal.pv.subtitle.main.portrait.show"
+#define VP_SUBTITLE_SIGNAL_MAIN_LANDSCAPE_SHOW "signal.pv.subtitle.main.landscape.show"
+#define VP_SUBTITLE_SIGNAL_GREP_BOX_SHOW "signal.pv.subtitle.grep.box.show"
+#define VP_SUBTITLE_SIGNAL_GREP_BOX_HIDE "signal.pv.subtitle.grep.box.hide"
+#define VP_SUBTITLE_SIGNAL_CAPTION_WINDOW_HIDE "signal.pv.subtitle.caption.window.hide"
+
+#define VP_CHAPTER_SIGNAL_FUNCTION_PORTRAIT_MODE "signal.pv.chapter.portrait.mode"
+#define VP_CHAPTER_SIGNAL_FUNCTION_LANDSCAPE_MODE "signal.pv.chapter.landscape.mode"
+
+#define VP_POPUP_SIGNAL_CAPTION_PORTRAIT_MODE "signal.pv.popup.caption.portrait.mode"
+#define VP_POPUP_SIGNAL_CAPTION_LANDSCAPE_MODE "signal.pv.popup.caption.landscape.mode"
+
+#define VP_TAG_BUDDY_SIGNAL_HIDE "signal.pv.tag.bg.hide"
+#define VP_TAG_BUDDY_SIGNAL_SHOW "signal.pv.tag.bg.show"
+
+#define VP_TAG_BUDDY_SIGNAL_WEATHER_JP "signal.pv.tag.weathernews"
+#define VP_TAG_BUDDY_SIGNAL_ACCUWEATHER "signal.pv.tag.accuweather"
+
+//multi-window
+#define VP_NORMAL_SIGNAL_CONTROL_P_SHOW "signal.pv.normal.control.show.p"
+#define VP_NORMAL_SIGNAL_CONTROL_RFP_SHOW "signal.pv.normal.control.show.r.f.p"
+#define VP_NORMAL_SIGNAL_CONTROL_VSFRP_SHOW "signal.pv.normal.control.show.v.s.f.r.p"
+#define VP_NORMAL_SIGNAL_FUNCTION_1_3_SHOW "signal.pv.normal.function.show.1.3"
+#define VP_NORMAL_SIGNAL_CONTROL_VS_HIDE "signal.pv.normal.control.hide.v.s"
+#define VP_NORMAL_SIGNAL_CONTROL_VSFR_HIDE "signal.pv.normal.control.hide.v.s.f.r"
+#define VP_NORMAL_SIGNAL_CONTROL_VSFRP_HIDE "signal.pv.normal.control.hide.v.s.f.r.p"
+#define VP_NORMAL_SIGNAL_FUNCTION_1_3_HIDE "signal.pv.normal.function.hide.1.3"
+
+//trim view
+#define VP_TRIM_SIGNAL_CONTROL_PLAYING_SHOW "signal.pv.trim.control.show.playing"
+#define VP_TRIM_SIGNAL_CONTROL_PLAYING_HIDE "signal.pv.trim.control.hide.playing"
+
+/* resource groups(image) */
+#define VP_PLAY_MULTI_VIEW_CLOSE "multi/my_title_icon_delete.png"
+#define VP_PLAY_MULTI_VIEW_FULLSIZE "multi/my_title_icon_maximize.png"
+#define VP_PLAY_MULTI_VIEW_RESIZE "multi/mw_frame_handler.png"
+#define VP_PLAY_MULTI_VIEW_RESIZE_PRESS "multi/mw_frame_handler_press.png"
+#define VP_PLAY_MULTI_VIEW_MINSIZE "multi/my_title_icon_mimimize.png"
+
+
+#define VP_PLAY_MULTI_VIEW_FF "multi/T01_2_mw_control_icon_ff.png"
+#define VP_PLAY_MULTI_VIEW_FF_PRESS "multi/T01_2_mw_control_icon_ff_press.png"
+#define VP_PLAY_MULTI_VIEW_REW "multi/T01_2_mw_control_icon_rew.png"
+#define VP_PLAY_MULTI_VIEW_REW_PRESS "multi/T01_2_mw_control_icon_rew_press.png"
+#define VP_PLAY_MULTI_VIEW_PLAY "multi/T01_2_mw_control_icon_play.png"
+#define VP_PLAY_MULTI_VIEW_PLAY_PRESS "multi/T01_2_mw_control_icon_play_press.png"
+#define VP_PLAY_MULTI_VIEW_PAUSE "multi/T01_2_mw_control_icon_pause.png"
+#define VP_PLAY_MULTI_VIEW_PAUSE_PRESS "multi/T01_2_mw_control_icon_pause_press.png"
+
+#define VP_PLAY_NAVIFRAME_RES_SAVE "button/T01_2_icon_check.png"
+#define VP_PLAY_NAVIFRAME_RES_SAVE_PRESS "button/T01_2_icon_check_press.png"
+#define VP_PLAY_NAVIFRAME_RES_SAVE_DIM "button/T01_2_icon_check_dim.png"
+
+#define VP_PLAY_NAVIFRAME_RES_BACK "button/T01_2_icon_close.png"
+#define VP_PLAY_NAVIFRAME_RES_BACK_PRESS "button/T01_2_icon_close_press.png"
+#define VP_PLAY_NAVIFRAME_RES_BACK_DIM "button/T01_2_icon_close_dim.png"
+
+
+#define VP_PLAY_NORMAL_RES_RESUME "control/T01-2_control_circle_icon_play.png"
+#define VP_PLAY_NORMAL_RES_PAUSE "control/T01-2_control_circle_icon_pause.png"
+#define VP_PLAY_NORMAL_RES_PREV "control/T01-2_control_circle_icon_rewind.png"
+#define VP_PLAY_NORMAL_RES_NEXT "control/T01-2_control_circle_icon_next.png"
+
+#define VP_PLAY_NORMAL_RES_CAPTURE "capture/T01_2_icon_capture.png"
+#define VP_PLAY_NORMAL_RES_CAPTURE_PRESS "capture/T01_2_icon_capture_press.png"
+#define VP_PLAY_NORMAL_RES_CAPTURE_DIM "capture/T01_2_icon_capture_dim.png"
+
+#define VP_PLAY_NORMAL_RES_CAPTURE_REW "capture/T01-2_icon_left.png"
+#define VP_PLAY_NORMAL_RES_CAPTURE_REW_PRESS "capture/T01-2_icon_left_press.png"
+#define VP_PLAY_NORMAL_RES_CAPTURE_REW_DIM "capture/T01-2_icon_left_dim.png"
+
+#define VP_PLAY_NORMAL_RES_CAPTURE_FF "capture/T01-2_icon_right.png"
+#define VP_PLAY_NORMAL_RES_CAPTURE_FF_PRESS "capture/T01-2_icon_right_press.png"
+#define VP_PLAY_NORMAL_RES_CAPTURE_FF_DIM "capture/T01-2_icon_right_dim.png"
+
+
+#define VP_PLAY_TRIM_RES_REW "control/T01_2_control_circle_icon_reverse.png"
+#define VP_PLAY_TRIM_RES_FF "control/T01_2_control_circle_icon_forward.png"
+
+#define VP_PLAY_NORMAL_RES_VOLUME "function/T01_2_control_icon_volume.png"
+#define VP_PLAY_NORMAL_RES_VOLUME_PRESS "function/T01_2_control_icon_volume_press.png"
+#define VP_PLAY_NORMAL_RES_VOLUME_DIM "function/T01_2_control_icon_volume_dim.png"
+
+#define VP_PLAY_NORMAL_RES_MUTE "function/T01-2_control_icon_mute.png"
+#define VP_PLAY_NORMAL_RES_MUTE_PRESS "function/T01-2_control_icon_mute_press.png"
+#define VP_PLAY_NORMAL_RES_MUTE_DIM "function/T01-2_control_icon_mute_dim.png"
+
+#define VP_PLAY_NORMAL_RES_BOOKMARK "function/T01_2_control_icon_bookmark.png"
+#define VP_PLAY_NORMAL_RES_BOOKMARK_PRESS "function/T01_2_control_icon_bookmark_press.png"
+#define VP_PLAY_NORMAL_RES_BOOKMARK_DIM "function/T01_2_control_icon_bookmark_dim.png"
+
+#define VP_PLAY_NORMAL_RES_POPUP_PLAYER "function/player_popup_view_icon_nomal.png"
+
+#define VP_PLAY_NORMAL_RES_SCREEN_1_MODE "function/T01_2_control_icon_screenmode03.png"
+#define VP_PLAY_NORMAL_RES_SCREEN_1_MODE_PRESS "function/T01_2_control_icon_screenmode03_press.png"
+#define VP_PLAY_NORMAL_RES_SCREEN_1_MODE_DIM "function/T01_2_control_icon_screenmode03_dim.png"
+
+#define VP_PLAY_NORMAL_RES_SCREEN_2_MODE "function/T01_2_control_icon_screenmode02.png"
+#define VP_PLAY_NORMAL_RES_SCREEN_2_MODE_PRESS "function/T01_2_control_icon_screenmode02_press.png"
+#define VP_PLAY_NORMAL_RES_SCREEN_2_MODE_DIM "function/T01_2_control_icon_screenmode02_dim.png"
+
+#define VP_PLAY_NORMAL_RES_SCREEN_3_MODE "function/T01_2_control_icon_screenmode.png"
+#define VP_PLAY_NORMAL_RES_SCREEN_3_MODE_PRESS "function/T01_2_control_icon_screenmode_press.png"
+#define VP_PLAY_NORMAL_RES_SCREEN_3_MODE_DIM "function/T01_2_control_icon_screenmode_dim.png"
+
+#define VP_PLAY_NORMAL_RES_SCREEN_4_MODE "function/T01_2_control_icon_screenmode04.png"
+#define VP_PLAY_NORMAL_RES_SCREEN_4_MODE_PRESS "function/T01_2_control_icon_screenmode04_press.png"
+#define VP_PLAY_NORMAL_RES_SCREEN_4_MODE_DIM "function/T01_2_control_icon_screenmode04_dim.png"
+
+#define VP_PLAY_NORMAL_RES_MULTI_MODE "function/T01_2_control_icon_multi_window.png"
+#define VP_PLAY_NORMAL_RES_MULTI_MODE_PRESS "function/T01_2_control_icon_multi_window_press.png"
+#define VP_PLAY_NORMAL_RES_MULTI_MODE_DIM "function/T01_2_control_icon_multi_window_dim.png"
+
+#define VP_PLAY_NORMAL_RES_SHARE "function/T01_2_control_icon_share.png"
+#define VP_PLAY_NORMAL_RES_SHARE_PRESS "function/T01_2_control_icon_share_press.png"
+#define VP_PLAY_NORMAL_RES_SHARE_DIM "function/T01_2_control_icon_share_dim.png"
+
+#define VP_PLAY_NORMAL_RES_SOUND_ALIVE "function/T01_2_control_icon_soundalive.png"
+#define VP_PLAY_NORMAL_RES_SOUND_ALIVE_PRESS "function/T01_2_control_icon_soundalive_press.png"
+#define VP_PLAY_NORMAL_RES_SOUND_ALIVE_DIM "function/T01_2_control_icon_soundalive_dim.png"
+
+#define VP_PLAY_NORMAL_RES_REPEAT_OFF "function/T01_2_control_icon_repeat_mode.png"
+#define VP_PLAY_NORMAL_RES_REPEAT_OFF_PRESS "function/T01_2_control_icon_repeat_mode_press.png"
+#define VP_PLAY_NORMAL_RES_REPEAT_OFF_DIM "function/T01_2_control_icon_repeat_mode_dim.png"
+
+#define VP_PLAY_NORMAL_RES_REPEAT_ONE "function/T01_2_control_icon_repeat_once.png"
+#define VP_PLAY_NORMAL_RES_REPEAT_ONE_PRESS "function/T01_2_control_icon_repeat_once_press.png"
+#define VP_PLAY_NORMAL_RES_REPEAT_ONE_DIM "function/T01_2_control_icon_repeat_once_dim.png"
+
+#define VP_PLAY_NORMAL_RES_REPEAT_ALL "function/T01_2_control_icon_repeat_all.png"
+#define VP_PLAY_NORMAL_RES_REPEAT_ALL_PRESS "function/T01_2_control_icon_repeat_all_press.png"
+#define VP_PLAY_NORMAL_RES_REPEAT_ALL_DIM "function/T01_2_control_icon_repeat_all_dim.png"
+
+#define VP_PLAY_NORMAL_RES_TRIM "function/T01_2_control_icon_trim.png"
+#define VP_PLAY_NORMAL_RES_TRIM_PRESS "function/T01_2_control_icon_trim_press.png"
+#define VP_PLAY_NORMAL_RES_TRIM_DIM "function/T01_2_control_icon_trim_dim.png"
+
+#define VP_PLAY_NORMAL_RES_ROTATE "button/T01_2_icon_rotate.png"
+#define VP_PLAY_NORMAL_RES_ROTATE_PRESS "button/T01_2_icon_rotate_press.png"
+#define VP_PLAY_NORMAL_RES_ROTATE_DIM "button/T01_2_icon_rotate_dim.png"
+
+#define VP_PLAY_BOOKMARK_RES_ADD "bookmark/T01_2_icon_bookmark_add.png"
+#define VP_PLAY_BOOKMARK_RES_ADD_PRESS "bookmark/T01_2_icon_bookmark_add_press.png"
+#define VP_PLAY_BOOKMARK_RES_DEL "bookmark/T01_2_button_remove.png"
+#define VP_PLAY_BOOKMARK_RES_DEL_PRESS "bookmark/T01_2_button_remove_press.png"
+
+#define VP_PLAY_SENSOR_RES_TRUN_OVER_01 "sensor/B15_turn_over_01.png"
+#define VP_PLAY_SENSOR_RES_TRUN_OVER_02 "sensor/B15_turn_over_02.png"
+#define VP_PLAY_SENSOR_RES_TRUN_OVER_03 "sensor/B15_turn_over_03.png"
+
+#define VP_PLAY_CTX_ADD_TO_HOME "more/icon_add_to_home.png"
+#define VP_PLAY_CTX_CHAPTER_PREVIEW "more/icon_chapter_preview.png"
+#define VP_PLAY_CTX_DETAIL "more/icon_detail.png"
+#define VP_PLAY_CTX_DOWNLOAD "more/icon_download.png"
+#define VP_PLAY_CTX_SETTING "more/icon_setting.png"
+#define VP_PLAY_CTX_SHARE_VIA "more/icon_share_via.png"
+#define VP_PLAY_CTX_TRIM "more/icon_trim.png"
+#define VP_PLAY_CTX_CONNECTION_INFO "more/icon_nearbydevices.png"
+
+#define VP_PLAY_RES_BUTTON_ADD "button/T01-2_play_popup_icon_plus.png"
+#define VP_PLAY_RES_BUTTON_ADD_PRESS "button/T01-2_play_popup_icon_plus_press.png"
+
+#define VP_PLAY_RES_BUTTON_DEL "button/T01-2_play_popup_icon_minus.png"
+#define VP_PLAY_RES_BUTTON_DEL_PRESS "button/T01-2_play_popup_icon_minus_press.png"
+
+#define VP_PLAY_TAG_BUDDY_DEAFULT "tag/T01-1_Tag_buddy_settings_bg.png"
+
+#define VP_PLAY_NORMAL_RES_LOCK "button/T01_2_icon_lock.png"
+#define VP_PLAY_NORMAL_RES_LOCK_PRESS "button/T01_2_icon_lock_press.png"
+#define VP_PLAY_TAG_BUDDY_DEAFULT "tag/T01-1_Tag_buddy_settings_bg.png"
+#define VP_PLAY_TAG_BUDDY_LOGO "tag/T01_2_icon_tag_buddy_cplogo.PNG"
+#define VP_PLAY_TAG_BUDDY_LOGO_JP "tag/U07_weather_logo.png"
+
+#define VP_PLAY_NORMAL_RES_BLUETOOTH_HEADSET "button/T01_2_icon_bluetooth_headset.png"
+#define VP_PLAY_NORMAL_RES_EARPHONE "button/T02_icon_soundPath.png"
+#define VP_PLAY_NORMAL_RES_SPEAKER "button/T02_icon_speaker.png"
+#define VP_PLAY_NORMAL_RES_ICON_HDMI "button/T02_icon_speaker.png"
+#define VP_PLAY_NORMAL_RES_MIRRORING "button/T02_icon_speaker.png"
+#define VP_PLAY_NORMAL_RES_USB_AUDIOE "button/T02_icon_speaker.png"
+#define VP_PLAY_NORMAL_RES_DMC_ICON "mini_controller/A01_15_popup_No_device.png"
+
+#define VP_PLAY_NORMAL_AUDIO_ONLY_IMG "sound_only.png"
+#define VP_PLAY_NORMAL_AUDIO_ERROR_IMG "player_error_screen.png"
+
+#define VP_PLAY_BRIGHTNESS_POPUP_ICON_PATH "brightness/quick_icon_brightness_%02d.png"
+
+/* string resources */
+#define VP_PLAY_STRING_NO_TITLE (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_BODY_NO_TITLE"))
+#define VP_PLAY_STRING_STREAMING_PLAYER ""
+
+#define VP_PLAY_STRING_UNABLE_TO_PLAY_VIDEO_DURING_CALL (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"))
+
+#define VP_PLAY_STRING_ERROR_UNABLE_CAPTURE_DRM_CONTENT (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_POP_UNABLE_TO_CAPTURE")) //this id has been reomved from po file
+
+#define VP_PLAY_STRING_ERROR_UNSUPPORTED_AUDIO (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"))
+#define VP_PLAY_STRING_ERROR_UNSUPPORTED_VIDEO (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"))
+
+#define VP_PLAY_STRING_ERROR_FILE_NOT_EXIST (dgettext(VP_SYS_STR_PREFIX, "IDS_COM_POP_FILE_NOT_EXIST"))
+#define VP_PLAY_STRING_ERROR_UNABLE_PLAY (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"))
+#define VP_PLAY_STRING_ERROR_UNSUPPORTED_FORMAT (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"))
+#define VP_PLAY_STRING_ERROR_INVALID_URL (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_POP_INVALID_URL"))
+#define VP_PLAY_STRING_ERROR_CONNECTION_FAILED (dgettext(VP_SYS_STR_PREFIX, "IDS_COM_POP_CONNECTION_FAILED"))
+#define VP_PLAY_STRING_ERROR_BOOKMARK_LIST_FULL (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS")) //this id has been removed from po file
+#define VP_PLAY_STRING_ERROR_NO_SUBTITLE (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"))
+#define VP_PLAY_STRING_ERROR_SUBTITLE_FAIL (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_POP_ERROR_OCCURRED_WITH_SUBTITLE_FILE"))
+#define VP_PLAY_STRING_SUBTITLE_OFF (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_BODY_OFF"))
+#define VP_PLAY_STRING_SUBTITLE_DONE (dgettext(VP_LOCAL_STR_PREFIX, "IDS_TPLATFORM_ACBUTTON_DONE_ABB"))
+#define VP_PLAY_STRING_SUBTITLE_CANCEL (dgettext(VP_LOCAL_STR_PREFIX, "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"))
+
+#define VP_PLAY_STRING_POPUP_SHARE (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_OPT_SHARE"))
+#define VP_PLAY_STRING_POPUP_DELETE (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_IOPT3_DELETE"))
+#define VP_PLAY_STRING_POPUP_DELETE_CONTENT (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"))
+#define VP_PLAY_STRING_CANCEL (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_SK_CANCEL_ABB"))
+
+#define VP_PLAY_STRING_POPUP_AVAILABLE_DEVICES (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"))
+#define VP_PLAY_STRING_POPUP_SOUND_ALIVE (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"))
+#define VP_PLAY_STRING_POPUP_SUBTITLE (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"))
+#define VP_PLAY_STRING_POPUP_REPEAT_SETTING (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"))
+#define VP_PLAY_STRING_POPUP_AUDIO_TRACK (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"))
+#define VP_PLAY_STRING_POPUP_SETTINGS (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_HEADER_SETTINGS"))
+#define VP_PLAY_STRING_POPUP_PLAY_SPEED (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_BODY_PLAY_SPEED")) //this id has been reomved from po file
+#define VP_PLAY_STRING_POPUP_ENABLE_AUDIO_ONLY (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"))
+#define VP_PLAY_STRING_POPUP_DISABLE_AUDIO_ONLY (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"))
+#define VP_PLAY_STRING_UNABLE_TO_PLAY (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"))
+#define VP_PLAY_STRING_AUDIO_ONLY_PLAYBACK_MSG (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"))
+#define VP_PLAY_STRING_POPUP_CAPTURE (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_OPT_CAPTURE")) //this id has been reomved from po file
+#define VP_PLAY_STRING_POPUP_TAG_BUDDY (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_OPT_TAG_BUDDY")) //this id has been reomved from po file
+#define VP_PLAY_STRING_POPUP_EDIT_WEATHER_TAG (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_HEADER_EDIT_WEATHER_TAG_ABB")) //this id has been reomved from po file
+
+#define VP_PLAY_STRING_COM_PLAY (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_SK3_PLAY"))
+#define VP_PLAY_STRING_COM_PAUSE (dgettext(VP_LOCAL_STR_PREFIX, "IDS_MUSIC_OPT_PAUSE"))
+#define VP_PLAY_STRING_COM_PREVIOUS (dgettext(VP_LOCAL_STR_PREFIX, "IDS_BR_SK_PREVIOUS"))
+#define VP_PLAY_STRING_COM_NEXT (dgettext(VP_LOCAL_STR_PREFIX, "IDS_BR_SK_NEXT"))
+#define VP_PLAY_STRING_COM_FULL (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"))
+#define VP_PLAY_STRING_COM_KEEP_RATIO (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_BUTTON_KEEP_RATIO_ABB"))
+#define VP_PLAY_STRING_COM_VOLUME (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_POP_VOLUME_M_SOUND"))
+#define VP_PLAY_STRING_COM_ROTATE (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_POP_ROTATE")) //this id has been reomved from po file
+#define VP_PLAY_STRING_COM_ON (dgettext(VP_SYS_STR_PREFIX, "IDS_COM_BODY_ON"))
+#define VP_PLAY_STRING_COM_OFF (dgettext(VP_SYS_STR_PREFIX, "IDS_COM_BODY_OFF"))
+#define VP_PLAY_STRING_COM_ENOUGH_MEMORY (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"))
+
+#define VP_PLAY_STRING_COM_CLOSE (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_SK_CLOSE"))
+#define VP_PLAY_STRING_COM_CLOSE_IDS ("IDS_VIDEO_SK_CLOSE")
+#define VP_PLAY_STRING_COM_STOP_IDS ("IDS_COM_SK_STOP")
+#define VP_PLAY_STRING_COM_REFRESH (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_BUTTON_REFRESH"))
+#define VP_PLAY_STRING_COM_REFRESH_IDS ("IDS_VIDEO_BUTTON_REFRESH")
+#define VP_PLAY_STRING_COM_SCAN_IDS ("IDS_COM_BUTTON_SCAN")
+#define VP_PLAY_STRING_COM_ERROR (dgettext(VP_LOCAL_STR_PREFIX, "IDS_CHATON_HEADER_ERROR_ABB"))
+#define VP_PLAY_STRING_COM_CANCEL (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_SK_CANCEL_ABB"))
+#define VP_PLAY_STRING_COM_CANCEL_IDS ("IDS_VIDEO_SK_CANCEL_ABB")
+#define VP_PLAY_STRING_COM_DONE (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_BUTTON_DONE"))
+#define VP_PLAY_STRING_COM_OK (dgettext(VP_SYS_STR_PREFIX, "IDS_COM_SK_OK"))
+#define VP_PLAY_STRING_COM_OK_IDS ("IDS_COM_SK_OK")
+#define VP_PLAY_STRING_COM_YES (dgettext(VP_SYS_STR_PREFIX, "IDS_COM_SK_YES"))
+#define VP_PLAY_STRING_COM_YES_IDS ("IDS_COM_SK_YES")
+#define VP_PLAY_STRING_COM_NO (dgettext(VP_SYS_STR_PREFIX, "IDS_COM_SK_NO"))
+#define VP_PLAY_STRING_COM_NO_IDS ("IDS_COM_SK_NO")
+#define VP_PLAY_STRING_COM_LOW_BATTERY (dgettext(VP_SYS_STR_PREFIX, "IDS_COM_BODY_LOW_BATTERY"))
+#define VP_PLAY_STRING_COM_DOWNLOAD (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_BUTTON_DOWNLOAD"))
+#define VP_PLAY_STRING_COM_DETAILS (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_OPT_DETAILS"))
+#define VP_PLAY_STRING_COM_DEFAULT (dgettext(VP_SYS_STR_PREFIX, "IDS_COM_BODY_DEFAULT"))
+#define VP_PLAY_STRING_COM_UNKNOWN (dgettext(VP_SYS_STR_PREFIX, "IDS_VIDEO_BODY_UNKNOWN"))
+#define VP_PLAY_STRING_COM_WAIT_BACK (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"))
+
+#define VP_PLAY_STRING_DETAIL_TITLE (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_OPT_TITLE"))
+#define VP_PLAY_STRING_DETAIL_FORMAT (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_BODY_FILE_FORMAT"))
+#define VP_PLAY_STRING_DETAIL_DATE (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_HEADER_DATE"))
+#define VP_PLAY_STRING_DETAIL_SIZE (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_BODY_SIZE"))
+#define VP_PLAY_STRING_DETAIL_RESOLUTION (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_BODY_RESOLUTION"))
+#define VP_PLAY_STRING_DETAIL_LATITUDE (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_BODY_LATITUDE"))
+#define VP_PLAY_STRING_DETAIL_LONGITUDE (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_BODY_LONGITUDE"))
+#define VP_PLAY_STRING_DETAIL_LOCATION (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_BODY_LOCATION"))
+
+
+#define VP_PLAY_STRING_SHARE_MESSAGE (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_OPT_MESSAGE_ABB"))
+#define VP_PLAY_STRING_SHARE_EMAIL (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_OPT_EMAIL_ABB"))
+#define VP_PLAY_STRING_SHARE_BLUETOOTH (dgettext(VP_SYS_STR_PREFIX, "IDS_COM_BODY_BLUETOOTH"))
+#define VP_PLAY_STRING_SHARE_FTM (dgettext(VP_SYS_STR_PREFIX, "IDS_COM_OPT1_WI_FI_DIRECT"))
+#define VP_PLAY_STRING_SHARE_FACEBOOK (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_OPT_FACEBOOK_ABB"))
+#define VP_PLAY_STRING_SHARE_YOUTUBE (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_OPT_YOUTUBE_ABB"))
+#define VP_PLAY_STRING_SHARE_NFC (dgettext(VP_SYS_STR_PREFIX, "IDS_COM_BODY_NFC"))
+#define VP_PLAY_STRING_SHARE_FILE_TRANSFER (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"))
+#define VP_PLAY_STRING_SHARE_DROPBOX (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_OPT_CLOUD"))
+
+#define VP_PLAY_STRING_SOUND_ALIVE_NORMAL (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"))
+#define VP_PLAY_STRING_SOUND_ALIVE_VOICE (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_BODY_VOICE"))
+#define VP_PLAY_STRING_SOUND_ALIVE_MOVIE (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_BODY_MOVIES"))
+#define VP_PLAY_STRING_SOUND_ALIVE_71CH (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_OPT_VIRTUAL_71_CH")) //this id has been reomved from po file
+#define VP_PLAY_STRING_71CH_ONLY_EARPHONE _(dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"))
+
+#define VP_PLAY_STRING_SUBTITLE_SYNC (dgettext(VP_SYS_STR_PREFIX, "IDS_COM_BODY_SYNCHRONIZE"))
+#define VP_PLAY_STRING_SUBTITLE_SELECT_SUBTITLES (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"))
+#define VP_PLAY_STRING_SUBTITLE_LANGUAGE (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_BODY_LANGUAGE"))
+#define VP_PLAY_STRING_SUBTITLE_ALIGNMENT (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_MBODY_ALIGNMENT"))
+#define VP_PLAY_STRING_SUBTITLE_FONT (dgettext(VP_SYS_STR_PREFIX, "IDS_COM_BODY_FONT"))
+#define VP_PLAY_STRING_SUBTITLE_SIZE (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_MBODY_FONT_SIZE"))
+
+#define VP_PLAY_STRING_SUBTITLE_EDGE ("Edge")
+#define VP_PLAY_STRING_SUBTITLE_COLOR_AND_OPACITY ("Color and opacity")
+#define VP_PLAY_STRING_SUBTITLE_OVERVIEW ("Overview")
+#define VP_PLAY_STRING_SUBTITLE_TEXT ("Text")
+#define VP_PLAY_STRING_SUBTITLE_OPACITY ("Opacity")
+#define VP_PLAY_STRING_SUBTITLE_BG_COLOR (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_OPT_BACKGROUND_COLOUR"))
+#define VP_PLAY_STRING_SUBTITLE_COLOR (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_OPT_FONT_COLOUR"))
+#define VP_PLAY_STRING_SUBTITLE_CAPTION_WINDOW ("Caption window")
+
+#define VP_PLAY_STRING_ALIGNMENT_LEFT (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_SBODY_LEFT_M_STATUS"))
+#define VP_PLAY_STRING_ALIGNMENT_CENTER (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_SBODY_CENTRE_M_STATUS"))
+#define VP_PLAY_STRING_ALIGNMENT_RIGHT (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_SBODY_RIGHT_M_STATUS"))
+
+#define VP_PLAY_STRING_EDGE_NO_EDGE ("No edge")
+#define VP_PLAY_STRING_EDGE_RAISED ("Raised")
+#define VP_PLAY_STRING_EDGE_DEPRESSED ("Depressed")
+#define VP_PLAY_STRING_EDGE_UNIFORM ("Uniform")
+#define VP_PLAY_STRING_EDGE_DROP_SHADOW ("Drop shadow")
+
+
+#define VP_PLAY_STRING_SUBTITLE_SECS _(dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_BODY_PS_SECONDS")) //this is has been removed from po file
+
+#define VP_PLAY_STRING_SUBTITLE_SIZE_LARGE (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_SBODY_LARGE_M_STATUS"))
+#define VP_PLAY_STRING_SUBTITLE_SIZE_MEDIUM (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"))
+#define VP_PLAY_STRING_SUBTITLE_SIZE_SMALL (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_SBODY_SMALL_M_STATUS"))
+
+#define VP_PLAY_STRING_SUBTITLE_COLOR_BLACK (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_BODY_BLACK")) //this is has been removed from po file
+#define VP_PLAY_STRING_SUBTITLE_COLOR_BLUE (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_BODY_BLUE")) //this is has been removed from po file
+#define VP_PLAY_STRING_SUBTITLE_COLOR_GREEN (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_OPT_GREEN")) //this is has been removed from po file
+#define VP_PLAY_STRING_SUBTITLE_COLOR_WHITE (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_BODY_WHITE")) //this is has been removed from po file
+#define VP_PLAY_STRING_SUBTITLE_COLOR_RED (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_BODY_RED_ABB"))
+#define VP_PLAY_STRING_SUBTITLE_COLOR_YELLOW (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_OPT_YELLOW_M_COLOUR"))
+#define VP_PLAY_STRING_SUBTITLE_COLOR_MAGENTA (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_OPT_MAGENTA_M_COLOUR"))
+#define VP_PLAY_STRING_SUBTITLE_COLOR_CYAN (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_OPT_CYAN_M_COLOUR"))
+#define VP_PLAY_STRING_SUBTITLE_COLOR_CUSTOM (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_OPT_CUSTOM"))
+#define VP_PLAY_STRING_SUBTITLE_COLOR_NONE (dgettext(VP_SYS_STR_PREFIX, "IDS_COM_POP_NONE"))
+
+#define VP_PLAY_STRING_REPEAT_OFF (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_OPT_NO_REPEAT"))
+#define VP_PLAY_STRING_REPEAT_ALL_OFF (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"))
+#define VP_PLAY_STRING_REPEAT_ONE (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"))
+#define VP_PLAY_STRING_REPEAT_ALL (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_OPT_REPEAT_ALL_ABB"))
+
+#define VP_PLAY_STRING_SOUND_PATH (dgettext(VP_SYS_STR_PREFIX, "IDS_COM_HEADER_AUDIO_DEVICE_ABB"))
+#define VP_PLAY_STRING_SOUND_SPEAKER (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_BUTTON_SPEAKER_ABB"))
+#define VP_PLAY_STRING_SOUND_EARJACK (dgettext(VP_SYS_STR_PREFIX, "IDS_COM_OPT_HEADPHONES_ABB"))
+
+#define VP_PLAY_STRING_SETTINGS (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_HEADER_SETTINGS"))
+
+#define VP_PLAY_STRING_AUDIO_TRACK (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"))
+#define VP_PLAY_STRING_CONNECT_INFO (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_OPT_CONNECTION_INFO_ABB")) //this is has been removed from po file
+#define VP_PLAY_STRING_CHNAGE_PLAYER (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_OPT_CHANGE_PLAYER")) //this is has been removed from po file
+#define VP_PLAY_STRING_MY_DEVICE (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_BODY_MY_DEVICE")) //this is has been removed from po file
+#define VP_PLAY_STRING_SELECT_DEVICE (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_HEADER_SELECT_DEVICE_ABB")) //this is has been removed from po file
+#define VP_PLAY_STRING_UNABLE_TO_FF_REW (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"))
+
+#define VP_PLAY_STRING_DRM_UNABLE_TO_SHARE_DRM_FILE (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"))
+#define VP_PLAY_STRING_DRM_PS_1_MORE_TIME_START_NOW_Q _(dgettext(VP_SYS_STR_PREFIX, "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"))
+#define VP_PLAY_STRING_DRM_PS_2_MORE_TIME_START_NOW_Q _(dgettext(VP_SYS_STR_PREFIX, "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"))
+#define VP_PLAY_STRING_DRM_PS_FOR_PD_DAYS_START_NOW_Q _(dgettext(VP_SYS_STR_PREFIX, "IDS_COM_POP_YOU_CAN_USE_PS_FOR_PD_DAYS_START_NOW_Q"))
+#define VP_PLAY_STRING_DRM_CURRENTLY_LOCKED_UNLOCK_Q _(dgettext(VP_SYS_STR_PREFIX, "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"))
+#define VP_PLAY_STRING_DRM_CAN_USE_1_MORE_TIME_GET_ANOTHER_LICENCE_Q (dgettext(VP_SYS_STR_PREFIX, "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"))
+#define VP_PLAY_STRING_DRM_CANNOT_USE_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q (dgettext(VP_SYS_STR_PREFIX, "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"))
+#define VP_PLAY_STRING_DRM_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q (dgettext(VP_SYS_STR_PREFIX, "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"))
+
+#define VP_PLAY_STRING_DIVX_DRM_AUTHORIZATION_ERROR "This phone is not authorized to play this DivX protected video."
+#define VP_PLAY_STRING_DIVX_DRM_RENTAL_EXPIRED_ERROR "This DivX rental has used %d of %d views. <br> This DivX rental has expired."
+#define VP_PLAY_STRING_DIVX_DRM_RENTAL_CONFIRMATION_CHOICE "This DivX rental has used %d of %d views. <br> Continue ?"
+
+#define VP_PLAY_STRING_NO_VIDEOS (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_BODY_NO_VIDEOS"))
+
+#define VP_PLAY_STRING_ACTIVATION (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_BODY_ACTIVATION"))
+
+#define VP_PLAY_STRING_SENSOR_TURN_PHONE_OVER_TO_MUTE (dgettext(VP_LOCAL_STR_PREFIX, "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS")) //maybe, it is not implemented yet.
+#define VP_PLAY_STRING_SENSOR_TURN_PHONE_OVER_TO_MUTE_IDS ("IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS")
+#define VP_PLAY_STRING_SENSOR_DONT_ASK_AGAIN (dgettext(VP_SYS_STR_PREFIX, "IDS_COM_BUTTON_DONT_ASK_AGAIN"))
+#define VP_PLAY_STRING_SENSOR_ENABLE_MOTION (dgettext(VP_LOCAL_STR_PREFIX, "IDS_MUSIC_BUTTON_ENABLE_MOTION")) // maybe, it is not implemented yet.
+#define VP_PLAY_STRING_SENSOR_ENABLE_MOTION_IDS ("IDS_MUSIC_BUTTON_ENABLE_MOTION")
+
+#define VP_VIDEO_STRING_EXIT_POPUP (dgettext(VP_LOCAL_STR_PREFIX, "IDS_SMEMO_POP_CLOSE_APPLICATION_Q")) //this id has been removed from po file
+
+#define VP_VIDEO_PLAYER_TEXT (dgettext(VP_SYS_STR_PREFIX, "IDS_COM_BODY_VIDEO_PLAYER"))
+
+
+#define VP_COM_BODY_KB ("KB")
+#define VP_COM_BODY_B ("B")
+#define VP_COM_BODY_MB ("MB")
+#define VP_COM_BODY_GB ("KB")
+
+//this id has been reomved from po file
+#define VP_PLAY_STRING_PRIVACY_POPUP (dgettext(VP_LOCAL_STR_PREFIX, "IDS_ST_POP_P1SS_IS_DISABLED_IN_THIS_APPLICATION_TO_ENABLE_THIS_FUNCTION_GO_TO_P2SS_SELECT_THIS_FUNCTION_AND_THEN_SELECT_THIS_APPLICATION"))
+
+//need to support multi language
+#define VP_PLAY_STRING_SOUND_HDMI (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_OPT_HDMI"))
+#define VP_PLAY_STRING_SOUND_MIRRORING ("Mirroring")
+#define VP_PLAY_STRING_SOUND_USB_AUDIO ("USB Audio")
+
+#define VP_PLAY_STRING_PREVIEW_SUBTITLE_CC (dgettext(VP_LOCAL_STR_PREFIX, "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"))
+
+#define VP_PLAY_STRING_FONT_DEFAULT (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_BODY_DEFAULT_FONT"))
+#define VP_PLAY_STRING_FONT_UDRCOTHICM (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_BODY_UDRGOTHICM_M_FONT"))
+#define VP_PLAY_STRING_FONT_UDMINCHO (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_BODY_UDMINCHO_M_FONT"))
+#define VP_PLAY_STRING_FONT_POP (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_BODY_POP_M_FONT"))
+#define VP_PLAY_STRING_FONT_CHOCO_COOKY (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"))
+#define VP_PLAY_STRING_FONT_COOL_JAZZ (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_BODY_COOL_JAZZ_M_FONT"))
+#define VP_PLAY_STRING_FONT_ROSEMARY (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_BODY_ROSEMARY_M_FONT"))
+
+#ifdef K_FEATURE_MICROSEEK
+#define VP_PLAY_STRING_SCRUBBING_AT_PSX_SPEED (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"))
+#endif
+
+#define VP_PLAY_STRING_PD_SECS (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_BODY_PD_SECS")) //not show in po
+
+#ifdef _SUBTITLE_MULTI_LANGUAGE
+#define VP_PLAY_STRING_SELECTED_LANGUAGE ("Select at least one") //to support multi-language
+#endif
+
+#define VP_PLAY_STRING_TRIM_VIEW_MIN_TIME ("Duration must be longer that one second") //trim view
+
+#define VP_PLAY_STRING_UNABLE_TO_SCAN ("Unable to scan")
+#define VP_PLAY_STRING_UNABLE_TO_SCAN_FOR_THE_DEVICE ("Unable to scan for the device currently connected via Screen Mirroring while Wi-Fi tethering is enabled")
+#define VP_PLAY_STRING_DO_NOT_SHOW_AGAIN ("Do not show again")
+
+#define VP_PLAY_STRING_VIA_SCREEN_MIRRORING (dgettext(VP_LOCAL_STR_PREFIX, "IDS_DLNA_OPT_VIA_SCREEN_MIRRORING_ABB")) //now show in po
+#define VP_PLAY_STRING_VIA_HOME_NETWORK (dgettext(VP_LOCAL_STR_PREFIX, "IDS_DLNA_OPT_VIA_HOME_NETWORK_ABB")) //now show in po
+
+#define VP_PLAY_STRING_UNSUPPORTED_CODEC (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_POP_THE_VIDEO_CODEC_IS_NOT_SUPPORTED"))
+#define VP_PLAY_STRING_VIDEO_CANNOT_PLAY (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"))
+#define VP_PLAY_STRING_VIDEO_CANNOT_PLAY_SUBTITLE_ERROR (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"))
+#define VP_PLAY_STRING_VIDEO_CORRUPTED (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_POP_THIS_FILE_IS_CORRUPTED"))
+#define VP_PLAY_STRING_VIDEO_CORRUPTED_OR_SDCARD_REMOVED (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"))
+
+
+#define VP_PLAY_STRING_ERROR_ONLY_AUDIO_DATA_SUPPORTED (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"))
+#define VP_PLAY_STRING_ERROR_ONLY_VIDEO_DATA_SUPPORTED (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"))
+
+#define VP_PLAY_STRING_DETAIL_VALUE_UNKNOWN ("Unknown")
+#define VP_PLAY_STRING_DETAIL_LAST_MODIFIED (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"))
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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"
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#pragma once
+
+#include <stdbool.h>
+
+
+#include "vp-play-view-priv.h"
+#include "vp-mm-player.h"
+
+extern bool stay_pause;
+
+typedef enum {
+ VP_PLAY_NORMAL_VIEW_POPUP_NONE = 0,
+ VP_PLAY_NORMAL_VIEW_CTX_POPUP,
+ VP_PLAY_NORMAL_VIEW_OTHER_POPUP,
+} vp_normalview_popup_style_e;
+
+typedef void *normal_view_handle;
+
+typedef void (*vp_normal_view_state_cb) (void *pUserData, int nState);
+
+normal_view_handle vp_play_normal_view_create(PlayView * pPlayView,
+ video_play_launching_type_t
+ nLaunchingType);
+void vp_play_normal_view_destroy(normal_view_handle pViewHandle);
+bool vp_play_normal_view_realize(normal_view_handle pViewHandle);
+bool vp_play_normal_view_unrealize(normal_view_handle pViewHandle);
+bool vp_play_normal_view_is_realize(normal_view_handle pViewHandle,
+ bool * bIsRealize);
+bool vp_play_normal_view_pause(normal_view_handle pViewHandle);
+bool vp_play_normal_view_resume_or_pause(normal_view_handle pViewHandle);
+bool vp_play_normal_view_next_play(normal_view_handle pViewHandle);
+bool vp_play_normal_view_prev_play(normal_view_handle pViewHandle);
+bool vp_play_normal_view_set_url(normal_view_handle pViewHandle,
+ const char *szMediaURL);
+bool vp_play_normal_view_set_video_only(normal_view_handle pViewHandle,
+ bool bVideoOnly);
+bool vp_play_normal_view_set_rotate(normal_view_handle pViewHandle,
+ video_play_rotate_t nRotate,
+ bool bLayoutHide);
+bool vp_play_normal_view_set_launching_mode(normal_view_handle pViewHandle,
+ video_play_launching_type_t
+ nLaunchingType);
+bool vp_play_normal_view_set_start_position(normal_view_handle pViewHandle,
+ int nStartPosition);
+bool vp_play_normal_view_get_last_position(normal_view_handle pViewHandle,
+ int *nCurPos);
+bool vp_play_normal_view_set_subtitle(normal_view_handle pViewHandle,
+ char *szSubtitle);
+bool vp_play_normal_view_get_subtitle(normal_view_handle pViewHandle,
+ char **szSubtitle);
+bool vp_play_normal_view_get_audio_track(normal_view_handle pViewHandle,
+ int *nAudioTrack);
+bool vp_play_normal_view_get_video_duration(normal_view_handle pViewHandle,
+ int *nDuration);
+bool vp_play_normal_view_set_audio_track(normal_view_handle pViewHandle,
+ int nAudioTrack);
+bool vp_play_normal_view_set_manual_pause(normal_view_handle pViewHandle,
+ bool bStartPause);
+bool vp_play_normal_view_get_manual_pause(normal_view_handle pViewHandle,
+ bool * bManualPause);
+bool vp_play_normal_view_get_pause_status(normal_view_handle pViewHandle,
+ bool * bPause);
+void vp_play_normal_check_detail_view(normal_view_handle pViewHandle);
+bool vp_play_normal_view_get_sound_filter(normal_view_handle pViewHandle,
+ video_sound_alive_t *
+ nSoundAlive);
+bool vp_play_normal_view_set_sound_filter(normal_view_handle pViewHandle,
+ video_sound_alive_t nSoundAlive);
+bool vp_play_normal_view_update(normal_view_handle pViewHandle);
+bool vp_play_normal_view_set_share_panel_state(normal_view_handle
+ pViewHandle);
+bool vp_play_normal_view_on_more_menu(normal_view_handle pViewHandle);
+bool vp_play_normal_view_volume_increase(normal_view_handle pViewHandle);
+bool vp_play_normal_view_volume_decrease(normal_view_handle pViewHandle);
+bool vp_play_normal_view_volume_mute(normal_view_handle pViewHandle);
+bool vp_play_normal_view_volume_update(normal_view_handle pViewHandle);
+bool vp_play_normal_view_set_lock_screen(normal_view_handle pViewHandle,
+ bool bLock);
+bool vp_play_normal_view_get_lock_screen(normal_view_handle pViewHandle,
+ bool * bLock);
+void vp_play_normal_view_hide_sound_popup(normal_view_handle pViewHandle);
+void vp_play_normal_view_web_type_disconnect(normal_view_handle
+ pViewHandle);
+void vp_play_normal_view_web_type_reconnect(normal_view_handle
+ pViewHandle);
+void
+vp_play_normal_view_ff_rew_keyboard_longpress_event_cb(normal_view_handle
+ pViewHandle,
+ bool bRelease,
+ bool bFFseek);
+bool vp_play_normal_view_get_main_layout_show_state(normal_view_handle *
+ pViewHandle);
+vp_normalview_popup_style_e
+vp_play_normal_view_get_popup_show_state(normal_view_handle * pViewHandle);
+bool vp_play_normal_view_set_tagbuddy_on(normal_view_handle pViewHandle,
+ bool bTagBuddyOn);
+void vp_play_normal_view_show_volume_popup(void *pPlayview);
+void vp_play_normal_view_pause_player(void *pPlayview);
+void vp_play_normal_view_play_player(void *pPlayview);
+void vp_play_normal_view_key_create(PlayView * pPlayView,
+ normal_view_handle pViewHandle);
+bool vp_play_normal_view_stop_player(normal_view_handle pViewHandle);
+bool vp_play_normal_view_play_start(normal_view_handle pViewHandle);
+//Focus UI
+void vp_play_normal_view_set_main_layout_focus_out(normal_view_handle *
+ pViewHandle);
+void vp_play_normal_view_set_main_layout_focus_in(normal_view_handle *
+ pViewHandle);
+bool vp_play_normal_view_get_main_layout_focus_state(normal_view_handle *
+ pViewHandle);
+void vp_play_normal_view_show_main_layout(normal_view_handle *
+ pViewHandle);
+void vp_play_normal_view_set_resume_or_pause(normal_view_handle *
+ pViewHandle);
+void vp_play_normal_view_create_main_layout_hide_timer(normal_view_handle *
+ pViewHandle);
+
+
+//for minicontroller
+int vp_controller_normal_view_get_played_state(normal_view_handle
+ pViewHandle);
+bool vp_normal_rotate_icon_timer_cb(void *pUserData);
+//db
+void vp_play_normal_view_db_change(normal_view_handle pViewHandle);
+
+vp_mm_player_state_t vp_play_normal_view_get_player_state(PlayView *
+ pPlayView);
+void vp_play_normal_view_on_controller_button_press(void *pUserData,
+ int btn);
+bool vp_play_normal_view_is_audio_only(PlayView * pPlayView);
+bool vp_play_normal_view_reset_audio_only(normal_view_handle *
+ pNormalView);
+bool vp_play_normal_view_handle_language_change(normal_view_handle
+ *pViewHandle);
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#pragma once
+
+#include <glib.h>
+#include <stdbool.h>
+#include <Elementary.h>
+#include <net_connection.h>
+#include <sound_manager.h>
+#include <app_control.h>
+
+#include "vp-play-view.h"
+#include "vp-play-type-define.h"
+
+typedef struct _PlayViewFunc {
+ void (*vp_play_func_change_mode) (void *pViewHandle,
+ video_play_mode_t nMode,
+ const char *szMediaURL,
+ int nStartPos, bool bManualPause);
+ void (*vp_play_func_exit) (void *pViewHandle);
+} PlayViewFunc;
+
+typedef struct _PlayViewCbFunc {
+ vp_play_view_realize_cb pRealizeCb;
+ vp_play_view_destroy_cb pDestroyCb;
+ vp_play_view_event_key_down_cb pEventKeyDown;
+ vp_play_view_event_key_up_cb pEventKeyUp;
+} PlayViewCbFunc;
+
+typedef struct _PlayView {
+ Evas_Object *pParent;
+ Evas_Object *pWin;
+ Ecore_X_Window nXwinID;
+ Ecore_X_Window nCallerXwinID;
+
+ bool bAVRCP;
+ bool bWifi;
+ bool bIsPlayBeforeShare;
+ bool bIsSharePopup;
+ bool telinit;
+
+ bool bStoreDownload;
+ bool bStopAfterRepeat;
+ double dStoreDL_FileSize;
+ char *pStoreOrderId;
+ char *pStoreServerId;
+ char *pStoreAppId;
+ char *pStoreMvId;
+
+ char *szCookie;
+ char *szProxy;
+
+ Evas_Object *pBackground;
+ Evas_Object *pRenderRect;
+ Evas_Object *pConformant;
+ Evas_Object *pMainLayout;
+ Evas_Object *pNaviframe;
+
+ Ecore_Event_Handler *pKeyEventDown;
+ Ecore_Event_Handler *pKeyEventUp;
+ Ecore_Event_Handler *pFocusIn;
+ Ecore_Event_Handler *pFocusOut;
+ Ecore_Event_Handler *pVisiblility;
+ Ecore_Event_Handler *pClientMessage;
+ Ecore_Event_Handler *pDeleteRequest;
+ Ecore_Event_Handler *pPropertyHandler;
+ Ecore_Event_Handler *pMouseInHandler;
+ Ecore_Event_Handler *pMouseOutHandler;
+ Ecore_Event_Handler *pCallerWinEventHandler;
+ Ecore_Event_Handler *pPalmHoldEventHandler;
+
+ Ecore_Pipe *pNotiPipe;
+
+ Ecore_Timer *pSbeamTimer;
+ Ecore_Timer *pVolumeTimer;
+ Ecore_Idler *pHideIdler; //used for hide win
+
+ bool bVolumeIncrease;
+ bool bViewChange;
+ bool bMouseOut;
+ bool bVisible;
+ bool bResetPlaySpeed;
+ Ecore_Timer *pMediaLongPressTimer;
+ Ecore_Timer *pMediaKeyTimer;
+ int nMediaKeyPressCount;
+
+ void *pUserData;
+
+ void *pNormalView;
+ void *pMultiView;
+
+ void *pSmartPause;
+ Ecore_Timer *pSmartPauseStartTimer;
+ Ecore_Timer *pSmartPauseEndTimer;
+
+ void *pSensorHandle;
+ void *pSensorPopup;
+
+ GList *pMultiPathList;
+
+ char *szMediaURL;
+ char *szMediaTitle;
+ char *szDeviceID;
+ char *szAutoPlay;
+ char *szDMRID;
+
+ int nStartPosition;
+ int nDuration;
+ bool bStartPause;
+ bool bRealized;
+ bool bActivate;
+ bool bDestroy;
+
+ int nAudioIndex;
+ char *szSubtitleURL;
+ bool bManualAppPause;
+
+ video_play_mode_t nPlayMode;
+ video_play_launching_type_t nLaunchingType;
+ video_play_rotate_t nRotate;
+ video_sound_alive_t nSoundAlive;
+ video_play_list_type_t nListType;
+ sound_stream_info_h stream_info;
+
+ bool reacquire_state;
+ bool bPopupMode;
+ bool bTrimExit;
+ bool bRelaunchCaller;
+
+ PlayViewCbFunc *pCallback;
+ PlayViewFunc *pFunc;
+
+ void *pHollICHandle;
+ bool bKeySpeed;
+ bool bAudioOnly;
+ double fPlaySpeed;
+ float fSubtitleSyncValue;
+
+ Ecore_Timer *pHwKeyLongPressTimer; // for longpress HW key
+ Ecore_Timer *pDbUpdateTimer; //db Update
+ connection_h connection;
+
+ /*minicontroller */
+ Evas_Object *win_minicon;
+ Evas_Object *minicontroller_layout;
+ Evas_Object *minicon_icon;
+ Ecore_Timer *minicon_button_timer;
+ bool b_minicontroller_show;
+ bool minicon_visible;
+
+ /*lockscreen mini */
+ Evas_Object *win_lockmini;
+ Evas_Object *lockmini_layout;
+ Evas_Object *lsicon_icon;
+ Ecore_Timer *lockmini_button_timer;
+ Ecore_Timer *lockmini_idle_timer;
+ bool lockmini_visible;
+ bool lockmini_hide;
+ bool b_lockmini_show;
+ bool isLiveStreaming;
+ app_control_h pServiceShare;
+
+ int device_state_id;
+ int volume_changed_cb_id;
+} PlayView;
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#include "vp-play-string-define.h"
+#include "vp-play-value-define.h"
+#include "vp-play-macro-define.h"
+
+#include "vp-play-normal-view.h"
+
+#include "vp-play-button.h"
+#include "vp-play-bookmark.h"
+#include "vp-play-progressbar.h"
+#include "vp-play-subtitle.h"
+#include "vp-play-loading-ani.h"
+
+#include "vp-mm-player.h"
+#include "vp-play-popup.h"
+#include "vp-play-preference.h"
+#include "vp-play-config.h"
+#include "vp-play-util.h"
+#include "vp-play-volume.h"
+#include "vp-play-volume-popup.h"
+#include "vp-play-brightness-popup.h"
+#include "vp-play-minicontroller.h"
+#include "vp-play-lockscreenmc.h"
+
+#include "vp-media-contents.h"
+
+#include "vp-share.h"
+#include "vp-play-ug.h"
+#include "vp-sound-alive.h"
+#include "vp-sound-path.h"
+#include "vp-audio-track.h"
+
+#include "vp-sound.h"
+#include "vp-subtitle.h"
+#include "vp-subtitle-sync.h"
+#include "vp-subtitle-select.h"
+#include "vp-subtitle-font.h"
+#include "vp-subtitle-size.h"
+#include "vp-subtitle-alignment.h"
+#include "vp-subtitle-color.h"
+#include "vp-subtitle-bg-color.h"
+#include "vp-subtitle-track.h"
+#include "vp-subtitle-edge.h"
+
+#include "vp-repeat.h"
+#include "vp-capture.h"
+#include "vp-play-speed.h"
+#include "vp-setting.h"
+#ifdef ENABLE_DRM_FEATURE
+#include "vp-drm.h"
+#endif
+#include "vp-device.h"
+#include "vp-media-key.h"
+#include "vp-detail.h"
+#include "vp-zoom-guide.h"
+
+#include "vp-multi-path.h"
+
+#include "vp-device-language.h"
+
+/* check temp */
+#include "vp-play-log.h"
+#include "vp-util.h"
+#include "vp-file-util.h"
+#include "vp-avrcp.h"
+
+
+#define VP_NORMAL_PROGRESS_TIMER_INTERVAL 0.3
+#define VP_NORMAL_PROGRESS_BAR_START_TERM 26 * elm_config_scale_get()
+#define VP_NORMAL_PROGRESS_BAR_WIDTH_TERM 52 * elm_config_scale_get()
+
+#define VP_NORMAL_HIDE_LAYOUT_TIMER_INTERVAL 5.0
+#define VP_NORMAL_HIDE_LAYOUT_FINISH_TIMER_INTERVAL 2.0 //3.0
+#define VP_NORMAL_WINDOW_LOAD_FINISH_TIMER_INTERVAL 1.5 //wait for window loaded
+
+#define VP_NORMAL_LONG_PRESS_TIMER_INTERVAL 1.0
+#define VP_NORMAL_SUBTITLE_LONG_PRESS_TIMER_INTERVAL 0.5
+
+#define VP_NORMAL_HIDE_SCREEN_LOCK_TIMER_INTERVAL 3.0
+#define VP_NORMAL_MOMENTUM_PRESS_TIMER_INTERVAL 0.2
+#define VP_NORMAL_SCREENSHOT_TIMER_INTERVAL 2.0
+#define VP_NORMAL_EXIT_WAIT_TIMER_INTERVAL 3.0
+#define VP_NORMAL_INDICATOR_HIDE_TIMER_INTERVAL 2.0
+
+#define VP_NORMAL_ALL_BUTTON_L 885
+#define VP_NORMAL_ALL_BUTTON_VSFRP_L 680
+#define VP_NORMAL_ALL_BUTTON_FRP_L 430
+#define VP_NORMAL_ALL_BUTTON_P_L 140
+
+
+#define VP_SUBTITLE_PORTRAIT_POSX 360
+#define VP_SUBTITLE_PORTRAIT_POSY 1335
+#define VP_SUBTITLE_LANDSCAPE_POSX 640
+#define VP_SUBTITLE_LANDSCAPE_POSY 765
+
+#define VP_SUBTITLE_LANDSCAPE_SIZE 1280
+#define VP_SUBTITLE_PORTRAIT_SIZE 720
+
+#define VP_SUBTITLE_MARGIN_SIZE 30
+
+#define VP_NORMAL_SPEED_VALUE_MAX 64
+
+#define VP_NORMAL_VALUE_SEC 60
+
+#define VP_VOICE_MUTE_VALUE 0
+
+#define VP_NORMAL_HIDE_VOLUME_TIMER_INTERVAL 0.05
+
+#define VP_NORMAL_SET_GREP_BOX_SIZE_ID 1
+#define VP_NORMAL_SET_CAPTION_WINDOW_SIZE_ID 2
+#define VP_NORMAL_SET_CAPTION_WINDOW_COLOR_ID 3
+#define VP_NORMAL_SET_CAPTION_WINDOW_OFFSET_ID 4
+
+#define VP_SUBTITLE_SET_GREP_BOX_SIZE_ID 1
+#define VP_SUBTITLE_SET_CAPTION_WINDOW_SIZE_ID 2
+
+#ifdef K_FEATURE_MICROSEEK
+#define VP_NORMAL_SZ_HALF_SPEED "1/2"
+#define VP_NORMAL_SZ_QUARTER_SPEED "1/4"
+#define VP_NORMAL_MICROSEEK_TEXT_HEIGHT (46 * elm_config_scale_get())
+#define VP_NORMAL_MICROSEEK_IMAGE_WIDTH (46 * elm_config_scale_get())
+#define VP_NORMAL_MICROSEEK_IMAGE_HEIGHT (70 * elm_config_scale_get())
+#endif
+
+#ifdef _NATIVE_BUFFER_SYNC
+#define VP_NORMAL_DEFAULT_WIDTH (480 * elm_config_scale_get())
+#define VP_NORMAL_DEFAULT_HEIGHT (800 * elm_config_scale_get())
+#endif
+
+#define VP_NORMAL_STREAMING_PROTOCOLS_MAX 2
+#define VP_NORMAL_MAX_STR_LEN 8
+
+bool stay_pause = false;
+
+typedef struct _ProgressMouseInfo {
+ int nDownPosX;
+} ProgressMouseInfo;
+
+typedef enum {
+ BUTTON_TYPE_NORMAL = 0,
+ BUTTON_TYPE_PRESSED,
+ BUTTON_TYPE_DIM,
+} ButtonType;
+
+#ifdef K_FEATURE_MICROSEEK
+typedef enum {
+ SEEK_LEVEL_NORMAL = 1,
+ SEEK_LEVEL_HALF = 2,
+ SEEK_LEVEL_QUARTER = 4,
+} SeekLevel;
+#endif
+
+typedef struct _NormalView {
+ PlayView *pPlayView;
+ Ecore_X_Window nXwinID;
+
+ Evas_Object *pNaviFrame;
+ Elm_Object_Item *pNaviItem;
+ Evas_Object *pMainEventRect;
+ Evas_Object *pGestureRect;
+ Evas_Object *pMainLayout;
+#ifdef _NATIVE_BUFFER_SYNC
+ Evas_Object *pVideoSink;
+#endif
+ Evas_Object *pTopControlLayout;
+ Evas_Object *pControlLayout;
+ Evas_Object *pFunctionLayout;
+
+ Evas_Object *pNaviLeftBtn;
+ Evas_Object *pNaviRightBtn;
+
+ Evas_Object *pSoundPathBtn;
+ Evas_Object *pAllsharBtn;
+
+ Evas_Object *pMoreBtn;
+ Evas_Object *pBackBtn;
+
+ Evas_Object *pCtxPopup;
+
+ Evas_Object *pImageBufferObj;
+
+ Evas_Object *pRotateBtn;
+ Evas_Object *pVolumeBtn;
+ Evas_Object *pScreenSizeBtn;
+ Evas_Object *pBookmarkBtn;
+ Evas_Object *pMultiWinBtn;
+ Evas_Object *pRepeatBtn;
+ Evas_Object *pTrimBtn;
+ Evas_Object *pSoundAliveBtn;
+ Evas_Object *pShareBtn;
+ Evas_Object *pLockBtn;
+
+ Evas_Object *pResumeBtn;
+ Evas_Object *pPauseBtn;
+ Evas_Object *pPlayFocusBtn;
+ Evas_Object *pPrevBtn;
+ Evas_Object *pNextBtn;
+
+ Evas_Object *pCaptureBtn;
+ Evas_Object *pCaptureRewBtn;
+ Evas_Object *pCaptureFFBtn;
+ Evas_Object *pPopupBtn;
+
+ Evas_Object *pSpeedBoxCtrl;
+
+ Evas_Object *pPopup;
+
+ Evas_Object *pLoadingAni;
+
+ Ecore_Timer *pHideTimer;
+ Ecore_Timer *pHideFinishTimer;
+ Ecore_Timer *pLockScreenTimer;
+
+ Ecore_Timer *pSpeedTimer;
+ bool bSpeedFF;
+ int nSpeedValue;
+ bool bSpeedDown;
+ bool bKeyPressed;
+
+ Ecore_Timer *pExitWaitTimer;
+
+ Ecore_Idler *pControlIdler;
+ Ecore_Idler *pMultiWinIdler;
+
+ GList *pMediaItemList;
+
+ bool bIsRealize;
+ bool bIsActive;
+ bool bShowLayout;
+ bool bMainFocusState;
+ bool bIsPopupShow;
+ bool bIsSubtitleShow;
+ bool bIsVideoUnsupport;
+
+ /* bookmark part */
+ bookmark_handle pBookmarkHandle;
+ Evas_Object *pBookmarkObj;
+ bool bCaptureComplete;
+ int nCapturePosition;
+ /* progressbar part */
+ Evas_Object *pProgressEvent;
+ Ecore_Timer *pProgressTimer;
+ progressbar_handle pProgressbar;
+ bool bProgressDown;
+#ifdef K_FEATURE_MICROSEEK
+ double nPrevCanvasX;
+ double nPrevPositionX;
+#endif
+ int nCurPosition;
+ bool bHLSMode;
+ int nWaitPos;
+ bool bSeekComplete;
+ bool bSeekPause;
+ bool bSeekResume;
+#ifdef K_FEATURE_MICROSEEK
+ Evas_Object *pMicroSeekTextLayout;
+ Evas_Object *pMicroSeekImageLayout;
+#endif
+#ifdef FLICK_JUMP
+ int nFlickPressX1;
+ int nFlickPressY1;
+ bool bFlickRewind;
+ bool bFlickWaiting;
+ Evas_Object *pFlickJumpSeek;
+#endif
+ bool bBufferingComplete;
+
+ char *szMediaURL;
+ char *szSubtitleURL;
+ int nStartPosition;
+ bool bManualPause;
+
+ mm_player_handle pPlayerHandle;
+ vp_mm_player_display_mode_t nDisplayMode;
+
+ int nDuration;
+ video_play_launching_type_t nLaunchingType;
+ video_play_rotate_t nRotate;
+
+ share_handle pShareHandle;
+
+ volume_handle pVolumeHandle;
+ volume_popup_handle pVolumePopupHandle;
+ brightness_handle pBrightnessHandle;
+
+ sound_alive_handle pSAHandle;
+ int nSoundAlive;
+
+ subtitle_handle pSubtitle;
+ Ecore_Timer *pSubtitleTimer;
+ bool bIsExistSubtitle;
+ subtitle_popup_handle pSubtitlePopup;
+ subtitle_select_handle pSubtitleSelectPopup;
+#ifdef SUBTITLE_K_FEATURE
+ subtitle_alignment_handle pSubtitleAlignmentPopup;
+#endif
+ subtitle_font_handle pSubtitleFontPopup;
+ subtitle_size_handle pSubtitleSizePopup;
+ subtitle_edge_handle pSubtitleEdgePopup;
+ subtitle_color_handle pSubtitleFontColorPopup;
+#ifndef SUBTITLE_K_FEATURE
+ subtitle_bg_color_handle pSubtitleBGColorPopup;
+#else
+ subtitle_color_handle pSubtitleBGColorPopup;
+#endif
+ subtitle_color_handle pSubtitleCaptionWinColorPopup;
+ subtitle_sync_popup pSubtitleSyncPopup;
+ subtitle_track_handle pSubtitleTrackHandle;
+ int nDefaultSubtitleTrackIndex;
+ float fSubtitleSyncValue;
+
+ repeat_handle pRepeatHandle;
+ video_play_repeat_mode_t nRepeatMode;
+
+ sound_path_handle pSoundPathHandle;
+ setting_popup_handle pSettingHandle;
+ detail_handle pDetailHandle;
+
+ audio_track_handle pAudioTrackHandle;
+ int nDefaultAudioTrackIndex;
+
+ media_key_handle pMediaKey;
+ bool bLockScreen;
+ char *szScreenMirrorMacAddr;
+
+ bool bVideoOnlyMode;
+ bool bDeviceRemoveInterrupt;
+
+ int dSubtitleStartTime;
+ int dSubtitleEndTime;
+
+ Ecore_Timer *pMomentTimer;
+ int nGestureStartPosX;
+ int nGestureStartPosY;
+ int nGestureOldPosY;
+ int nMomentDefaultVal;
+ int nMomentWeight;
+ int nMomentStep;
+ int nWindowWidth;
+ int nWindowHeight;
+
+ Ecore_Job *pVolumeJob;
+ Ecore_Job *pBrightnessJob;
+
+ bool bMomentumIncrease;
+
+ play_speed_popup pPlaySpeedPopup;
+ double fPlaySpeed;
+
+ bool bAudioOnly;
+
+ capture_popup_handle pCapturePopup;
+ Ecore_Timer *pScreenShotTimer;
+ Evas_Object *pScreenShot;
+
+ bool bCaptureMode;
+ bool bCaptureBookmark;
+ bool bEarjackConnect;
+
+ zoom_guide_handle pZoomGuide;
+ int nZoomPosX;
+ int nZoomPosY;
+ int nPrevZoomPosX;
+ int nPrevZoomPosY;
+
+ double fActiveZoom;
+ double fZoomValue;
+ double fPrevZoomValue;
+ bool bZoomEnable;
+
+ int nLastVolume;
+
+ Ecore_Pipe *pSeekPipe;
+
+ vp_normal_view_state_cb vp_mini_played_state_cb;
+ bool bKeySpeed;
+ Ecore_Pipe *pPreparePipe;
+ bool bDestroyNavi;
+ bool bSharepopup;
+ bool bSharePanelPause;
+ bool bSharePanelFocusIn; //first focus in is menu popup hide, second is share panel hdie
+ bool isLiveStreaming;
+
+#ifdef SUBTITLE_K_FEATURE
+ bool bSubtitleDown;
+
+ int nInitSubtitleX;
+ int nInitSubtitleY;
+
+ int nDeltaSubtitleX;
+ int nDeltaSubtitleY;
+
+ int nLongPressX1;
+ int nLongPressY1;
+ int nLongPressX2;
+ int nLongPressY2;
+
+ Ecore_Timer *pSubtitleMoveTimer;
+ int nSubtitleInterval;
+#endif
+#ifdef _SUBTITLE_MULTI_LANGUAGE
+ int nSubtitleLanguageCount;
+ bool *pSelectedSubtitleLanguage;
+#endif
+} NormalView;
+
+
+static void _vp_play_normal_view_destroy_handle(NormalView * pNormalView);
+static bool _vp_play_normal_view_set_subtitle_font_config(NormalView *
+ pNormalView);
+static bool _vp_play_normal_view_update_progress_value(NormalView *
+ pNormalView);
+static bool _vp_play_normal_view_play_start(NormalView * pNormalView,
+ bool bCheckDRM);
+static void _vp_play_normal_view_on_next_play(NormalView * pNormalView,
+ bool bManual);
+static void _vp_play_normal_view_on_prev_play(NormalView * pNormalView,
+ bool bManual, bool bVoice);
+static bool _vp_play_normal_view_check_during_call(NormalView *
+ pNormalView);
+static void _vp_play_normal_view_show_audio_only_popup(NormalView *
+ pNormalView);
+static void _vp_play_normal_view_show_video_only_popup(NormalView *
+ pNormalView);
+static bool _vp_play_normal_view_check_audio_only(NormalView *
+ pNormalView);
+static bool _vp_play_normal_view_check_drm_lock(NormalView * pNormalView,
+ bool * bLock);
+static void _vp_play_normal_view_set_played_time(NormalView * pNormalView);
+static void _vp_play_normal_view_screen_move(NormalView * pNormalView,
+ bool bFoward);
+
+static void _vp_play_normal_view_create_progress_timer(NormalView *
+ pNormalView);
+static void _vp_play_normal_view_create_layout_hide_timer(NormalView *
+ pNormalView);
+static bool _vp_play_normal_view_create_loading_ani(NormalView *
+ pNormalView);
+static void _vp_play_normal_view_set_play_state(NormalView * pNormalView);
+static double _vp_play_normal_view_get_mouse_pos_ratio(Evas_Object * pObj,
+ int nCurX);
+static void _vp_play_normal_view_all_close_popup(NormalView * pNormalView);
+static void _vp_play_normal_view_show_layout(NormalView * pNormalView);
+static void _vp_play_normal_view_hide_layout(NormalView * pNormalView,
+ bool bNoEffect);
+
+#ifdef ENABLE_GESTURE_ZOOM_FEATURE
+static void _vp_play_normal_view_on_zoom_mode(NormalView * pNormalView);
+#endif
+static void _vp_play_normal_view_on_capture_mode(NormalView * pNormalView);
+static void _vp_play_normal_view_on_share_popup(NormalView * pNormalView);
+static void _vp_play_normal_view_on_sound_alive_popup(NormalView *
+ pNormalView);
+static void _vp_play_normal_view_on_sound_path_popup(NormalView *
+ pNormalView);
+static void _vp_play_normal_view_on_subtitle_popup(NormalView *
+ pNormalView);
+static void _vp_play_normal_view_on_subtitle_sync_popup(NormalView *
+ pNormalView);
+static void _vp_play_normal_view_on_subtitle_language_popup(NormalView *
+ pNormalView);
+static void _vp_play_normal_view_on_subtitle_select_popup(NormalView *
+ pNormalView);
+static void _vp_play_normal_view_on_subtitle_font_popup(NormalView *
+ pNormalView);
+static void _vp_play_normal_view_on_subtitle_size_popup(NormalView *
+ pNormalView);
+static void _vp_play_normal_view_on_subtitle_edge_popup(NormalView *
+ pNormalView);
+
+static void _vp_play_normal_view_on_subtitle_font_color_popup(NormalView *
+ pNormalView);
+static void _vp_play_normal_view_on_subtitle_bg_color_popup(NormalView *
+ pNormalView);
+static void
+_vp_play_normal_view_on_subtitle_caption_win_color_popup(NormalView *
+ pNormalView);
+
+#ifdef SUBTITLE_K_FEATURE
+static void _vp_play_normal_view_on_subtitle_alignment_popup(NormalView *
+ pNormalView);
+#endif
+
+static void _vp_play_normal_view_on_detail_popup(NormalView * pNormalView);
+static void _vp_play_normal_view_on_play_speed_popup(NormalView *
+ pNormalView);
+static void _vp_play_normal_view_on_play_speed_popup_cb(void *data,
+ Evas_Object * obj,
+ const char
+ *emission,
+ const char
+ *source);
+static void _vp_play_normal_view_on_volume_popup(NormalView * pNormalView,
+ bool bToggle);
+static void _vp_play_normal_view_on_bookmark_mode(NormalView * pNormalView,
+ bool bShow);
+
+static void _vp_play_normal_view_show_rotate(NormalView * pNormalView);
+static void _vp_play_normal_view_show_volume(NormalView * pNormalView);
+static void _vp_play_normal_view_set_sound_path_state(NormalView *
+ pNormalView);
+static void _vp_play_normal_view_set_rotate_lock_state(NormalView *
+ pNormalView);
+static void _vp_play_normal_view_set_volume_lock_state(NormalView *
+ pNormalView);
+
+static void _vp_normal_set_audio_only_image(NormalView * pNormalView,
+ bool bAudioOnly);
+
+static void __vp_play_normal_view_seek_pipe_cb(void *pUserData, void *pBuf,
+ int nByte);
+static void __vp_normal_error_popup_time_out_cb(void *pUserData,
+ Evas_Object * pObj,
+ void *pEventInfo);
+static void __vp_normal_error_popup_key_event_cb(void *pUserData,
+ Evas_Object * pObj,
+ void *pEventInfo);
+static void __vp_normal_error_popup_mouse_event_cb(void *pUserData,
+ Evas * pEvas,
+ Evas_Object * pObj,
+ void *pEventInfo);
+static void __vp_normal_completed_cb(void *pUserData);
+
+
+//Focus UI
+static void _vp_play_normal_view_set_button_focus_sequence(NormalView *
+ pNormalView);
+static void _vp_normal_view_speed_for_steps(NormalView * pNormalView,
+ bool bSpeedFF);
+
+static NormalView *curr_Handle = NULL;
+
+#ifdef SUBTITLE_K_FEATURE
+/*Set caption window: size, rel1, color*/
+/**
+ *
+ * @param pNormalView
+ */
+static void __vp_normal_subtitle_set_caption_window(NormalView *
+ pNormalView)
+{
+ if (!pNormalView) {
+ VideoLogError("pNormalView is NULL");
+ return;
+ }
+
+ if (!pNormalView->pSubtitle) {
+ VideoLogError("pSubtitle is NULL");
+ return;
+ }
+
+ Evas_Coord ww = 0;
+ Evas_Coord hh = 0;
+ bool bLandscape = FALSE;
+ int width = 0.0;
+ int offset_x = 0.0;
+ vp_subtitle_alignment_t nAlignment = VP_SUBTITLE_ALIGNMENT_CENTER;
+
+ bLandscape = vp_play_util_get_landscape_check(pNormalView->nRotate);
+ vp_play_subtitle_get_size_formatted(pNormalView->pSubtitle, &ww, &hh);
+ if (pNormalView->bSubtitleDown) {
+ ww = bLandscape ? VP_SUBTITLE_LANDSCAPE_SIZE :
+ VP_SUBTITLE_PORTRAIT_SIZE;
+ hh += VP_SUBTITLE_MARGIN_SIZE;
+ } else {
+ ww += VP_SUBTITLE_MARGIN_SIZE;
+ hh += VP_SUBTITLE_MARGIN_SIZE;
+ }
+ vp_play_subtitle_get_alignment(pNormalView->pSubtitle, &nAlignment);
+ vp_play_util_set_object_size(_EDJ
+ (vp_play_subtitle_get_object
+ (pNormalView->pSubtitle)), ww, hh,
+ VP_NORMAL_SET_CAPTION_WINDOW_SIZE_ID);
+ width =
+ bLandscape ? VP_SUBTITLE_LANDSCAPE_SIZE :
+ VP_SUBTITLE_PORTRAIT_SIZE;
+ if (nAlignment == VP_SUBTITLE_ALIGNMENT_LEFT) {
+ offset_x = 0;
+ } else if (nAlignment == VP_SUBTITLE_ALIGNMENT_CENTER) {
+ offset_x = (width - ww) / 2;
+ } else if (nAlignment == VP_SUBTITLE_ALIGNMENT_RIGHT) {
+ offset_x = width - ww;
+ }
+ VideoLogInfo("nAlignment:%d,offset_x:%d", nAlignment, offset_x);
+ vp_play_util_set_object_offset(_EDJ
+ (vp_play_subtitle_get_object
+ (pNormalView->pSubtitle)), offset_x, 0,
+ VP_NORMAL_SET_CAPTION_WINDOW_OFFSET_ID);
+
+ vp_play_subtitle_set_caption_win_color(pNormalView->pSubtitle, TRUE);
+}
+#endif
+
+/* callback functions */
+/**
+ *
+ * @param pUserData
+ * @return
+ */
+static Eina_Bool __vp_normal_exit_wait_timer_cb(void *pUserData)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return EINA_FALSE;
+ }
+
+ NormalView *pNormalView = (NormalView *) pUserData;
+
+ pNormalView->pExitWaitTimer = NULL;
+
+ return EINA_FALSE;
+}
+
+/**
+ *
+ * @param pNormalView
+ */
+static void _vp_play_normal_view_set_volume_state(NormalView * pNormalView)
+{
+ if (!pNormalView) {
+ VideoLogError("pNormalView is NULL");
+ return;
+ }
+
+ Evas_Object *pIcon = NULL;
+
+ pIcon =
+ elm_object_part_content_get(pNormalView->pVolumeBtn,
+ VP_PLAY_SWALLOW_BUTTON_ICON);
+ VP_EVAS_DEL(pIcon);
+ pIcon =
+ elm_object_part_content_get(pNormalView->pVolumeBtn,
+ VP_PLAY_SWALLOW_BUTTON_PRESS_ICON);
+ VP_EVAS_DEL(pIcon);
+ pIcon =
+ elm_object_part_content_get(pNormalView->pVolumeBtn,
+ VP_PLAY_SWALLOW_BUTTON_DIM_ICON);
+ VP_EVAS_DEL(pIcon);
+
+ elm_object_part_content_unset(pNormalView->pVolumeBtn,
+ VP_PLAY_SWALLOW_BUTTON_ICON);
+ elm_object_part_content_unset(pNormalView->pVolumeBtn,
+ VP_PLAY_SWALLOW_BUTTON_PRESS_ICON);
+ elm_object_part_content_unset(pNormalView->pVolumeBtn,
+ VP_PLAY_SWALLOW_BUTTON_DIM_ICON);
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VP_PLAY_RESROUCE_EDJ_PATH);
+ free(path);
+ int nVolume = 0;
+ bool bMute = FALSE;
+ vp_sound_get_volume(&nVolume);
+
+ VideoLogError("nVolume = %d:%d", nVolume, bMute);
+
+ if ((nVolume == 0) || bMute) {
+ pIcon =
+ vp_button_create_icon(pNormalView->pVolumeBtn, edj_path,
+ VP_PLAY_NORMAL_RES_MUTE);
+ elm_object_part_content_set(pNormalView->pVolumeBtn,
+ VP_PLAY_SWALLOW_BUTTON_ICON, pIcon);
+
+ pIcon =
+ vp_button_create_icon(pNormalView->pVolumeBtn, edj_path,
+ VP_PLAY_NORMAL_RES_MUTE_PRESS);
+ elm_object_part_content_set(pNormalView->pVolumeBtn,
+ VP_PLAY_SWALLOW_BUTTON_PRESS_ICON,
+ pIcon);
+
+ pIcon =
+ vp_button_create_icon(pNormalView->pVolumeBtn, edj_path,
+ VP_PLAY_NORMAL_RES_MUTE_DIM);
+ elm_object_part_content_set(pNormalView->pVolumeBtn,
+ VP_PLAY_SWALLOW_BUTTON_DIM_ICON,
+ pIcon);
+ } else {
+ pIcon =
+ vp_button_create_icon(pNormalView->pVolumeBtn, edj_path,
+ VP_PLAY_NORMAL_RES_VOLUME);
+ elm_object_part_content_set(pNormalView->pVolumeBtn,
+ VP_PLAY_SWALLOW_BUTTON_ICON, pIcon);
+
+ pIcon =
+ vp_button_create_icon(pNormalView->pVolumeBtn, edj_path,
+ VP_PLAY_NORMAL_RES_VOLUME_PRESS);
+ elm_object_part_content_set(pNormalView->pVolumeBtn,
+ VP_PLAY_SWALLOW_BUTTON_PRESS_ICON,
+ pIcon);
+
+ pIcon =
+ vp_button_create_icon(pNormalView->pVolumeBtn, edj_path,
+ VP_PLAY_NORMAL_RES_VOLUME_DIM);
+ elm_object_part_content_set(pNormalView->pVolumeBtn,
+ VP_PLAY_SWALLOW_BUTTON_DIM_ICON,
+ pIcon);
+ }
+
+}
+
+/**
+ *
+ * @param nVolume
+ * @param pUserData
+ */
+static void __vp_normal_volume_change_value_cb(int nVolume,
+ void *pUserData)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ NormalView *pNormalView = (NormalView *) pUserData;
+
+ VideoLogWarning("Set Volume: %d", nVolume);
+
+ pNormalView->nLastVolume = nVolume;
+ _vp_play_normal_view_set_volume_state(pNormalView);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_normal_popup_key_event_cb(void *pUserData,
+ Evas_Object * pObj,
+ void *pEventInfo)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ NormalView *pNormalView = (NormalView *) pUserData;
+
+ VP_EVAS_DEL(pNormalView->pPopup);
+
+ pNormalView->bIsPopupShow = FALSE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pEvas
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_normal_popup_mouse_event_cb(void *pUserData, Evas * pEvas,
+ Evas_Object * pObj,
+ void *pEventInfo)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ if (!pEventInfo) {
+ VideoLogError("pEventInfo is NULL");
+ return;
+ }
+
+ Evas_Event_Mouse_Up *ev = pEventInfo;
+
+ if (ev->button == 3) {
+ NormalView *pNormalView = (NormalView *) pUserData;
+ VP_EVAS_DEL(pNormalView->pPopup);
+ pNormalView->bIsPopupShow = FALSE;
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_normal_popup_time_out_cb(void *pUserData,
+ Evas_Object * pObj,
+ void *pEventInfo)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ NormalView *pNormalView = (NormalView *) pUserData;
+
+ VP_EVAS_DEL(pNormalView->pPopup);
+ pNormalView->bIsPopupShow = FALSE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_normal_prepare_error_popup_time_out_cb(void *pUserData,
+ Evas_Object * pObj,
+ void *pEventInfo)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ NormalView *pNormalView = (NormalView *) pUserData;
+
+ VP_EVAS_DEL(pObj);
+ pNormalView->bIsPopupShow = FALSE;
+
+ if (pNormalView->nRepeatMode == VIDEO_PLAY_REPEAT_ONE ||
+ pNormalView->nRepeatMode == VIDEO_PLAY_REPEAT_ALL) {
+ PlayView *pPlayView = pNormalView->pPlayView;
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return;
+ }
+ if (!pPlayView->pFunc) {
+ VideoLogError("pPlayView pFunc is NULL");
+ return;
+ }
+
+ if (!pPlayView->pFunc->vp_play_func_exit) {
+ VideoLogError("pPlayView exit Func is NULL");
+ return;
+ }
+ vp_device_set_screen_off(FALSE);
+ vp_play_util_set_unlock_power_key();
+
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_normal_error_popup_key_event_cb(void *pUserData,
+ Evas_Object * pObj,
+ void *pEventInfo)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ NormalView *pNormalView = (NormalView *) pUserData;
+
+ VP_EVAS_DEL(pNormalView->pPopup);
+
+ pNormalView->bIsPopupShow = FALSE;
+ if (pNormalView->nRepeatMode == VIDEO_PLAY_REPEAT_ONE ||
+ pNormalView->nRepeatMode == VIDEO_PLAY_REPEAT_ALL) {
+ PlayView *pPlayView = pNormalView->pPlayView;
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return;
+ }
+ if (!pPlayView->pFunc) {
+ VideoLogError("pPlayView pFunc is NULL");
+ return;
+ }
+
+ if (!pPlayView->pFunc->vp_play_func_exit) {
+ VideoLogError("pPlayView exit Func is NULL");
+ return;
+ }
+ vp_device_set_screen_off(FALSE);
+ vp_play_util_set_unlock_power_key();
+
+ pPlayView->pFunc->vp_play_func_exit(pPlayView);
+ } else {
+ _vp_play_normal_view_on_next_play(pNormalView, FALSE);
+ }
+
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pEvas
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_normal_error_popup_mouse_event_cb(void *pUserData,
+ Evas * pEvas,
+ Evas_Object * pObj,
+ void *pEventInfo)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ if (!pEventInfo) {
+ VideoLogError("pEventInfo is NULL");
+ return;
+ }
+
+ Evas_Event_Mouse_Up *ev = pEventInfo;
+
+ if (ev->button == 3) {
+ NormalView *pNormalView = (NormalView *) pUserData;
+ VP_EVAS_DEL(pNormalView->pPopup);
+ pNormalView->bIsPopupShow = FALSE;
+ if (pNormalView->nRepeatMode == VIDEO_PLAY_REPEAT_ONE ||
+ pNormalView->nRepeatMode == VIDEO_PLAY_REPEAT_ALL) {
+ PlayView *pPlayView = pNormalView->pPlayView;
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return;
+ }
+ if (!pPlayView->pFunc) {
+ VideoLogError("pPlayView pFunc is NULL");
+ return;
+ }
+
+ if (!pPlayView->pFunc->vp_play_func_exit) {
+ VideoLogError("pPlayView exit Func is NULL");
+ return;
+ }
+ vp_device_set_screen_off(FALSE);
+ vp_play_util_set_unlock_power_key();
+
+ pPlayView->pFunc->vp_play_func_exit(pPlayView);
+ } else {
+ _vp_play_normal_view_on_next_play(pNormalView, FALSE);
+ }
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_normal_error_popup_time_out_cb(void *pUserData,
+ Evas_Object * pObj,
+ void *pEventInfo)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ NormalView *pNormalView = (NormalView *) pUserData;
+
+ VP_EVAS_DEL(pNormalView->pPopup);
+ pNormalView->bIsPopupShow = FALSE;
+
+ _vp_play_normal_view_on_next_play(pNormalView, FALSE);
+}
+
+/**
+ *
+ * @param pUserData
+ * @return
+ */
+static Eina_Bool __vp_normal_control_idler_cb(void *pUserData)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return ECORE_CALLBACK_CANCEL;
+ }
+ NormalView *pNormalView = (NormalView *) pUserData;
+
+ _vp_play_normal_view_set_play_state(pNormalView);
+ _vp_play_normal_view_on_capture_mode(pNormalView);
+
+ pNormalView->pControlIdler = NULL;
+
+ return ECORE_CALLBACK_CANCEL;
+}
+
+/**
+ *
+ * @param nType
+ * @param bPause
+ * @param pUserData
+ */
+static void __vp_normal_sound_alive_popup_close_cb(int nType, bool bPause,
+ void *pUserData)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ NormalView *pNormalView = (NormalView *) pUserData;
+ PlayView *pPlayView = pNormalView->pPlayView;
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return;
+ }
+ video_sound_alive_t nSAType = (video_sound_alive_t) nType;
+
+ vp_sound_alive_destroy(pNormalView->pSAHandle);
+ pNormalView->pSAHandle = NULL;
+ pNormalView->bIsPopupShow = FALSE;
+
+ if (bPause) {
+ if (!vp_mm_player_pause(pNormalView->pPlayerHandle)) {
+ VideoLogWarning("Pause Fail");
+ }
+ if (pPlayView->win_minicon) {
+ vp_minicontroller_update_control(pPlayView);
+ }
+ if (pPlayView->win_lockmini) {
+ vp_lockscreenmini_update_control(pPlayView);
+ }
+ _vp_play_normal_view_set_play_state(pNormalView);
+ _vp_play_normal_view_on_capture_mode(pNormalView);
+ } else {
+ if (pNormalView->bManualPause == FALSE) {
+ if (!vp_mm_player_play(pNormalView->pPlayerHandle)) {
+ VideoLogWarning("Pause Fail");
+ }
+ if (pPlayView->win_minicon) {
+ vp_minicontroller_update_control(pPlayView);
+ }
+ if (pPlayView->win_lockmini) {
+ vp_lockscreenmini_update_control(pPlayView);
+ }
+ _vp_play_normal_view_set_play_state(pNormalView);
+ _vp_play_normal_view_on_capture_mode(pNormalView);
+ _vp_play_normal_view_create_layout_hide_timer(pNormalView);
+ }
+ }
+
+
+ vp_mm_player_sound_filter_t nSoundFilter = VP_MM_PLAYER_FILTER_NONE;
+
+ if (nSAType == VIDEO_SA_NORMAL) {
+ nSoundFilter = VP_MM_PLAYER_FILTER_NONE;
+ } else if (nSAType == VIDEO_SA_VOICE) {
+ nSoundFilter = VP_MM_PLAYER_FILTER_VOICE;
+ } else if (nSAType == VIDEO_SA_MOVIE) {
+ nSoundFilter = VP_MM_PLAYER_FILTER_MOVIE;
+ } else if (nSAType == VIDEO_SA_7_1_CH) {
+ nSoundFilter = VP_MM_PLAYER_FILTER_VITUAL_71;
+
+ video_sound_device_type_t nSoundDevType = VP_SOUND_DEVICE_NONE;
+ vp_sound_get_active_device(&nSoundDevType);
+ if (nSoundDevType != VP_SOUND_DEVICE_EARJACK
+ && nSoundDevType != VP_SOUND_DEVICE_BLUETOOTH) {
+ /* show popup */
+ VP_EVAS_DEL(pNormalView->pPopup);
+ pNormalView->pPopup = NULL;
+
+ PlayView *pPlayView = pNormalView->pPlayView;
+
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return;
+ }
+ pNormalView->bIsPopupShow = TRUE;
+ char *szMsg =
+ g_strdup_printf(VP_PLAY_STRING_71CH_ONLY_EARPHONE, "7.1");
+ pNormalView->pPopup =
+ vp_popup_create(pPlayView->pWin,
+ POPUP_STYLE_DEFAULT_WITH_CANCEL_BTN, NULL,
+ szMsg, 0.0, NULL,
+ __vp_normal_popup_key_event_cb,
+ __vp_normal_popup_mouse_event_cb,
+ pNormalView);
+ VP_FREE(szMsg);
+
+ Evas_Object *pBtn = NULL;
+ pBtn = elm_button_add(pNormalView->pPopup);
+ elm_object_style_set(pBtn, "popup_button/default");
+ elm_object_domain_translatable_text_set(pBtn,
+ VP_SYS_STR_PREFIX,
+ VP_PLAY_STRING_COM_OK_IDS);
+ elm_object_part_content_set(pNormalView->pPopup, "button1",
+ pBtn);
+ evas_object_smart_callback_add(pBtn, "clicked",
+ __vp_normal_popup_key_event_cb,
+ (void *) pNormalView);
+ evas_object_show(pNormalView->pPopup);
+
+ return;
+ }
+ } else {
+ return;
+
+ }
+
+ pNormalView->nSoundAlive = nSAType;
+ if (!vp_play_preference_set_sound_alive_status(nSAType)) {
+ VideoLogError("vp_play_preference_set_sound_alive_status failed");
+ }
+
+ if (!vp_mm_player_set_sound_filter
+ (pNormalView->pPlayerHandle, nSoundFilter)) {
+ VideoLogWarning("vp_mm_player_set_sound_filter is fail");
+ }
+}
+
+/**
+ *
+ * @param nType
+ * @param bPause
+ * @param pUserData
+ */
+static void __vp_normal_sound_path_popup_close_cb(int nType, bool bPause,
+ void *pUserData)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ NormalView *pNormalView = (NormalView *) pUserData;
+ PlayView *pPlayView = pNormalView->pPlayView;
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ }
+ vp_play_volume_update_value(pNormalView->pVolumeHandle);
+
+ vp_sound_path_destroy(pNormalView->pSoundPathHandle);
+ pNormalView->pSoundPathHandle = NULL;
+ pNormalView->bIsPopupShow = FALSE;
+
+ _vp_play_normal_view_set_sound_path_state(pNormalView);
+
+ if (_vp_is_current_focus_available() != 0) {
+ VideoLogInfo("Cannot acquire focus. Setting video to pause state");
+ pNormalView->bManualPause = TRUE;
+ }
+
+ if (bPause) {
+ if (!vp_mm_player_pause(pNormalView->pPlayerHandle)) {
+ VideoLogWarning("Pause Fail");
+ }
+ if (pPlayView->win_minicon) {
+ vp_minicontroller_update_control(pPlayView);
+ }
+ if (pPlayView->win_lockmini) {
+ vp_lockscreenmini_update_control(pPlayView);
+ }
+ _vp_play_normal_view_set_play_state(pNormalView);
+ _vp_play_normal_view_on_capture_mode(pNormalView);
+ } else {
+ if (pNormalView->bManualPause == FALSE) {
+ if (!vp_mm_player_play(pNormalView->pPlayerHandle)) {
+ VideoLogWarning("play Fail");
+ }
+ if (pPlayView->win_minicon) {
+ vp_minicontroller_update_control(pPlayView);
+ }
+ if (pPlayView->win_lockmini) {
+ vp_lockscreenmini_update_control(pPlayView);
+ }
+ _vp_play_normal_view_set_play_state(pNormalView);
+ _vp_play_normal_view_on_capture_mode(pNormalView);
+ _vp_play_normal_view_create_layout_hide_timer(pNormalView);
+ }
+ }
+
+}
+
+
+/**
+ *
+ * @param fValue
+ * @param pUserData
+ */
+static void __vp_normal_play_speed_popup_update_cb(double fValue,
+ void *pUserData)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+ NormalView *pNormalView = (NormalView *) pUserData;
+
+ vp_mm_player_set_rate(pNormalView->pPlayerHandle, (float) fValue);
+}
+
+/**
+ *
+ * @param fValue
+ * @param bSetValue
+ * @param pUserData
+ */
+static void __vp_normal_play_speed_popup_done_cb(double fValue,
+ bool bSetValue,
+ void *pUserData)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+ NormalView *pNormalView = (NormalView *) pUserData;
+ PlayView *pPlayView = pNormalView->pPlayView;
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ }
+ vp_play_speed_popup_destroy(pNormalView->pPlaySpeedPopup);
+ pNormalView->pPlaySpeedPopup = NULL;
+ pNormalView->bIsPopupShow = FALSE;
+
+ if (_vp_is_current_focus_available() != 0) {
+ VideoLogInfo("Cannot acquire focus. Setting video to pause state");
+ pNormalView->bManualPause = TRUE;
+ }
+
+ if (pNormalView->bManualPause == FALSE) {
+ if (!vp_mm_player_play(pNormalView->pPlayerHandle)) {
+ VideoLogWarning("Play Fail");
+ }
+ if (pPlayView && pPlayView->win_minicon) {
+ vp_minicontroller_update_control(pPlayView);
+ }
+ if (pPlayView && pPlayView->win_lockmini) {
+ vp_lockscreenmini_update_control(pPlayView);
+ }
+ _vp_play_normal_view_set_play_state(pNormalView);
+ _vp_play_normal_view_create_layout_hide_timer(pNormalView);
+ }
+
+ if (bSetValue) {
+ pNormalView->fPlaySpeed = fValue;
+ if (pNormalView->pPlayView != NULL) {
+ pNormalView->pPlayView->fPlaySpeed = fValue;
+ }
+
+ if ((fValue - 0.05) > 1.000 || (fValue + 0.05) < 1.000) {
+ elm_object_signal_emit(pNormalView->pMainLayout,
+ VP_NORMAL_SIGNAL_MAIN_PLAYING_SPEED_SHOW,
+ "*");
+ elm_object_signal_callback_add(pNormalView->pMainLayout,
+ "elm,action,click", "",
+ _vp_play_normal_view_on_play_speed_popup_cb,
+ pNormalView);
+ _vp_play_normal_view_create_layout_hide_timer(pNormalView);
+ } else {
+ elm_object_signal_emit(pNormalView->pMainLayout,
+ VP_NORMAL_SIGNAL_MAIN_PLAYING_SPEED_HIDE,
+ "*");
+ }
+ char szTxt[5] = { 0, };
+ snprintf(szTxt, 5, "%1.1fX", (float) pNormalView->fPlaySpeed);
+ elm_object_part_text_set(pNormalView->pMainLayout,
+ VP_PLAY_PART_NORMAL_PLAYING_SPEED_TXT,
+ szTxt);
+ }
+ vp_mm_player_set_rate(pNormalView->pPlayerHandle,
+ (float) pNormalView->fPlaySpeed);
+}
+
+/**
+ *
+ * @param nType
+ * @param bPause
+ * @param pUserData
+ */
+static void __vp_normal_subtitle_popup_close_cb(int nType, bool bPause,
+ void *pUserData)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ NormalView *pNormalView = (NormalView *) pUserData;
+
+ vp_subtitle_mode_t nSubtitleMode = (vp_subtitle_mode_t) nType;
+
+ if (nSubtitleMode == VP_SUBTITLE_MODE_CLOSE) {
+ _vp_play_normal_view_set_subtitle_font_config(pNormalView);
+ vp_play_subtitle_text_update(pNormalView->pSubtitle, NULL);
+ bool bShow = FALSE;
+ vp_play_preference_get_subtitle_show_key(&bShow);
+ if (bShow) {
+ vp_play_subtitle_realize(pNormalView->pSubtitle);
+ vp_mm_player_set_deactivate_subtitle(pNormalView->
+ pPlayerHandle, FALSE);
+ } else {
+ vp_play_subtitle_unrealize(pNormalView->pSubtitle);
+ vp_mm_player_set_deactivate_subtitle(pNormalView->
+ pPlayerHandle, TRUE);
+ }
+ vp_subtitle_destroy(pNormalView->pSubtitlePopup);
+ pNormalView->pSubtitlePopup = NULL;
+ pNormalView->bIsSubtitleShow = FALSE;
+ }
+
+ switch (nSubtitleMode) {
+ case VP_SUBTITLE_MODE_NONE:
+ case VP_SUBTITLE_MODE_CLOSE:
+ break;
+ case VP_SUBTITLE_MODE_ACTIVATION:{
+ bool bShow = FALSE;
+ vp_play_preference_get_subtitle_show_key(&bShow);
+ if (bShow) {
+ vp_play_subtitle_realize(pNormalView->pSubtitle);
+ vp_mm_player_set_deactivate_subtitle(pNormalView->
+ pPlayerHandle, FALSE);
+ } else {
+ vp_play_subtitle_unrealize(pNormalView->pSubtitle);
+ vp_mm_player_set_deactivate_subtitle(pNormalView->
+ pPlayerHandle, TRUE);
+ }
+ }
+ break;
+ case VP_SUBTITLE_MODE_SYNC:
+ _vp_play_normal_view_on_subtitle_sync_popup(pNormalView);
+ break;
+ case VP_SUBTITLE_MODE_LANGUAGE:
+ _vp_play_normal_view_on_subtitle_language_popup(pNormalView);
+ break;
+#ifdef SUBTITLE_K_FEATURE
+ case VP_SUBTITLE_MODE_ALIGNMENT:
+ _vp_play_normal_view_on_subtitle_alignment_popup(pNormalView);
+ break;
+#endif
+ case VP_SUBTITLE_MODE_SELECT:
+ _vp_play_normal_view_on_subtitle_select_popup(pNormalView);
+ break;
+ case VP_SUBTITLE_MODE_FONT:
+ _vp_play_normal_view_on_subtitle_font_popup(pNormalView);
+ break;
+ case VP_SUBTITLE_MODE_SIZE:
+ _vp_play_normal_view_on_subtitle_size_popup(pNormalView);
+ break;
+ case VP_SUBTITLE_MODE_EDGE:
+ _vp_play_normal_view_on_subtitle_edge_popup(pNormalView);
+ break;
+ case VP_SUBTITLE_MODE_TEXT:
+ _vp_play_normal_view_on_subtitle_font_color_popup(pNormalView);
+ break;
+ case VP_SUBTITLE_MODE_BG_COLOR:
+
+ _vp_play_normal_view_on_subtitle_bg_color_popup(pNormalView);
+ break;
+ case VP_SUBTITLE_MODE_FONT_COLOR:
+ _vp_play_normal_view_on_subtitle_font_color_popup(pNormalView);
+ break;
+#ifdef SUBTITLE_K_FEATURE
+ case VP_SUBTITLE_MODE_CAPTION_WINDOW:
+ _vp_play_normal_view_on_subtitle_caption_win_color_popup
+ (pNormalView);
+ break;
+#endif
+ }
+}
+
+/**
+ *
+ * @param fValue
+ * @param pUserData
+ */
+static void __vp_normal_subtitle_sync_popup_update_cb(float fValue,
+ void *pUserData)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ NormalView *pNormalView = (NormalView *) pUserData;
+ /* set subtitle sync value */
+
+ int nPosition = fValue * 1000;
+
+ if (!vp_mm_player_set_subtitle_position
+ (pNormalView->pPlayerHandle, nPosition)) {
+ VideoLogError("vp_mm_player_set_subtitle_position is fail");
+ }
+}
+
+/**
+ *
+ * @param fValue
+ * @param bSetValue
+ * @param pUserData
+ */
+static void __vp_normal_subtitle_sync_popup_done_cb(float fValue,
+ bool bSetValue,
+ void *pUserData)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ NormalView *pNormalView = (NormalView *) pUserData;
+
+ vp_subtitle_sync_popup_destroy(pNormalView->pSubtitleSyncPopup);
+ pNormalView->pSubtitleSyncPopup = NULL;
+ pNormalView->bIsPopupShow = FALSE;
+
+ if (bSetValue) {
+ /* set subtitle sync value */
+ int nPosition = fValue * 1000;
+ pNormalView->fSubtitleSyncValue = fValue;
+ pNormalView->pPlayView->fSubtitleSyncValue = fValue;
+ if (!vp_mm_player_set_subtitle_position
+ (pNormalView->pPlayerHandle, nPosition)) {
+ VideoLogError("vp_mm_player_set_subtitle_position is fail");
+ }
+ } else {
+ /* set subtitle sync value */
+ int nPosition = pNormalView->fSubtitleSyncValue * 1000;
+
+ if (!vp_mm_player_set_subtitle_position
+ (pNormalView->pPlayerHandle, nPosition)) {
+ VideoLogError("vp_mm_player_set_subtitle_position is fail");
+ }
+ _vp_play_normal_view_on_subtitle_popup(pNormalView);
+ }
+}
+
+
+/**
+ *
+ * @param nType
+ * @param bPause
+ * @param pUserData
+ */
+static void __vp_normal_subtitle_size_popup_done_cb(int nType, bool bPause,
+ void *pUserData)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ NormalView *pNormalView = (NormalView *) pUserData;
+ PlayView *pPlayView = pNormalView->pPlayView;
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ }
+ vp_subtitle_size_destroy(pNormalView->pSubtitleSizePopup);
+ pNormalView->pSubtitleSizePopup = NULL;
+ pNormalView->bIsPopupShow = FALSE;
+
+ if (nType != -1) {
+ vp_play_subtitle_set_size(pNormalView->pSubtitle, nType);
+ vp_play_subtitle_set_size_zoom(pNormalView->pSubtitle, 1.0);
+ vp_play_preference_set_subtitle_size_key(nType);
+ _vp_play_normal_view_set_subtitle_font_config(pNormalView);
+#ifdef SUBTITLE_K_FEATURE
+ /*Set caption window: size, rel1, color */
+ __vp_normal_subtitle_set_caption_window(pNormalView);
+#endif
+ }
+
+ if (bPause) {
+ if (!vp_mm_player_pause(pNormalView->pPlayerHandle)) {
+ VideoLogWarning("Pause Fail");
+ }
+ if (pPlayView && pPlayView->win_minicon) {
+ vp_minicontroller_update_control(pPlayView);
+ }
+ if (pPlayView && pPlayView->win_lockmini) {
+ vp_lockscreenmini_update_control(pPlayView);
+ }
+ _vp_play_normal_view_set_play_state(pNormalView);
+ _vp_play_normal_view_on_capture_mode(pNormalView);
+ }
+ _vp_play_normal_view_on_subtitle_popup(pNormalView);
+
+}
+
+/**
+ *
+ * @param szFontName
+ * @param pUserData
+ */
+static void __vp_normal_subtitle_font_popup_done_cb(char *szFontName,
+ void *pUserData)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ NormalView *pNormalView = (NormalView *) pUserData;
+
+ if (szFontName) {
+ vp_play_subtitle_set_font(pNormalView->pSubtitle, szFontName);
+ vp_play_preference_set_subtitle_font_name_key(szFontName);
+ _vp_play_normal_view_set_subtitle_font_config(pNormalView);
+#ifdef SUBTITLE_K_FEATURE
+ /*Set caption window: size, rel1, color */
+ __vp_normal_subtitle_set_caption_window(pNormalView);
+#endif
+ }
+
+ vp_subtitle_font_destroy(pNormalView->pSubtitleFontPopup);
+ pNormalView->pSubtitleFontPopup = NULL;
+ pNormalView->bIsPopupShow = FALSE;
+
+ _vp_play_normal_view_on_subtitle_popup(pNormalView);
+}
+
+/**
+ *
+ * @param option
+ * @param pUserData
+ */
+static void __vp_normal_subtitle_select_button_popup_done_cb(char *option,
+ void
+ *pUserData)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ NormalView *pNormalView = (NormalView *) pUserData;
+ PlayView *pPlayView = pNormalView->pPlayView;
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ }
+ if (!strcmp(option, "settings")) {
+ _vp_play_normal_view_on_subtitle_popup(pNormalView);
+ } else {
+ vp_subtitle_select_destroy(pNormalView->pSubtitleSelectPopup);
+ pNormalView->pSubtitleSelectPopup = NULL;
+ pNormalView->bIsPopupShow = FALSE;
+
+ if (_vp_is_current_focus_available() != 0) {
+ VideoLogInfo
+ ("Cannot acquire focus. Setting video to pause state");
+ pNormalView->bManualPause = TRUE;
+ }
+
+ if (pNormalView->bManualPause == FALSE) {
+ if (!vp_mm_player_play(pNormalView->pPlayerHandle)) {
+ VideoLogWarning("Pause Fail");
+ }
+ if (pPlayView && pPlayView->win_minicon) {
+ vp_minicontroller_update_control(pPlayView);
+ }
+ if (pPlayView && pPlayView->win_lockmini) {
+ vp_lockscreenmini_update_control(pPlayView);
+ }
+ _vp_play_normal_view_set_play_state(pNormalView);
+ _vp_play_normal_view_on_capture_mode(pNormalView);
+ _vp_play_normal_view_create_layout_hide_timer(pNormalView);
+ }
+ }
+}
+
+/**
+ *
+ * @param szFilePath
+ * @param pUserData
+ */
+static void __vp_normal_subtitle_select_popup_done_cb(char *szFilePath,
+ void *pUserData)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ NormalView *pNormalView = (NormalView *) pUserData;
+ PlayView *pPlayView = pNormalView->pPlayView;
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ }
+ char *szSubtitle = NULL;
+
+ vp_subtitle_select_destroy(pNormalView->pSubtitleSelectPopup);
+ pNormalView->pSubtitleSelectPopup = NULL;
+ pNormalView->bIsPopupShow = FALSE;
+
+ if (_vp_is_current_focus_available() != 0) {
+ VideoLogInfo("Cannot acquire focus. Setting video to pause state");
+ pNormalView->bManualPause = TRUE;
+ }
+
+ if (pNormalView->bManualPause == FALSE) {
+ if (!vp_mm_player_play(pNormalView->pPlayerHandle)) {
+ VideoLogWarning("Pause Fail");
+ }
+ if (pPlayView && pPlayView->win_minicon) {
+ vp_minicontroller_update_control(pPlayView);
+ }
+ if (pPlayView && pPlayView->win_lockmini) {
+ vp_lockscreenmini_update_control(pPlayView);
+ }
+ _vp_play_normal_view_set_play_state(pNormalView);
+ _vp_play_normal_view_on_capture_mode(pNormalView);
+ _vp_play_normal_view_create_layout_hide_timer(pNormalView);
+ }
+ if (!szFilePath) {
+ goto SELECT_DONE;
+ }
+ if (!strcmp(szFilePath, VP_PLAY_STRING_SUBTITLE_OFF)) {
+ pNormalView->bIsExistSubtitle = FALSE;
+ vp_mm_player_set_deactivate_subtitle(pNormalView->pPlayerHandle,
+ TRUE);
+ elm_object_signal_emit(pNormalView->pMainLayout,
+ VP_NORMAL_SIGNAL_MAIN_SUBTITLE_HIDE, "*");
+ goto SELECT_DONE;
+ } else {
+ bool bOn = FALSE;
+ vp_play_preference_get_subtitle_show_key(&bOn);
+ if (bOn) {
+ elm_object_signal_emit(pNormalView->pMainLayout,
+ VP_NORMAL_SIGNAL_MAIN_SUBTITLE_PORTRAIT,
+ "*");
+ pNormalView->bIsExistSubtitle = TRUE;
+ vp_mm_player_set_deactivate_subtitle(pNormalView->
+ pPlayerHandle, FALSE);
+ }
+ }
+ VP_FREE(pNormalView->szSubtitleURL);
+ VP_STRDUP(pNormalView->szSubtitleURL, szFilePath);
+ vp_mm_player_get_subtitle_url(pNormalView->pPlayerHandle, &szSubtitle);
+
+ if (szSubtitle) {
+ if (strcmp(szSubtitle, szFilePath) == 0) {
+ goto SELECT_DONE;
+ }
+ }
+
+ pNormalView->bIsExistSubtitle =
+ vp_mm_player_set_subtitle_url(pNormalView->pPlayerHandle,
+ szFilePath);
+
+ SELECT_DONE:
+ VP_FREE(szSubtitle);
+
+}
+
+#ifndef SUBTITLE_K_FEATURE
+static void __vp_normal_subtitle_font_color_popup_done_cb(int nType,
+ bool bPause,
+ void *pUserData)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ NormalView *pNormalView = (NormalView *) pUserData;
+
+ vp_subtitle_color_destroy(pNormalView->pSubtitleFontColorPopup);
+ pNormalView->pSubtitleFontColorPopup = NULL;
+ pNormalView->bIsPopupShow = FALSE;
+
+ if (nType != -1) {
+
+ video_subtitle_color_t nColor = VP_SUBTITLE_COLOR_BLACK;
+ if (nType == VIDEO_SUBTITLE_COLOR_BLACK) {
+ nColor = VP_SUBTITLE_COLOR_BLACK;
+ } else if (nType == VIDEO_SUBTITLE_COLOR_BLUE) {
+ nColor = VP_SUBTITLE_COLOR_BLUE;
+ } else if (nType == VIDEO_SUBTITLE_COLOR_GREEN) {
+ nColor = VP_SUBTITLE_COLOR_GREEN;
+ } else if (nType == VIDEO_SUBTITLE_COLOR_WHITE) {
+ nColor = VP_SUBTITLE_COLOR_WHITE;
+ }
+ //need to improve....
+
+ vp_play_subtitle_set_color(pNormalView->pSubtitle, nColor);
+
+ vp_play_preference_set_subtitle_font_color_key(nType);
+
+ _vp_play_normal_view_set_subtitle_font_config(pNormalView);
+ }
+
+ _vp_play_normal_view_on_subtitle_popup(pNormalView);
+
+
+}
+
+static void __vp_normal_subtitle_bg_color_popup_done_cb(int nType,
+ bool bPause,
+ void *pUserData)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ NormalView *pNormalView = (NormalView *) pUserData;
+
+ vp_subtitle_bg_color_destroy(pNormalView->pSubtitleBGColorPopup);
+ pNormalView->pSubtitleBGColorPopup = NULL;
+ pNormalView->bIsPopupShow = FALSE;
+
+ if (nType != -1) {
+ video_subtitle_color_t nColor = VP_SUBTITLE_COLOR_BLACK;
+ if (nType == VIDEO_SUBTITLE_COLOR_BLACK) {
+ nColor = VP_SUBTITLE_COLOR_BLACK;
+ } else if (nType == VIDEO_SUBTITLE_COLOR_WHITE) {
+ nColor = VP_SUBTITLE_COLOR_WHITE;
+ } else if (nType == VIDEO_SUBTITLE_COLOR_NONE) {
+ nColor = VP_SUBTITLE_COLOR_NONE;
+ }
+ vp_play_subtitle_set_bg_color(pNormalView->pSubtitle, nColor);
+ vp_play_preference_set_subtitle_bg_color_key(nType);
+ _vp_play_normal_view_set_subtitle_font_config(pNormalView);
+ }
+ _vp_play_normal_view_on_subtitle_popup(pNormalView);
+
+}
+
+#else
+/**
+ *
+ * @param pColorHex
+ * @param bSetValue
+ * @param pUserData
+ */
+static void __vp_normal_subtitle_font_color_popup_done_hex_cb(char
+ *pColorHex,
+ bool
+ bSetValue,
+ void
+ *pUserData)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ NormalView *pNormalView = (NormalView *) pUserData;
+ char *pSelectColorHex = strdup(pColorHex);
+
+ vp_subtitle_color_destroy(pNormalView->pSubtitleFontColorPopup);
+ pNormalView->pSubtitleFontColorPopup = NULL;
+ pNormalView->bIsPopupShow = FALSE;
+
+ if (bSetValue) {
+ VideoLogInfo("pSelectColorHex =%s", pSelectColorHex);
+
+ if (pSelectColorHex != NULL) {
+ vp_play_subtitle_set_color(pNormalView->pSubtitle,
+ pSelectColorHex);
+
+ vp_play_preference_set_subtitle_font_color_hex_key
+ (pSelectColorHex);
+
+ _vp_play_normal_view_set_subtitle_font_config(pNormalView);
+
+ }
+ }
+
+ VP_FREE(pSelectColorHex);
+
+ _vp_play_normal_view_on_subtitle_popup(pNormalView);
+}
+
+/**
+ *
+ * @param pColorHex
+ * @param bSetValue
+ * @param pUserData
+ */
+static void __vp_normal_subtitle_bg_color_popup_done_hex_cb(char
+ *pColorHex,
+ bool bSetValue,
+ void
+ *pUserData)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ NormalView *pNormalView = (NormalView *) pUserData;
+ char *pSelectColorHex = strdup(pColorHex);
+
+ vp_subtitle_color_destroy(pNormalView->pSubtitleBGColorPopup);
+ pNormalView->pSubtitleBGColorPopup = NULL;
+ pNormalView->bIsPopupShow = FALSE;
+
+ if (bSetValue) {
+ VideoLogInfo("pSelectColorHex =%s", pSelectColorHex);
+ if (pSelectColorHex != NULL) {
+ vp_play_subtitle_set_bg_color(pNormalView->pSubtitle,
+ pSelectColorHex);
+
+ vp_play_preference_set_subtitle_bg_color_hex_key
+ (pSelectColorHex);
+
+ _vp_play_normal_view_set_subtitle_font_config(pNormalView);
+
+ }
+ }
+
+ VP_FREE(pSelectColorHex);
+
+ _vp_play_normal_view_on_subtitle_popup(pNormalView);
+}
+
+/**
+ *
+ * @param pColorHex
+ * @param bSetValue
+ * @param pUserData
+ */
+static void __vp_normal_subtitle_caption_win_color_popup_done_hex_cb(char
+ *pColorHex,
+ bool
+ bSetValue,
+ void
+ *pUserData)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ NormalView *pNormalView = (NormalView *) pUserData;
+ char *pSelectColorHex = strdup(pColorHex);
+
+ vp_subtitle_color_destroy(pNormalView->pSubtitleCaptionWinColorPopup);
+ pNormalView->pSubtitleCaptionWinColorPopup = NULL;
+ pNormalView->bIsPopupShow = FALSE;
+
+ if (bSetValue) {
+ VideoLogInfo("pSelectColorHex =%s", pSelectColorHex);
+ if (pSelectColorHex != NULL) {
+ vp_play_preference_set_subtitle_caption_win_color_hex_key
+ (pSelectColorHex);
+ vp_play_subtitle_set_caption_win_color(pNormalView->pSubtitle,
+ TRUE);
+ }
+ }
+
+ VP_FREE(pSelectColorHex);
+
+ _vp_play_normal_view_on_subtitle_popup(pNormalView);
+}
+
+#endif
+
+/**
+ *
+ * @param nType
+ * @param bPause
+ * @param pUserData
+ */
+static void __vp_normal_subtitle_track_popup_close_cb(int nType,
+ bool bPause,
+ void *pUserData)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ NormalView *pNormalView = (NormalView *) pUserData;
+
+ vp_subtitle_track_destroy(pNormalView->pSubtitleTrackHandle);
+ pNormalView->pSubtitleTrackHandle = NULL;
+ pNormalView->bIsPopupShow = FALSE;
+
+ if (nType >= 0) {
+
+ pNormalView->nDefaultSubtitleTrackIndex = nType;
+#ifndef _SUBTITLE_MULTI_LANGUAGE
+ vp_mm_player_set_subtitle_track(pNormalView->pPlayerHandle,
+ pNormalView->
+ nDefaultSubtitleTrackIndex);
+#endif
+ _vp_play_normal_view_on_subtitle_popup(pNormalView);
+
+ } else {
+ _vp_play_normal_view_on_subtitle_popup(pNormalView);
+ }
+
+}
+
+
+/**
+ *
+ * @param nType
+ * @param bPause
+ * @param pUserData
+ */
+static void __vp_normal_detail_popup_close_cb(int nType, bool bPause,
+ void *pUserData)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ NormalView *pNormalView = (NormalView *) pUserData;
+ PlayView *pPlayView = pNormalView->pPlayView;
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ }
+
+ if (_vp_is_current_focus_available() != 0) {
+ VideoLogInfo("Cannot acquire focus. Setting video to pause state");
+ pNormalView->bManualPause = TRUE;
+ }
+
+ if (pNormalView->bManualPause == FALSE) {
+ if (!vp_mm_player_play(pNormalView->pPlayerHandle)) {
+ VideoLogWarning("resume Fail");
+ }
+ if (pPlayView && pPlayView->win_minicon) {
+ vp_minicontroller_update_control(pPlayView);
+ }
+ if (pPlayView && pPlayView->win_lockmini) {
+ vp_lockscreenmini_update_control(pPlayView);
+ }
+ _vp_play_normal_view_set_play_state(pNormalView);
+ _vp_play_normal_view_on_capture_mode(pNormalView);
+ }
+
+ vp_detail_destroy(pNormalView->pDetailHandle);
+ pNormalView->pDetailHandle = NULL;
+ pNormalView->bIsPopupShow = FALSE;
+
+ if (bPause) {
+ if (!vp_mm_player_pause(pNormalView->pPlayerHandle)) {
+ VideoLogWarning("Pause Fail");
+ }
+ if (pPlayView && pPlayView->win_minicon) {
+ vp_minicontroller_update_control(pPlayView);
+ }
+ if (pPlayView && pPlayView->win_lockmini) {
+ vp_lockscreenmini_update_control(pPlayView);
+ }
+ _vp_play_normal_view_set_play_state(pNormalView);
+ _vp_play_normal_view_on_capture_mode(pNormalView);
+ } else {
+ _vp_play_normal_view_create_layout_hide_timer(pNormalView);
+ }
+
+}
+
+
+/**
+ *
+ * @param pUserData
+ * @param pEventInfo
+ * @return
+ */
+static Evas_Event_Flags __vp_normal_gesture_n_tab_start_cb(void *pUserData,
+ void
+ *pEventInfo)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return EVAS_EVENT_FLAG_NONE;
+ }
+
+ if (!pEventInfo) {
+ VideoLogError("pEventInfo is NULL");
+ return EVAS_EVENT_FLAG_NONE;
+ }
+
+ return EVAS_EVENT_FLAG_NONE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pEventInfo
+ * @return
+ */
+static Evas_Event_Flags __vp_normal_gesture_n_tab_end_cb(void *pUserData,
+ void *pEventInfo)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return EVAS_EVENT_FLAG_NONE;
+ }
+
+ if (!pEventInfo) {
+ VideoLogError("pEventInfo is NULL");
+ return EVAS_EVENT_FLAG_NONE;
+ }
+
+ Elm_Gesture_Taps_Info *p = (Elm_Gesture_Taps_Info *) pEventInfo;
+ NormalView *pNormalView = (NormalView *) pUserData;
+ VideoLogInfo("gesture tab = %d", p->n);
+
+ if (p->n == 1) {
+ if (pNormalView->pVolumeHandle) {
+ bool bIsRealize = FALSE;
+
+ if (!vp_play_volume_is_realize
+ (pNormalView->pVolumeHandle, &bIsRealize)) {
+ VideoLogWarning("vp_play_volume_is_realize is fail");
+ }
+
+ if (bIsRealize) {
+ if (!vp_play_volume_unrealize(pNormalView->pVolumeHandle)) {
+ VideoLogWarning("vp_play_volume_unrealize is fail");
+ }
+ }
+ }
+
+ if (pNormalView->bShowLayout) {
+ _vp_play_normal_view_hide_layout(pNormalView, FALSE);
+ } else {
+ _vp_play_normal_view_show_layout(pNormalView);
+ }
+ }
+
+ return EVAS_EVENT_FLAG_NONE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pEventInfo
+ * @return
+ */
+static Evas_Event_Flags __vp_normal_gesture_n_tab_abort_cb(void *pUserData,
+ void
+ *pEventInfo)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return EVAS_EVENT_FLAG_NONE;
+ }
+
+ if (!pEventInfo) {
+ VideoLogError("pEventInfo is NULL");
+ return EVAS_EVENT_FLAG_NONE;
+ }
+
+
+ return EVAS_EVENT_FLAG_NONE;
+}
+
+#ifdef ENABLE_VOLUME_BRIGHTNESS_POPUP
+static void __vp_normal_volume_job_cb(void *pUserData)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ NormalView *pNormalView = (NormalView *) pUserData;
+
+ if (pNormalView->bIsActive == FALSE) {
+ VideoLogError("Not Active mode");
+ return;
+ }
+ if (!pNormalView->pVolumePopupHandle) {
+ if (!pNormalView->pPlayView) {
+ VideoLogError("pNormalView->pPlayView is NULL");
+ return;
+ }
+
+ Evas_Object *pParent = pNormalView->pPlayView->pWin;
+ pNormalView->pVolumePopupHandle =
+ vp_play_volume_popup_create(pParent);
+ if (!pNormalView->pVolumePopupHandle) {
+ VideoLogError("pNormalView->pVolumePopupHandle is NULL");
+ return;
+ }
+ }
+
+ bool bIsRealize = FALSE;
+
+ if (!vp_play_volume_popup_is_realize
+ (pNormalView->pVolumePopupHandle, &bIsRealize)) {
+ VideoLogWarning("vp_play_volume_popup_is_realize is fail");
+ return;
+ }
+ if (bIsRealize == FALSE) {
+ bool bLandscape = FALSE;
+
+ if (pNormalView->nRotate == VIDEO_PLAY_ROTATE_90
+ || pNormalView->nRotate == VIDEO_PLAY_ROTATE_270) {
+ bLandscape = TRUE;
+ }
+
+ if (!vp_play_volume_popup_set_landscape_mode
+ (pNormalView->pVolumePopupHandle, bLandscape)) {
+ VideoLogWarning
+ ("vp_play_volume_popup_set_landscape_mode is fail");
+ }
+
+ if (!vp_play_volume_popup_realize(pNormalView->pVolumePopupHandle)) {
+ VideoLogWarning("vp_play_volume_popup_realize is fail");
+ }
+ }
+ if (pNormalView->bMomentumIncrease) {
+ int nMaxVal = 0;
+ if (!vp_play_volume_popup_set_value
+ (pNormalView->pVolumePopupHandle,
+ pNormalView->nMomentDefaultVal +
+ pNormalView->nMomentWeight)) {
+ VideoLogWarning("vp_play_volume_popup_set_value is fail");
+ }
+
+ if (vp_play_volume_popup_get_max_value(&nMaxVal)) {
+ if (pNormalView->nMomentDefaultVal +
+ pNormalView->nMomentWeight >= nMaxVal) {
+ pNormalView->nGestureStartPosY =
+ pNormalView->nGestureOldPosY;
+ pNormalView->nMomentDefaultVal = nMaxVal;
+ }
+ }
+ } else {
+ if (!vp_play_volume_popup_set_value
+ (pNormalView->pVolumePopupHandle,
+ pNormalView->nMomentDefaultVal -
+ pNormalView->nMomentWeight)) {
+ VideoLogWarning("vp_play_volume_popup_set_value is fail");
+ }
+
+ if (pNormalView->nMomentDefaultVal - pNormalView->nMomentWeight <=
+ 0) {
+ pNormalView->nGestureStartPosY = pNormalView->nGestureOldPosY;
+ pNormalView->nMomentDefaultVal = 0;
+ }
+ }
+ //vp_play_volume_update_value(pNormalView->pVolumeHandle);
+ _vp_play_normal_view_set_volume_state(pNormalView);
+
+ VP_EVAS_JOB_DEL(pNormalView->pVolumeJob);
+
+}
+
+static void __vp_normal_brightness_job_cb(void *pUserData)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ NormalView *pNormalView = (NormalView *) pUserData;
+
+ if (pNormalView->bIsActive == FALSE) {
+ VideoLogError("Not Active mode");
+ return;
+ }
+ if (!pNormalView->pBrightnessHandle) {
+ if (!pNormalView->pPlayView) {
+ VideoLogError("pNormalView->pPlayView is NULL");
+ return;
+ }
+
+ Evas_Object *pParent = pNormalView->pPlayView->pWin;
+ pNormalView->pBrightnessHandle =
+ vp_play_brightness_create(pParent);
+ if (!pNormalView->pBrightnessHandle) {
+ VideoLogError("pNormalView->pBrightnessHandle is NULL");
+ return;
+ }
+ }
+
+ bool bIsRealize = FALSE;
+
+ if (!vp_play_brightness_is_realize
+ (pNormalView->pBrightnessHandle, &bIsRealize)) {
+ VideoLogWarning("vp_play_brightness_is_realize is fail");
+ return;
+ }
+ if (bIsRealize == FALSE) {
+ bool bLandscape = FALSE;
+
+ if (pNormalView->nRotate == VIDEO_PLAY_ROTATE_90
+ || pNormalView->nRotate == VIDEO_PLAY_ROTATE_270) {
+ bLandscape = TRUE;
+ }
+
+ if (!vp_play_brightness_set_landscape_mode
+ (pNormalView->pBrightnessHandle, bLandscape)) {
+ VideoLogWarning
+ ("vp_play_brightness_set_landscape_mode is fail");
+ }
+
+ if (!vp_play_brightness_realize(pNormalView->pBrightnessHandle)) {
+ VideoLogWarning("vp_play_brightness_realize is fail");
+ }
+ }
+
+ if (pNormalView->bMomentumIncrease) {
+ int nMaxVal = 0;
+ if (!vp_play_brightness_set_value
+ (pNormalView->pBrightnessHandle,
+ pNormalView->nMomentDefaultVal +
+ pNormalView->nMomentWeight)) {
+ VideoLogWarning("vp_play_brightness_set_value is fail");
+ }
+
+ if (vp_play_brightness_get_max_value(&nMaxVal)) {
+ if (pNormalView->nMomentDefaultVal +
+ pNormalView->nMomentWeight >= nMaxVal) {
+ pNormalView->nGestureStartPosY =
+ pNormalView->nGestureOldPosY;
+ pNormalView->nMomentDefaultVal = nMaxVal;
+ }
+ }
+ } else {
+ int nMinVal = 0;
+ if (!vp_play_brightness_set_value
+ (pNormalView->pBrightnessHandle,
+ pNormalView->nMomentDefaultVal -
+ pNormalView->nMomentWeight)) {
+ VideoLogWarning("vp_play_brightness_set_value is fail");
+ }
+
+ if (vp_play_brightness_get_min_value(&nMinVal)) {
+ if (pNormalView->nMomentDefaultVal -
+ pNormalView->nMomentWeight <= nMinVal) {
+ pNormalView->nGestureStartPosY =
+ pNormalView->nGestureOldPosY;
+ pNormalView->nMomentDefaultVal = nMinVal;
+ }
+ }
+ }
+ VP_EVAS_JOB_DEL(pNormalView->pBrightnessJob);
+
+}
+#endif
+
+#ifdef ENABLE_VOLUME_BRIGHTNESS_POPUP
+static Eina_Bool __vp_normal_momentum_press_timer_cb(void *pUserData)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return EINA_FALSE;
+ }
+
+ NormalView *pNormalView = (NormalView *) pUserData;
+
+#ifdef SUBTITLE_K_FEATURE
+ if (pNormalView->bSubtitleDown) {
+ VideoLogError("Skip for subtitle down");
+ return EINA_FALSE;
+ }
+#endif
+
+ bool bVolumeMode = TRUE;
+
+ if (pNormalView->nGestureStartPosX < (pNormalView->nWindowWidth / 2)) {
+ bVolumeMode = FALSE;
+ }
+
+ if (bVolumeMode) {
+ VP_EVAS_JOB_DEL(pNormalView->pVolumeJob);
+ pNormalView->pVolumeJob =
+ ecore_job_add(__vp_normal_volume_job_cb, (void *) pNormalView);
+ } else {
+ VP_EVAS_JOB_DEL(pNormalView->pBrightnessJob);
+ pNormalView->pBrightnessJob =
+ ecore_job_add(__vp_normal_brightness_job_cb,
+ (void *) pNormalView);
+ }
+
+ return EINA_FALSE;
+}
+#endif
+
+/**
+ *
+ * @param pUserData
+ * @param pEventInfo
+ * @return
+ */
+static Evas_Event_Flags __vp_normal_gesture_momentum_start_cb(void
+ *pUserData,
+ void
+ *pEventInfo)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return EVAS_EVENT_FLAG_NONE;
+ }
+
+ if (!pEventInfo) {
+ VideoLogError("pEventInfo is NULL");
+ return EVAS_EVENT_FLAG_NONE;
+ }
+
+ Elm_Gesture_Momentum_Info *p =
+ (Elm_Gesture_Momentum_Info *) pEventInfo;
+ NormalView *pNormalView = (NormalView *) pUserData;
+ if (pNormalView->bLockScreen) {
+ return EVAS_EVENT_FLAG_NONE;
+ }
+#ifdef SUBTITLE_K_FEATURE
+ if (pNormalView->pSubtitleMoveTimer || pNormalView->bSubtitleDown) {
+ VideoLogWarning("Longpress subtitle");
+ return EVAS_EVENT_FLAG_NONE;
+ }
+#endif
+ pNormalView->nGestureOldPosY = p->y1;
+ pNormalView->nGestureStartPosY = p->y1;
+
+ int nWidth, nHeight;
+ bool bLandscape = FALSE;
+
+ if (pNormalView->nRotate == VIDEO_PLAY_ROTATE_90
+ || pNormalView->nRotate == VIDEO_PLAY_ROTATE_270) {
+ bLandscape = TRUE;
+ }
+ elm_win_screen_size_get(pNormalView->pPlayView->pWin, NULL, NULL,
+ &nWidth, &nHeight);
+ if (bLandscape) {
+ pNormalView->nWindowWidth = nHeight;
+ pNormalView->nWindowHeight = nWidth;
+ } else {
+
+ pNormalView->nWindowWidth = nWidth;
+ pNormalView->nWindowHeight = nHeight;
+ }
+
+ if (pNormalView->bZoomEnable == FALSE) {
+#ifdef ENABLE_VOLUME_BRIGHTNESS_POPUP
+ bool bVolumeMode = TRUE;
+ int nMaxVal = 0;
+ int nMinVal = 0;
+
+ pNormalView->nGestureStartPosX = p->x1;
+ pNormalView->nMomentWeight = 0;
+
+ if (p->x1 < (pNormalView->nWindowWidth / 2)) {
+ bVolumeMode = FALSE;
+ }
+
+ bool bIsVolumeRealize = FALSE;
+
+ if (pNormalView->pVolumeHandle) {
+ vp_play_volume_is_realize(pNormalView->pVolumeHandle,
+ &bIsVolumeRealize);
+ }
+
+ if (bVolumeMode && bIsVolumeRealize) {
+ if (pNormalView->pVolumePopupHandle) {
+ if (!vp_play_volume_popup_unrealize
+ (pNormalView->pVolumePopupHandle)) {
+ VideoLogWarning
+ ("vp_play_volume_popup_unrealize is fail");
+ }
+ }
+ return EVAS_EVENT_FLAG_NONE;
+ }
+
+
+ if (bVolumeMode) {
+ if (!vp_play_volume_popup_get_value
+ (&pNormalView->nMomentDefaultVal)) {
+ VideoLogError("vp_play_volume_popup_get_value is fail");
+ }
+ if (!vp_play_volume_popup_get_max_value(&nMaxVal)) {
+ VideoLogError
+ ("vp_play_volume_popup_get_max_value is fail");
+ }
+ } else {
+
+ if (!vp_play_brightness_get_value
+ (&pNormalView->nMomentDefaultVal)) {
+ VideoLogError("vp_play_brightness_get_value is fail");
+ }
+ if (!vp_play_brightness_get_max_value(&nMaxVal)) {
+ VideoLogError("vp_play_brightness_get_max_value is fail");
+ }
+ if (!vp_play_brightness_get_min_value(&nMinVal)) {
+ VideoLogError("vp_play_brightness_get_min_value is fail");
+ }
+ }
+
+ VP_EVAS_TIMER_DEL(pNormalView->pMomentTimer);
+ pNormalView->pMomentTimer = NULL;
+
+ pNormalView->pMomentTimer =
+ ecore_timer_add(VP_NORMAL_MOMENTUM_PRESS_TIMER_INTERVAL,
+ __vp_normal_momentum_press_timer_cb,
+ (void *) pNormalView);
+
+ if (nMaxVal <= 0) {
+ nMaxVal = 1;
+ }
+ pNormalView->nMomentStep =
+ (pNormalView->nWindowHeight / 2) / (nMaxVal - nMinVal);
+#endif
+ } else {
+ pNormalView->nGestureStartPosX = p->x2;
+ pNormalView->nGestureStartPosY = p->y2;
+ }
+
+ return EVAS_EVENT_FLAG_ON_HOLD;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pEventInfo
+ * @return
+ */
+static Evas_Event_Flags __vp_normal_gesture_momentum_move_cb(void
+ *pUserData,
+ void
+ *pEventInfo)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return EVAS_EVENT_FLAG_NONE;
+ }
+
+ if (!pEventInfo) {
+ VideoLogError("pEventInfo is NULL");
+ return EVAS_EVENT_FLAG_NONE;
+ }
+
+ Elm_Gesture_Momentum_Info *p =
+ (Elm_Gesture_Momentum_Info *) pEventInfo;
+ NormalView *pNormalView = (NormalView *) pUserData;
+
+#ifdef SUBTITLE_K_FEATURE
+ if (pNormalView->pSubtitleMoveTimer || pNormalView->bSubtitleDown) {
+ VideoLogWarning("Longpress subtitle");
+ return EVAS_EVENT_FLAG_NONE;
+ }
+#endif
+
+ if (pNormalView->bLockScreen) {
+ VideoLogError("Skip for lock mode");
+ _vp_play_normal_view_show_layout(pNormalView);
+ return EVAS_EVENT_FLAG_NONE;
+ }
+
+ if (p->n != 1) {
+ return EVAS_EVENT_FLAG_NONE;
+ }
+
+ if (pNormalView->bZoomEnable == FALSE) {
+#ifdef ENABLE_VOLUME_BRIGHTNESS_POPUP
+ if (!pNormalView->pMomentTimer || pNormalView->bLockScreen) {
+ return EVAS_EVENT_FLAG_NONE;
+ }
+
+ if (pNormalView->bShowLayout) {
+ _vp_play_normal_view_hide_layout(pNormalView, FALSE);
+ }
+
+ int nDiff = 0;
+ bool bVolumeMode = TRUE;
+ if (pNormalView->nMomentStep <= 0) {
+ pNormalView->nMomentStep = 1;
+ }
+
+ if (p->x1 < (pNormalView->nWindowWidth / 2)) {
+ bVolumeMode = FALSE;
+ }
+
+ bool bIsVolumeRealize = FALSE;
+
+ if (pNormalView->pVolumeHandle) {
+ vp_play_volume_is_realize(pNormalView->pVolumeHandle,
+ &bIsVolumeRealize);
+ }
+
+ if (bVolumeMode && bIsVolumeRealize) {
+ if (pNormalView->pVolumePopupHandle) {
+ if (!vp_play_volume_popup_unrealize
+ (pNormalView->pVolumePopupHandle)) {
+ VideoLogWarning
+ ("vp_play_volume_popup_unrealize is fail");
+ }
+ }
+ return EVAS_EVENT_FLAG_NONE;
+ }
+
+ if (pNormalView->nGestureStartPosY < p->y2) {
+ pNormalView->bMomentumIncrease = FALSE;
+ nDiff = p->y2 - pNormalView->nGestureStartPosY;
+ } else {
+ pNormalView->bMomentumIncrease = TRUE;
+ nDiff = pNormalView->nGestureStartPosY - p->y2;
+ }
+
+ pNormalView->nGestureOldPosY = p->y2;
+ pNormalView->nMomentWeight = nDiff / pNormalView->nMomentStep;
+
+ if (bVolumeMode) {
+ VP_EVAS_JOB_DEL(pNormalView->pVolumeJob);
+ pNormalView->pVolumeJob =
+ ecore_job_add(__vp_normal_volume_job_cb,
+ (void *) pNormalView);
+ } else {
+ VP_EVAS_JOB_DEL(pNormalView->pBrightnessJob);
+ pNormalView->pBrightnessJob =
+ ecore_job_add(__vp_normal_brightness_job_cb,
+ (void *) pNormalView);
+ }
+#endif
+ } else {
+ int nDiffX = 0;
+ int nDiffY = 0;
+ int nWidth = 0;
+ int nHeight = 0;
+ double fX = 0.0;
+ double fY = 0.0;
+
+ nDiffX = p->x2 - pNormalView->nGestureStartPosX;
+ nDiffY = p->y2 - pNormalView->nGestureStartPosY;
+
+ vp_zoom_guide_get_move_position(pNormalView->pZoomGuide, &fX, &fY);
+ Evas_Coord_Rectangle rtSrc = { 0, };
+ Evas_Coord_Rectangle rtDst = { 0, };
+ Evas_Coord_Rectangle rtResult = { 0, };
+
+ elm_win_screen_size_get(pNormalView->pPlayView->pWin, NULL, NULL,
+ &nWidth, &nHeight);
+
+ if (pNormalView->nRotate == VIDEO_PLAY_ROTATE_90
+ || pNormalView->nRotate == VIDEO_PLAY_ROTATE_270) {
+ rtDst.w = nHeight;
+ rtDst.h = nWidth;
+ } else {
+ rtDst.w = nWidth;
+ rtDst.h = nHeight;
+ }
+ vp_mm_player_get_resolution(pNormalView->pPlayerHandle, &(rtSrc.w),
+ &(rtSrc.h));
+
+ vp_play_util_calculator_position(rtSrc, rtDst, &rtResult,
+ pNormalView->nDisplayMode);
+
+ fX -= (double) nDiffX / rtResult.w;
+ fY -= (double) nDiffY / rtResult.h;
+
+ pNormalView->nGestureStartPosX = p->x2;
+ pNormalView->nGestureStartPosY = p->y2;
+
+ vp_zoom_guide_set_move_position(pNormalView->pZoomGuide, fX, fY);
+ vp_zoom_guide_get_real_position(pNormalView->pZoomGuide, &fX, &fY);
+
+ vp_mm_player_set_zoom(pNormalView->pPlayerHandle,
+ pNormalView->fZoomValue,
+ (int) (fX * rtSrc.w), (int) (fY * rtSrc.h));
+ }
+
+ return EVAS_EVENT_FLAG_ON_HOLD;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pEventInfo
+ * @return
+ */
+static Evas_Event_Flags __vp_normal_gesture_momentum_end_cb(void
+ *pUserData,
+ void
+ *pEventInfo)
+{
+ VideoLogInfo("");
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return EVAS_EVENT_FLAG_NONE;
+ }
+
+ if (!pEventInfo) {
+ VideoLogError("pEventInfo is NULL");
+ return EVAS_EVENT_FLAG_NONE;
+ }
+
+ NormalView *pNormalView = (NormalView *) pUserData;
+
+ if (pNormalView->bLockScreen) {
+ VideoLogError("Skip for lock mode");
+ return EVAS_EVENT_FLAG_NONE;
+ }
+#ifdef SUBTITLE_K_FEATURE
+ if (pNormalView->pSubtitleMoveTimer || pNormalView->bSubtitleDown) {
+ VideoLogWarning("Longpress subtitle");
+ return EVAS_EVENT_FLAG_NONE;
+ }
+#endif
+
+ if (pNormalView->bZoomEnable == FALSE) {
+#ifdef ENABLE_VOLUME_BRIGHTNESS_POPUP
+ VP_EVAS_TIMER_DEL(pNormalView->pMomentTimer);
+ pNormalView->pMomentTimer = NULL;
+
+ VP_EVAS_JOB_DEL(pNormalView->pVolumeJob);
+ VP_EVAS_JOB_DEL(pNormalView->pBrightnessJob);
+
+ if (!vp_play_brightness_unrealize(pNormalView->pBrightnessHandle)) {
+ VideoLogWarning("vp_play_brightness_unrealize is fail");
+ }
+
+ if (!vp_play_volume_popup_unrealize
+ (pNormalView->pVolumePopupHandle)) {
+ VideoLogWarning("vp_play_volume_popup_unrealize is fail");
+ }
+
+ _vp_play_normal_view_create_layout_hide_timer(pNormalView);
+#endif
+ }
+
+ return EVAS_EVENT_FLAG_ON_HOLD;
+}
+
+#ifdef ENABLE_GESTURE_ZOOM_FEATURE
+static Evas_Event_Flags __vp_normal_gesture_zoom_start_cb(void *pUserData,
+ void *pEventInfo)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return EVAS_EVENT_FLAG_NONE;
+ }
+
+ if (!pEventInfo) {
+ VideoLogError("pEventInfo is NULL");
+ return EVAS_EVENT_FLAG_NONE;
+ }
+
+
+ NormalView *pNormalView = (NormalView *) pUserData;
+
+ if (pNormalView->bLockScreen) {
+ VideoLogError("Skip for lock mode");
+ _vp_play_normal_view_show_layout(pNormalView);
+ return EVAS_EVENT_FLAG_NONE;
+ }
+
+ Elm_Gesture_Zoom_Info *pZoomInfo =
+ (Elm_Gesture_Zoom_Info *) pEventInfo;
+
+ pNormalView->fActiveZoom = pZoomInfo->zoom;
+
+ pNormalView->nZoomPosX = pZoomInfo->x;
+ pNormalView->nZoomPosY = pZoomInfo->y;
+
+ pNormalView->nPrevZoomPosX = 0;
+ pNormalView->nPrevZoomPosY = 0;
+ pNormalView->fPrevZoomValue = 0;
+
+ return EVAS_EVENT_FLAG_ON_HOLD;
+}
+
+static Evas_Event_Flags __vp_normal_gesture_zoom_move_cb(void *pUserData,
+ void *pEventInfo)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return EVAS_EVENT_FLAG_NONE;
+ }
+
+ if (!pEventInfo) {
+ VideoLogError("pEventInfo is NULL");
+ return EVAS_EVENT_FLAG_NONE;
+ }
+
+ NormalView *pNormalView = (NormalView *) pUserData;
+ Elm_Gesture_Zoom_Info *pZoomInfo =
+ (Elm_Gesture_Zoom_Info *) pEventInfo;
+
+ if (pNormalView->bLockScreen) {
+ VideoLogError("Skip for lock mode");
+ return EVAS_EVENT_FLAG_NONE;
+ }
+
+ double fVal = pZoomInfo->zoom / pNormalView->fActiveZoom;
+
+ pNormalView->fActiveZoom = pZoomInfo->zoom;
+
+ pNormalView->fZoomValue = pNormalView->fZoomValue * fVal;
+
+ if (pNormalView->fZoomValue < 1.0) {
+ pNormalView->fZoomValue = 1.0;
+ } else if (pNormalView->fZoomValue > 3.0) {
+ pNormalView->fZoomValue = 3.0;
+ }
+ // event filtering
+ bool bLandscape = FALSE;
+ if (pNormalView->nRotate == VIDEO_PLAY_ROTATE_90
+ || pNormalView->nRotate == VIDEO_PLAY_ROTATE_270) {
+ bLandscape = TRUE;
+ }
+ if (bLandscape
+ && fabs(pNormalView->fPrevZoomValue - pNormalView->fZoomValue) <
+ 0.05) {
+ return EVAS_EVENT_FLAG_ON_HOLD;
+ }
+
+ _vp_play_normal_view_on_zoom_mode(pNormalView);
+
+ double fX = 0.0;
+ double fY = 0.0;
+ int nSrcW = 0;
+ int nSrcH = 0;
+
+ vp_mm_player_get_resolution(pNormalView->pPlayerHandle, &nSrcW,
+ &nSrcH);
+ vp_zoom_guide_get_real_position(pNormalView->pZoomGuide, &fX, &fY);
+
+ // event filtering
+ if ((pNormalView->fZoomValue > 1.0 && pNormalView->fZoomValue < 3.0) &&
+ (pNormalView->nPrevZoomPosX == (int) (fX * nSrcW))
+ && (pNormalView->nPrevZoomPosY == (int) (fY * nSrcH))) {
+ return EVAS_EVENT_FLAG_ON_HOLD;
+ }
+
+ pNormalView->nPrevZoomPosX = (int) (fX * nSrcW);
+ pNormalView->nPrevZoomPosY = (int) (fY * nSrcH);
+ pNormalView->fPrevZoomValue = pNormalView->fZoomValue;
+
+ vp_mm_player_set_zoom(pNormalView->pPlayerHandle,
+ pNormalView->fZoomValue, (int) (fX * nSrcW),
+ (int) (fY * nSrcH));
+
+ return EVAS_EVENT_FLAG_ON_HOLD;
+}
+
+static Evas_Event_Flags __vp_normal_gesture_zoom_end_cb(void *pUserData,
+ void *pEventInfo)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return EVAS_EVENT_FLAG_NONE;
+ }
+
+ if (!pEventInfo) {
+ VideoLogError("pEventInfo is NULL");
+ return EVAS_EVENT_FLAG_NONE;
+ }
+
+ NormalView *pNormalView = (NormalView *) pUserData;
+
+ Elm_Gesture_Zoom_Info *pZoomInfo =
+ (Elm_Gesture_Zoom_Info *) pEventInfo;
+
+ if (pNormalView->bLockScreen) {
+ VideoLogError("Skip for lock mode");
+ return EVAS_EVENT_FLAG_NONE;
+ }
+
+ double fVal = pZoomInfo->zoom / pNormalView->fActiveZoom;
+
+ pNormalView->fActiveZoom = pZoomInfo->zoom;
+
+ pNormalView->fZoomValue = pNormalView->fZoomValue * fVal;
+
+ if (pNormalView->fZoomValue < 1.0) {
+ pNormalView->fZoomValue = 1.0;
+ } else if (pNormalView->fZoomValue > 3.0) {
+ pNormalView->fZoomValue = 3.0;
+ }
+
+ _vp_play_normal_view_on_zoom_mode(pNormalView);
+
+ pNormalView->nPrevZoomPosX = 0;
+ pNormalView->nPrevZoomPosY = 0;
+ pNormalView->fPrevZoomValue = 0;
+
+ return EVAS_EVENT_FLAG_ON_HOLD;
+}
+
+static Evas_Event_Flags __vp_normal_gesture_zoom_abort_cb(void *pUserData,
+ void *pEventInfo)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return EVAS_EVENT_FLAG_NONE;
+ }
+
+ if (!pEventInfo) {
+ VideoLogError("pEventInfo is NULL");
+ return EVAS_EVENT_FLAG_NONE;
+ }
+
+ return EVAS_EVENT_FLAG_ON_HOLD;
+}
+#endif
+
+/**
+ *
+ * @param pUserData
+ * @param pEventInfo
+ * @return
+ */
+static Evas_Event_Flags __vp_normal_gesture_double_click_start_cb(void
+ *pUserData,
+ void
+ *pEventInfo)
+{
+ VideoLogInfo("");
+
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return EVAS_EVENT_FLAG_NONE;
+ }
+
+ if (!pEventInfo) {
+ VideoLogError("pEventInfo is NULL");
+ return EVAS_EVENT_FLAG_NONE;
+ }
+
+ return EVAS_EVENT_FLAG_ON_HOLD;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pEventInfo
+ * @return
+ */
+static Evas_Event_Flags __vp_normal_gesture_double_click_end_cb(void
+ *pUserData,
+ void
+ *pEventInfo)
+{
+ VideoLogInfo("");
+
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return EVAS_EVENT_FLAG_NONE;
+ }
+
+ if (!pEventInfo) {
+ VideoLogError("pEventInfo is NULL");
+ return EVAS_EVENT_FLAG_NONE;
+ }
+
+ NormalView *pNormalView = (NormalView *) pUserData;
+ PlayView *pPlayView = pNormalView->pPlayView;
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ }
+ Elm_Gesture_Taps_Info *pEvent = (Elm_Gesture_Taps_Info *) pEventInfo;
+
+ if (pNormalView->bZoomEnable && pEvent->n == 1) {
+ pNormalView->fZoomValue = 1.0;
+#ifdef ENABLE_GESTURE_ZOOM_FEATURE
+ _vp_play_normal_view_on_zoom_mode(pNormalView);
+#endif
+ } else if (pEvent->n == 1) {
+
+ if (pNormalView->bLockScreen) {
+ _vp_play_normal_view_show_layout(pNormalView);
+ } else {
+ vp_mm_player_state_t nState = VP_MM_PLAYER_STATE_NONE;
+ if (!vp_mm_player_get_state
+ (pNormalView->pPlayerHandle, &nState)) {
+ VideoLogWarning("vp_mm_player_get_state is fail");
+ }
+ if (nState == VP_MM_PLAYER_STATE_PLAYING) {
+ vp_mm_player_pause(pNormalView->pPlayerHandle);
+ if (pPlayView && pPlayView->win_minicon) {
+ vp_minicontroller_update_control(pPlayView);
+ }
+ if (pPlayView && pPlayView->win_lockmini) {
+ vp_lockscreenmini_update_control(pPlayView);
+ }
+ pNormalView->bManualPause = TRUE;
+ } else {
+ bool bSpeedMode = FALSE;
+
+ if (pNormalView->pSpeedTimer) {
+ bSpeedMode = TRUE;
+ }
+ VP_EVAS_TIMER_DEL(pNormalView->pHideTimer);
+ VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+ VP_EVAS_TIMER_DEL(pNormalView->pSpeedTimer);
+
+ elm_object_signal_emit(pNormalView->pMainLayout,
+ VP_NORMAL_SIGNAL_MAIN_SPEED_HIDE,
+ "*");
+
+ if (bSpeedMode) {
+ int nPosition = 0;
+ if (vp_mm_player_get_position
+ (pNormalView->pPlayerHandle, &nPosition)) {
+ VideoLogDebug("nPosition[%d], curPosition[%d]",
+ nPosition,
+ pNormalView->nCurPosition);
+
+ if (vp_mm_player_set_position
+ (pNormalView->pPlayerHandle,
+ pNormalView->nCurPosition)) {
+ pNormalView->bSeekComplete = FALSE;
+ pNormalView->nWaitPos = -1;
+ } else {
+ pNormalView->nWaitPos = nPosition;
+ }
+ }
+ }
+
+ pNormalView->nSpeedValue = 1;
+ pNormalView->bSpeedDown = TRUE;
+
+ if (_vp_is_current_focus_available() != 0) {
+ VideoLogInfo
+ ("Cannot acquire focus. Setting video to pause state");
+ vp_play_util_status_noti_show
+ (VP_PLAY_STRING_UNABLE_TO_PLAY);
+ pNormalView->bManualPause = TRUE;
+ }
+
+ if (pNormalView->bManualPause == FALSE) {
+ if (!vp_mm_player_play(pNormalView->pPlayerHandle)) {
+ VideoLogWarning("Resume Fail");
+ }
+ if (pPlayView && pPlayView->win_minicon) {
+ vp_minicontroller_update_control(pPlayView);
+ }
+ if (pPlayView && pPlayView->win_lockmini) {
+ vp_lockscreenmini_update_control(pPlayView);
+ }
+ }
+ VP_EVAS_IDLER_DEL(pNormalView->pControlIdler);
+ pNormalView->pControlIdler =
+ ecore_idler_add(__vp_normal_control_idler_cb,
+ (void *) pNormalView);
+
+ pNormalView->bManualPause = FALSE;
+ }
+ _vp_play_normal_view_set_play_state(pNormalView);
+ _vp_play_normal_view_on_capture_mode(pNormalView);
+ }
+
+ }
+
+ return EVAS_EVENT_FLAG_ON_HOLD;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pEventInfo
+ * @return
+ */
+static Evas_Event_Flags __vp_normal_gesture_double_click_abort_cb(void
+ *pUserData,
+ void
+ *pEventInfo)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return EVAS_EVENT_FLAG_NONE;
+ }
+
+ if (!pEventInfo) {
+ VideoLogError("pEventInfo is NULL");
+ return EVAS_EVENT_FLAG_NONE;
+ }
+
+ return EVAS_EVENT_FLAG_ON_HOLD;
+}
+
+#ifdef FLICK_JUMP
+static Evas_Event_Flags __vp_normal_gesture_flick_start_cb(void *pUserData,
+ void
+ *event_info)
+{
+ Elm_Gesture_Line_Info *pEvent = (Elm_Gesture_Line_Info *) event_info;
+
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return EINA_FALSE;
+ }
+
+ VideoLogWarning("flick started");
+ NormalView *pNormalView = (NormalView *) pUserData;
+
+ if (pNormalView->bFlickWaiting == TRUE) {
+ VideoLogWarning("seek is not complete. ignore signal");
+ return EVAS_EVENT_FLAG_NONE;
+ }
+
+ if (!pNormalView->pFlickJumpSeek) {
+ pNormalView->nFlickPressX1 = pEvent->momentum.x1;
+ pNormalView->nFlickPressY1 = pEvent->momentum.y1;
+ }
+
+ return EVAS_EVENT_FLAG_NONE;
+}
+
+static Eina_Bool __vp_normal_flickjump_seek(void *pUserData, bool rewind)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return EINA_FALSE;
+ }
+ VideoLogWarning("");
+
+ NormalView *pNormalView = (NormalView *) pUserData;
+
+ int nSetPosition = 0;
+ int nCurPosition = 0;
+
+ if (!vp_mm_player_get_position
+ (pNormalView->pPlayerHandle, &nCurPosition)) {
+ VideoLogError("vp_mm_player_get_position is fail");
+ return EINA_TRUE;
+ }
+
+ if (rewind) {
+ if (nCurPosition - 5000 < 0) {
+ nSetPosition = 0;
+ } else {
+ nSetPosition = nCurPosition - 5000;
+ }
+ } else {
+ if (nCurPosition + 5000 > pNormalView->nDuration) {
+ nSetPosition = pNormalView->nDuration;
+ } else {
+ nSetPosition = nCurPosition + 5000;
+ }
+ }
+
+ pNormalView->bFlickWaiting = TRUE;
+
+ if (vp_mm_player_set_position
+ (pNormalView->pPlayerHandle, nSetPosition)) {
+ pNormalView->nWaitPos = -1;
+ pNormalView->bSeekComplete = FALSE;
+ pNormalView->nCurPosition = nSetPosition;
+ vp_play_progressbar_set_position(pNormalView->pProgressbar,
+ nSetPosition);
+ }
+
+ return EINA_TRUE;
+}
+
+static void __vp_normal_flickjump_seek_del_cb(void *pUserData, Evas * e,
+ Evas_Object * obj,
+ void *pEvent)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+ evas_object_event_callback_del(obj, EVAS_CALLBACK_DEL,
+ __vp_normal_flickjump_seek_del_cb);
+ NormalView *pNormalView = (NormalView *) pUserData;
+ pNormalView->pFlickJumpSeek = NULL;
+}
+
+static void __vp_normal_flickjump_layout_position(void *pUserData)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ NormalView *pNormalView = (NormalView *) pUserData;
+ if (pNormalView->pFlickJumpSeek) {
+ int nFlickSeekImageWidth = 80;
+ int nFlickSeekImageHeight = 60;
+ int nFlickSeekLeftMargin = 8;
+ int nScreenWidth = 0;
+ int nScreenHeight = 0;
+ if (pNormalView->nRotate == VIDEO_PLAY_ROTATE_90
+ || pNormalView->nRotate == VIDEO_PLAY_ROTATE_270) {
+ nScreenWidth = 1280;
+ nScreenHeight = 720;
+ } else {
+ nScreenWidth = 720;
+ nScreenHeight = 1280;
+ }
+ if (pNormalView->bFlickRewind == FALSE) {
+ evas_object_move(pNormalView->pFlickJumpSeek,
+ nScreenWidth - (nFlickSeekLeftMargin +
+ nFlickSeekImageWidth / 2),
+ (nScreenHeight -
+ nFlickSeekImageHeight / 2) / 2);
+ } else {
+ evas_object_move(pNormalView->pFlickJumpSeek,
+ nFlickSeekLeftMargin +
+ nFlickSeekImageWidth / 2,
+ (nScreenHeight -
+ nFlickSeekImageHeight / 2) / 2);
+ }
+ }
+}
+
+static void __vp_normal_gesture_flick_animation_done_cb(void *data,
+ Evas_Object * obj,
+ const char
+ *emission,
+ const char *source)
+{
+ if (!data) {
+ VideoLogError("data is NULL");
+ return;
+ }
+ NormalView *pNormalView = (NormalView *) data;
+
+ if (emission) {
+ if (!g_strcmp0(emission, "rew_animation_done")
+ || !g_strcmp0(emission, "ff_animation_done")) {
+ if (pNormalView->bFlickWaiting == TRUE) {
+ if (pNormalView->bFlickRewind == TRUE) {
+ if (pNormalView->pFlickJumpSeek) {
+ elm_object_signal_emit(pNormalView->pFlickJumpSeek,
+ VP_NORMAL_SIGNAL_FLICKJUMP_FF,
+ "*");
+ }
+ } else {
+ if (pNormalView->pFlickJumpSeek) {
+ elm_object_signal_emit(pNormalView->pFlickJumpSeek,
+ VP_NORMAL_SIGNAL_FLICKJUMP_REW,
+ "*");
+ }
+ }
+ } else {
+ VP_EVAS_DEL(pNormalView->pFlickJumpSeek);
+ }
+ }
+ }
+}
+
+static Evas_Event_Flags __vp_normal_gesture_flick_end_cb(void *pUserData,
+ void *event_info)
+{
+ Elm_Gesture_Line_Info *pEvent = (Elm_Gesture_Line_Info *) event_info;
+
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return EVAS_EVENT_FLAG_NONE;
+ }
+
+ VideoLogWarning("gesture flick end");
+ NormalView *pNormalView = (NormalView *) pUserData;
+
+ if (pNormalView->bLockScreen) {
+ VideoLogError("Skip for lock mode");
+ return EVAS_EVENT_FLAG_NONE;
+ }
+
+ if (pNormalView->pFlickJumpSeek || pNormalView->nFlickPressX1 == 0
+ || pNormalView->nFlickPressY1 == 0) {
+ VideoLogWarning("seek is not complete. ignore signal");
+ return EVAS_EVENT_FLAG_NONE;
+ }
+
+ if (pNormalView->fZoomValue > 1.0) {
+ VideoLogWarning("Current zoom level : [%f]",
+ pNormalView->fZoomValue);
+ return EVAS_EVENT_FLAG_NONE;
+ }
+
+ if (pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_WEB &&
+ pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_PREVIEW &&
+ pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_MESSAGE &&
+ pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_EMAIL &&
+ pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_MULTI_PATH) {
+ VideoLogWarning
+ ("pNormalView->nLaunchingType : [%d]. not support gesture flick in this mode",
+ pNormalView->nLaunchingType);
+ return EVAS_EVENT_FLAG_NONE;
+ }
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VP_PLAY_NORMAL_MAIN_EDJ);
+ free(path);
+ pNormalView->pFlickJumpSeek = elm_layout_add(pNormalView->pMainLayout);
+ elm_layout_file_set(pNormalView->pFlickJumpSeek, edj_path,
+ VP_PLAY_EDJ_GROUP_FLICKJUMP_SEEK);
+ evas_object_size_hint_weight_set(pNormalView->pFlickJumpSeek,
+ EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(pNormalView->pFlickJumpSeek,
+ EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_event_callback_add(pNormalView->pFlickJumpSeek,
+ EVAS_CALLBACK_DEL,
+ __vp_normal_flickjump_seek_del_cb,
+ (void *) pNormalView);
+ edje_object_signal_callback_add(_EDJ(pNormalView->pFlickJumpSeek), "*",
+ "*",
+ __vp_normal_gesture_flick_animation_done_cb,
+ (void *) pNormalView);
+ evas_object_hide(pNormalView->pFlickJumpSeek);
+
+ if (pNormalView->nFlickPressX1 > pEvent->momentum.x2) {
+ pNormalView->bFlickRewind = TRUE;
+ elm_object_signal_emit(pNormalView->pFlickJumpSeek,
+ VP_NORMAL_SIGNAL_FLICKJUMP_FF, "*");
+ __vp_normal_flickjump_layout_position(pNormalView);
+ __vp_normal_flickjump_seek(pNormalView, TRUE);
+ } else if (pNormalView->nFlickPressX1 < pEvent->momentum.x2) {
+ pNormalView->bFlickRewind = FALSE;
+ elm_object_signal_emit(pNormalView->pFlickJumpSeek,
+ VP_NORMAL_SIGNAL_FLICKJUMP_REW, "*");
+ __vp_normal_flickjump_layout_position(pNormalView);
+ __vp_normal_flickjump_seek(pNormalView, FALSE);
+ }
+
+ char *szTxt = NULL;
+ char *szPdSECS = VP_PLAY_STRING_PD_SECS;
+ szTxt = g_strdup_printf(szPdSECS, 5);
+
+ if (pNormalView->bFlickRewind == FALSE) {
+ elm_object_part_text_set(pNormalView->pFlickJumpSeek,
+ VP_PLAY_PART_FLICKJUMP_SEEK_REW_TEXT,
+ szTxt);
+ } else {
+ elm_object_part_text_set(pNormalView->pFlickJumpSeek,
+ VP_PLAY_PART_FLICKJUMP_SEEK_FF_TEXT,
+ szTxt);
+ }
+ VP_FREE(szTxt);
+
+ evas_object_show(pNormalView->pFlickJumpSeek);
+
+ pNormalView->nFlickPressX1 = 0;
+ pNormalView->nFlickPressY1 = 0;
+
+
+ return EVAS_EVENT_FLAG_NONE;
+}
+
+static Evas_Event_Flags __vp_normal_gesture_flick_abort_cb(void *pUserData,
+ void
+ *event_info)
+{
+ VideoLogWarning("flick abort");
+
+ NormalView *pNormalView = (NormalView *) pUserData;
+
+ if (pNormalView->bFlickWaiting == FALSE) {
+ pNormalView->nFlickPressX1 = 0;
+ pNormalView->nFlickPressY1 = 0;
+ }
+
+ return EVAS_EVENT_FLAG_NONE;
+}
+#endif // FLICK_JUMP
+
+#ifdef K_FEATURE_MICROSEEK
+static void __vp_normal_progress_microseek_textlayout_del_cb(void
+ *pUserData,
+ Evas * e,
+ Evas_Object *
+ obj,
+ void *pEvent)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+ evas_object_event_callback_del(obj, EVAS_CALLBACK_DEL,
+ __vp_normal_progress_microseek_textlayout_del_cb);
+ NormalView *pNormalView = (NormalView *) pUserData;
+ pNormalView->pMicroSeekTextLayout = NULL;
+}
+
+static void __vp_normal_progress_microseek_imagelayout_del_cb(void
+ *pUserData,
+ Evas * e,
+ Evas_Object *
+ obj,
+ void *pEvent)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+ evas_object_event_callback_del(obj, EVAS_CALLBACK_DEL,
+ __vp_normal_progress_microseek_imagelayout_del_cb);
+ NormalView *pNormalView = (NormalView *) pUserData;
+ pNormalView->pMicroSeekImageLayout = NULL;
+}
+
+#endif
+
+/**
+ *
+ * @param pUserData
+ * @param e
+ * @param pObj
+ * @param pEvent
+ */
+static void __vp_normal_progress_mouse_down_cb(void *pUserData, Evas * e,
+ Evas_Object * pObj,
+ void *pEvent)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+ NormalView *pNormalView = (NormalView *) pUserData;
+ PlayView *pPlayView = pNormalView->pPlayView;
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return;
+ }
+ VideoLogWarning("Mouse Down");
+
+ if (pNormalView->bIsRealize == FALSE) {
+ VideoLogWarning("Skip for not realized");
+ return;
+ }
+
+ if (pNormalView->bHLSMode) {
+ VideoLogWarning("Skip for HLS");
+ return;
+ }
+
+ Evas_Event_Mouse_Down *pMouseDownEvent =
+ (Evas_Event_Mouse_Down *) pEvent;
+
+ double dRatio =
+ _vp_play_normal_view_get_mouse_pos_ratio(pNormalView->
+ pProgressEvent,
+ pMouseDownEvent->canvas.
+ x);
+ elm_object_signal_emit(pNormalView->pProgressEvent,
+ VP_NORMAL_SIGNAL_PROGRESS_PRESS, "*");
+
+ VP_EVAS_TIMER_DEL(pNormalView->pProgressTimer);
+ pNormalView->pProgressTimer = NULL;
+
+ int nCurPos = dRatio * pNormalView->nDuration;
+
+#ifdef K_FEATURE_MICROSEEK
+ pNormalView->nPrevCanvasX = (double) pMouseDownEvent->canvas.x;
+ pNormalView->nPrevPositionX = (double) pNormalView->nPrevCanvasX;
+
+ VP_EVAS_DEL(pNormalView->pMicroSeekTextLayout);
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VP_PLAY_NORMAL_MAIN_EDJ);
+ free(path);
+ pNormalView->pMicroSeekTextLayout =
+ elm_layout_add(pNormalView->pMainLayout);
+ elm_layout_file_set(pNormalView->pMicroSeekTextLayout, edj_path,
+ VP_PLAY_EDJ_GROUP_MICROSEEK_TEXT);
+ evas_object_size_hint_weight_set(pNormalView->pMicroSeekTextLayout,
+ EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(pNormalView->pMicroSeekTextLayout,
+ EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_event_callback_add(pNormalView->pMicroSeekTextLayout,
+ EVAS_CALLBACK_DEL,
+ __vp_normal_progress_microseek_textlayout_del_cb,
+ (void *) pNormalView);
+ evas_object_hide(pNormalView->pMicroSeekTextLayout);
+
+ pNormalView->pMicroSeekImageLayout =
+ elm_layout_add(pNormalView->pMainLayout);
+ elm_layout_file_set(pNormalView->pMicroSeekImageLayout, edj_path,
+ VP_PLAY_EDJ_GROUP_MICROSEEK_IMAGE);
+ evas_object_size_hint_weight_set(pNormalView->pMicroSeekImageLayout,
+ EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(pNormalView->pMicroSeekImageLayout,
+ EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_event_callback_add(pNormalView->pMicroSeekImageLayout,
+ EVAS_CALLBACK_DEL,
+ __vp_normal_progress_microseek_imagelayout_del_cb,
+ (void *) pNormalView);
+ evas_object_hide(pNormalView->pMicroSeekImageLayout);
+
+#endif
+
+ vp_play_progressbar_set_position(pNormalView->pProgressbar, nCurPos);
+
+ pNormalView->bProgressDown = TRUE;
+
+ if (vp_play_util_check_streaming(pNormalView->szMediaURL)) {
+ if (pNormalView->bManualPause == FALSE) {
+ vp_mm_player_state_t nState = VP_MM_PLAYER_STATE_NONE;
+ if (!vp_mm_player_get_state
+ (pNormalView->pPlayerHandle, &nState)) {
+ VideoLogWarning("vp_mm_player_get_state is fail");
+ }
+ if (nState == VP_MM_PLAYER_STATE_PLAYING) {
+ vp_mm_player_pause(pNormalView->pPlayerHandle);
+ if (pPlayView->win_minicon) {
+ vp_minicontroller_update_control(pPlayView);
+ }
+ if (pPlayView->win_lockmini) {
+ vp_lockscreenmini_update_control(pPlayView);
+ }
+ _vp_play_normal_view_set_play_state(pNormalView);
+ _vp_play_normal_view_on_capture_mode(pNormalView);
+ }
+ }
+
+ return;
+ } else {
+ if (pNormalView->bManualPause == FALSE) {
+ vp_mm_player_state_t nState = VP_MM_PLAYER_STATE_NONE;
+ if (!vp_mm_player_get_state
+ (pNormalView->pPlayerHandle, &nState)) {
+ VideoLogWarning("vp_mm_player_get_state is fail");
+ }
+ VideoLogInfo("nState:%d", nState);
+ if (nState == VP_MM_PLAYER_STATE_PLAYING) {
+ vp_mm_player_pause(pNormalView->pPlayerHandle);
+ if (pPlayView && pPlayView->win_minicon) {
+ vp_minicontroller_update_control(pPlayView);
+ }
+ if (pPlayView && pPlayView->win_lockmini) {
+ vp_lockscreenmini_update_control(pPlayView);
+ }
+ }
+ }
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param e
+ * @param pObj
+ * @param pEvent
+ */
+static void __vp_normal_progress_mouse_up_cb(void *pUserData, Evas * e,
+ Evas_Object * pObj,
+ void *pEvent)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+ NormalView *pNormalView = (NormalView *) pUserData;
+#ifdef K_FEATURE_MICROSEEK
+#else
+ Evas_Event_Mouse_Up *pMouseUpEvent = (Evas_Event_Mouse_Up *) pEvent;
+#endif
+
+ VideoLogWarning("Mouse Up");
+ if (pNormalView->bIsRealize == FALSE
+ || pNormalView->bProgressDown == FALSE) {
+ VideoLogWarning("Skip for not realized or prgress down");
+ return;
+ }
+ if (pNormalView->bHLSMode) {
+ VideoLogWarning("Skip for HLS");
+ return;
+ }
+
+ PlayView *pPlayView = pNormalView->pPlayView;
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return;
+ }
+#ifdef K_FEATURE_MICROSEEK
+ double dRatio =
+ _vp_play_normal_view_get_mouse_pos_ratio(pNormalView->
+ pProgressEvent,
+ pNormalView->
+ nPrevPositionX);
+#else
+ double dRatio =
+ _vp_play_normal_view_get_mouse_pos_ratio(pNormalView->
+ pProgressEvent,
+ pMouseUpEvent->canvas.x);
+#endif
+ elm_object_signal_emit(pNormalView->pProgressEvent,
+ VP_NORMAL_SIGNAL_PROGRESS_UNPRESS, "*");
+ if (fabs(dRatio - 1.0) < 1.0e-6) {
+ VideoLogWarning("It is the end of the video!");
+ __vp_normal_completed_cb(pNormalView);
+ return;
+ }
+
+ int nCurPos = dRatio * pNormalView->nDuration;
+
+#ifdef K_FEATURE_MICROSEEK
+ VP_EVAS_DEL(pNormalView->pMicroSeekTextLayout);
+ VP_EVAS_DEL(pNormalView->pMicroSeekImageLayout);
+
+ pNormalView->nPrevCanvasX = 0.0;
+ pNormalView->nPrevPositionX = 0.0;
+#endif
+
+ vp_play_progressbar_set_position(pNormalView->pProgressbar, nCurPos);
+
+ pNormalView->bProgressDown = FALSE;
+
+ if (vp_play_util_check_streaming(pNormalView->szMediaURL)) {
+ if (pNormalView->bSeekComplete == FALSE) {
+ pNormalView->nWaitPos = nCurPos;
+ VideoLogWarning("== REAL SEEK SET == [%d]",
+ pNormalView->nWaitPos);
+ } else {
+ VideoLogWarning("== REAL SEEK == [%d]", nCurPos);
+
+ pNormalView->bBufferingComplete = TRUE;
+
+ if (vp_mm_player_set_position
+ (pNormalView->pPlayerHandle, nCurPos)) {
+ pNormalView->nWaitPos = -1;
+ pNormalView->bSeekComplete = FALSE;
+ if (pNormalView->pLoadingAni) {
+ VP_EVAS_TIMER_DEL(pNormalView->pHideTimer);
+ VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+ }
+ } else {
+ _vp_play_normal_view_update_progress_value(pNormalView);
+ }
+ }
+
+ return;
+ }
+
+ if (pNormalView->bSeekComplete == FALSE) {
+ pNormalView->nWaitPos = nCurPos;
+ VideoLogWarning("== REAL SEEK SET == [%d]", pNormalView->nWaitPos);
+ } else {
+ VideoLogWarning("== REAL SEEK == [%d]", nCurPos);
+ if (vp_mm_player_set_position(pNormalView->pPlayerHandle, nCurPos)) {
+ pNormalView->nWaitPos = -1;
+ pNormalView->bSeekComplete = FALSE;
+ if (pNormalView->pLoadingAni) {
+ VP_EVAS_TIMER_DEL(pNormalView->pHideTimer);
+ VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+ }
+ } else {
+ _vp_play_normal_view_update_progress_value(pNormalView);
+ }
+ }
+
+}
+
+/**
+ *
+ * @param pUserData
+ * @param e
+ * @param pObj
+ * @param pEvent
+ */
+static void __vp_normal_progress_del_cb(void *pUserData, Evas * e,
+ Evas_Object * pObj, void *pEvent)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+ VideoLogError("pNormalView->pProgressEvent is free");
+ NormalView *pNormalView = (NormalView *) pUserData;
+ pNormalView->pProgressEvent = NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param e
+ * @param pObj
+ * @param pEvent
+ */
+static void __vp_normal_progress_mouse_move_cb(void *pUserData, Evas * e,
+ Evas_Object * pObj,
+ void *pEvent)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ NormalView *pNormalView = (NormalView *) pUserData;
+
+ Evas_Event_Mouse_Move *pMouseMoveEvent =
+ (Evas_Event_Mouse_Move *) pEvent;
+ if (pNormalView->bHLSMode) {
+ VideoLogWarning("Skip for HLS");
+ return;
+ }
+
+ if (pNormalView->bIsRealize == FALSE
+ || pNormalView->bProgressDown == FALSE) {
+ VideoLogWarning("Skip for not realized or prgress down");
+ return;
+ }
+
+ if (pNormalView->bLockScreen) {
+ VideoLogError("Skip for lock mode");
+ __vp_normal_progress_mouse_up_cb(pUserData, NULL, NULL, pEvent);
+ return;
+ }
+
+ if (pNormalView->bProgressDown == FALSE
+ || pNormalView->bIsRealize == FALSE) {
+ VideoLogWarning("Skip for not realized or prgress down");
+ return;
+ }
+#ifdef K_FEATURE_MICROSEEK
+ bool bLandscape = FALSE;
+ int nScreenWidth = 0;
+ int nScreenHeight = 0;
+ int nControllerHeight = 0;
+ int nSeek_Height = 0;
+ if (pNormalView->nRotate == VIDEO_PLAY_ROTATE_90
+ || pNormalView->nRotate == VIDEO_PLAY_ROTATE_270) {
+ bLandscape = TRUE;
+ nScreenWidth = 1280;
+ nScreenHeight = 720;
+ nControllerHeight = 180;
+ nSeek_Height =
+ (VP_NORMAL_MICROSEEK_TEXT_HEIGHT +
+ ((6 + 70 + 40) * elm_config_scale_get()));
+ } else {
+ nScreenWidth = 720;
+ nScreenHeight = 1280;
+ nControllerHeight = 293;
+ nSeek_Height =
+ (VP_NORMAL_MICROSEEK_TEXT_HEIGHT +
+ ((6 + 70 + 20) * elm_config_scale_get()));
+ }
+
+ double dDistance = 0;
+ SeekLevel Level = SEEK_LEVEL_NORMAL;
+ dDistance =
+ (pMouseMoveEvent->cur.canvas.x - pNormalView->nPrevCanvasX);
+
+ if (pMouseMoveEvent->cur.canvas.y >
+ (nScreenHeight - nControllerHeight)) {
+ Level = SEEK_LEVEL_NORMAL;
+ } else if (pMouseMoveEvent->cur.canvas.y >
+ (nScreenHeight - nControllerHeight - nSeek_Height)) {
+ Level = SEEK_LEVEL_HALF;
+ dDistance = dDistance / 2;
+ } else {
+ Level = SEEK_LEVEL_QUARTER;
+ dDistance = dDistance / 4;
+ }
+
+ pNormalView->nPrevCanvasX = (double) pMouseMoveEvent->cur.canvas.x;
+
+ // Calc position
+ if (Level == SEEK_LEVEL_NORMAL) {
+ pNormalView->nPrevPositionX =
+ (double) pMouseMoveEvent->cur.canvas.x;
+ } else {
+ pNormalView->nPrevPositionX =
+ pNormalView->nPrevPositionX + dDistance;
+ }
+
+
+ if (Level == SEEK_LEVEL_NORMAL) {
+ if (pNormalView->pMicroSeekTextLayout) {
+ elm_object_signal_emit(pNormalView->pMicroSeekTextLayout,
+ VP_NORMAL_SIGNAL_MICROSEEK_TEXT_HIDE,
+ "*");
+ }
+ if (pNormalView->pMicroSeekImageLayout) {
+ elm_object_signal_emit(pNormalView->pMicroSeekImageLayout,
+ VP_NORMAL_SIGNAL_MICROSEEK_IMAGE_HIDE,
+ "*");
+ }
+ } else {
+ Evas_Coord nTextWidth = -1, nTextHeight = -1;
+ // Text Layout move
+ if (pNormalView->pMicroSeekTextLayout) {
+ char *szTxt = NULL;
+ char *szPsSpeed = VP_PLAY_STRING_SCRUBBING_AT_PSX_SPEED;
+
+ if (Level == SEEK_LEVEL_HALF) {
+ szTxt =
+ g_strdup_printf(szPsSpeed, VP_NORMAL_SZ_HALF_SPEED);
+ } else if (Level == SEEK_LEVEL_QUARTER) {
+ szTxt =
+ g_strdup_printf(szPsSpeed, VP_NORMAL_SZ_QUARTER_SPEED);
+ }
+
+ elm_object_part_text_set(pNormalView->pMicroSeekTextLayout,
+ VP_NORMAL_SIGNAL_MICROSEEK_SPEED_TEXT,
+ szTxt);
+ edje_object_size_min_restricted_calc(_EDJ
+ (pNormalView->
+ pMicroSeekTextLayout),
+ &nTextWidth, &nTextHeight,
+ nTextWidth, nTextHeight);
+ evas_object_resize(pNormalView->pMicroSeekTextLayout,
+ nTextWidth, nTextHeight);
+
+ int nTextPositionX =
+ (int) pNormalView->nPrevPositionX - nTextWidth / 2;
+
+ if (nTextPositionX < 0) {
+ nTextPositionX = 0;
+ } else if (nTextPositionX + nTextWidth > nScreenWidth) {
+ nTextPositionX = nScreenWidth - nTextWidth;
+ }
+
+ if (Level == SEEK_LEVEL_HALF) {
+ evas_object_move(pNormalView->pMicroSeekTextLayout,
+ nTextPositionX,
+ nScreenHeight - nControllerHeight -
+ nSeek_Height);
+ } else if (Level == SEEK_LEVEL_QUARTER) {
+ evas_object_move(pNormalView->pMicroSeekTextLayout,
+ nTextPositionX,
+ nScreenHeight - nControllerHeight -
+ nSeek_Height * 2);
+ }
+ elm_object_signal_emit(pNormalView->pMicroSeekTextLayout,
+ VP_NORMAL_SIGNAL_MICROSEEK_TEXT_SHOW,
+ "*");
+ evas_object_show(pNormalView->pMicroSeekTextLayout);
+
+ VP_FREE(szTxt);
+
+ // Image Layout move
+ if (pNormalView->pMicroSeekImageLayout) {
+ Evas_Coord nImageWidth = -1, nImageHeight = -1;
+ edje_object_size_min_restricted_calc(_EDJ
+ (pNormalView->
+ pMicroSeekImageLayout),
+ &nImageWidth,
+ &nImageHeight,
+ nImageWidth,
+ nImageHeight);
+ evas_object_resize(pNormalView->pMicroSeekImageLayout,
+ nImageWidth, nImageHeight);
+
+ int nImagePositionX =
+ (int) pNormalView->nPrevPositionX - nImageWidth / 2;
+
+ int nImageLeftPadding = 0;
+ int nImageRightPadding = 0;
+ if (bLandscape) {
+ nImageLeftPadding = 28 + 112;
+ nImageRightPadding = 28 + 162;
+ } else {
+ nImageLeftPadding = 6;
+ nImageRightPadding = 26;
+ }
+
+ if (nImagePositionX < nImageLeftPadding) {
+ nImagePositionX = nImageLeftPadding;
+ } else if (nImagePositionX >
+ nScreenWidth - nImageRightPadding) {
+ nImagePositionX = nScreenWidth - nImageRightPadding;
+ }
+
+ if (Level == SEEK_LEVEL_HALF) {
+ evas_object_move(pNormalView->pMicroSeekImageLayout,
+ nImagePositionX,
+ nScreenHeight - nControllerHeight -
+ nSeek_Height + nTextHeight + 6);
+ } else if (Level == SEEK_LEVEL_QUARTER) {
+ evas_object_move(pNormalView->pMicroSeekImageLayout,
+ nImagePositionX,
+ nScreenHeight - nControllerHeight -
+ nSeek_Height * 2 + nTextHeight + 6);
+ }
+ elm_object_signal_emit(pNormalView->pMicroSeekImageLayout,
+ VP_NORMAL_SIGNAL_MICROSEEK_IMAGE_SHOW,
+ "*");
+ evas_object_show(pNormalView->pMicroSeekImageLayout);
+ }
+ }
+ }
+
+ double dRatio =
+ _vp_play_normal_view_get_mouse_pos_ratio(pNormalView->
+ pProgressEvent,
+ (int) pNormalView->
+ nPrevPositionX,
+ bLandscape);
+
+#else
+
+ double dRatio =
+ _vp_play_normal_view_get_mouse_pos_ratio(pNormalView->
+ pProgressEvent,
+ pMouseMoveEvent->cur.
+ canvas.x);
+#endif
+ int nCurPos = dRatio * pNormalView->nDuration;
+
+ vp_play_progressbar_set_position(pNormalView->pProgressbar, nCurPos);
+
+ if (pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_WEB ||
+ pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_MULTI_PATH) {
+ return;
+ }
+
+ if (pNormalView->bSeekComplete == FALSE) {
+ pNormalView->nWaitPos = nCurPos;
+ } else {
+ VideoLogWarning("== I FRMAE SEEK == [%d]", nCurPos);
+ if (vp_mm_player_set_position_by_key_frame
+ (pNormalView->pPlayerHandle, nCurPos)) {
+ pNormalView->nWaitPos = -1;
+ pNormalView->bSeekComplete = FALSE;
+ }
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param e
+ * @param pObj
+ * @param pEvent
+ */
+static void __vp_normal_focus_key_down_cb(void *pUserData, Evas * e,
+ Evas_Object * pObj, void *pEvent)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ NormalView *pNormalView = (NormalView *) pUserData;
+
+ PlayView *pPlayView = pNormalView->pPlayView;
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return;
+ }
+
+ Evas_Event_Key_Down *ev = pEvent;
+
+ if (!ev) {
+ return;
+ }
+ if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) {
+ return;
+ }
+
+ VideoLogInfo("KEY: %s", ev->keyname);
+
+ if (!strcmp(ev->keyname, "Left")) {
+ if (pNormalView->bKeySpeed == FALSE) {
+ vp_play_normal_view_ff_rew_keyboard_longpress_event_cb
+ (pPlayView->pNormalView, FALSE, FALSE);
+ pNormalView->bKeySpeed = TRUE;
+ }
+ } else if (!strcmp(ev->keyname, "Right")) {
+ if (pNormalView->bKeySpeed == FALSE) {
+ vp_play_normal_view_ff_rew_keyboard_longpress_event_cb
+ (pPlayView->pNormalView, FALSE, TRUE);
+ pNormalView->bKeySpeed = TRUE;
+ }
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param e
+ * @param pObj
+ * @param pEvent
+ */
+static void __vp_normal_focus_key_up_cb(void *pUserData, Evas * e,
+ Evas_Object * pObj, void *pEvent)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ NormalView *pNormalView = (NormalView *) pUserData;
+
+ PlayView *pPlayView = pNormalView->pPlayView;
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return;
+ }
+
+ Evas_Event_Key_Down *ev = pEvent;
+
+ if (!ev) {
+ return;
+ }
+ if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) {
+ return;
+ }
+
+ VideoLogInfo("KEY: %s", ev->keyname);
+
+ if (!strcmp(ev->keyname, "Left")) {
+ if (pNormalView->bKeySpeed == TRUE) {
+ vp_play_normal_view_ff_rew_keyboard_longpress_event_cb
+ (pPlayView->pNormalView, TRUE, FALSE);
+ pNormalView->bKeySpeed = FALSE;
+ }
+ } else if (!strcmp(ev->keyname, "Right")) {
+ if (pNormalView->bKeySpeed == TRUE) {
+ vp_play_normal_view_ff_rew_keyboard_longpress_event_cb
+ (pPlayView->pNormalView, TRUE, TRUE);
+ pNormalView->bKeySpeed = FALSE;
+ }
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @return
+ */
+bool vp_normal_rotate_icon_timer_cb(void *pUserData)
+{
+ VideoLogError("vp_normal_rotate_icon_timer_cb");
+ _vp_play_normal_view_hide_layout(curr_Handle, TRUE);
+ return TRUE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @return
+ */
+static Eina_Bool __vp_normal_hide_layout_timer_cb(void *pUserData)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return EINA_FALSE;
+ }
+ VideoLogWarning("");
+
+ NormalView *pNormalView = (NormalView *) pUserData;
+
+ pNormalView->pHideTimer = NULL;
+ VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+ vp_mm_player_state_t nState = VP_MM_PLAYER_STATE_NONE;
+
+ if (!vp_mm_player_get_state(pNormalView->pPlayerHandle, &nState)) {
+ VideoLogWarning("vp_mm_player_get_state is fail");
+ }
+
+ if ((nState != VP_MM_PLAYER_STATE_PLAYING)
+ && (nState != VP_MM_PLAYER_STATE_PAUSED)) {
+ return EINA_FALSE;
+ }
+
+ _vp_play_normal_view_hide_layout(pNormalView, FALSE);
+
+ return EINA_FALSE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @return
+ */
+static Eina_Bool __vp_normal_hide_layout_finish_timer_cb(void *pUserData)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return EINA_FALSE;
+ }
+ VideoLogWarning("");
+ NormalView *pNormalView = (NormalView *) pUserData;
+ PlayView *pPlayView = pNormalView->pPlayView;
+
+ if (pNormalView->pSubtitleTimer) {
+ VideoLogError("Skip for Subtitle");
+ return EINA_TRUE;
+ }
+
+ if (pNormalView->pVolumeJob) {
+ VideoLogError("Skip for pVolumeJob");
+ return EINA_TRUE;
+ }
+
+ if (pNormalView->pBrightnessJob) {
+ VideoLogError("Skip for pBrightnessJob");
+ return EINA_TRUE;
+ }
+
+ pNormalView->pHideFinishTimer = NULL;
+
+ if (pNormalView->pImageBufferObj == NULL &&
+ pNormalView->bIsPopupShow == FALSE &&
+ pNormalView->bIsSubtitleShow == FALSE &&
+ pPlayView->bMouseOut == FALSE &&
+ pNormalView->bVideoOnlyMode == FALSE &&
+ pNormalView->bCaptureMode == FALSE) {
+ vp_play_util_fb_visible_off(pPlayView->pWin, FALSE);
+ }
+ vp_device_set_frame_rate(40);
+
+ return EINA_FALSE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @return
+ */
+static Eina_Bool __vp_normal_subtitle_timer_cb(void *pUserData)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return EINA_FALSE;
+ }
+
+ NormalView *pNormalView = (NormalView *) pUserData;
+
+ int nPosition = 0;
+ if (!vp_mm_player_get_position(pNormalView->pPlayerHandle, &nPosition)) {
+ VideoLogError("vp_mm_player_get_position is fail");
+ }
+
+ if (nPosition > pNormalView->dSubtitleStartTime &&
+ nPosition < pNormalView->dSubtitleEndTime) {
+ return EINA_TRUE;
+ }
+
+ pNormalView->pSubtitleTimer = NULL;
+
+ vp_play_subtitle_set_text(pNormalView->pSubtitle, NULL);
+
+ return EINA_FALSE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @return
+ */
+static Eina_Bool __vp_normal_dlna_speed_timer_cb(void *pUserData)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return EINA_FALSE;
+ }
+ VideoLogWarning("");
+
+ NormalView *pNormalView = (NormalView *) pUserData;
+
+ VP_EVAS_DEL(pNormalView->pPopup);
+ pNormalView->pPopup = NULL;
+
+ PlayView *pPlayView = pNormalView->pPlayView;
+
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+
+ pNormalView->pSpeedTimer = NULL;
+ return EINA_FALSE;
+ }
+ pNormalView->bIsPopupShow = TRUE;
+
+ pNormalView->pPopup =
+ vp_popup_create(pPlayView->pWin,
+ POPUP_STYLE_DEFAULT_WITH_CANCEL_BTN, NULL,
+ VP_PLAY_STRING_UNABLE_TO_FF_REW, 0.0, NULL,
+ __vp_normal_popup_key_event_cb,
+ __vp_normal_popup_mouse_event_cb, pNormalView);
+
+ Evas_Object *pBtn = NULL;
+ pBtn = elm_button_add(pNormalView->pPopup);
+ elm_object_style_set(pBtn, "popup_button/default");
+ elm_object_domain_translatable_text_set(pBtn, VP_SYS_STR_PREFIX,
+ VP_PLAY_STRING_COM_OK_IDS);
+ elm_object_part_content_set(pNormalView->pPopup, "button1", pBtn);
+ evas_object_smart_callback_add(pBtn, "clicked",
+ __vp_normal_popup_key_event_cb,
+ (void *) pNormalView);
+ evas_object_show(pNormalView->pPopup);
+
+ pNormalView->pSpeedTimer = NULL;
+
+ return EINA_FALSE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @return
+ */
+static Eina_Bool __vp_normal_speed_timer_cb(void *pUserData)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return EINA_FALSE;
+ }
+ VideoLogWarning("");
+
+ NormalView *pNormalView = (NormalView *) pUserData;
+ PlayView *pPlayView = pNormalView->pPlayView;
+
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return EINA_TRUE;
+ }
+
+ if (pNormalView->bSpeedDown) {
+ pNormalView->nSpeedValue++;
+ }
+ //SPEED: *2, *8, *32
+ //int nSeedVal = pNormalView->nSpeedValue - (pNormalView->nSpeedValue%2);
+
+ //SPEED: *2, *4, *8, *16, *32
+ int nSeedVal = pNormalView->nSpeedValue;
+
+ int nStep = (int) pow(2.0, (double) (nSeedVal - 1));
+
+ VideoLogWarning("pNormalView->nSpeedValue : %d",
+ pNormalView->nSpeedValue);
+ if (pNormalView->nSpeedValue >= 2) {
+
+ if (pPlayView->szAutoPlay
+ && !strcmp(pPlayView->szAutoPlay, "TRUE")) {
+ pPlayView->bResetPlaySpeed = TRUE;
+ }
+
+ elm_object_signal_emit(pNormalView->pMainLayout,
+ VP_NORMAL_SIGNAL_MAIN_SPEED_SHOW, "*");
+ } else {
+ elm_object_signal_emit(pNormalView->pMainLayout,
+ VP_NORMAL_SIGNAL_MAIN_SPEED_HIDE, "*");
+ if (pNormalView->bManualPause == FALSE) {
+ vp_mm_player_state_t nState = VP_MM_PLAYER_STATE_NONE;
+ if (!vp_mm_player_get_state
+ (pNormalView->pPlayerHandle, &nState)) {
+ VideoLogWarning("vp_mm_player_get_state is fail");
+ }
+
+ if (nState != VP_MM_PLAYER_STATE_PLAYING) {
+ if (!vp_mm_player_play(pNormalView->pPlayerHandle)) {
+ VideoLogError("Pause Fail");
+ }
+ if (pPlayView && pPlayView->win_minicon) {
+ vp_minicontroller_update_control(pPlayView);
+ }
+ if (pPlayView && pPlayView->win_lockmini) {
+ vp_lockscreenmini_update_control(pPlayView);
+ }
+ _vp_play_normal_view_set_play_state(pNormalView);
+ _vp_play_normal_view_on_capture_mode(pNormalView);
+ }
+ pNormalView->pSpeedTimer = NULL;
+ }
+
+ return EINA_FALSE;
+ }
+
+ if (nStep > VP_NORMAL_SPEED_VALUE_MAX) {
+ nStep = VP_NORMAL_SPEED_VALUE_MAX;
+ }
+
+ char szTxt[5] = { 0, };
+ snprintf(szTxt, 5, "%d X", nStep);
+ elm_object_part_text_set(pNormalView->pMainLayout,
+ VP_PLAY_PART_NORMAL_SPEED_TXT, szTxt);
+
+ if (pNormalView->bSeekComplete == FALSE) {
+ VideoLogError("bSeekComplete is fail");
+ return EINA_TRUE;
+ }
+
+ if (pNormalView->nSpeedValue > 1) {
+ // during FAST FF/REW moving(player state is paused). don't allow sleep mode
+ vp_play_util_set_lock_power_key();
+ }
+
+ int nSetPosition = 0;
+ int nCurPosition = 0;
+
+ if (!vp_mm_player_get_position
+ (pNormalView->pPlayerHandle, &nCurPosition)) {
+ VideoLogError("vp_mm_player_get_position is fail");
+ return EINA_TRUE;
+ }
+
+ if (pNormalView->nDuration <= nCurPosition) {
+ VideoLogWarning("nCurPosition : %d, Duration : %d", nCurPosition,
+ pNormalView->nDuration);
+ elm_object_signal_emit(pNormalView->pMainLayout,
+ VP_NORMAL_SIGNAL_MAIN_SPEED_HIDE, "*");
+ _vp_play_normal_view_on_next_play(pNormalView, FALSE);
+ pNormalView->pSpeedTimer = NULL;
+ return EINA_FALSE;
+ }
+
+ if (nCurPosition <= 0 && pNormalView->bSpeedFF == FALSE) {
+ elm_object_signal_emit(pNormalView->pMainLayout,
+ VP_NORMAL_SIGNAL_MAIN_SPEED_HIDE, "*");
+ if (pNormalView->bManualPause == FALSE
+ && pNormalView->bSpeedDown == FALSE) {
+ vp_mm_player_state_t nState = VP_MM_PLAYER_STATE_NONE;
+ if (!vp_mm_player_get_state
+ (pNormalView->pPlayerHandle, &nState)) {
+ VideoLogWarning("vp_mm_player_get_state is fail");
+ }
+
+ if (nState != VP_MM_PLAYER_STATE_PLAYING) {
+ if (!vp_mm_player_play(pNormalView->pPlayerHandle)) {
+ VideoLogError("Pause Fail");
+ }
+ if (pPlayView->win_minicon) {
+ vp_minicontroller_update_control(pPlayView);
+ }
+ if (pPlayView->win_lockmini) {
+ vp_lockscreenmini_update_control(pPlayView);
+ }
+ _vp_play_normal_view_set_play_state(pNormalView);
+ _vp_play_normal_view_on_capture_mode(pNormalView);
+ }
+ pNormalView->pSpeedTimer = NULL;
+ return EINA_FALSE;
+ }
+
+ return EINA_TRUE;
+ }
+
+ if (pNormalView->bSpeedFF) {
+ nSetPosition = nCurPosition + (nStep * 1000);
+ } else {
+ nSetPosition = nCurPosition - (nStep * 1000);
+ }
+
+ if (pNormalView->nDuration < nSetPosition) {
+ nSetPosition = pNormalView->nDuration;
+ VP_EVAS_TIMER_DEL(pNormalView->pSpeedTimer);
+ elm_object_signal_emit(pNormalView->pMainLayout,
+ VP_NORMAL_SIGNAL_MAIN_SPEED_HIDE, "*");
+ }
+
+ if (nSetPosition < 0) {
+ nSetPosition = 0;
+ elm_object_signal_emit(pNormalView->pMainLayout,
+ VP_NORMAL_SIGNAL_MAIN_SPEED_HIDE, "*");
+ }
+ if (pNormalView->pProgressTimer) {
+ VP_EVAS_TIMER_DEL(pNormalView->pProgressTimer);
+ }
+
+ if (vp_mm_player_set_position_by_key_frame
+ (pNormalView->pPlayerHandle, nSetPosition)) {
+ pNormalView->bSeekComplete = FALSE;
+ pNormalView->nCurPosition = nSetPosition;
+ vp_play_progressbar_set_position(pNormalView->pProgressbar,
+ nSetPosition);
+ }
+
+ return EINA_TRUE;
+}
+
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param emission
+ * @param source
+ */
+static void __vp_normal_show_finish_cb(void *pUserData, Evas_Object * pObj,
+ const char *emission,
+ const char *source)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+ VideoLogWarning("");
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param emission
+ * @param source
+ */
+static void __vp_normal_hide_finish_cb(void *pUserData, Evas_Object * pObj,
+ const char *emission,
+ const char *source)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+ VideoLogWarning("");
+
+ NormalView *pNormalView = (NormalView *) pUserData;
+ PlayView *pPlayView = pNormalView->pPlayView;
+
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return;
+ }
+ if (!pPlayView->pWin) {
+ VideoLogError("pPlayView->pWin is NULL");
+ return;
+ }
+
+ VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+
+ pNormalView->pHideFinishTimer =
+ ecore_timer_add(VP_NORMAL_HIDE_LAYOUT_FINISH_TIMER_INTERVAL,
+ __vp_normal_hide_layout_finish_timer_cb,
+ (void *) pNormalView);
+
+#ifndef SUBTITLE_K_FEATURE
+ if (pNormalView->nDisplayMode != VP_MM_PLAYER_DISPLAY_FULL_SCREEN) {
+ if (pNormalView->nRotate == VIDEO_PLAY_ROTATE_NONE
+ || pNormalView->nRotate == VIDEO_PLAY_ROTATE_180) {
+ elm_object_signal_emit(pNormalView->pMainLayout,
+ VP_NORMAL_SIGNAL_MAIN_SUBTITLE_PORTRAIT,
+ "*");
+ } else {
+ elm_object_signal_emit(pNormalView->pMainLayout,
+ VP_NORMAL_SIGNAL_MAIN_SUBTITLE_HIDE,
+ "*");
+ }
+ } else {
+ elm_object_signal_emit(pNormalView->pMainLayout,
+ VP_NORMAL_SIGNAL_MAIN_SUBTITLE_HIDE, "*");
+ }
+#endif
+}
+
+
+/**
+ *
+ * @param pUserData
+ * @return
+ */
+static Eina_Bool __vp_normal_progressbar_timer_cb(void *pUserData)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return EINA_FALSE;
+ }
+
+ NormalView *pNormalView = (NormalView *) pUserData;
+
+ if (!_vp_play_normal_view_update_progress_value(pNormalView)) {
+ pNormalView->pProgressTimer = NULL;
+ return EINA_FALSE;
+ }
+
+ return EINA_TRUE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @return
+ */
+static Eina_Bool __vp_normal_lockscreen_timer_cb(void *pUserData)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return EINA_FALSE;
+ }
+
+ NormalView *pNormalView = (NormalView *) pUserData;
+
+ elm_object_signal_emit(pNormalView->pMainLayout,
+ VP_NORMAL_SIGNAL_LOCKSCREEN_HIDE, "*");
+
+ pNormalView->pLockScreenTimer = NULL;
+
+ VP_EVAS_TIMER_DEL(pNormalView->pHideTimer);
+ VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+
+ return EINA_FALSE;
+}
+
+/**
+ *
+ * @param pUserData
+ */
+static void __vp_normal_prepare_cb(void *pUserData)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+ VideoLogWarning("");
+
+ NormalView *pNormalView = (NormalView *) pUserData;
+ if (pNormalView->pPreparePipe != NULL) {
+ ecore_pipe_write(pNormalView->pPreparePipe, pNormalView,
+ sizeof(NormalView));
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ */
+static void __vp_normal_completed_cb(void *pUserData)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+ VideoLogWarning("");
+
+ NormalView *pNormalView = (NormalView *) pUserData;
+ PlayView *pPlayView = pNormalView->pPlayView;
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return;
+ }
+
+ if (pPlayView->szAutoPlay != NULL) {
+ if (!strcmp(pPlayView->szAutoPlay, "TRUE")) {
+ VideoLogError
+ ("===========================vp_is_auto_play_on is True");
+ _vp_play_normal_view_on_next_play(pNormalView, TRUE);
+ } else {
+ VideoLogError
+ ("===========================vp_is_auto_play_on is False");
+ _vp_play_normal_view_on_next_play(pNormalView, FALSE);
+ }
+ } else {
+ VideoLogError
+ ("===========================vp_is_auto_play_on is False");
+ _vp_play_normal_view_on_next_play(pNormalView, FALSE);
+ }
+
+#ifdef FLICK_JUMP
+ pNormalView->bFlickWaiting = FALSE;
+ VP_EVAS_DEL(pNormalView->pFlickJumpSeek);
+#endif
+
+ if (pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_MULTI_PATH) {
+ vp_multi_path_set_item_position(pNormalView->szMediaURL, 0,
+ pPlayView->pMultiPathList);
+ }
+
+ vp_mm_player_unrealize(pNormalView->pPlayerHandle);
+
+ if (pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_MESSAGE ||
+ pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_EMAIL ||
+ pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_PREVIEW) {
+ if (!pPlayView->pFunc) {
+ VideoLogError("pPlayView pFunc is NULL");
+ return;
+ }
+
+ if (!pPlayView->pFunc->vp_play_func_exit) {
+ VideoLogError("pPlayView exit Func is NULL");
+ return;
+ }
+ vp_device_set_screen_off(FALSE);
+ vp_play_util_set_unlock_power_key();
+
+ VideoLogWarning("== Auto Off ==");
+
+ pPlayView->pFunc->vp_play_func_exit(pPlayView);
+
+ return;
+ }
+
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pBuf
+ * @param nByte
+ */
+static void __vp_play_normal_view_seek_pipe_cb(void *pUserData, void *pBuf,
+ int nByte)
+{
+ if (!pUserData) {
+ VideoLogError("NormalView handle is NULL");
+ return;
+ }
+
+ NormalView *pNormalView = (NormalView *) pUserData;
+
+ if (pNormalView->nWaitPos >= 0) {
+ if (pNormalView->bProgressDown == TRUE) {
+ VideoLogWarning("== I-FRAME SEEK ==[%d]",
+ pNormalView->nWaitPos);
+ if (vp_mm_player_set_position_by_key_frame
+ (pNormalView->pPlayerHandle, pNormalView->nWaitPos)) {
+ pNormalView->bSeekComplete = FALSE;
+ pNormalView->nWaitPos = -1;
+ return;
+ }
+ } else {
+ VideoLogWarning("== REAL SEEK ==[%d]", pNormalView->nWaitPos);
+ if (vp_mm_player_set_position
+ (pNormalView->pPlayerHandle, pNormalView->nWaitPos)) {
+ pNormalView->bSeekComplete = FALSE;
+ pNormalView->nWaitPos = -1;
+ return;
+ }
+ }
+ pNormalView->nWaitPos = -1;
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ */
+static void __vp_normal_seek_completed_cb(void *pUserData)
+{
+ VideoLogDebug("#################START####################");
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+ NormalView *pNormalView = (NormalView *) pUserData;
+ VideoLogWarning("%d", pNormalView->nWaitPos);
+
+ PlayView *pPlayView = pNormalView->pPlayView;
+ if (!pPlayView) {
+ VideoLogError("pPlayView handle is NULL");
+ return;
+ }
+
+ if (!pPlayView->pWin) {
+ VideoLogError("pPlayView->pWin handle is NULL");
+ return;
+ }
+
+ pNormalView->bSeekComplete = TRUE;
+ vp_mm_player_set_visible(pNormalView->pPlayerHandle, TRUE);
+
+ if (vp_play_util_check_streaming(pNormalView->szMediaURL)) {
+ if (pNormalView->bBufferingComplete == FALSE) {
+ VideoLogError
+ ("Skip for buffering state : buffering complete(false) so, set StartPosition 0");
+ if (pNormalView->nStartPosition > 0) {
+ pNormalView->nStartPosition = 0;
+ pNormalView->bIsRealize = TRUE;
+ }
+ return;
+ }
+ }
+#ifdef FLICK_JUMP
+ pNormalView->bFlickWaiting = FALSE;
+#endif
+
+ if (pNormalView->pLoadingAni) {
+ _vp_play_normal_view_create_layout_hide_timer(pNormalView);
+ vp_play_loading_ani_destroy(pNormalView->pLoadingAni);
+ pNormalView->pLoadingAni = NULL;
+ }
+
+ if (pPlayView->bAVRCP) {
+ int nPosition = 0;
+ if (!vp_mm_player_get_position
+ (pNormalView->pPlayerHandle, &nPosition)) {
+ VideoLogError("vp_mm_player_get_position is fail");
+ } else {
+ vp_avrcp_noti_track_position(nPosition);
+ }
+ }
+
+ if (pNormalView->nStartPosition > 0) {
+ bool bLCDOffStatus = FALSE;
+
+ vp_play_config_get_lcd_off_state(&bLCDOffStatus);
+ if (bLCDOffStatus && (pNormalView->bVideoOnlyMode == FALSE)) {
+ VideoLogError("Invalid LCD Status");
+
+ pPlayView->pFunc->vp_play_func_exit(pPlayView);
+
+ return;
+ }
+
+ if (pNormalView->bManualPause || pNormalView->bSharepopup
+ || _vp_play_normal_view_check_during_call(pNormalView)) {
+ vp_mm_player_pause(pNormalView->pPlayerHandle);
+ } else {
+ vp_mm_player_play(pNormalView->pPlayerHandle);
+ }
+ if (pPlayView->win_minicon) {
+ vp_minicontroller_update_control(pPlayView);
+ }
+ if (pPlayView->win_lockmini) {
+ vp_lockscreenmini_update_control(pPlayView);
+ }
+
+ if (!vp_mm_player_set_subtitle_position
+ (pNormalView->pPlayerHandle,
+ pNormalView->fSubtitleSyncValue * 1000)) {
+ VideoLogError("vp_mm_player_set_subtitle_position is fail");
+ }
+
+ _vp_play_normal_view_set_play_state(pNormalView);
+ _vp_play_normal_view_on_capture_mode(pNormalView);
+ pNormalView->nStartPosition = 0;
+ pNormalView->bIsRealize = TRUE;
+
+ return;
+ }
+
+ if (pNormalView->bProgressDown == TRUE) {
+ vp_mm_player_state_t nState = VP_MM_PLAYER_STATE_NONE;
+ if (!vp_mm_player_get_state(pNormalView->pPlayerHandle, &nState)) {
+ VideoLogWarning("vp_mm_player_get_state is fail");
+ }
+ if (nState == VP_MM_PLAYER_STATE_PLAYING) {
+ vp_mm_player_pause(pNormalView->pPlayerHandle);
+ _vp_play_normal_view_set_play_state(pNormalView);
+ if (pPlayView->win_minicon) {
+ vp_minicontroller_update_control(pPlayView);
+ }
+ if (pPlayView->win_lockmini) {
+ vp_lockscreenmini_update_control(pPlayView);
+ }
+ }
+ }
+
+ if (pNormalView->bIsRealize == FALSE) {
+ pNormalView->nStartPosition = 0;
+ pNormalView->bIsRealize = TRUE;
+ vp_mm_player_play(pNormalView->pPlayerHandle);
+ if (pPlayView->win_minicon) {
+ vp_minicontroller_update_control(pPlayView);
+ }
+ if (pPlayView->win_lockmini) {
+ vp_lockscreenmini_update_control(pPlayView);
+ }
+ _vp_play_normal_view_set_play_state(pNormalView);
+ _vp_play_normal_view_on_capture_mode(pNormalView);
+ return;
+ }
+
+ if (pNormalView->nWaitPos >= 0) {
+ if (pNormalView->pSeekPipe) {
+ ecore_pipe_write(pNormalView->pSeekPipe, pNormalView,
+ sizeof(NormalView));
+ }
+ }
+
+ if (pNormalView->bManualPause == FALSE &&
+ pNormalView->bProgressDown == FALSE &&
+ !pNormalView->pSpeedTimer
+ && !_vp_play_normal_view_check_during_call(pNormalView)) {
+ vp_mm_player_play(pNormalView->pPlayerHandle);
+ if (pPlayView->win_minicon) {
+ vp_minicontroller_update_control(pPlayView);
+ }
+ if (pPlayView->win_lockmini) {
+ vp_lockscreenmini_update_control(pPlayView);
+ }
+ _vp_play_normal_view_set_play_state(pNormalView);
+ _vp_play_normal_view_on_capture_mode(pNormalView);
+ }
+ VideoLogDebug("#################END####################");
+
+}
+
+/**
+ *
+ * @param nCode
+ * @param pUserData
+ */
+static void __vp_normal_interrupted_cb(vp_mm_player_interrupt_t nCode,
+ void *pUserData)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ VideoLogWarning("== %d ==", nCode);
+
+ if (nCode == VP_MM_PLAYER_INTERRUPTED_BY_RESOURCE_CONFLICT) {
+
+ NormalView *pNormalView = (NormalView *) pUserData;
+ PlayView *pPlayView = pNormalView->pPlayView;
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return;
+ }
+
+ if (!pPlayView->pFunc) {
+ VideoLogError("pPlayView->pFunc is NULL");
+ return;
+
+ }
+ elm_exit();
+ return;
+ }
+
+}
+
+/**
+ *
+ * @param nError
+ * @param pUserData
+ */
+static void __vp_normal_error_cb(vp_mm_player_error_t nError,
+ void *pUserData)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ VideoLogWarning("Error triggered: 0x%x", nError);
+
+ NormalView *pNormalView = (NormalView *) pUserData;
+ PlayView *pPlayView = pNormalView->pPlayView;
+
+ VP_EVAS_DEL(pNormalView->pPopup);
+ pNormalView->pPopup = NULL;
+
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return;
+ }
+ Evas_Object *pParent = pPlayView->pWin;
+ switch (nError) {
+ case VP_MM_PLAYER_ERR_OUT_OF_MEMORY:
+ case VP_MM_PLAYER_ERR_INVALID_OPERATION:
+ case VP_MM_PLAYER_ERR_FILE_NO_SPACE_ON_DEVICE:
+ case VP_MM_PLAYER_ERR_INVALID_PARAMETER:
+ pNormalView->pPopup = vp_popup_create(pParent,
+ POPUP_STYLE_DEFAULT_NO_CANCEL_BTN,
+ VP_PLAY_STRING_COM_ERROR,
+ VP_PLAY_STRING_ERROR_UNABLE_PLAY,
+ 3.0,
+ __vp_normal_error_popup_time_out_cb,
+ __vp_normal_error_popup_key_event_cb,
+ __vp_normal_error_popup_mouse_event_cb,
+ pNormalView);
+ evas_object_show(pNormalView->pPopup);
+ pNormalView->bIsPopupShow = TRUE;
+
+ break;
+ case VP_MM_PLAYER_ERR_NO_SUCH_FILE:
+ pNormalView->pPopup = vp_popup_create(pParent,
+ POPUP_STYLE_DEFAULT_NO_CANCEL_BTN,
+ VP_PLAY_STRING_COM_ERROR,
+ VP_PLAY_STRING_ERROR_FILE_NOT_EXIST,
+ 3.0,
+ __vp_normal_error_popup_time_out_cb,
+ __vp_normal_error_popup_key_event_cb,
+ __vp_normal_error_popup_mouse_event_cb,
+ pNormalView);
+ evas_object_show(pNormalView->pPopup);
+ pNormalView->bIsPopupShow = TRUE;
+
+ break;
+
+
+ case VP_MM_PLAYER_ERR_SEEK_FAILED:
+ VideoLogWarning("VP_MM_PLAYER_ERR_SEEK_FAILED");
+ break;
+ case VP_MM_PLAYER_ERR_INVALID_STATE:
+ VideoLogWarning("VP_MM_PLAYER_ERR_INVALID_STATE");
+ break;
+ case VP_MM_PLAYER_ERR_SOUND_POLICY:
+ VideoLogWarning("VP_MM_PLAYER_ERR_SOUND_POLICY");
+ break;
+ case VP_MM_PLAYER_ERR_VIDEO_CAPTUR_FAILED:
+ VideoLogWarning("VP_MM_PLAYER_ERR_VIDEO_CAPTUR_FAILED");
+ break;
+ case VP_MM_PLAYER_ERR_NOT_SUPPORTED_FILE:
+ pNormalView->pPopup = vp_popup_create(pParent,
+ POPUP_STYLE_DEFAULT_NO_CANCEL_BTN,
+ VP_PLAY_STRING_COM_ERROR,
+ VP_PLAY_STRING_ERROR_UNSUPPORTED_FORMAT,
+ 3.0,
+ __vp_normal_error_popup_time_out_cb,
+ __vp_normal_error_popup_key_event_cb,
+ __vp_normal_error_popup_mouse_event_cb,
+ pNormalView);
+ evas_object_show(pNormalView->pPopup);
+ pNormalView->bIsPopupShow = TRUE;
+ break;
+ case VP_MM_PLAYER_ERR_INVALID_URI:
+ pNormalView->pPopup = vp_popup_create(pParent,
+ POPUP_STYLE_DEFAULT_NO_CANCEL_BTN,
+ VP_PLAY_STRING_COM_ERROR,
+ VP_PLAY_STRING_ERROR_INVALID_URL,
+ 3.0,
+ __vp_normal_error_popup_time_out_cb,
+ __vp_normal_error_popup_key_event_cb,
+ __vp_normal_error_popup_mouse_event_cb,
+ pNormalView);
+ evas_object_show(pNormalView->pPopup);
+ pNormalView->bIsPopupShow = TRUE;
+ break;
+
+ case VP_MM_PLAYER_ERR_CONNECTION_FAILED:
+ pNormalView->pPopup = vp_popup_create(pParent,
+ POPUP_STYLE_DEFAULT_NO_CANCEL_BTN,
+ VP_PLAY_STRING_COM_ERROR,
+ VP_PLAY_STRING_ERROR_CONNECTION_FAILED,
+ 3.0,
+ __vp_normal_error_popup_time_out_cb,
+ __vp_normal_error_popup_key_event_cb,
+ __vp_normal_error_popup_mouse_event_cb,
+ pNormalView);
+ evas_object_show(pNormalView->pPopup);
+ pNormalView->bIsPopupShow = TRUE;
+ break;
+ case VP_MM_PLAYER_ERR_DRM_EXPIRED:
+ case VP_MM_PLAYER_ERR_DRM_FUTURE_USE:
+ VideoLogWarning("DRM BUG");
+ pNormalView->pPopup = vp_popup_create(pParent,
+ POPUP_STYLE_DEFAULT_NO_CANCEL_BTN,
+ VP_PLAY_STRING_COM_ERROR,
+ VP_PLAY_STRING_ERROR_UNABLE_PLAY,
+ 3.0,
+ __vp_normal_error_popup_time_out_cb,
+ __vp_normal_error_popup_key_event_cb,
+ __vp_normal_error_popup_mouse_event_cb,
+ pNormalView);
+ evas_object_show(pNormalView->pPopup);
+ pNormalView->bIsPopupShow = TRUE;
+ break;
+ case VP_MM_PLAYER_ERR_DRM_NO_LICENSE:
+ pNormalView->pPopup =
+ vp_popup_create(pPlayView->pWin,
+ POPUP_STYLE_DEFAULT_NO_CANCEL_BTN,
+ VP_PLAY_STRING_COM_ERROR,
+ VP_PLAY_STRING_DIVX_DRM_AUTHORIZATION_ERROR,
+ 3.0, __vp_normal_error_popup_time_out_cb,
+ __vp_normal_error_popup_key_event_cb,
+ __vp_normal_error_popup_mouse_event_cb,
+ pNormalView);
+ evas_object_show(pNormalView->pPopup);
+ pNormalView->bIsPopupShow = TRUE;
+ break;
+ default:
+ VideoLogWarning("UNKNOWN TYPE : %d", nError);
+ if (pNormalView->nRepeatMode == VIDEO_PLAY_REPEAT_ONE ||
+ pNormalView->nRepeatMode == VIDEO_PLAY_REPEAT_ALL) {
+ PlayView *pPlayView = pNormalView->pPlayView;
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return;
+ }
+ if (!pPlayView->pFunc) {
+ VideoLogError("pPlayView pFunc is NULL");
+ return;
+ }
+
+ if (!pPlayView->pFunc->vp_play_func_exit) {
+ VideoLogError("pPlayView exit Func is NULL");
+ return;
+ }
+ vp_device_set_screen_off(FALSE);
+ vp_play_util_set_unlock_power_key();
+
+ pPlayView->pFunc->vp_play_func_exit(pPlayView);
+ } else {
+ _vp_play_normal_view_on_next_play(pNormalView, FALSE);
+ }
+ break;
+ }
+
+}
+
+/**
+ *
+ * @param data
+ * @param e
+ * @param obj
+ * @param event_info
+ */
+static void _vp_normal_view_loading_ani_layout_del_cb(void *data, Evas * e,
+ Evas_Object * obj,
+ void *event_info)
+{
+ if (!data) {
+ VideoLogError("pNormalView is NULL");
+ return;
+ }
+
+ NormalView *pNormalView = (NormalView *) data;
+ pNormalView->pLoadingAni = NULL;
+}
+
+/**
+ *
+ * @param pNormalView
+ * @return
+ */
+static bool _vp_play_normal_view_create_loading_ani(NormalView *
+ pNormalView)
+{
+ if (!pNormalView) {
+ VideoLogError("pNormalView is NULL");
+ return FALSE;
+ }
+
+ Evas_Object *pParent = NULL;
+ pParent = pNormalView->pMainLayout;
+
+ if (pNormalView->pLoadingAni) {
+ vp_play_loading_ani_destroy(pNormalView->pLoadingAni);
+ pNormalView->pLoadingAni = NULL;
+ }
+
+ pNormalView->pLoadingAni =
+ vp_play_loading_ani_create(pParent, VIDEO_LOADING_SIZE_LARGE);
+ if (!pNormalView->pLoadingAni) {
+ VideoLogError("pLoadingAni create fail");
+ return FALSE;
+ }
+ evas_object_event_callback_add(pNormalView->pLoadingAni,
+ EVAS_CALLBACK_DEL,
+ _vp_normal_view_loading_ani_layout_del_cb,
+ (void *) pNormalView);
+
+ elm_object_part_content_set(pParent,
+ VP_PLAY_SWALLOW_NORMAL_LOADING_ANI,
+ pNormalView->pLoadingAni);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param nPercent
+ * @param pUserData
+ */
+static void __vp_normal_buffering_cb(int nPercent, void *pUserData)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ NormalView *pNormalView = (NormalView *) pUserData;
+ PlayView *pPlayView = pNormalView->pPlayView;
+
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ }
+ if (nPercent == 100) {
+ VideoLogError("Buffering complete");
+ pNormalView->bBufferingComplete = TRUE;
+ if (pNormalView->pLoadingAni) {
+ vp_play_loading_ani_destroy(pNormalView->pLoadingAni);
+ pNormalView->pLoadingAni = NULL;
+ }
+
+ vp_mm_player_state_t nState = VP_MM_PLAYER_STATE_NONE;
+
+ if (!vp_mm_player_get_state(pNormalView->pPlayerHandle, &nState)) {
+ VideoLogWarning("vp_mm_player_get_state is fail");
+ }
+
+ if (nState != VP_MM_PLAYER_STATE_PLAYING) {
+ PlayView *pPlayView = pNormalView->pPlayView;
+ if (!pPlayView) {
+ VideoLogError("pPlayView handle is NULL");
+ return;
+ }
+
+ if (pNormalView->nSpeedValue > 1) {
+ VideoLogWarning("pNormalView->nSpeedValue : [%d]",
+ pNormalView->nSpeedValue);
+ } else {
+ if (pNormalView->bManualPause
+ || pPlayView->bActivate == FALSE) {
+ vp_mm_player_set_visible(pNormalView->pPlayerHandle,
+ TRUE);
+ vp_mm_player_pause(pNormalView->pPlayerHandle);
+ } else {
+ vp_mm_player_play(pNormalView->pPlayerHandle);
+ }
+ if (pPlayView->win_minicon) {
+ vp_minicontroller_update_control(pPlayView);
+ }
+ if (pPlayView->win_lockmini) {
+ vp_lockscreenmini_update_control(pPlayView);
+ }
+ _vp_play_normal_view_set_play_state(pNormalView);
+ _vp_play_normal_view_on_capture_mode(pNormalView);
+ }
+ }
+ } else {
+ pNormalView->bBufferingComplete = FALSE;
+ if (pNormalView->bManualPause == FALSE) {
+ vp_play_util_set_lock_power_key();
+ }
+ // Remove loading animation during speed playback.
+ if (pNormalView->pSpeedTimer) {
+ //
+ } else if (!pNormalView->pLoadingAni) {
+ if (!_vp_play_normal_view_create_loading_ani(pNormalView)) {
+ VideoLogError
+ ("_vp_play_normal_view_create_loading_ani fail");
+ return;
+ }
+ }
+ }
+}
+
+/**
+ *
+ * @param nDuration
+ * @param text
+ * @param pUserData
+ */
+static void __vp_normal_subtitle_updated_cb(unsigned long nDuration,
+ char *text, void *pUserData)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+ VideoLogWarning("%s", text);
+
+ NormalView *pNormalView = (NormalView *) pUserData;
+
+ int nPosition = 0;
+ if (!vp_mm_player_get_position(pNormalView->pPlayerHandle, &nPosition)) {
+ VideoLogError("vp_mm_player_get_position is fail");
+ }
+ int tDuration = 0;
+ vp_mm_player_get_duration(pNormalView->pPlayerHandle, &tDuration);
+ if (nPosition >= tDuration) {
+ __vp_normal_completed_cb(pNormalView);
+ }
+
+ bool bIsWhiteSpace = vp_play_util_check_white_space(text);
+
+ VP_EVAS_TIMER_DEL(pNormalView->pSubtitleTimer);
+
+ if (pNormalView->bVideoOnlyMode) {
+ return;
+ }
+
+ if (bIsWhiteSpace) {
+ vp_play_subtitle_set_text(pNormalView->pSubtitle, "");
+ elm_object_signal_emit(vp_play_subtitle_get_object
+ (pNormalView->pSubtitle),
+ VP_SUBTITLE_SIGNAL_CAPTION_WINDOW_HIDE,
+ "*");
+ elm_object_signal_emit(vp_play_subtitle_get_object
+ (pNormalView->pSubtitle),
+ VP_SUBTITLE_SIGNAL_GREP_BOX_HIDE, "*");
+ return;
+ }
+
+ double dTimeInterval = (double) nDuration / (double) 1000;
+
+ if (!vp_mm_player_get_position(pNormalView->pPlayerHandle, &nPosition)) {
+ VideoLogError("vp_mm_player_get_position is fail");
+ }
+
+ pNormalView->dSubtitleStartTime = nPosition;
+ pNormalView->dSubtitleEndTime = nPosition + nDuration;
+
+ pNormalView->pSubtitleTimer = ecore_timer_add(dTimeInterval,
+ __vp_normal_subtitle_timer_cb,
+ (void *) pNormalView);
+
+ vp_play_subtitle_set_text(pNormalView->pSubtitle, text);
+#ifdef SUBTITLE_K_FEATURE
+ /*Set caption window: size, rel1, color */
+ __vp_normal_subtitle_set_caption_window(pNormalView);
+#endif
+}
+
+/**
+ *
+ * @param nType
+ * @param pUserData
+ */
+static void __vp_normal_pd_message_cb(vp_mm_player_pd_message_t nType,
+ void *pUserData)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+ VideoLogWarning("");
+}
+
+static void __vp_normal_missed_plugin_cb(vp_mm_player_missed_plugin_t
+ nType, void *pUserData)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+ VideoLogWarning("nType=%d", nType);
+
+ NormalView *pNormalView = (NormalView *) pUserData;
+ PlayView *pPlayView = pNormalView->pPlayView;
+
+ VP_EVAS_DEL(pNormalView->pPopup);
+ pNormalView->pPopup = NULL;
+
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return;
+ }
+#if 1
+ if (nType == VP_MM_PLAYER_MISSED_PLUGIN_AUDIO) {
+ _vp_play_normal_view_show_video_only_popup(pNormalView);
+ } else if (nType == VP_MM_PLAYER_MISSED_PLUGIN_VIDEO) {
+ _vp_play_normal_view_show_audio_only_popup(pNormalView);
+ }
+#else /* Disabled. please use ecore_pipe if need to use popup. */
+ Evas_Object *pParent = pPlayView->pWin;
+ if (nType == VP_MM_PLAYER_MISSED_PLUGIN_AUDIO) {
+ pNormalView->pPopup = vp_popup_create(pParent,
+ POPUP_STYLE_DEFAULT,
+ NULL,
+ VP_PLAY_STRING_ERROR_UNSUPPORTED_AUDIO,
+ 3.0,
+ __vp_normal_popup_time_out_cb,
+ __vp_normal_popup_key_event_cb,
+ __vp_normal_popup_mouse_event_cb,
+ pNormalView);
+
+ evas_object_show(pNormalView->pPopup);
+ pNormalView->bIsPopupShow = TRUE;
+ } else if (nType == VP_MM_PLAYER_MISSED_PLUGIN_VIDEO) {
+ pNormalView->pPopup = vp_popup_create(pParent,
+ POPUP_STYLE_DEFAULT,
+ NULL,
+ VP_PLAY_STRING_ERROR_UNSUPPORTED_VIDEO,
+ 3.0,
+ __vp_normal_popup_time_out_cb,
+ __vp_normal_popup_key_event_cb,
+ __vp_normal_popup_mouse_event_cb,
+ pNormalView);
+
+ evas_object_show(pNormalView->pPopup);
+ pNormalView->bIsPopupShow = TRUE;
+ pNormalView->bIsVideoUnsupport = TRUE;
+
+ VP_EVAS_DISABLE_SET(pNormalView->pBookmarkBtn, EINA_TRUE);
+ VP_EVAS_DISABLE_SET(pNormalView->pMultiWinBtn, EINA_TRUE);
+ }
+#endif
+}
+
+/**
+ *
+ * @param pBuffer
+ * @param nSize
+ * @param pUserData
+ */
+static void __vp_normal_image_buffer_cb(char *pBuffer, int nSize,
+ void *pUserData)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ VideoLogWarning("%p, %d", pBuffer, nSize);
+
+ NormalView *pNormalView = (NormalView *) pUserData;
+ if (pNormalView->pImageBufferObj) {
+ elm_object_part_content_unset(pNormalView->pMainLayout,
+ VP_PLAY_SWALLOW_NORMAL_IMAGE_BUFFER);
+ VP_EVAS_DEL(pNormalView->pImageBufferObj);
+ }
+ vp_play_util_save_file(VP_PLAY_IMAGE_BUFFER_PATH, pBuffer, nSize);
+
+ pNormalView->pImageBufferObj = elm_image_add(pNormalView->pMainLayout);
+ elm_image_file_set(pNormalView->pImageBufferObj,
+ VP_PLAY_IMAGE_BUFFER_PATH, NULL);
+
+ evas_object_size_hint_weight_set(pNormalView->pImageBufferObj,
+ EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(pNormalView->pImageBufferObj,
+ EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+ elm_object_part_content_set(pNormalView->pMainLayout,
+ VP_PLAY_SWALLOW_NORMAL_IMAGE_BUFFER,
+ pNormalView->pImageBufferObj);
+ evas_object_show(pNormalView->pImageBufferObj);
+}
+
+/**
+ *
+ * @param pNormalView
+ * @param bAudioOnly
+ */
+static void _vp_normal_set_audio_only_image(NormalView * pNormalView,
+ bool bAudioOnly)
+{
+ if (pNormalView->pImageBufferObj) {
+ elm_object_part_content_unset(pNormalView->pMainLayout,
+ VP_PLAY_SWALLOW_NORMAL_IMAGE_BUFFER);
+ VP_EVAS_DEL(pNormalView->pImageBufferObj);
+ }
+
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VP_PLAY_RESROUCE_EDJ_PATH);
+ free(path);
+ if (bAudioOnly == TRUE) {
+ pNormalView->pImageBufferObj =
+ vp_button_create_image(pNormalView->pMainLayout, edj_path,
+ VP_PLAY_NORMAL_AUDIO_ERROR_IMG);
+ evas_object_size_hint_weight_set(pNormalView->pImageBufferObj,
+ EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(pNormalView->pImageBufferObj,
+ EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_color_set(pNormalView->pImageBufferObj, 255, 255, 255,
+ 255);
+ elm_object_part_content_set(pNormalView->pMainLayout,
+ VP_PLAY_SWALLOW_NORMAL_ERROR_IMAGE,
+ pNormalView->pImageBufferObj);
+ evas_object_show(pNormalView->pImageBufferObj);
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_normal_ctx_popup_dismiss_cb(void *pUserData,
+ Evas_Object * pObj,
+ void *pEventInfo)
+{
+ if (!pObj) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ NormalView *pNormalView = (NormalView *) pUserData;
+
+ VP_EVAS_DEL(pNormalView->pCtxPopup);
+
+ _vp_play_normal_view_create_layout_hide_timer(pNormalView);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_normal_ctx_popup_share_cb(void *pUserData,
+ Evas_Object * pObj,
+ void *pEventInfo)
+{
+ if (!pUserData) {
+ VideoLogError("[ERR]No have pUserData");
+ return;
+ }
+
+ NormalView *pNormalView = (NormalView *) pUserData;
+
+ VP_EVAS_DEL(pNormalView->pCtxPopup);
+
+ _vp_play_normal_view_on_share_popup(pNormalView);
+}
+
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_normal_ctx_popup_audio_only_cb(void *pUserData,
+ Evas_Object * pObj,
+ void *pEventInfo)
+{
+ if (!pUserData) {
+ VideoLogError("[ERR]No have pUserData");
+ return;
+ }
+
+ NormalView *pNormalView = (NormalView *) pUserData;
+ VP_EVAS_DEL(pNormalView->pCtxPopup);
+
+ PlayView *pPlayView = pNormalView->pPlayView;
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return;
+ }
+
+ if (pNormalView->bAudioOnly == TRUE) {
+ pNormalView->bAudioOnly = FALSE;
+ pPlayView->bAudioOnly = FALSE;
+
+ if (pPlayView->win_minicon) {
+ vp_minicontroller_destroy(pPlayView);
+ }
+ if (pPlayView->win_lockmini) {
+ vp_lockscreenmini_destroy(pPlayView);
+ }
+ } else {
+ pNormalView->bAudioOnly = TRUE;
+ pPlayView->bAudioOnly = TRUE;
+ vp_play_util_status_noti_show
+ (VP_PLAY_STRING_AUDIO_ONLY_PLAYBACK_MSG);
+
+ if (!pPlayView->win_minicon) {
+ vp_minicontroller_create(pPlayView);
+ } else {
+ vp_minicontroller_show(pPlayView);
+ }
+ if (!pPlayView->win_lockmini) {
+ vp_lockscreenmini_create(pPlayView);
+ } else if (!pPlayView->b_lockmini_show) {
+ vp_lockscreenmini_show(pPlayView);
+ }
+ }
+
+ _vp_play_normal_view_set_play_state(pNormalView);
+
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_normal_ctx_popup_subtitle_cb(void *pUserData,
+ Evas_Object * pObj,
+ void *pEventInfo)
+{
+ if (!pUserData) {
+ VideoLogError("[ERR]No have pUserData");
+ return;
+ }
+
+ NormalView *pNormalView = (NormalView *) pUserData;
+
+ VP_EVAS_DEL(pNormalView->pCtxPopup);
+
+ PlayView *pPlayView = pNormalView->pPlayView;
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return;
+ }
+
+ vp_mm_player_state_t nState = VP_MM_PLAYER_STATE_NONE;
+ if (!vp_mm_player_get_state(pNormalView->pPlayerHandle, &nState)) {
+ VideoLogWarning("vp_mm_player_get_state is fail");
+ }
+
+ /*If it is playing video, pause video */
+ if (pNormalView->bVideoOnlyMode == FALSE
+ && nState == VP_MM_PLAYER_STATE_PLAYING) {
+ if (!vp_mm_player_pause(pNormalView->pPlayerHandle)) {
+ VideoLogError("Pause Fail");
+ }
+ if (pPlayView->win_minicon) {
+ vp_minicontroller_update_control(pPlayView);
+ }
+ if (pPlayView->win_lockmini) {
+ vp_lockscreenmini_update_control(pPlayView);
+ }
+ _vp_play_normal_view_set_play_state(pNormalView);
+ }
+
+ _vp_play_normal_view_set_play_state(pNormalView);
+
+ _vp_play_normal_view_on_subtitle_select_popup(pNormalView);
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __vp_normal_del_popup_cancel_cb(void *data, Evas_Object * obj,
+ void *event_info)
+{
+ NormalView *pNormalView = (NormalView *) data;
+
+ if (!pNormalView) {
+ VideoLogError("pNormalView is NULL");
+ return;
+ }
+
+ VP_EVAS_DEL(pNormalView->pPopup);
+
+ pNormalView->bIsPopupShow = FALSE;
+
+ if (_vp_is_current_focus_available() != 0) {
+ VideoLogInfo("Cannot acquire focus. Setting video to pause state");
+ pNormalView->bManualPause = TRUE;
+ }
+
+ if (pNormalView->bManualPause == FALSE) {
+ if (!vp_mm_player_play(pNormalView->pPlayerHandle)) {
+ VideoLogWarning("Pause Fail");
+ }
+ _vp_play_normal_view_set_play_state(pNormalView);
+ _vp_play_normal_view_on_capture_mode(pNormalView);
+ _vp_play_normal_view_create_layout_hide_timer(pNormalView);
+ }
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __vp_normal_del_popup_delete_cb(void *data, Evas_Object * obj,
+ void *event_info)
+{
+ NormalView *pNormalView = (NormalView *) data;
+ if (!pNormalView) {
+ VideoLogError("pNormalView is NULL");
+ return;
+ }
+
+ if (pNormalView->szMediaURL) {
+ char *szPreviewURL = NULL;
+ vp_play_config_get_preview_url_videos(&szPreviewURL);
+
+ if (szPreviewURL) {
+ if (!g_strcmp0(szPreviewURL, pNormalView->szMediaURL)) {
+ VideoLogInfo("Erase preview url.");
+ vp_play_config_set_preview_url_videos("");
+ }
+ }
+ VP_FREE(szPreviewURL);
+
+ vp_media_contents_del_video(pNormalView->szMediaURL);
+
+ VP_EVAS_DEL(pNormalView->pPopup);
+ pNormalView->bIsPopupShow = FALSE;
+
+
+ PlayView *pPlayView = pNormalView->pPlayView;
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return;
+ }
+ if (!pPlayView->pFunc) {
+ VideoLogError("pPlayView pFunc is NULL");
+ return;
+ }
+
+ if (!pPlayView->pFunc->vp_play_func_exit) {
+ VideoLogError("pPlayView exit Func is NULL");
+ return;
+ }
+ vp_device_set_screen_off(FALSE);
+ vp_play_util_set_unlock_power_key();
+
+ pPlayView->pFunc->vp_play_func_exit(pPlayView);
+
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_normal_ctx_popup_delete_cb(void *pUserData,
+ Evas_Object * pObj,
+ void *pEventInfo)
+{
+ if (!pUserData) {
+ VideoLogError("[ERR]No have pUserData");
+ return;
+ }
+
+ NormalView *pNormalView = (NormalView *) pUserData;
+
+ VP_EVAS_DEL(pNormalView->pCtxPopup);
+
+ PlayView *pPlayView = pNormalView->pPlayView;
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return;
+ }
+
+ vp_mm_player_state_t nState = VP_MM_PLAYER_STATE_NONE;
+ if (!vp_mm_player_get_state(pNormalView->pPlayerHandle, &nState)) {
+ VideoLogWarning("vp_mm_player_get_state is fail");
+ }
+
+ if (pNormalView->bVideoOnlyMode == FALSE
+ && nState == VP_MM_PLAYER_STATE_PLAYING) {
+ if (!vp_mm_player_pause(pNormalView->pPlayerHandle)) {
+ VideoLogError("Pause Fail");
+ }
+ if (pPlayView->win_minicon) {
+ vp_minicontroller_update_control(pPlayView);
+ }
+ if (pPlayView->win_lockmini) {
+ vp_lockscreenmini_update_control(pPlayView);
+ }
+ _vp_play_normal_view_set_play_state(pNormalView);
+ }
+
+ VP_EVAS_DEL(pNormalView->pPopup);
+ pNormalView->pPopup = vp_two_button_popup_create(pPlayView->pWin,
+ VP_PLAY_STRING_POPUP_DELETE,
+ VP_PLAY_STRING_POPUP_DELETE_CONTENT,
+ VP_PLAY_STRING_CANCEL,
+ __vp_normal_del_popup_cancel_cb,
+ VP_PLAY_STRING_POPUP_DELETE,
+ __vp_normal_del_popup_delete_cb,
+ (const void *)
+ pNormalView);
+
+ pNormalView->bIsPopupShow = TRUE;
+ eext_object_event_callback_add(pNormalView->pPopup, EEXT_CALLBACK_BACK,
+ __vp_normal_del_popup_cancel_cb,
+ (void *) pNormalView);
+
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_normal_ctx_popup_play_speed_cb(void *pUserData,
+ Evas_Object * pObj,
+ void *pEventInfo)
+{
+ VideoLogInfo("");
+ if (!pUserData) {
+ VideoLogError("[ERR]No have pUserData");
+ return;
+ }
+
+ NormalView *pNormalView = (NormalView *) pUserData;
+ PlayView *pPlayView = pNormalView->pPlayView;
+
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ }
+ VP_EVAS_DEL(pNormalView->pCtxPopup);
+
+ vp_mm_player_state_t nState = VP_MM_PLAYER_STATE_NONE;
+ if (!vp_mm_player_get_state(pNormalView->pPlayerHandle, &nState)) {
+ VideoLogWarning("vp_mm_player_get_state is fail");
+ }
+
+ if (pNormalView->bVideoOnlyMode == FALSE
+ && nState == VP_MM_PLAYER_STATE_PLAYING) {
+ if (!vp_mm_player_pause(pNormalView->pPlayerHandle)) {
+ VideoLogError("Pause Fail");
+ }
+ if (pPlayView && pPlayView->win_minicon) {
+ vp_minicontroller_update_control(pPlayView);
+ }
+ if (pPlayView && pPlayView->win_lockmini) {
+ vp_lockscreenmini_update_control(pPlayView);
+ }
+ _vp_play_normal_view_set_play_state(pNormalView);
+ }
+
+ _vp_play_normal_view_on_play_speed_popup(pNormalView);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_normal_ctx_popup_detail_cb(void *pUserData,
+ Evas_Object * pObj,
+ void *pEventInfo)
+{
+ if (!pUserData) {
+ VideoLogError("[ERR]No have pUserData");
+ return;
+ }
+
+ NormalView *pNormalView = (NormalView *) pUserData;
+
+ VP_EVAS_DEL(pNormalView->pCtxPopup);
+
+ _vp_play_normal_view_on_detail_popup(pNormalView);
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @return
+ */
+static bool _vp_play_normal_view_show_lock_screen(normal_view_handle
+ pViewHandle)
+{
+ if (!pViewHandle) {
+ VideoLogError("pViewHandle is NULL");
+ return FALSE;
+ }
+
+ NormalView *pNormalView = (NormalView *) pViewHandle;
+
+ if (pNormalView->bLockScreen == FALSE) {
+ return FALSE;
+ }
+
+ VP_EVAS_TIMER_DEL(pNormalView->pLockScreenTimer);
+ VP_EVAS_TIMER_DEL(pNormalView->pHideTimer);
+ VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+
+ elm_object_signal_emit(pNormalView->pMainLayout,
+ VP_NORMAL_SIGNAL_LOCKSCREEN_SHOW, "*");
+
+ pNormalView->pLockScreenTimer =
+ ecore_timer_add(VP_NORMAL_HIDE_SCREEN_LOCK_TIMER_INTERVAL,
+ __vp_normal_lockscreen_timer_cb,
+ (void *) pNormalView);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEvent
+ */
+static void __vp_normal_more_btn_clicked_cb(void *pUserData,
+ Evas_Object * pObj,
+ void *pEvent)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ NormalView *pNormalView = (NormalView *) pUserData;
+ PlayView *pPlayView = pNormalView->pPlayView;
+
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return;
+ }
+
+ VideoLogInfo("");
+
+ VP_EVAS_DEL(pNormalView->pCtxPopup);
+
+ if (pNormalView->bLockScreen) {
+ VideoLogError("Skip for bLockScreen");
+ _vp_play_normal_view_show_lock_screen(pNormalView);
+ return;
+ }
+
+ if (pNormalView->bIsRealize == FALSE) {
+ VideoLogWarning("Skip for not realized");
+ return;
+ }
+
+ if (!vp_play_volume_unrealize(pNormalView->pVolumeHandle)) {
+ VideoLogWarning("vp_play_volume_unrealize is fail");
+ }
+
+ if (pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_MULTI_PATH) {
+ VideoLogWarning("Skip for VIDEO_PLAY_TYPE_MULTI_PATH mode.");
+ if (vp_play_util_check_streaming(pNormalView->szMediaURL)) {
+ VideoLogWarning("url is streaming. don't need to show detail");
+ return;
+ }
+ }
+ if (pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_PREVIEW) {
+ VideoLogInfo("current launching type not support menu.");
+ return;
+ }
+
+ if (pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_WEB) {
+ VideoLogInfo("current launching type not support menu.");
+ }
+ if (strstr(pPlayView->szMediaURL, "/.") != NULL) {
+ VideoLogInfo("hidden file not suport menu.");
+ return;
+ }
+
+ int val = 0;
+ system_settings_get_value_int(SYSTEM_SETTINGS_KEY_LOCK_STATE, &val);
+ if (val == SYSTEM_SETTINGS_LOCK_STATE_LOCK) {
+ return;
+ }
+
+ pNormalView->pCtxPopup = elm_ctxpopup_add(pPlayView->pWin);
+
+ if (!pNormalView->pCtxPopup) {
+ VideoLogError("pNormalView->pCtxPopup is NULL");
+ return;
+ }
+ eext_object_event_callback_add(pNormalView->pCtxPopup,
+ EEXT_CALLBACK_BACK,
+ __vp_normal_ctx_popup_dismiss_cb,
+ (void *) pNormalView);
+
+ VP_EVAS_TIMER_DEL(pNormalView->pHideTimer);
+ VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+
+ elm_object_style_set(pNormalView->pCtxPopup, "more/default");
+ evas_object_smart_callback_add(pNormalView->pCtxPopup, "dismissed",
+ __vp_normal_ctx_popup_dismiss_cb,
+ (void *) pNormalView);
+ elm_ctxpopup_auto_hide_disabled_set(pNormalView->pCtxPopup, EINA_TRUE);
+
+#ifdef ENABLE_DRM_FEATURE
+ bool bDRMLock = FALSE;
+ bool bPlayReady = FALSE;
+#endif
+ char *szMediaID = NULL;
+
+ if (pNormalView->nLaunchingType != VIDEO_PLAY_TYPE_WEB &&
+ pNormalView->nLaunchingType != VIDEO_PLAY_TYPE_MULTI_PATH) {
+ vp_media_contents_get_video_id(pNormalView->szMediaURL,
+ &szMediaID);
+ if (!szMediaID) {
+ }
+ }
+ VP_FREE(szMediaID);
+#ifdef ENABLE_DRM_FEATURE
+ _vp_play_normal_view_check_drm_lock(pNormalView, &bDRMLock);
+
+ vp_drm_is_playready_drm_file(pNormalView->szMediaURL, &bPlayReady);
+#endif
+
+ switch (pNormalView->nLaunchingType) {
+ case VIDEO_PLAY_TYPE_STORE:
+ case VIDEO_PLAY_TYPE_LIST:
+ case VIDEO_PLAY_TYPE_GALLERY:
+ case VIDEO_PLAY_TYPE_MYFILE:
+ case VIDEO_PLAY_TYPE_OTHER:
+
+ /* delete */
+ elm_ctxpopup_item_append(pNormalView->pCtxPopup,
+ VP_PLAY_STRING_POPUP_DELETE, NULL,
+ __vp_normal_ctx_popup_delete_cb,
+ (void *) pNormalView);
+
+ /* Share via */
+ elm_ctxpopup_item_append(pNormalView->pCtxPopup,
+ VP_PLAY_STRING_POPUP_SHARE, NULL,
+ __vp_normal_ctx_popup_share_cb,
+ (void *) pNormalView);
+
+ /* Audio only */
+
+ if (pNormalView->bAudioOnly)
+ elm_ctxpopup_item_append(pNormalView->pCtxPopup,
+ VP_PLAY_STRING_POPUP_DISABLE_AUDIO_ONLY,
+ NULL,
+ __vp_normal_ctx_popup_audio_only_cb,
+ (void *) pNormalView);
+ else
+ elm_ctxpopup_item_append(pNormalView->pCtxPopup,
+ VP_PLAY_STRING_POPUP_ENABLE_AUDIO_ONLY,
+ NULL,
+ __vp_normal_ctx_popup_audio_only_cb,
+ (void *) pNormalView);
+
+ /* Play speed */
+ elm_ctxpopup_item_append(pNormalView->pCtxPopup,
+ VP_PLAY_STRING_POPUP_PLAY_SPEED, NULL,
+ __vp_normal_ctx_popup_play_speed_cb,
+ (void *) pNormalView);
+
+ /* subtitles */
+ elm_ctxpopup_item_append(pNormalView->pCtxPopup,
+ VP_PLAY_STRING_POPUP_SUBTITLE, NULL,
+ __vp_normal_ctx_popup_subtitle_cb,
+ (void *) pNormalView);
+
+ /* Details */
+ elm_ctxpopup_item_append(pNormalView->pCtxPopup,
+ VP_PLAY_STRING_COM_DETAILS, NULL,
+ __vp_normal_ctx_popup_detail_cb,
+ (void *) pNormalView);
+ break;
+
+ case VIDEO_PLAY_TYPE_MESSAGE:
+ case VIDEO_PLAY_TYPE_EMAIL:
+
+ /* Play speed */
+ elm_ctxpopup_item_append(pNormalView->pCtxPopup,
+ VP_PLAY_STRING_POPUP_PLAY_SPEED, NULL,
+ __vp_normal_ctx_popup_play_speed_cb,
+ (void *) pNormalView);
+
+ /* subtitles */
+ elm_ctxpopup_item_append(pNormalView->pCtxPopup,
+ VP_PLAY_STRING_POPUP_SUBTITLE, NULL,
+ __vp_normal_ctx_popup_subtitle_cb,
+ (void *) pNormalView);
+ break;
+
+ case VIDEO_PLAY_TYPE_WEB:
+
+ /* Audio only */
+ if (pNormalView->bAudioOnly)
+ elm_ctxpopup_item_append(pNormalView->pCtxPopup,
+ VP_PLAY_STRING_POPUP_DISABLE_AUDIO_ONLY,
+ NULL,
+ __vp_normal_ctx_popup_audio_only_cb,
+ (void *) pNormalView);
+ else
+ elm_ctxpopup_item_append(pNormalView->pCtxPopup,
+ VP_PLAY_STRING_POPUP_ENABLE_AUDIO_ONLY,
+ NULL,
+ __vp_normal_ctx_popup_audio_only_cb,
+ (void *) pNormalView);
+
+ /* Play speed */
+ elm_ctxpopup_item_append(pNormalView->pCtxPopup,
+ VP_PLAY_STRING_POPUP_PLAY_SPEED, NULL,
+ __vp_normal_ctx_popup_play_speed_cb,
+ (void *) pNormalView);
+
+ /* subtitles */
+ elm_ctxpopup_item_append(pNormalView->pCtxPopup,
+ VP_PLAY_STRING_POPUP_SUBTITLE, NULL,
+ __vp_normal_ctx_popup_subtitle_cb,
+ (void *) pNormalView);
+
+ /* Details */
+ elm_ctxpopup_item_append(pNormalView->pCtxPopup,
+ VP_PLAY_STRING_COM_DETAILS, NULL,
+ __vp_normal_ctx_popup_detail_cb,
+ (void *) pNormalView);
+ break;
+
+ case VIDEO_PLAY_TYPE_MULTI_PATH:
+ /* Details */
+ elm_ctxpopup_item_append(pNormalView->pCtxPopup,
+ VP_PLAY_STRING_COM_DETAILS, NULL,
+ __vp_normal_ctx_popup_detail_cb,
+ (void *) pNormalView);
+ break;
+
+ case VIDEO_PLAY_TYPE_PREVIEW:
+ break;
+ }
+
+ int nW = 0;
+ int nH = 0;
+
+ Evas_Coord_Rectangle rect = { 0, };
+ elm_win_screen_size_get(pPlayView->pWin, &rect.x, &rect.y, &rect.w,
+ &rect.h);
+ if (pNormalView->nRotate == VIDEO_PLAY_ROTATE_NONE) {
+ nW = rect.w / 2;
+ nH = rect.h;
+ } else if (pNormalView->nRotate == VIDEO_PLAY_ROTATE_90) {
+ nW = rect.h / 2;
+ nH = rect.w;
+ } else if (pNormalView->nRotate == VIDEO_PLAY_ROTATE_180) {
+ nW = rect.w / 2;
+ nH = rect.h;
+ } else if (pNormalView->nRotate == VIDEO_PLAY_ROTATE_270) {
+ nW = rect.h / 2;
+ nH = rect.w;
+ }
+
+ evas_object_move(pNormalView->pCtxPopup, nW, nH);
+
+
+ evas_object_show(pNormalView->pCtxPopup);
+}
+
+/**
+ *
+ * @param pPlayview
+ */
+void vp_play_normal_view_pause_player(void *pPlayview)
+{
+ if (!pPlayview) {
+ return;
+ }
+ PlayView *vPlayview = (PlayView *) pPlayview;
+ NormalView *pNormalView = vPlayview->pNormalView;
+ vp_mm_player_state_t nState = VP_MM_PLAYER_STATE_NONE;
+
+ if (!vp_mm_player_get_state(pNormalView->pPlayerHandle, &nState)) {
+ VideoLogWarning("vp_mm_player_get_state is fail");
+ }
+ if (nState == VP_MM_PLAYER_STATE_PLAYING) {
+ vp_mm_player_pause(pNormalView->pPlayerHandle);
+ pNormalView->bManualPause = TRUE;
+ }
+ if (vPlayview->win_minicon) {
+ vp_minicontroller_update_control(vPlayview);
+ }
+ if (vPlayview->win_lockmini) {
+ vp_lockscreenmini_update_control(vPlayview);
+ }
+ _vp_play_normal_view_set_play_state(pNormalView);
+ _vp_play_normal_view_on_capture_mode(pNormalView);
+}
+
+/**
+ *
+ * @param pPlayview
+ */
+void vp_play_normal_view_play_player(void *pPlayview)
+{
+ if (!pPlayview) {
+ VideoLogError("Invalid player View)");
+ return;
+ }
+ PlayView *vPlayview = (PlayView *) pPlayview;
+ NormalView *pNormalView = vPlayview->pNormalView;
+ vp_mm_player_state_t nState = VP_MM_PLAYER_STATE_NONE;
+
+ if (!vp_mm_player_get_state(pNormalView->pPlayerHandle, &nState)) {
+ VideoLogWarning("vp_mm_player_get_state is fail");
+ }
+ if (nState == VP_MM_PLAYER_STATE_PAUSED) {
+ vp_mm_player_play(pNormalView->pPlayerHandle);
+ pNormalView->bManualPause = FALSE;
+ }
+ if (vPlayview->win_minicon) {
+ vp_minicontroller_update_control(vPlayview);
+ }
+ if (vPlayview->win_lockmini) {
+ vp_lockscreenmini_update_control(vPlayview);
+ }
+ _vp_play_normal_view_set_play_state(pNormalView);
+ _vp_play_normal_view_on_capture_mode(pNormalView);
+}
+
+/**
+ *
+ * @param pPlayview
+ */
+void vp_play_normal_view_show_volume_popup(void *pPlayview)
+{
+ if (!pPlayview) {
+ return;
+ }
+ PlayView *vPlayview = (PlayView *) pPlayview;
+ NormalView *pNormalView = vPlayview->pNormalView;
+ pNormalView->pVolumePopupHandle = NULL;
+ vp_play_volume_update_value(pNormalView->pVolumeHandle);
+ _vp_play_normal_view_on_volume_popup(pNormalView, FALSE);
+ vp_play_volume_set_focus_in(pNormalView->pVolumeHandle);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEvent
+ */
+static void __vp_normal_function_btn_clicked_cb(void *pUserData,
+ Evas_Object * pObj,
+ void *pEvent)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ NormalView *pNormalView = (NormalView *) pUserData;
+
+ if (pObj != pNormalView->pVolumeBtn
+ && pObj != pNormalView->pScreenSizeBtn
+ && pObj != pNormalView->pLockBtn) {
+ return;
+ }
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VP_PLAY_RESROUCE_EDJ_PATH);
+ free(path);
+ if (pObj == pNormalView->pVolumeBtn) {
+ VideoLogWarning("pVolumeBtn button");
+ vp_play_volume_update_value(pNormalView->pVolumeHandle);
+ _vp_play_normal_view_on_volume_popup(pNormalView, TRUE);
+ vp_play_volume_set_focus_in(pNormalView->pVolumeHandle);
+ } else if (pObj == pNormalView->pBookmarkBtn) {
+ VideoLogWarning("pBookmarkBtn button");
+
+ bool bIsRealize = FALSE;
+ if (!vp_play_bookmark_is_realize
+ (pNormalView->pBookmarkHandle, &bIsRealize)) {
+ VideoLogWarning("vp_play_bookmark_is_realize fail");
+ return;
+ }
+ if (bIsRealize) {
+ _vp_play_normal_view_on_bookmark_mode(pNormalView, FALSE);
+ } else {
+ _vp_play_normal_view_on_bookmark_mode(pNormalView, TRUE);
+ }
+ } else if (pObj == pNormalView->pShareBtn) {
+ VideoLogWarning("pShareBtn button");
+ _vp_play_normal_view_on_share_popup(pNormalView);
+ } else if (pObj == pNormalView->pLockBtn) {
+ VideoLogWarning("pLockBtn button");
+ if (!pNormalView->bLockScreen) {
+ pNormalView->bLockScreen = TRUE;
+ vp_play_normal_view_set_lock_screen(pNormalView,
+ pNormalView->bLockScreen);
+ } else {
+ pNormalView->bLockScreen = FALSE;
+ vp_play_normal_view_set_lock_screen(pNormalView,
+ pNormalView->bLockScreen);
+ }
+ } else if (pObj == pNormalView->pSoundAliveBtn) {
+ VideoLogWarning("pSoundAliveBtn button");
+ _vp_play_normal_view_on_sound_alive_popup(pNormalView);
+ } else if (pObj == pNormalView->pRepeatBtn) {
+ VideoLogWarning("pRepeatBtn button");
+ if (pNormalView->nRepeatMode == VIDEO_PLAY_REPEAT_NONE) {
+ pNormalView->nRepeatMode = VIDEO_PLAY_REPEAT_ONE;
+
+ Evas_Object *pIcon = NULL;
+ pIcon =
+ elm_object_part_content_get(pNormalView->pRepeatBtn,
+ VP_PLAY_SWALLOW_BUTTON_ICON);
+ if (pIcon) {
+ evas_object_del(pIcon);
+ pIcon = NULL;
+ }
+ pIcon =
+ elm_object_part_content_get(pNormalView->pRepeatBtn,
+ VP_PLAY_SWALLOW_BUTTON_PRESS_ICON);
+ if (pIcon) {
+ evas_object_del(pIcon);
+ pIcon = NULL;
+ }
+ pIcon =
+ elm_object_part_content_get(pNormalView->pRepeatBtn,
+ VP_PLAY_SWALLOW_BUTTON_DIM_ICON);
+ if (pIcon) {
+ evas_object_del(pIcon);
+ pIcon = NULL;
+ }
+
+ pIcon =
+ vp_button_create_icon(pNormalView->pRepeatBtn, edj_path,
+ VP_PLAY_NORMAL_RES_REPEAT_ONE);
+ elm_object_part_content_set(pNormalView->pRepeatBtn,
+ VP_PLAY_SWALLOW_BUTTON_ICON,
+ pIcon);
+
+ pIcon =
+ vp_button_create_icon(pNormalView->pRepeatBtn, edj_path,
+ VP_PLAY_NORMAL_RES_REPEAT_ONE_PRESS);
+ elm_object_part_content_set(pNormalView->pRepeatBtn,
+ VP_PLAY_SWALLOW_BUTTON_PRESS_ICON,
+ pIcon);
+
+ pIcon =
+ vp_button_create_icon(pNormalView->pRepeatBtn, edj_path,
+ VP_PLAY_NORMAL_RES_REPEAT_ONE_DIM);
+ elm_object_part_content_set(pNormalView->pRepeatBtn,
+ VP_PLAY_SWALLOW_BUTTON_DIM_ICON,
+ pIcon);
+ } else if (pNormalView->nRepeatMode == VIDEO_PLAY_REPEAT_ONE) {
+ pNormalView->nRepeatMode = VIDEO_PLAY_REPEAT_ALL;
+
+ Evas_Object *pIcon = NULL;
+ pIcon =
+ elm_object_part_content_get(pNormalView->pRepeatBtn,
+ VP_PLAY_SWALLOW_BUTTON_ICON);
+ if (pIcon) {
+ evas_object_del(pIcon);
+ pIcon = NULL;
+ }
+ pIcon =
+ elm_object_part_content_get(pNormalView->pRepeatBtn,
+ VP_PLAY_SWALLOW_BUTTON_PRESS_ICON);
+ if (pIcon) {
+ evas_object_del(pIcon);
+ pIcon = NULL;
+ }
+ pIcon =
+ elm_object_part_content_get(pNormalView->pRepeatBtn,
+ VP_PLAY_SWALLOW_BUTTON_DIM_ICON);
+ if (pIcon) {
+ evas_object_del(pIcon);
+ pIcon = NULL;
+ }
+
+ pIcon =
+ vp_button_create_icon(pNormalView->pRepeatBtn, edj_path,
+ VP_PLAY_NORMAL_RES_REPEAT_ALL);
+ elm_object_part_content_set(pNormalView->pRepeatBtn,
+ VP_PLAY_SWALLOW_BUTTON_ICON,
+ pIcon);
+
+ pIcon =
+ vp_button_create_icon(pNormalView->pRepeatBtn, edj_path,
+ VP_PLAY_NORMAL_RES_REPEAT_ALL_PRESS);
+ elm_object_part_content_set(pNormalView->pRepeatBtn,
+ VP_PLAY_SWALLOW_BUTTON_PRESS_ICON,
+ pIcon);
+
+ pIcon =
+ vp_button_create_icon(pNormalView->pRepeatBtn, edj_path,
+ VP_PLAY_NORMAL_RES_REPEAT_ALL_DIM);
+ elm_object_part_content_set(pNormalView->pRepeatBtn,
+ VP_PLAY_SWALLOW_BUTTON_DIM_ICON,
+ pIcon);
+
+ } else if (pNormalView->nRepeatMode == VIDEO_PLAY_REPEAT_ALL) {
+ pNormalView->nRepeatMode = VIDEO_PLAY_REPEAT_NONE;
+ Evas_Object *pIcon = NULL;
+ pIcon =
+ elm_object_part_content_get(pNormalView->pRepeatBtn,
+ VP_PLAY_SWALLOW_BUTTON_ICON);
+ if (pIcon) {
+ evas_object_del(pIcon);
+ pIcon = NULL;
+ }
+ pIcon =
+ elm_object_part_content_get(pNormalView->pRepeatBtn,
+ VP_PLAY_SWALLOW_BUTTON_PRESS_ICON);
+ if (pIcon) {
+ evas_object_del(pIcon);
+ pIcon = NULL;
+ }
+ pIcon =
+ elm_object_part_content_get(pNormalView->pRepeatBtn,
+ VP_PLAY_SWALLOW_BUTTON_DIM_ICON);
+ if (pIcon) {
+ evas_object_del(pIcon);
+ pIcon = NULL;
+ }
+
+ pIcon =
+ vp_button_create_icon(pNormalView->pRepeatBtn, edj_path,
+ VP_PLAY_NORMAL_RES_REPEAT_OFF);
+ elm_object_part_content_set(pNormalView->pRepeatBtn,
+ VP_PLAY_SWALLOW_BUTTON_ICON,
+ pIcon);
+
+ pIcon =
+ vp_button_create_icon(pNormalView->pRepeatBtn, edj_path,
+ VP_PLAY_NORMAL_RES_REPEAT_OFF_PRESS);
+ elm_object_part_content_set(pNormalView->pRepeatBtn,
+ VP_PLAY_SWALLOW_BUTTON_PRESS_ICON,
+ pIcon);
+
+ pIcon =
+ vp_button_create_icon(pNormalView->pRepeatBtn, edj_path,
+ VP_PLAY_NORMAL_RES_REPEAT_OFF_DIM);
+ elm_object_part_content_set(pNormalView->pRepeatBtn,
+ VP_PLAY_SWALLOW_BUTTON_DIM_ICON,
+ pIcon);
+ }
+ } else if (pObj == pNormalView->pScreenSizeBtn) {
+ VideoLogWarning("pScreenSizeBtn button");
+
+ if (pNormalView->nDisplayMode == VP_MM_PLAYER_DISPLAY_FULL_SCREEN) {
+ VideoLogWarning(" VP_MM_PLAYER_DISPLAY_LETTER_BOX");
+ pNormalView->nDisplayMode = VP_MM_PLAYER_DISPLAY_LETTER_BOX;
+ vp_play_preference_set_screen_mode_key(pNormalView->
+ nDisplayMode);
+
+ vp_mm_player_set_display_mode(pNormalView->pPlayerHandle,
+ pNormalView->nDisplayMode);
+
+ Evas_Object *pIcon = NULL;
+ pIcon =
+ elm_object_part_content_get(pNormalView->pScreenSizeBtn,
+ VP_PLAY_SWALLOW_BUTTON_ICON);
+ if (pIcon) {
+ evas_object_del(pIcon);
+ pIcon = NULL;
+ }
+ pIcon =
+ elm_object_part_content_get(pNormalView->pScreenSizeBtn,
+ VP_PLAY_SWALLOW_BUTTON_PRESS_ICON);
+ if (pIcon) {
+ evas_object_del(pIcon);
+ pIcon = NULL;
+ }
+ pIcon =
+ elm_object_part_content_get(pNormalView->pScreenSizeBtn,
+ VP_PLAY_SWALLOW_BUTTON_DIM_ICON);
+ if (pIcon) {
+ evas_object_del(pIcon);
+ pIcon = NULL;
+ }
+
+ pIcon =
+ vp_button_create_icon(pNormalView->pScreenSizeBtn,
+ edj_path,
+ VP_PLAY_NORMAL_RES_SCREEN_1_MODE);
+ elm_object_part_content_set(pNormalView->pScreenSizeBtn,
+ VP_PLAY_SWALLOW_BUTTON_ICON,
+ pIcon);
+
+ pIcon =
+ vp_button_create_icon(pNormalView->pScreenSizeBtn,
+ edj_path,
+ VP_PLAY_NORMAL_RES_SCREEN_1_MODE);
+ elm_object_part_content_set(pNormalView->pScreenSizeBtn,
+ VP_PLAY_SWALLOW_BUTTON_PRESS_ICON,
+ pIcon);
+ elm_object_text_set(pNormalView->pScreenSizeBtn,
+ VP_PLAY_STRING_COM_FULL);
+
+ return;
+ } else if (pNormalView->nDisplayMode ==
+ VP_MM_PLAYER_DISPLAY_LETTER_BOX) {
+ VideoLogWarning("VP_MM_PLAYER_DISPLAY_FULL_SCREEN");
+ pNormalView->nDisplayMode = VP_MM_PLAYER_DISPLAY_FULL_SCREEN;
+ vp_play_preference_set_screen_mode_key(pNormalView->
+ nDisplayMode);
+
+ vp_mm_player_set_display_mode(pNormalView->pPlayerHandle,
+ pNormalView->nDisplayMode);
+
+ Evas_Object *pIcon = NULL;
+ pIcon =
+ elm_object_part_content_get(pNormalView->pScreenSizeBtn,
+ VP_PLAY_SWALLOW_BUTTON_ICON);
+ if (pIcon) {
+ evas_object_del(pIcon);
+ pIcon = NULL;
+ }
+ pIcon =
+ elm_object_part_content_get(pNormalView->pScreenSizeBtn,
+ VP_PLAY_SWALLOW_BUTTON_PRESS_ICON);
+ if (pIcon) {
+ evas_object_del(pIcon);
+ pIcon = NULL;
+ }
+ pIcon =
+ elm_object_part_content_get(pNormalView->pScreenSizeBtn,
+ VP_PLAY_SWALLOW_BUTTON_DIM_ICON);
+ if (pIcon) {
+ evas_object_del(pIcon);
+ pIcon = NULL;
+ }
+
+ pIcon =
+ vp_button_create_icon(pNormalView->pScreenSizeBtn,
+ edj_path,
+ VP_PLAY_NORMAL_RES_SCREEN_2_MODE);
+ elm_object_part_content_set(pNormalView->pScreenSizeBtn,
+ VP_PLAY_SWALLOW_BUTTON_ICON,
+ pIcon);
+
+ pIcon =
+ vp_button_create_icon(pNormalView->pScreenSizeBtn,
+ edj_path,
+ VP_PLAY_NORMAL_RES_SCREEN_2_MODE_PRESS);
+ elm_object_part_content_set(pNormalView->pScreenSizeBtn,
+ VP_PLAY_SWALLOW_BUTTON_PRESS_ICON,
+ pIcon);
+ elm_object_text_set(pNormalView->pScreenSizeBtn,
+ VP_PLAY_STRING_COM_KEEP_RATIO);
+
+ return;
+ }
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEvent
+ */
+static void __vp_normal_control_btn_clicked_cb(void *pUserData,
+ Evas_Object * pObj,
+ void *pEvent)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ NormalView *pNormalView = (NormalView *) pUserData;
+ PlayView *pPlayView = pNormalView->pPlayView;
+ if (!pPlayView) {
+ VideoLogError("pPlayView handle is NULL");
+ return;
+ }
+
+ if (pNormalView->bIsRealize == FALSE) {
+ VideoLogWarning("Skip for not realized");
+ return;
+ }
+
+ if (pObj == pNormalView->pPauseBtn) {
+ VideoLogWarning("Pause button");
+ vp_util_release_cpu();
+
+ if (pNormalView->bBufferingComplete == FALSE) {
+ VideoLogWarning
+ ("Bufferring is not completed. ignore pause signal");
+ } else {
+ if (!vp_mm_player_pause(pNormalView->pPlayerHandle)) {
+ VideoLogWarning("Pause Fail");
+ }
+ }
+
+ VP_EVAS_IDLER_DEL(pNormalView->pControlIdler);
+ pNormalView->pControlIdler =
+ ecore_idler_add(__vp_normal_control_idler_cb,
+ (void *) pNormalView);
+
+ pNormalView->bManualPause = TRUE;
+ if (pPlayView->win_minicon) {
+ vp_minicontroller_update_control(pPlayView);
+ }
+ if (pPlayView->win_lockmini) {
+ vp_lockscreenmini_update_control(pPlayView);
+ }
+ } else if (pObj == pNormalView->pResumeBtn) {
+ VideoLogWarning("Resume button");
+ vp_util_lock_cpu();
+ if (_vp_play_normal_view_check_during_call(pNormalView)) {
+ return;
+ }
+
+ VP_EVAS_TIMER_DEL(pNormalView->pSpeedTimer);
+ pNormalView->nSpeedValue = 1;
+ pNormalView->bSpeedDown = TRUE;
+
+ if (pNormalView->bBufferingComplete == FALSE) {
+ VideoLogWarning
+ ("Bufferring is not completed. ignore pause signal");
+ } else {
+ if (!vp_mm_player_play(pNormalView->pPlayerHandle)) {
+ VideoLogWarning("Resume Fail");
+ }
+ }
+
+ VP_EVAS_IDLER_DEL(pNormalView->pControlIdler);
+ pNormalView->pControlIdler =
+ ecore_idler_add(__vp_normal_control_idler_cb,
+ (void *) pNormalView);
+
+ pNormalView->bManualPause = FALSE;
+ if (pPlayView->win_minicon) {
+ vp_minicontroller_update_control(pPlayView);
+ }
+ if (pPlayView->win_lockmini) {
+ vp_lockscreenmini_update_control(pPlayView);
+ }
+ } else if (pObj == pNormalView->pPlayFocusBtn) {
+ VideoLogWarning("pPlayFocusBtn click");
+ Evas_Object *pObj =
+ elm_object_part_content_get(pNormalView->pControlLayout,
+ VP_PLAY_SWALLOW_NORMAL_PLAY);
+ if (pNormalView->pPauseBtn == pObj) {
+
+ if (!vp_mm_player_pause(pNormalView->pPlayerHandle)) {
+ VideoLogWarning("Pause Fail");
+ }
+ if (pPlayView->win_minicon) {
+ vp_minicontroller_update_control(pPlayView);
+ }
+ if (pPlayView->win_lockmini) {
+ vp_lockscreenmini_update_control(pPlayView);
+ }
+
+ VP_EVAS_IDLER_DEL(pNormalView->pControlIdler);
+ pNormalView->pControlIdler =
+ ecore_idler_add(__vp_normal_control_idler_cb,
+ (void *) pNormalView);
+
+ pNormalView->bManualPause = TRUE;
+ } else {
+ if (_vp_play_normal_view_check_during_call(pNormalView)) {
+ return;
+ }
+
+ if (!vp_mm_player_play(pNormalView->pPlayerHandle)) {
+ VideoLogWarning("Resume Fail");
+ }
+ if (pPlayView->win_minicon) {
+ vp_minicontroller_update_control(pPlayView);
+ }
+ if (pPlayView->win_lockmini) {
+ vp_lockscreenmini_update_control(pPlayView);
+ }
+ VP_EVAS_IDLER_DEL(pNormalView->pControlIdler);
+ pNormalView->pControlIdler =
+ ecore_idler_add(__vp_normal_control_idler_cb,
+ (void *) pNormalView);
+
+ pNormalView->bManualPause = FALSE;
+ }
+ } else if (pObj == pNormalView->pPrevBtn) {
+ VideoLogWarning("Prev button");
+ if (pNormalView->bHLSMode == FALSE) {
+ if (pNormalView->nSpeedValue < 2) {
+ VP_EVAS_TIMER_DEL(pNormalView->pSpeedTimer);
+ _vp_play_normal_view_on_prev_play(pNormalView, TRUE,
+ FALSE);
+ }
+ }
+ if (pPlayView->win_minicon) {
+ vp_minicontroller_update(pPlayView, true);
+ vp_minicontroller_update_control(pPlayView);
+ }
+ if (pPlayView->win_lockmini) {
+ vp_lockscreenmini_update(pPlayView);
+ vp_lockscreenmini_update_control(pPlayView);
+ }
+ } else if (pObj == pNormalView->pNextBtn) {
+ VideoLogWarning("Next button");
+ if (pNormalView->bHLSMode == FALSE) {
+ if (pPlayView->bResetPlaySpeed == TRUE) {
+ pPlayView->bResetPlaySpeed = FALSE;
+ VP_EVAS_TIMER_DEL(pNormalView->pSpeedTimer);
+ } else if (pNormalView->nSpeedValue < 2
+ && strstr(pPlayView->szMediaURL, "/.") == NULL) {
+ VP_EVAS_TIMER_DEL(pNormalView->pSpeedTimer);
+ _vp_play_normal_view_on_next_play(pNormalView, TRUE);
+ }
+ }
+ if (pPlayView->win_minicon) {
+ vp_minicontroller_update(pPlayView, true);
+ vp_minicontroller_update_control(pPlayView);
+ }
+ if (pPlayView->win_lockmini) {
+ vp_lockscreenmini_update(pPlayView);
+ vp_lockscreenmini_update_control(pPlayView);
+ }
+ } else if (pObj == pNormalView->pRotateBtn) {
+ VideoLogWarning("Rotate button");
+
+ bool bLandscape =
+ vp_play_util_get_landscape_check(pNormalView->nRotate);
+ PlayView *pPlayView = pNormalView->pPlayView;
+
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return;
+ }
+
+ if (bLandscape) {
+ pPlayView->nRotate = VIDEO_PLAY_ROTATE_NONE;
+ elm_win_wm_rotation_preferred_rotation_set(pPlayView->pWin, 0);
+ vp_play_normal_view_set_rotate((normal_view_handle)
+ pNormalView,
+ VIDEO_PLAY_ROTATE_NONE, TRUE);
+ } else {
+ pPlayView->nRotate = VIDEO_PLAY_ROTATE_270;
+ elm_win_wm_rotation_preferred_rotation_set(pPlayView->pWin,
+ 270);
+ vp_play_normal_view_set_rotate((normal_view_handle)
+ pNormalView,
+ VIDEO_PLAY_ROTATE_270, TRUE);
+ }
+ } else if (pObj == pNormalView->pSoundPathBtn) {
+ VideoLogWarning("SoundPath button");
+ _vp_play_normal_view_on_sound_path_popup(pNormalView);
+ } else if (pObj == pNormalView->pCaptureRewBtn) {
+ _vp_play_normal_view_screen_move(pNormalView, FALSE);
+ } else if (pObj == pNormalView->pCaptureFFBtn) {
+ _vp_play_normal_view_screen_move(pNormalView, TRUE);
+ } else {
+ VideoLogWarning("Unknown button");
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param btn
+ */
+void vp_play_normal_view_on_controller_button_press(void *pUserData,
+ int btn)
+{
+
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ NormalView *pNormalView = (NormalView *) pUserData;
+ Evas_Object *pObj = NULL;
+
+ if (btn == CONTROLLER_PAUSE_BUTTON) {
+ pObj = pNormalView->pPauseBtn;
+ } else if (btn == CONTROLLER_PLAY_BUTTON) {
+ pObj = pNormalView->pResumeBtn;
+ } else if (btn == CONTROLLER_FF_BUTTON) {
+ pObj = pNormalView->pNextBtn;
+ } else if (btn == CONTROLLER_REW_BUTTON) {
+ pObj = pNormalView->pPrevBtn;
+ } else {
+ VideoLogError("Unknown Button!");
+ }
+ __vp_normal_control_btn_clicked_cb(pNormalView, pObj, NULL);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEvent
+ */
+static void __vp_normal_control_btn_press_cb(void *pUserData,
+ Evas_Object * pObj,
+ void *pEvent)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+ if (!pObj) {
+ VideoLogError("pObj is NULL");
+ return;
+ }
+ bool bSpeedMode = FALSE;
+ NormalView *pNormalView = (NormalView *) pUserData;
+ if (pNormalView->bKeyPressed == TRUE) {
+ VideoLogInfo("Key has been pressed");
+ return;
+ }
+ pNormalView->bKeyPressed = TRUE;
+
+ if (pNormalView->pSpeedTimer) {
+ bSpeedMode = TRUE;
+ }
+
+ VP_EVAS_TIMER_DEL(pNormalView->pHideTimer);
+ VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+ VP_EVAS_TIMER_DEL(pNormalView->pSpeedTimer);
+
+ elm_object_signal_emit(pNormalView->pMainLayout,
+ VP_NORMAL_SIGNAL_MAIN_SPEED_HIDE, "*");
+
+ if (pObj == pNormalView->pNextBtn) {
+ VideoLogInfo("pNextBtn Press");
+ if (pNormalView->bHLSMode == FALSE) {
+ pNormalView->bSpeedFF = TRUE;
+ pNormalView->nSpeedValue = 1;
+ pNormalView->bSpeedDown = TRUE;
+ pNormalView->pSpeedTimer =
+ ecore_timer_add(VP_NORMAL_LONG_PRESS_TIMER_INTERVAL,
+ __vp_normal_speed_timer_cb,
+ (void *) pNormalView);
+ } else {
+ pNormalView->pSpeedTimer =
+ ecore_timer_add(VP_NORMAL_LONG_PRESS_TIMER_INTERVAL,
+ __vp_normal_dlna_speed_timer_cb,
+ (void *) pNormalView);
+ }
+
+ } else if (pObj == pNormalView->pPrevBtn) {
+ VideoLogInfo("pPrevBtn Press");
+ if (pNormalView->bHLSMode == FALSE) {
+ pNormalView->bSpeedFF = FALSE;
+ pNormalView->nSpeedValue = 1;
+ pNormalView->bSpeedDown = TRUE;
+ pNormalView->pSpeedTimer =
+ ecore_timer_add(VP_NORMAL_LONG_PRESS_TIMER_INTERVAL,
+ __vp_normal_speed_timer_cb,
+ (void *) pNormalView);
+ } else {
+ pNormalView->pSpeedTimer =
+ ecore_timer_add(VP_NORMAL_LONG_PRESS_TIMER_INTERVAL,
+ __vp_normal_dlna_speed_timer_cb,
+ (void *) pNormalView);
+ }
+ } else if (pObj == pNormalView->pResumeBtn) {
+ if (bSpeedMode) {
+ int nPosition = 0;
+ if (vp_mm_player_get_position
+ (pNormalView->pPlayerHandle, &nPosition)) {
+ VideoLogDebug("nPosition[%d], curPosition[%d]", nPosition,
+ pNormalView->nCurPosition);
+
+ if (vp_mm_player_set_position
+ (pNormalView->pPlayerHandle,
+ pNormalView->nCurPosition)) {
+ pNormalView->bSeekComplete = FALSE;
+ pNormalView->nWaitPos = -1;
+ } else {
+ pNormalView->nWaitPos = nPosition;
+ }
+ }
+ }
+ } else if (pObj == pNormalView->pPlayFocusBtn) {
+ VideoLogInfo("pPlayFocusBtn Press");
+ Evas_Object *pObj =
+ elm_object_part_content_get(pNormalView->pControlLayout,
+ VP_PLAY_SWALLOW_NORMAL_PLAY);
+ if (pNormalView->pResumeBtn == pObj) {
+ if (bSpeedMode) {
+ int nPosition = 0;
+ if (vp_mm_player_get_position
+ (pNormalView->pPlayerHandle, &nPosition)) {
+ if (vp_mm_player_set_position
+ (pNormalView->pPlayerHandle,
+ pNormalView->nCurPosition)) {
+ pNormalView->bSeekComplete = FALSE;
+ pNormalView->nWaitPos = -1;
+ } else {
+ pNormalView->nWaitPos = nPosition;
+ }
+ }
+ }
+ }
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEvent
+ */
+static void __vp_normal_control_btn_unpress_cb(void *pUserData,
+ Evas_Object * pObj,
+ void *pEvent)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ if (!pObj) {
+ VideoLogError("pObj is NULL");
+ return;
+ }
+ VideoLogInfo("");
+
+ NormalView *pNormalView = (NormalView *) pUserData;
+
+ pNormalView->bKeyPressed = FALSE;
+
+ if (pObj == pNormalView->pPauseBtn) {
+ } else if (pObj == pNormalView->pResumeBtn) {
+ } else if (pObj == pNormalView->pNextBtn) {
+ pNormalView->bSpeedDown = FALSE;
+ VP_EVAS_TIMER_DEL(pNormalView->pSpeedTimer);
+ elm_object_signal_emit(pNormalView->pMainLayout,
+ VP_NORMAL_SIGNAL_MAIN_SPEED_HIDE, "*");
+ if (!pNormalView->pProgressTimer) {
+ _vp_play_normal_view_create_progress_timer(pNormalView);
+ }
+ } else if (pObj == pNormalView->pPrevBtn) {
+ pNormalView->bSpeedDown = FALSE;
+ VP_EVAS_TIMER_DEL(pNormalView->pSpeedTimer);
+ elm_object_signal_emit(pNormalView->pMainLayout,
+ VP_NORMAL_SIGNAL_MAIN_SPEED_HIDE, "*");
+ if (!pNormalView->pProgressTimer) {
+ _vp_play_normal_view_create_progress_timer(pNormalView);
+ }
+ } else if (pObj == pNormalView->pAllsharBtn) {
+ VP_EVAS_IDLER_DEL(pNormalView->pControlIdler);
+ pNormalView->pControlIdler =
+ ecore_idler_add(__vp_normal_control_idler_cb,
+ (void *) pNormalView);
+ }
+ _vp_play_normal_view_create_layout_hide_timer(pNormalView);
+}
+
+/**
+ *
+ * @param nKey
+ * @param bRelease
+ * @param pUserData
+ */
+static void __vp_normal_media_key_event_cb(vp_media_key_event_t nKey,
+ bool bRelease, void *pUserData)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ NormalView *pNormalView = (NormalView *) pUserData;
+ PlayView *pPlayView = pNormalView->pPlayView;
+
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return;
+ }
+ if (pNormalView->bSharepopup) {
+ VideoLogWarning("bSharepopup is TRUE");
+ return;
+ }
+
+ switch (nKey) {
+ case VP_MEDIA_KEY_PLAY:
+ case VP_MEDIA_KEY_PAUSE:
+ case VP_MEDIA_KEY_PLAYPAUSE:
+ if (bRelease) {
+ VP_EVAS_TIMER_DEL(pNormalView->pSpeedTimer);
+
+ if (pNormalView->pDetailHandle) {
+ vp_detail_destroy(pNormalView->pDetailHandle);
+ pNormalView->pDetailHandle = NULL;
+ }
+
+ elm_object_signal_emit(pNormalView->pMainLayout,
+ VP_NORMAL_SIGNAL_MAIN_SPEED_HIDE, "*");
+
+ vp_mm_player_state_t nState = VP_MM_PLAYER_STATE_NONE;
+ if (!vp_mm_player_get_state
+ (pNormalView->pPlayerHandle, &nState)) {
+ VideoLogWarning("vp_mm_player_get_state is fail");
+ }
+
+ if (nState != VP_MM_PLAYER_STATE_PLAYING) {
+ if (!vp_mm_player_play(pNormalView->pPlayerHandle)) {
+ VideoLogError("Pause Fail");
+ }
+ pNormalView->bManualPause = FALSE;
+ } else {
+ if (!vp_mm_player_pause(pNormalView->pPlayerHandle)) {
+ VideoLogError("Pause Fail");
+ }
+ pNormalView->bManualPause = TRUE;
+ }
+ if (pPlayView->win_minicon) {
+ vp_minicontroller_update_control(pPlayView);
+ }
+ if (pPlayView->win_lockmini) {
+ vp_lockscreenmini_update_control(pPlayView);
+ }
+ _vp_play_normal_view_set_play_state(pNormalView);
+ _vp_play_normal_view_on_capture_mode(pNormalView);
+ }
+ break;
+
+ case VP_MEDIA_KEY_PREVIOUS:
+ if (bRelease) {
+ VP_EVAS_TIMER_DEL(pNormalView->pSpeedTimer);
+ elm_object_signal_emit(pNormalView->pMainLayout,
+ VP_NORMAL_SIGNAL_MAIN_SPEED_HIDE, "*");
+ _vp_play_normal_view_on_prev_play(pNormalView, TRUE, FALSE);
+ }
+ break;
+ case VP_MEDIA_KEY_NEXT:
+ if (bRelease) {
+ VP_EVAS_TIMER_DEL(pNormalView->pSpeedTimer);
+ elm_object_signal_emit(pNormalView->pMainLayout,
+ VP_NORMAL_SIGNAL_MAIN_SPEED_HIDE, "*");
+ _vp_play_normal_view_on_next_play(pNormalView, TRUE);
+ }
+ break;
+ case VP_MEDIA_KEY_REWIND:
+ if (bRelease) {
+ pNormalView->bSpeedDown = FALSE;
+
+ if (pNormalView->nSpeedValue < 2) {
+ VideoLogInfo("speed up");
+ _vp_normal_view_speed_for_steps(pNormalView, FALSE);
+ }
+
+ VP_EVAS_TIMER_DEL(pNormalView->pSpeedTimer);
+ if (pNormalView->pDetailHandle) {
+ vp_detail_destroy(pNormalView->pDetailHandle);
+ pNormalView->pDetailHandle = NULL;
+ }
+
+ elm_object_signal_emit(pNormalView->pMainLayout,
+ VP_NORMAL_SIGNAL_MAIN_SPEED_HIDE, "*");
+
+ if (pNormalView->bManualPause == FALSE) {
+ if (!vp_mm_player_play(pNormalView->pPlayerHandle)) {
+ VideoLogError("play Fail");
+ }
+ pNormalView->bManualPause = FALSE;
+ }
+ if (pPlayView->win_minicon) {
+ vp_minicontroller_update_control(pPlayView);
+ }
+ if (pPlayView->win_lockmini) {
+ vp_lockscreenmini_update_control(pPlayView);
+ }
+ _vp_play_normal_view_set_play_state(pNormalView);
+ _vp_play_normal_view_on_capture_mode(pNormalView);
+ } else {
+ if (pNormalView->pDetailHandle) {
+ vp_detail_destroy(pNormalView->pDetailHandle);
+ pNormalView->pDetailHandle = NULL;
+ }
+ VP_EVAS_TIMER_DEL(pNormalView->pHideTimer);
+ VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+ VP_EVAS_TIMER_DEL(pNormalView->pSpeedTimer);
+
+ elm_object_signal_emit(pNormalView->pMainLayout,
+ VP_NORMAL_SIGNAL_MAIN_SPEED_HIDE, "*");
+
+ pNormalView->bSpeedFF = FALSE;
+ pNormalView->nSpeedValue = 1;
+ pNormalView->bSpeedDown = TRUE;
+ pNormalView->pSpeedTimer =
+ ecore_timer_add(VP_NORMAL_LONG_PRESS_TIMER_INTERVAL,
+ __vp_normal_speed_timer_cb,
+ (void *) pNormalView);
+ }
+ break;
+ case VP_MEDIA_KEY_FASTFORWARD:
+ if (bRelease) {
+ pNormalView->bSpeedDown = FALSE;
+
+ if (pNormalView->nSpeedValue < 2) {
+ VideoLogInfo("speed up");
+ _vp_normal_view_speed_for_steps(pNormalView, TRUE);
+ }
+
+ VP_EVAS_TIMER_DEL(pNormalView->pSpeedTimer);
+ if (pNormalView->pDetailHandle) {
+ vp_detail_destroy(pNormalView->pDetailHandle);
+ pNormalView->pDetailHandle = NULL;
+ }
+
+ elm_object_signal_emit(pNormalView->pMainLayout,
+ VP_NORMAL_SIGNAL_MAIN_SPEED_HIDE, "*");
+
+ if (pNormalView->bManualPause == FALSE) {
+ if (!vp_mm_player_play(pNormalView->pPlayerHandle)) {
+ VideoLogError("play Fail");
+ }
+ if (pPlayView->win_minicon) {
+ vp_minicontroller_update_control(pPlayView);
+ }
+ if (pPlayView->win_lockmini) {
+ vp_lockscreenmini_update_control(pPlayView);
+ }
+ pNormalView->bManualPause = FALSE;
+ }
+
+ _vp_play_normal_view_set_play_state(pNormalView);
+ _vp_play_normal_view_on_capture_mode(pNormalView);
+ } else {
+ VP_EVAS_TIMER_DEL(pNormalView->pHideTimer);
+ VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+ VP_EVAS_TIMER_DEL(pNormalView->pSpeedTimer);
+
+ if (pNormalView->pDetailHandle) {
+ vp_detail_destroy(pNormalView->pDetailHandle);
+ pNormalView->pDetailHandle = NULL;
+ }
+
+ elm_object_signal_emit(pNormalView->pMainLayout,
+ VP_NORMAL_SIGNAL_MAIN_SPEED_HIDE, "*");
+
+ pNormalView->bSpeedFF = TRUE;
+ pNormalView->nSpeedValue = 1;
+ pNormalView->bSpeedDown = TRUE;
+ pNormalView->pSpeedTimer =
+ ecore_timer_add(VP_NORMAL_LONG_PRESS_TIMER_INTERVAL,
+ __vp_normal_speed_timer_cb,
+ (void *) pNormalView);
+ }
+ break;
+ case VP_MEDIA_KEY_STOP:
+ if (bRelease) {
+ VP_EVAS_TIMER_DEL(pNormalView->pSpeedTimer);
+ elm_object_signal_emit(pNormalView->pMainLayout,
+ VP_NORMAL_SIGNAL_MAIN_SPEED_HIDE, "*");
+ vp_mm_player_state_t nState = VP_MM_PLAYER_STATE_NONE;
+ if (!vp_mm_player_get_state
+ (pNormalView->pPlayerHandle, &nState)) {
+ VideoLogWarning("vp_mm_player_get_state is fail");
+ }
+
+ if (nState == VP_MM_PLAYER_STATE_PLAYING) {
+ if (!vp_mm_player_pause(pNormalView->pPlayerHandle)) {
+ VideoLogError("Pause Fail");
+ }
+ }
+ if (pPlayView && pPlayView->win_minicon) {
+ vp_minicontroller_update_control(pPlayView);
+ }
+ if (pPlayView && pPlayView->win_lockmini) {
+ vp_lockscreenmini_update_control(pPlayView);
+ }
+ pNormalView->bManualPause = TRUE;
+ _vp_play_normal_view_set_play_state(pNormalView);
+ _vp_play_normal_view_on_capture_mode(pNormalView);
+ }
+ break;
+ }
+
+}
+
+/*
+ this function is for only for keyboard FF/REW key longpress case
+ because of different FF/REW long press scenario in keyboard
+ video -> play a file -> pause -> key down FF button(long press) -> move seek -> key up FF button -> seek stop -> stay pause
+ video -> play a file -> playing -> key down FF button(long press) -> move seek -> key up FF button -> seek stop -> resume
+*/
+
+/**
+ *
+ * @param pViewHandle
+ * @param bRelease
+ * @param bFFseek
+ */
+void
+vp_play_normal_view_ff_rew_keyboard_longpress_event_cb(normal_view_handle
+ pViewHandle,
+ bool bRelease,
+ bool bFFseek)
+{
+ if (!pViewHandle) {
+ VideoLogError("pViewHandle is NULL");
+ return;
+ }
+
+ NormalView *pNormalView = (NormalView *) pViewHandle;
+ PlayView *pPlayView = pNormalView->pPlayView;
+
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ }
+
+ if (pNormalView->pSpeedTimer == NULL && bRelease == FALSE) {
+ if (bFFseek) {
+ __vp_normal_media_key_event_cb(VP_MEDIA_KEY_FASTFORWARD,
+ bRelease, pNormalView);
+ } else {
+ __vp_normal_media_key_event_cb(VP_MEDIA_KEY_REWIND, bRelease,
+ pNormalView);
+ }
+ } else if (pNormalView->pSpeedTimer && bRelease == TRUE) {
+ if (pNormalView->nSpeedValue < 2) {
+ VideoLogInfo("speed up");
+ _vp_normal_view_speed_for_steps(pNormalView, bFFseek);
+ } else {
+ int nPosition = 0;
+ if (vp_mm_player_get_position
+ (pNormalView->pPlayerHandle, &nPosition)) {
+ if (vp_mm_player_set_position
+ (pNormalView->pPlayerHandle,
+ pNormalView->nCurPosition)) {
+ pNormalView->bSeekComplete = FALSE;
+ pNormalView->nWaitPos = -1;
+ } else {
+ pNormalView->nWaitPos = nPosition;
+ }
+ }
+ }
+
+ VP_EVAS_TIMER_DEL(pNormalView->pSpeedTimer);
+ if (pNormalView->pDetailHandle) {
+ vp_detail_destroy(pNormalView->pDetailHandle);
+ pNormalView->pDetailHandle = NULL;
+ }
+
+ elm_object_signal_emit(pNormalView->pMainLayout,
+ VP_NORMAL_SIGNAL_MAIN_SPEED_HIDE, "*");
+
+ if (pNormalView->bManualPause == FALSE) {
+ if (!vp_mm_player_play(pNormalView->pPlayerHandle)) {
+ VideoLogError("play Fail");
+ }
+ if (pPlayView && pPlayView->win_minicon) {
+ vp_minicontroller_update_control(pPlayView);
+ }
+ if (pPlayView && pPlayView->win_lockmini) {
+ vp_lockscreenmini_update_control(pPlayView);
+ }
+ pNormalView->bManualPause = FALSE;
+ }
+
+ _vp_play_normal_view_set_play_state(pNormalView);
+ _vp_play_normal_view_on_capture_mode(pNormalView);
+ }
+}
+
+/**
+ *
+ * @param pNormalView
+ * @param bSpeedFF
+ */
+static void _vp_normal_view_speed_for_steps(NormalView * pNormalView,
+ bool bSpeedFF)
+{
+ if (!pNormalView) {
+ VideoLogError("pNormalView is NULL");
+ return;
+ }
+
+ VideoLogInfo("");
+
+ if (pNormalView->bSeekComplete == FALSE) {
+ VideoLogError("bSeekComplete is fail");
+ return;
+ }
+
+ int nSetPosition = 0;
+ int nCurPosition = 0;
+
+ if (!vp_mm_player_get_position
+ (pNormalView->pPlayerHandle, &nCurPosition)) {
+ VideoLogError("vp_mm_player_get_position is fail");
+ return;
+ }
+
+ if (pNormalView->nDuration <= nCurPosition) {
+ _vp_play_normal_view_on_next_play(pNormalView, FALSE);
+ return;
+ }
+
+ VideoLogInfo("pNormalView->nDuration %d", pNormalView->nDuration);
+ if (bSpeedFF) {
+ nSetPosition = nCurPosition + (15 * 1000); //15 sec
+ } else {
+ nSetPosition = nCurPosition - (15 * 1000);
+ }
+
+ if (pNormalView->nDuration < nSetPosition) {
+ nSetPosition = pNormalView->nDuration;
+ }
+
+ if (nSetPosition < 0) {
+ nSetPosition = 0;
+ }
+#if 1
+ if (vp_mm_player_set_position
+ (pNormalView->pPlayerHandle, nSetPosition)) {
+#else
+ if (vp_mm_player_set_position_by_key_frame
+ (pNormalView->pPlayerHandle, nSetPosition)) {
+#endif
+ pNormalView->bSeekComplete = FALSE;
+ pNormalView->nCurPosition = nSetPosition;
+ vp_play_progressbar_set_position(pNormalView->pProgressbar,
+ nSetPosition);
+ }
+
+ return;
+}
+
+//Focus UI
+/**
+ *
+ * @param pViewHandle
+ */
+void vp_play_normal_view_set_main_layout_focus_out(normal_view_handle *
+ pViewHandle)
+{
+ if (!pViewHandle) {
+ VideoLogError("pViewHandle is NULL");
+ return;
+ }
+
+ VideoLogInfo("");
+
+ NormalView *pNormalView = (NormalView *) pViewHandle;
+
+ pNormalView->bMainFocusState = FALSE;
+
+ elm_object_focus_set(pNormalView->pNaviFrame, EINA_FALSE);
+ elm_object_tree_focus_allow_set(pNormalView->pNaviFrame, EINA_FALSE);
+ elm_object_focus_allow_set(pNormalView->pNaviFrame, EINA_FALSE);
+
+ elm_object_focus_set(pNormalView->pMainLayout, EINA_FALSE);
+ elm_object_tree_focus_allow_set(pNormalView->pMainLayout, EINA_FALSE);
+ elm_object_focus_allow_set(pNormalView->pMainLayout, EINA_FALSE);
+}
+
+/**
+ *
+ * @param pViewHandle
+ */
+void vp_play_normal_view_set_main_layout_focus_in(normal_view_handle *
+ pViewHandle)
+{
+ if (!pViewHandle) {
+ VideoLogError("pViewHandle is NULL");
+ return;
+ }
+
+ VideoLogInfo("");
+
+ NormalView *pNormalView = (NormalView *) pViewHandle;
+ if (pNormalView->bMainFocusState == TRUE) {
+ VideoLogInfo("Already Focus In");
+ return;
+ }
+ pNormalView->bMainFocusState = TRUE;
+
+ elm_object_focus_allow_set(pNormalView->pNaviFrame, EINA_TRUE);
+ elm_object_tree_focus_allow_set(pNormalView->pNaviFrame, EINA_TRUE);
+ elm_object_focus_set(pNormalView->pNaviFrame, EINA_TRUE);
+
+ elm_object_focus_allow_set(pNormalView->pMainLayout, EINA_TRUE);
+ elm_object_tree_focus_allow_set(pNormalView->pMainLayout, EINA_TRUE);
+ elm_object_focus_set(pNormalView->pMainLayout, EINA_TRUE);
+
+ elm_object_focus_set(pNormalView->pAllsharBtn, EINA_TRUE);
+}
+
+/**
+ *
+ * @param pViewHandle
+ */
+void vp_play_normal_view_set_resume_or_pause(normal_view_handle *
+ pViewHandle)
+{
+ if (!pViewHandle) {
+ VideoLogError("pViewHandle is NULL");
+ return;
+ }
+
+ NormalView *pNormalView = (NormalView *) pViewHandle;
+
+ PlayView *pPlayView = pNormalView->pPlayView;
+
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ }
+ vp_mm_player_state_t nState = VP_MM_PLAYER_STATE_NONE;
+
+ if (!vp_mm_player_get_state(pNormalView->pPlayerHandle, &nState)) {
+ VideoLogWarning("vp_mm_player_get_state is fail");
+ }
+ if (nState == VP_MM_PLAYER_STATE_PLAYING) {
+ vp_mm_player_pause(pNormalView->pPlayerHandle);
+ pNormalView->bManualPause = TRUE;
+ } else {
+ vp_mm_player_play(pNormalView->pPlayerHandle);
+ pNormalView->bManualPause = FALSE;
+ }
+ if (pPlayView && pPlayView->win_minicon) {
+ vp_minicontroller_update_control(pPlayView);
+ }
+ if (pPlayView && pPlayView->win_lockmini) {
+ vp_lockscreenmini_update_control(pPlayView);
+ }
+ _vp_play_normal_view_set_play_state(pNormalView);
+ _vp_play_normal_view_on_capture_mode(pNormalView);
+}
+
+/**
+ *
+ * @param pViewHandle
+ */
+void vp_play_normal_view_show_main_layout(normal_view_handle * pViewHandle)
+{
+ if (!pViewHandle) {
+ VideoLogError("pViewHandle is NULL");
+ return;
+ }
+
+ NormalView *pNormalView = (NormalView *) pViewHandle;
+
+ _vp_play_normal_view_show_layout(pNormalView);
+}
+
+/**
+ *
+ * @param pViewHandle
+ */
+void vp_play_normal_view_create_main_layout_hide_timer(normal_view_handle *
+ pViewHandle)
+{
+ if (!pViewHandle) {
+ VideoLogError("pViewHandle is NULL");
+ return;
+ }
+
+ NormalView *pNormalView = (NormalView *) pViewHandle;
+
+ _vp_play_normal_view_create_layout_hide_timer(pNormalView);
+}
+
+/**
+ *
+ * @param pNormalView
+ */
+static void _vp_play_normal_view_set_button_focus_sequence(NormalView *
+ pNormalView)
+{
+ if (!pNormalView) {
+ VideoLogError("pNormalView is NULL");
+ return;
+ }
+
+ bool bLandscape =
+ vp_play_util_get_landscape_check(pNormalView->nRotate);
+
+ elm_object_focus_set(pNormalView->pVolumeBtn, EINA_TRUE);
+
+ vp_play_util_focus_next_object_set(pNormalView->pPrevBtn,
+ pNormalView->pPlayFocusBtn,
+ ELM_FOCUS_RIGHT);
+ vp_play_util_focus_next_object_set(pNormalView->pPlayFocusBtn,
+ pNormalView->pPrevBtn,
+ ELM_FOCUS_LEFT);
+
+ vp_play_util_focus_next_object_set(pNormalView->pPlayFocusBtn,
+ pNormalView->pNextBtn,
+ ELM_FOCUS_RIGHT);
+ vp_play_util_focus_next_object_set(pNormalView->pNextBtn,
+ pNormalView->pPlayFocusBtn,
+ ELM_FOCUS_LEFT);
+
+ vp_play_util_focus_next_object_set(pNormalView->pAllsharBtn,
+ pNormalView->pPlayFocusBtn,
+ ELM_FOCUS_DOWN);
+ if (pNormalView->pSoundPathBtn) {
+ vp_play_util_focus_next_object_set(pNormalView->pAllsharBtn,
+ pNormalView->pSoundPathBtn,
+ ELM_FOCUS_NEXT);
+ } else {
+ vp_play_util_focus_next_object_set(pNormalView->pAllsharBtn,
+ pNormalView->pPlayFocusBtn,
+ ELM_FOCUS_NEXT);
+ }
+ vp_play_util_focus_next_object_set(pNormalView->pSoundPathBtn,
+ pNormalView->pPlayFocusBtn,
+ ELM_FOCUS_DOWN);
+ vp_play_util_focus_next_object_set(pNormalView->pSoundPathBtn,
+ pNormalView->pPlayFocusBtn,
+ ELM_FOCUS_NEXT);
+
+ if (bLandscape == TRUE) {
+ vp_play_util_focus_next_object_set(pNormalView->pVolumeBtn,
+ pNormalView->pBookmarkBtn,
+ ELM_FOCUS_RIGHT);
+ vp_play_util_focus_next_object_set(pNormalView->pBookmarkBtn,
+ pNormalView->pVolumeBtn,
+ ELM_FOCUS_LEFT);
+
+ vp_play_util_focus_next_object_set(pNormalView->pBookmarkBtn,
+ pNormalView->pPrevBtn,
+ ELM_FOCUS_RIGHT);
+ vp_play_util_focus_next_object_set(pNormalView->pPrevBtn,
+ pNormalView->pBookmarkBtn,
+ ELM_FOCUS_LEFT);
+
+ vp_play_util_focus_next_object_set(pNormalView->pNextBtn,
+ pNormalView->pMultiWinBtn,
+ ELM_FOCUS_RIGHT);
+ vp_play_util_focus_next_object_set(pNormalView->pMultiWinBtn,
+ pNormalView->pNextBtn,
+ ELM_FOCUS_LEFT);
+
+ vp_play_util_focus_next_object_set(pNormalView->pMultiWinBtn,
+ pNormalView->pScreenSizeBtn,
+ ELM_FOCUS_RIGHT);
+ vp_play_util_focus_next_object_set(pNormalView->pScreenSizeBtn,
+ pNormalView->pMultiWinBtn,
+ ELM_FOCUS_LEFT);
+ } else {
+ vp_play_util_focus_next_object_set(pNormalView->pBookmarkBtn,
+ pNormalView->pMultiWinBtn,
+ ELM_FOCUS_RIGHT);
+ vp_play_util_focus_next_object_set(pNormalView->pMultiWinBtn,
+ pNormalView->pBookmarkBtn,
+ ELM_FOCUS_LEFT);
+
+ vp_play_util_focus_next_object_set(pNormalView->pVolumeBtn,
+ pNormalView->pPrevBtn,
+ ELM_FOCUS_RIGHT);
+ vp_play_util_focus_next_object_set(pNormalView->pPrevBtn,
+ pNormalView->pVolumeBtn,
+ ELM_FOCUS_LEFT);
+
+ vp_play_util_focus_next_object_set(pNormalView->pNextBtn,
+ pNormalView->pScreenSizeBtn,
+ ELM_FOCUS_RIGHT);
+ vp_play_util_focus_next_object_set(pNormalView->pScreenSizeBtn,
+ pNormalView->pNextBtn,
+ ELM_FOCUS_LEFT);
+
+ vp_play_util_focus_next_object_set(pNormalView->pVolumeBtn,
+ pNormalView->pBookmarkBtn,
+ ELM_FOCUS_UP);
+ vp_play_util_focus_next_object_set(pNormalView->pBookmarkBtn,
+ pNormalView->pVolumeBtn,
+ ELM_FOCUS_DOWN);
+ }
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @return
+ */
+bool vp_play_normal_view_get_main_layout_focus_state(normal_view_handle *
+ pViewHandle)
+{
+ if (!pViewHandle) {
+ VideoLogError("pViewHandle is NULL");
+ return FALSE;
+ }
+
+ NormalView *pNormalView = (NormalView *) pViewHandle;
+
+ return pNormalView->bMainFocusState;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @return
+ */
+bool vp_play_normal_view_get_main_layout_show_state(normal_view_handle *
+ pViewHandle)
+{
+ if (!pViewHandle) {
+ VideoLogError("pViewHandle is NULL");
+ return FALSE;
+ }
+
+ NormalView *pNormalView = (NormalView *) pViewHandle;
+
+ return pNormalView->bShowLayout;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @return
+ */
+vp_normalview_popup_style_e
+vp_play_normal_view_get_popup_show_state(normal_view_handle * pViewHandle)
+{
+ if (!pViewHandle) {
+ VideoLogError("pViewHandle is NULL");
+ return VP_PLAY_NORMAL_VIEW_POPUP_NONE;
+ }
+
+ NormalView *pNormalView = (NormalView *) pViewHandle;
+
+ vp_normalview_popup_style_e nPopUpShow =
+ VP_PLAY_NORMAL_VIEW_POPUP_NONE;
+
+ if (pNormalView->pCtxPopup) {
+ nPopUpShow = VP_PLAY_NORMAL_VIEW_CTX_POPUP;
+ } else if (pNormalView->bIsPopupShow || pNormalView->bIsSubtitleShow) {
+ nPopUpShow = VP_PLAY_NORMAL_VIEW_OTHER_POPUP;
+ }
+
+ return nPopUpShow;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param obj
+ * @param event_info
+ */
+static void __vp_normal_naviframe_back_btn_cb(void *pUserData,
+ Evas_Object * obj,
+ void *event_info)
+{
+ NormalView *pNormalView = (NormalView *) pUserData;
+
+ _vp_play_normal_view_set_played_time(pNormalView);
+
+ pNormalView->pExitWaitTimer =
+ ecore_timer_add(VP_NORMAL_EXIT_WAIT_TIMER_INTERVAL,
+ __vp_normal_exit_wait_timer_cb,
+ (void *) pNormalView);
+
+ elm_naviframe_item_pop(pNormalView->pNaviFrame);
+
+ return;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pItem
+ * @return
+ */
+static Eina_Bool __vp_normal_naviframe_pop_cb(void *pUserData,
+ Elm_Object_Item * pItem)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return EINA_FALSE;
+ }
+
+ NormalView *pNormalView = (NormalView *) pUserData;
+
+ if (pNormalView->bLockScreen) {
+ VideoLogError("Skip for bLockScreen");
+ _vp_play_normal_view_show_lock_screen(pNormalView);
+ return EINA_FALSE;
+ }
+
+ if (pNormalView->bIsActive) {
+ if (pNormalView->pExitWaitTimer) {
+ _vp_play_normal_view_set_played_time(pNormalView);
+
+ PlayView *pPlayView = pNormalView->pPlayView;
+
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return EINA_FALSE;
+ }
+
+ if (!pPlayView->pFunc) {
+ VideoLogError("pPlayView pFunc is NULL");
+ return EINA_FALSE;
+ }
+
+ if (!pPlayView->pFunc->vp_play_func_exit) {
+ VideoLogError("pPlayView exit Func is NULL");
+ return EINA_FALSE;
+ }
+
+ vp_device_set_screen_off(FALSE);
+ vp_play_util_set_unlock_power_key();
+
+ VideoLogWarning("== BACK ==");
+ pPlayView->pFunc->vp_play_func_exit(pPlayView);
+
+ return EINA_FALSE;
+ } else {
+ PlayView *pPlayView = pNormalView->pPlayView;
+
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return EINA_FALSE;
+ }
+
+ if (pPlayView->bDestroy) {
+ pNormalView->pNaviFrame = NULL; // it will be deleted when return TRUE
+ return EINA_TRUE;
+ }
+
+ vp_play_util_status_noti_show(VP_PLAY_STRING_COM_WAIT_BACK);
+
+ pNormalView->pExitWaitTimer =
+ ecore_timer_add(VP_NORMAL_EXIT_WAIT_TIMER_INTERVAL,
+ __vp_normal_exit_wait_timer_cb,
+ (void *) pNormalView);
+
+ return EINA_FALSE;
+ }
+ }
+
+ if (pNormalView->bDestroyNavi) {
+ VideoLogWarning("bDestroyNavi is TRUE.");
+ pNormalView->pNaviFrame = NULL; // it will be deleted when return TRUE
+
+ return EINA_TRUE;
+ }
+
+ return EINA_FALSE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pEvas
+ * @param pObj
+ * @param pEvent
+ */
+static void __vp_normal_main_layout_resize_cb(void *pUserData,
+ Evas * pEvas,
+ Evas_Object * pObj,
+ void *pEvent)
+{
+ if (!pUserData) {
+ VideoLogError("[ERR] No Exist pUserData.");
+ return;
+ }
+ //if needed, to do
+}
+
+/**
+ *
+ * @param szColorHex
+ * @return
+ */
+/*szColorHex:#RGBA ---> nColor:ARGB*/
+static unsigned int _vp_play_normal_view_convert_color_to_argb(char
+ *szColorHex)
+{
+ unsigned int nColor = 0;
+ char *szColor =
+ g_strdup_printf("%s%6.6s", (szColorHex + 7), (szColorHex + 1));
+ nColor = strtoul(szColor, NULL, 16);
+ VideoLogInfo("szColorHex:%s, szColor: %s, nColor:%0x", szColorHex,
+ szColor, nColor);
+ VP_FREE(szColor);
+
+ return nColor;
+}
+
+/* internal functions */
+/**
+ *
+ * @param pNormalView
+ * @return
+ */
+static bool _vp_play_normal_view_set_subtitle_font_config(NormalView *
+ pNormalView)
+{
+ if (!pNormalView) {
+ VideoLogError("pNormalView is NULL");
+ return FALSE;
+ }
+
+ if (!pNormalView->pPlayerHandle) {
+ VideoLogError("pNormalView pPlayerHandle is NULL");
+ return FALSE;
+ }
+
+ /* set subtitle option */
+ char *szFontFamilyName = NULL;
+ int nSubtitleSize = VIDEO_SUBTITLE_SIZE_MEDIUM;
+ int nSubtitleSizeValue = VP_SUBTITLE_SIZE_MEDIUM_VALUE;
+ unsigned int nFontColor = 0;
+ unsigned int nBGColor = 0;
+ int nAlignment = VIDEO_SUBTITLE_ALIGNMENT_CENTER;
+
+ vp_play_preference_get_subtitle_font_name_key(&szFontFamilyName);
+ vp_play_preference_get_subtitle_size_key(&nSubtitleSize);
+
+ if (nSubtitleSize == VIDEO_SUBTITLE_SIZE_SMALL) {
+ nSubtitleSizeValue = VP_SUBTITLE_SIZE_SMALL_VALUE;
+ } else if (nSubtitleSize == VIDEO_SUBTITLE_SIZE_MEDIUM) {
+ nSubtitleSizeValue = VP_SUBTITLE_SIZE_MEDIUM_VALUE;
+ } else if (nSubtitleSize == VIDEO_SUBTITLE_SIZE_LARGE) {
+ nSubtitleSizeValue = VP_SUBTITLE_SIZE_LARGE_VALUE;
+ }
+#ifndef SUBTITLE_K_FEATURE
+ int nFontColorKey = VP_SUBTITLE_COLOR_BLACK;
+ int nBGColorKey = VP_SUBTITLE_COLOR_BLACK;
+
+ vp_play_preference_get_subtitle_font_color_key(&nFontColorKey);
+
+ if (nFontColorKey == VIDEO_SUBTITLE_COLOR_BLACK) {
+ nFontColor = 0xff000000;
+ } else if (nFontColorKey == VIDEO_SUBTITLE_COLOR_BLUE) {
+ nFontColor = 0xff0000ff;
+ } else if (nFontColorKey == VIDEO_SUBTITLE_COLOR_GREEN) {
+ nFontColor = 0xff00ff00;
+ } else if (nFontColorKey == VIDEO_SUBTITLE_COLOR_WHITE) {
+ nFontColor = 0xffffffff;
+ }
+
+ vp_play_preference_get_subtitle_bg_color_key(&nBGColorKey);
+
+ if (nBGColorKey == VIDEO_SUBTITLE_COLOR_BLACK) {
+ nBGColor = 0xff000000;
+ } else if (nBGColorKey == VIDEO_SUBTITLE_COLOR_WHITE) {
+ nBGColor = 0xffffffff;
+ } else if (nBGColorKey == VIDEO_SUBTITLE_COLOR_NONE) {
+ nBGColor = 0x00000000;
+ }
+#else
+ char *szColorHex = NULL;
+ vp_play_preference_get_subtitle_font_color_hex_key(&szColorHex);
+ if (szColorHex != NULL) {
+ nFontColor =
+ _vp_play_normal_view_convert_color_to_argb(szColorHex);
+ }
+
+ char *szBGColorHex = NULL;
+ vp_play_preference_get_subtitle_bg_color_hex_key(&szBGColorHex);
+ if (szBGColorHex != NULL) {
+ nBGColor =
+ _vp_play_normal_view_convert_color_to_argb(szBGColorHex);
+
+ }
+
+ vp_play_preference_get_subtitle_alignment_key(&nAlignment);
+
+#endif
+ if (!vp_mm_player_set_subtitle_font
+ (pNormalView->pPlayerHandle, szFontFamilyName, NULL,
+ nSubtitleSizeValue)) {
+ VideoLogError("vp_mm_player_set_subtitle_font fail");
+ }
+ if (!vp_mm_player_set_subtitle_font_color
+ (pNormalView->pPlayerHandle, nFontColor, nBGColor)) {
+ VideoLogError("vp_mm_player_set_subtitle_font_color fail");
+ }
+ VP_FREE(szFontFamilyName);
+
+ if (!vp_mm_player_subtitle_ignore_markup_tags
+ (pNormalView->pPlayerHandle, FALSE)) {
+ VideoLogError("vp_mm_player_subtitle_ignore_markup_tags fail");
+ }
+
+ if (!vp_mm_player_subtitle_set_alignment_in_line
+ (pNormalView->pPlayerHandle, nAlignment)) {
+ VideoLogError("vp_mm_player_subtitle_set_alignment_in_line fail");
+ }
+
+ if (!vp_mm_player_subtitle_set_alignment_horizontal
+ (pNormalView->pPlayerHandle, nAlignment)) {
+ VideoLogError
+ ("vp_mm_player_subtitle_set_alignment_horizontal fail");
+ }
+
+ if (!vp_mm_player_subtitle_apply_alignment_right_away
+ (pNormalView->pPlayerHandle)) {
+ VideoLogError
+ ("vp_mm_player_subtitle_apply_alignment_right_away fail");
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pNormalView
+ * @return
+ */
+static bool _vp_play_normal_view_update_progress_value(NormalView *
+ pNormalView)
+{
+ if (!pNormalView) {
+ VideoLogError("pNormalView is NULL");
+ return FALSE;
+ }
+
+ int nPosition = 0;
+ vp_mm_player_state_t nState = VP_MM_PLAYER_STATE_NONE;
+ if (pNormalView->bHLSMode) {
+ VideoLogWarning("Skip for HLS");
+ VP_EVAS_TIMER_DEL(pNormalView->pProgressTimer);
+ return FALSE;
+ }
+
+ if (!vp_mm_player_get_state(pNormalView->pPlayerHandle, &nState)) {
+ VideoLogWarning("vp_mm_player_get_state is fail");
+ }
+ if (!vp_mm_player_get_position(pNormalView->pPlayerHandle, &nPosition)) {
+ VideoLogError("vp_mm_player_get_position is fail");
+ }
+ if (pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_WEB) {
+ int nBufferingPosition = 0;
+ vp_mm_player_get_buffering_position(pNormalView->pPlayerHandle,
+ &nBufferingPosition);
+ vp_play_progressbar_set_buffering_position(pNormalView->
+ pProgressbar,
+ nBufferingPosition);
+ }
+ if (nState == VP_MM_PLAYER_STATE_PLAYING) {
+ nPosition += 1000;
+ }
+ if (nPosition > pNormalView->nDuration) {
+ nPosition = pNormalView->nDuration;
+ }
+ vp_play_progressbar_set_position(pNormalView->pProgressbar, nPosition);
+
+ pNormalView->nCurPosition = nPosition;
+
+ if (pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_WEB) {
+ PlayView *pPlayView = pNormalView->pPlayView;
+ pPlayView->nStartPosition = nPosition;
+ }
+
+ return TRUE;
+
+}
+
+/**
+ *
+ * @param pNormalView
+ * @return
+ */
+static bool _vp_play_normal_view_check_during_call(NormalView *
+ pNormalView)
+{
+ if (!pNormalView) {
+ VideoLogError("pNormalView is NULL");
+ return FALSE;
+ }
+
+ PlayView *pPlayView = pNormalView->pPlayView;
+ bool bCallOn = FALSE;
+
+ if (pPlayView && pPlayView->telinit) {
+ vp_play_config_get_call_state(&bCallOn);
+ } else {
+ VideoLogError
+ ("telephony was not initialised hence returning call state as default = FALSE");
+ }
+ if (bCallOn) {
+ VP_EVAS_DEL(pNormalView->pPopup);
+ pNormalView->pPopup = NULL;
+
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return FALSE;
+ }
+ pNormalView->pPopup = vp_popup_create(pPlayView->pWin,
+ POPUP_STYLE_DEFAULT_NO_CANCEL_BTN,
+ NULL,
+ VP_PLAY_STRING_UNABLE_TO_PLAY_VIDEO_DURING_CALL,
+ 2.0,
+ __vp_normal_popup_time_out_cb,
+ __vp_normal_popup_key_event_cb,
+ __vp_normal_popup_mouse_event_cb,
+ pNormalView);
+
+ evas_object_show(pNormalView->pPopup);
+ pNormalView->bIsPopupShow = TRUE;
+ }
+
+ return bCallOn;
+}
+
+/**
+ *
+ * @param pNormalView
+ */
+static void _vp_play_normal_view_show_audio_only_popup(NormalView *
+ pNormalView)
+{
+ if (!pNormalView) {
+ VideoLogError("pNormalView is NULL");
+ return;
+ }
+
+ VideoLogInfo
+ ("Show toast popup: Only audio data supported by this file. Now playing video.");
+ _vp_normal_set_audio_only_image(pNormalView, TRUE);
+ vp_play_util_status_noti_show
+ (VP_PLAY_STRING_ERROR_ONLY_AUDIO_DATA_SUPPORTED);
+}
+
+/**
+ *
+ * @param pNormalView
+ */
+static void _vp_play_normal_view_show_video_only_popup(NormalView *
+ pNormalView)
+{
+ if (!pNormalView) {
+ VideoLogError("pNormalView is NULL");
+ return;
+ }
+
+ VideoLogInfo
+ ("Show toast popup: Only video data supported by this file. Now playing video.");
+ _vp_normal_set_audio_only_image(pNormalView, FALSE);
+ vp_play_util_status_noti_show
+ (VP_PLAY_STRING_ERROR_ONLY_VIDEO_DATA_SUPPORTED);
+}
+
+/**
+ *
+ * @param pNormalView
+ * @return
+ */
+static bool _vp_play_normal_view_check_audio_only(NormalView * pNormalView)
+{
+ if (!pNormalView) {
+ VideoLogError("pNormalView is NULL");
+ return FALSE;
+ }
+
+ /* Audio only */
+ char *audio_codec = NULL;
+ char *video_codec = NULL;
+ bool b_audio_only = FALSE;
+ bool b_video_only = FALSE;
+ if (vp_mm_player_get_codecinfo
+ (pNormalView->pPlayerHandle, &audio_codec, &video_codec)) {
+ VideoLogWarning("audio_codec=%s, video_codec=%s", audio_codec,
+ video_codec);
+ if (video_codec == NULL || strlen(video_codec) <= 1) {
+ if (audio_codec != NULL && strlen(audio_codec) > 1) {
+ b_audio_only = TRUE;
+ }
+ }
+
+ if (audio_codec == NULL || strlen(audio_codec) <= 1) {
+ if (video_codec != NULL && strlen(video_codec) > 1) {
+ b_video_only = TRUE;
+ }
+ }
+
+ VP_FREE(audio_codec);
+ VP_FREE(video_codec);
+ }
+
+ VideoLogWarning("b_audio_only=%d, b_video_only=%d", b_audio_only,
+ b_video_only);
+
+ if (b_audio_only) {
+ VideoLogInfo("Only audio data supported.");
+ _vp_play_normal_view_show_audio_only_popup(pNormalView);
+ } else {
+ _vp_normal_set_audio_only_image(pNormalView, FALSE);
+ }
+
+ if (b_video_only) {
+ VideoLogInfo("Only video data supported.");
+ _vp_play_normal_view_show_video_only_popup(pNormalView);
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pNormalView
+ * @param bLock
+ * @return
+ */
+static bool _vp_play_normal_view_check_drm_lock(NormalView * pNormalView,
+ bool * bLock)
+{
+ if (!pNormalView) {
+ VideoLogError("pNormalView is NULL");
+ return FALSE;
+ }
+
+
+ if (!pNormalView->szMediaURL) {
+ return FALSE;
+ }
+
+ *bLock = FALSE;
+#ifdef ENABLE_DRM_FEATURE
+ bool bIsDrm = FALSE;
+
+ if (vp_drm_is_drm_file(pNormalView->szMediaURL, &bIsDrm)) {
+ if (bIsDrm) {
+ bool bIsFWLock = FALSE;
+ bool bIsDivX = FALSE;
+ bool bIsPlayReadyDRM = FALSE;
+
+ if (vp_drm_is_check_forward_lock
+ (pNormalView->szMediaURL, &bIsFWLock)) {
+ if (bIsFWLock) {
+ *bLock = TRUE;
+ }
+ }
+ if (vp_drm_is_divx_drm_file(pNormalView->szMediaURL, &bIsDivX)) {
+ if (bIsDivX) {
+ *bLock = TRUE;
+ }
+ }
+
+ if (vp_drm_is_playready_drm_file
+ (pNormalView->szMediaURL, &bIsPlayReadyDRM)) {
+ if (bIsPlayReadyDRM) {
+ *bLock = TRUE;
+ }
+ }
+ }
+ }
+#endif
+ return TRUE;
+}
+
+#ifdef ENABLE_DRM_FEATURE
+static bool _vp_play_normal_view_check_drm(NormalView * pNormalView,
+ bool * bIsAvailablePlay)
+{
+ if (!pNormalView) {
+ VideoLogError("pNormalView is NULL");
+ return FALSE;
+ }
+
+ PlayView *pPlayView = pNormalView->pPlayView;
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return FALSE;
+ }
+
+ *bIsAvailablePlay = TRUE;
+
+ bool bIsDrm = FALSE;
+ bool bIsDivXDRM = FALSE;
+
+ if (!vp_drm_is_drm_file(pNormalView->szMediaURL, &bIsDrm)) {
+ VideoLogError("vp_drm_is_drm_file is fail");
+ return FALSE;
+ }
+
+ if (bIsDrm == FALSE) {
+ VideoLogWarning("Not DRM File");
+ return TRUE;
+ } else {
+ VideoLogWarning("== IS DRM FILE ================================");
+ }
+
+ if (pNormalView->pPlayView->bStoreDownload == TRUE) {
+ bool bCheckLicense = FALSE;
+ if (!vp_drm_is_check_license
+ (pNormalView->szMediaURL, &bCheckLicense)) {
+ VideoLogError("vp_drm_is_check_license is fail");
+
+ *bIsAvailablePlay = FALSE;
+
+ return FALSE;
+ }
+
+ if (bCheckLicense == FALSE) {
+ if (!vp_store_license_acquisition(pNormalView->szMediaURL,
+ pNormalView->pPlayView->
+ pStoreAppId,
+ pNormalView->pPlayView->
+ pStoreOrderId,
+ pNormalView->pPlayView->
+ pStoreMvId,
+ pNormalView->pPlayView->
+ pStoreServerId,
+ _vp_play_normal_view_store_la_cb,
+ (const void *) pNormalView)) {
+ VideoLogError("vp_store_license_acquisition is fail");
+
+ *bIsAvailablePlay = FALSE;
+
+ return FALSE;
+ }
+
+ return FALSE;
+ }
+ }
+
+ if (!vp_drm_is_divx_drm_file(pNormalView->szMediaURL, &bIsDivXDRM)) {
+ VideoLogError("vp_drm_is_divx_drm_file is fail");
+ return FALSE;
+ }
+
+ if (bIsDivXDRM == FALSE) {
+ return TRUE;
+
+ if (!vp_drm_is_check_license(pNormalView->szMediaURL, &bIsLicense)) {
+ VideoLogError("vp_drm_is_check_license is fail");
+ *bIsAvailablePlay = FALSE;
+ return FALSE;
+ }
+
+
+ if (bIsLicense == FALSE) {
+ VideoLogWarning("bIsLicense is Invalid");
+
+ *bIsAvailablePlay = FALSE;
+
+
+ VP_EVAS_DEL(pNormalView->pPopup);
+ pNormalView->pPopup = NULL;
+
+ char *szMessage = NULL;
+ char *szTitleTemp = NULL;
+
+ szTitleTemp =
+ vp_play_util_get_title_from_path(pNormalView->szMediaURL);
+ szMessage =
+ g_strdup_printf
+ (VP_PLAY_STRING_DRM_CURRENTLY_LOCKED_UNLOCK_Q,
+ szTitleTemp);
+
+ pNormalView->pPopup =
+ vp_popup_create(pPlayView->pWin, POPUP_STYLE_DEFAULT,
+ VP_PLAY_STRING_COM_ERROR, szMessage, 3.0,
+ __vp_normal_error_popup_time_out_cb, NULL,
+ NULL, pNormalView);
+ evas_object_show(pNormalView->pPopup);
+ pNormalView->bIsPopupShow = TRUE;
+
+ VP_FREE(szMessage);
+ VP_FREE(szTitleTemp);
+
+ return TRUE;
+ }
+ }
+
+ vp_drm_constraint_info stConstraintInfo = { 0, };
+
+ if (!vp_drm_get_constarint_info
+ (pNormalView->szMediaURL, &stConstraintInfo)) {
+ VideoLogError("vp_drm_get_constarint_info is fail");
+ return FALSE;
+ }
+
+ char *szMsg = NULL;
+ char *szTitle = NULL;
+ szTitle = vp_play_util_get_title_from_path(pNormalView->szMediaURL);
+
+ if (bIsDivXDRM) {
+ if (stConstraintInfo.status ==
+ VP_DRM_CONSTRAINT_TYPE_NOT_AUTHORIZED) {
+ VP_EVAS_DEL(pNormalView->pPopup);
+ pNormalView->pPopup = NULL;
+ pNormalView->pPopup =
+ vp_popup_create(pPlayView->pWin,
+ POPUP_STYLE_DEFAULT_NO_CANCEL_BTN,
+ VP_PLAY_STRING_COM_ERROR,
+ VP_PLAY_STRING_DIVX_DRM_AUTHORIZATION_ERROR,
+ 3.0, __vp_normal_error_popup_time_out_cb,
+ NULL, NULL, pNormalView);
+
+ evas_object_show(pNormalView->pPopup);
+ pNormalView->bIsPopupShow = TRUE;
+
+ VP_FREE(szTitle);
+
+ return TRUE;
+ }
+
+ while (stConstraintInfo.constraints) {
+ if (stConstraintInfo.constraints & VP_DRM_CONSTRAINT_COUNT) {
+ if (stConstraintInfo.remaining_count == 0) {
+ szMsg =
+ g_strdup_printf
+ (VP_PLAY_STRING_DIVX_DRM_RENTAL_EXPIRED_ERROR,
+ stConstraintInfo.original_count -
+ stConstraintInfo.remaining_count,
+ stConstraintInfo.original_count);
+ } else {
+ szMsg =
+ g_strdup_printf
+ (VP_PLAY_STRING_DIVX_DRM_RENTAL_CONFIRMATION_CHOICE,
+ stConstraintInfo.original_count -
+ stConstraintInfo.remaining_count,
+ stConstraintInfo.original_count);
+ }
+ break;
+ }
+ }
+ } else {
+ bool bNotiPopup = FALSE;
+
+ while (stConstraintInfo.constraints) {
+ if (stConstraintInfo.constraints & VP_DRM_CONSTRAINT_COUNT) {
+ if (stConstraintInfo.remaining_count == 2) {
+ szMsg =
+ g_strdup_printf
+ (VP_PLAY_STRING_DRM_PS_2_MORE_TIME_START_NOW_Q,
+ szTitle);
+ } else if (stConstraintInfo.remaining_count == 1) {
+ szMsg =
+ g_strdup_printf
+ (VP_PLAY_STRING_DRM_PS_1_MORE_TIME_START_NOW_Q,
+ szTitle);
+ } else if (stConstraintInfo.remaining_count == 0) {
+ bNotiPopup = TRUE;
+ }
+ break;
+ }
+
+ if (stConstraintInfo.constraints & VP_DRM_CONSTRAINT_DATE_TIME) {
+ if (stConstraintInfo.date_time_expired) {
+ bNotiPopup = TRUE;
+ }
+ break;
+ }
+
+ if (stConstraintInfo.constraints & VP_DRM_CONSTRAINT_INTERVAL) {
+ if (stConstraintInfo.remaining_interval_sec == 0) {
+ bNotiPopup = TRUE;
+ } else {
+ int nDays =
+ stConstraintInfo.remaining_interval_sec /
+ VP_ACCUMULATED_DATE + 1;
+ szMsg =
+ g_strdup_printf
+ (VP_PLAY_STRING_DRM_PS_FOR_PD_DAYS_START_NOW_Q,
+ szTitle, nDays);
+ }
+ break;
+ }
+
+ if (stConstraintInfo.
+ constraints & VP_DRM_CONSTRAINT_TIMED_COUNT) {
+ if (stConstraintInfo.remaining_timed_count == 2) {
+ szMsg =
+ g_strdup_printf
+ (VP_PLAY_STRING_DRM_PS_2_MORE_TIME_START_NOW_Q,
+ szTitle);
+ } else if (stConstraintInfo.remaining_timed_count == 1) {
+ szMsg =
+ g_strdup_printf
+ (VP_PLAY_STRING_DRM_PS_1_MORE_TIME_START_NOW_Q,
+ szTitle);
+ } else if (stConstraintInfo.remaining_timed_count == 0) {
+ bNotiPopup = TRUE;
+ }
+ break;
+ }
+
+ if (stConstraintInfo.
+ constraints & VP_DRM_CONSTRAINT_ACCUMLATED_TIME) {
+ if (stConstraintInfo.remaining_acc_sec == 0) {
+ bNotiPopup = TRUE;
+ }
+ break;
+ }
+ }
+ }
+
+ VP_FREE(szMsg);
+ VP_FREE(szTitle);
+
+ return TRUE;
+}
+#endif
+
+#ifndef ENABLE_SUBTITLE
+/**
+ *
+ * @param pSubtitleList
+ */
+static void _vp_play_normal_view_free_subtitle_list(GList * pSubtitleList)
+{
+ if (pSubtitleList) {
+ int nCount = 0;
+ int i = 0;
+ nCount = g_list_length(pSubtitleList);
+ for (i = 0; i < nCount; i++) {
+ char *szName = NULL;
+ szName = (char *) g_list_nth_data(pSubtitleList, i);
+ VP_FREE(szName);
+ }
+
+ g_list_free(pSubtitleList);
+ }
+}
+#endif
+
+#ifdef _NATIVE_BUFFER_SYNC
+static Evas_Object *_vp_play_normal_view_create_image_sink(void *pParent,
+ void *pUserData)
+{
+
+ if (!pUserData) {
+ VideoLogError("[ERR] No Exist pUserData.");
+ return NULL;
+ }
+
+ Evas *pEvas = NULL;
+ Evas_Object *pObj = NULL;
+
+ pEvas = evas_object_evas_get(pParent);
+
+ pObj = evas_object_image_add(pEvas);
+ if (NULL == pObj) {
+ VideoLogError("pObj is NULL");
+ return NULL;
+ }
+
+ evas_object_image_size_set(pObj, VP_NORMAL_DEFAULT_WIDTH,
+ VP_NORMAL_DEFAULT_HEIGHT);
+ evas_object_image_fill_set(pObj, 0, 0, VP_NORMAL_DEFAULT_WIDTH,
+ VP_NORMAL_DEFAULT_HEIGHT);
+ evas_object_resize(pObj, VP_NORMAL_DEFAULT_WIDTH,
+ VP_NORMAL_DEFAULT_HEIGHT);
+
+ void *pImageBuf = evas_object_image_data_get(pObj, EINA_TRUE);
+ if (NULL == pImageBuf) {
+ VideoLogError("pImageBuf is NULL");
+ VP_EVAS_DEL(pObj);
+ return NULL;
+ }
+
+ int nBufSize = VP_NORMAL_DEFAULT_WIDTH * VP_NORMAL_DEFAULT_HEIGHT * 4;
+
+ memset(pImageBuf, 0, nBufSize);
+ evas_object_image_data_set(pObj, pImageBuf);
+
+ elm_object_part_content_set(pParent, VP_PLAY_SWALLOW_NORMAL_SINK,
+ pObj);
+
+ return pObj;
+
+}
+#endif
+
+/**
+ *
+ * @param pView
+ * @return
+ */
+static bool _vp_play_normal_view_release_service_share(PlayView * pView)
+{
+ if (!pView)
+ return FALSE;
+
+ if (pView->pServiceShare) {
+ app_control_send_terminate_request(pView->pServiceShare);
+ app_control_destroy(pView->pServiceShare);
+ pView->pServiceShare = NULL;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @return
+ */
+bool vp_play_normal_view_play_start(normal_view_handle pViewHandle)
+{
+ if (!pViewHandle) {
+ VideoLogError("pViewHandle is NULL");
+ return FALSE;
+ }
+
+ NormalView *pNormalView = (NormalView *) pViewHandle;
+ _vp_play_normal_view_play_start(pNormalView, FALSE);
+ return TRUE;
+}
+
+/**
+ *
+ * @param pNormalView
+ * @param bCheckDRM
+ * @return
+ */
+static bool _vp_play_normal_view_play_start(NormalView * pNormalView,
+ bool bCheckDRM)
+{
+ if (!pNormalView) {
+ VideoLogError("pNormalView is NULL");
+ return FALSE;
+ }
+ VideoLogWarning(">>");
+
+ if (pNormalView->bIsActive == FALSE) {
+ VideoLogError("pNormalView is NOT realized. skip");
+ return FALSE;
+ }
+
+
+ VP_EVAS_TIMER_DEL(pNormalView->pSubtitleTimer);
+ PlayView *pPlayView = pNormalView->pPlayView;
+ if (!pPlayView) {
+ VideoLogWarning("pPlayView is NULL");
+ return FALSE;
+ }
+
+ vp_mm_player_state_t nState =
+ vp_play_normal_view_get_player_state(pPlayView);
+ pPlayView->lockmini_hide = FALSE;
+ if (pPlayView->b_lockmini_show && nState == VP_MM_PLAYER_STATE_PAUSED) {
+ /* Screen unlocked in paused state. So, hide lockscreen minicontrol */
+ pPlayView->lockmini_hide = TRUE;
+ }
+
+ if (pNormalView->pZoomGuide) {
+ vp_zoom_guide_destroy(pNormalView->pZoomGuide);
+ pNormalView->pZoomGuide = NULL;
+ }
+
+ if (pNormalView->pImageBufferObj) {
+ elm_object_part_content_unset(pNormalView->pMainLayout,
+ VP_PLAY_SWALLOW_NORMAL_IMAGE_BUFFER);
+ VP_EVAS_DEL(pNormalView->pImageBufferObj);
+ }
+
+ pNormalView->fZoomValue = 1.0;
+ pNormalView->bIsVideoUnsupport = FALSE;
+ pNormalView->bBufferingComplete = TRUE;
+ pNormalView->bCaptureComplete = TRUE;
+ pNormalView->bDeviceRemoveInterrupt = FALSE;
+
+ _vp_play_normal_view_all_close_popup(pNormalView);
+
+ VP_FREE(pPlayView->szMediaURL);
+ VP_STRDUP(pPlayView->szMediaURL, pNormalView->szMediaURL);
+ VideoSecureLogInfo("== PLAY START : %s ==", pNormalView->szMediaURL);
+
+#ifdef _NATIVE_BUFFER_SYNC
+ VP_EVAS_DEL(pNormalView->pVideoSink);
+ pNormalView->pVideoSink =
+ _vp_play_normal_view_create_image_sink(pNormalView->pMainLayout,
+ (void *) pNormalView);
+ if (!pNormalView->pVideoSink) {
+ VideoLogError
+ ("_vp_play_normal_view_create_image_sink handle is null");
+ return FALSE;
+ }
+#endif
+
+ pNormalView->pSubtitleTimer = NULL;
+ pNormalView->bIsExistSubtitle = FALSE;
+
+ elm_object_signal_emit(pNormalView->pMainLayout,
+ VP_NORMAL_SIGNAL_MAIN_PLAYING_SPEED_HIDE, "*");
+
+ VP_EVAS_TIMER_DEL(pNormalView->pSpeedTimer);
+
+ if (pNormalView->pDetailHandle) {
+ vp_detail_destroy(pNormalView->pDetailHandle);
+ pNormalView->pDetailHandle = NULL;
+ }
+
+ if (pNormalView->nLaunchingType != VIDEO_PLAY_TYPE_WEB &&
+ pNormalView->nLaunchingType != VIDEO_PLAY_TYPE_MULTI_PATH) {
+
+ if (!vp_play_util_local_file_check(pNormalView->szMediaURL)) {
+ /* popup show */
+ VP_EVAS_DEL(pNormalView->pPopup);
+ pNormalView->pPopup = NULL;
+ PlayView *pPlayView = pNormalView->pPlayView;
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return FALSE;
+ }
+ pNormalView->pPopup =
+ vp_popup_create(pPlayView->pWin,
+ POPUP_STYLE_DEFAULT_NO_CANCEL_BTN,
+ VP_PLAY_STRING_COM_ERROR,
+ VP_PLAY_STRING_ERROR_FILE_NOT_EXIST, 3.0,
+ __vp_normal_error_popup_time_out_cb, NULL,
+ NULL, pNormalView);
+
+ evas_object_show(pNormalView->pPopup);
+ pNormalView->bIsPopupShow = TRUE;
+
+ return TRUE;
+ }
+ }
+
+ if (bCheckDRM) {
+ if (pNormalView->nLaunchingType != VIDEO_PLAY_TYPE_WEB &&
+ pNormalView->nLaunchingType != VIDEO_PLAY_TYPE_MULTI_PATH) {
+ bool bIsAvailablePlay = TRUE;
+#ifdef ENABLE_DRM_FEATURE
+ if (_vp_play_normal_view_check_drm
+ (pNormalView, &bIsAvailablePlay)) {
+ if (bIsAvailablePlay == FALSE) {
+ VideoLogWarning("Wait Drm popup result");
+ return TRUE;
+ }
+ } else
+#endif
+ {
+ if (pNormalView->pPlayView->bStoreDownload == TRUE) {
+ if (bIsAvailablePlay == FALSE) {
+ VideoLogWarning("license acquisition failed!!!");
+
+ Evas_Object *pPopup = NULL;
+ pPopup =
+ vp_popup_create(pNormalView->pPlayView->pWin,
+ POPUP_STYLE_DEFAULT_NO_CANCEL_BTN,
+ VP_PLAY_STRING_COM_ERROR,
+ VP_PLAY_STRING_ERROR_UNABLE_PLAY,
+ 3.0,
+ __vp_normal_prepare_error_popup_time_out_cb,
+ NULL, NULL, pNormalView);
+
+ evas_object_show(pPopup);
+
+ pNormalView->bIsPopupShow = TRUE;
+
+ return FALSE;
+ } else {
+ VideoLogWarning("need license acquisition");
+ return FALSE;
+ }
+ }
+ }
+ }
+ }
+
+ if (pNormalView->nStartPosition == 0) {
+ if (pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_STORE ||
+ pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_LIST ||
+ pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_OTHER) {
+ pNormalView->nStartPosition = 0;
+ }
+ }
+
+ vp_play_subtitle_set_text(pNormalView->pSubtitle, NULL);
+
+ if (bCheckDRM) {
+ if (pNormalView->nLaunchingType != VIDEO_PLAY_TYPE_WEB &&
+ pNormalView->nLaunchingType != VIDEO_PLAY_TYPE_MULTI_PATH) {
+
+ bool bDRMLock = FALSE;
+ _vp_play_normal_view_check_drm_lock(pNormalView, &bDRMLock);
+ if (bDRMLock) {
+ VP_EVAS_DISABLE_SET(pNormalView->pBookmarkBtn, EINA_TRUE);
+ VP_EVAS_DISABLE_SET(pNormalView->pMultiWinBtn, EINA_TRUE);
+ } else {
+ VP_EVAS_DISABLE_SET(pNormalView->pBookmarkBtn, EINA_FALSE);
+ VP_EVAS_DISABLE_SET(pNormalView->pMultiWinBtn, EINA_FALSE);
+ }
+ } else {
+ if (pNormalView->bVideoOnlyMode == FALSE) {
+ VP_EVAS_DISABLE_SET(pNormalView->pMultiWinBtn, EINA_FALSE);
+ } else {
+ VP_EVAS_DISABLE_SET(pNormalView->pMultiWinBtn, EINA_TRUE);
+ }
+ }
+ }
+
+ if (pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_EMAIL) {
+ char *szMediaID = NULL;
+ bool bReturn = FALSE;
+ bReturn =
+ vp_media_contents_get_video_id(pNormalView->szMediaURL,
+ &szMediaID);
+ if (!szMediaID || bReturn == FALSE) {
+ VP_EVAS_DISABLE_SET(pNormalView->pTrimBtn, EINA_TRUE);
+ } else {
+ VP_EVAS_DISABLE_SET(pNormalView->pTrimBtn, EINA_FALSE);
+ }
+ VP_FREE(szMediaID);
+ }
+ char *szSubtitle = NULL;
+ vp_mm_player_get_subtitle_url(pNormalView->pPlayerHandle, &szSubtitle);
+
+ if (szSubtitle) {
+ VideoLogWarning("subtitle value : %s", szSubtitle);
+ VP_STRDUP(pNormalView->szSubtitleURL, szSubtitle);
+ VP_FREE(szSubtitle);
+ }
+ if (pNormalView->pPlayerHandle) {
+ vp_mm_player_destroy(pNormalView->pPlayerHandle);
+ pNormalView->pPlayerHandle = NULL;
+ }
+
+ if (pNormalView->pLoadingAni) {
+ VP_EVAS_TIMER_DEL(pNormalView->pHideTimer);
+ VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+ }
+
+ /* mm_player create */
+ if (!vp_mm_player_set_hw_decoder(TRUE)) {
+ VideoLogError("vp_mm_player_set_user_param fail");
+ _vp_play_normal_view_destroy_handle(pNormalView);
+ return FALSE;
+ }
+
+ pNormalView->pPlayerHandle = vp_mm_player_create();
+ if (!pNormalView->pPlayerHandle) {
+ VideoLogError("vp_mm_player_create fail");
+ return FALSE;
+ }
+ MMPlayer *handle = (MMPlayer *) pNormalView->pPlayerHandle;
+ int nRet;
+ nRet =
+ player_set_sound_stream_info(handle->pPlayer,
+ pNormalView->pPlayView->stream_info);
+ if (nRet != PLAYER_ERROR_NONE) {
+ VideoLogError("unable to set sound policy [%x]", nRet);
+ }
+
+ if (!vp_mm_player_set_stream_info
+ (pNormalView->pPlayerHandle,
+ (void *) (pNormalView->pPlayView->stream_info))) {
+ VideoLogError("vp_mm_player_set_stream_info fail");
+ return FALSE;
+ }
+ if (!vp_mm_player_set_user_param
+ (pNormalView->pPlayerHandle, (void *) pNormalView)) {
+ VideoLogError("vp_mm_player_set_user_param fail");
+ return FALSE;
+ }
+
+ if (!vp_mm_player_set_callback
+ (pNormalView->pPlayerHandle, VP_MM_PLAYER_REALIZE_ASYNC_CB,
+ (void *) __vp_normal_prepare_cb)) {
+ VideoLogError("vp_mm_player_set_callback fail");
+ return FALSE;
+ }
+ if (!vp_mm_player_set_callback
+ (pNormalView->pPlayerHandle, VP_MM_PLAYER_SEEK_COMPLETE_CB,
+ (void *) __vp_normal_seek_completed_cb)) {
+ VideoLogError("vp_mm_player_set_callback fail");
+ return FALSE;
+ }
+ if (!vp_mm_player_set_callback
+ (pNormalView->pPlayerHandle, VP_MM_PLAYER_END_OF_STREAM_CB,
+ (void *) __vp_normal_completed_cb)) {
+ VideoLogError("vp_mm_player_set_callback fail");
+ return FALSE;
+ }
+ if (!vp_mm_player_set_callback
+ (pNormalView->pPlayerHandle, VP_MM_PLAYER_INTERRUPT_CB,
+ (void *) __vp_normal_interrupted_cb)) {
+ VideoLogError("vp_mm_player_set_callback fail");
+ return FALSE;
+ }
+ if (!vp_mm_player_set_callback
+ (pNormalView->pPlayerHandle, VP_MM_PLAYER_ERROR_CB,
+ (void *) __vp_normal_error_cb)) {
+ VideoLogError("vp_mm_player_set_callback fail");
+ return FALSE;
+ }
+ if (!vp_mm_player_set_callback
+ (pNormalView->pPlayerHandle, VP_MM_PLAYER_BUFFERING_CB,
+ (void *) __vp_normal_buffering_cb)) {
+ VideoLogError("vp_mm_player_set_callback fail");
+ return FALSE;
+ }
+ if (!vp_mm_player_set_callback
+ (pNormalView->pPlayerHandle, VP_MM_PLAYER_SUBTITLE_UPDATE_CB,
+ (void *) __vp_normal_subtitle_updated_cb)) {
+ VideoLogError("vp_mm_player_set_callback fail");
+ return FALSE;
+ }
+ if (!vp_mm_player_set_callback
+ (pNormalView->pPlayerHandle, VP_MM_PLAYER_PD_MESSAGE_CB,
+ (void *) __vp_normal_pd_message_cb)) {
+ VideoLogError("vp_mm_player_set_callback fail");
+ return FALSE;
+ }
+ if (!vp_mm_player_set_callback
+ (pNormalView->pPlayerHandle, VP_MM_PLAYER_MISSED_PLUGIN_CB,
+ (void *) __vp_normal_missed_plugin_cb)) {
+ VideoLogError("vp_mm_player_set_callback fail");
+ return FALSE;
+ }
+
+ if (!vp_mm_player_set_callback
+ (pNormalView->pPlayerHandle, VP_MM_PLAYER_IMAGE_BUFFER_CB,
+ (void *) __vp_normal_image_buffer_cb)) {
+ VideoLogError("vp_mm_player_set_callback fail");
+ return FALSE;
+ }
+
+ if (pNormalView->pBookmarkHandle) {
+ vp_play_bookmark_set_media_url(pNormalView->pBookmarkHandle,
+ pNormalView->szMediaURL);
+ }
+
+ if (pNormalView->szSubtitleURL) {
+ pNormalView->bIsExistSubtitle =
+ vp_mm_player_set_subtitle_url(pNormalView->pPlayerHandle,
+ pNormalView->szSubtitleURL);
+ bool bOn = FALSE;
+ vp_play_preference_get_subtitle_show_key(&bOn);
+ if (bOn) {
+ elm_object_signal_emit(pNormalView->pMainLayout,
+ VP_NORMAL_SIGNAL_MAIN_SUBTITLE_PORTRAIT,
+ "*");
+ pNormalView->bIsExistSubtitle = TRUE;
+ vp_mm_player_set_deactivate_subtitle(pNormalView->
+ pPlayerHandle, FALSE);
+ }
+
+ }
+#ifdef _NATIVE_BUFFER_SYNC
+ if (!vp_mm_player_set_video_sink(pNormalView->pPlayerHandle,
+ VP_MM_PLAYER_VIDEO_TYPE_EVAS,
+ (void *) pNormalView->pVideoSink)) {
+ VideoLogError("vp_mm_player_set_video_sink fail");
+ _vp_play_normal_view_destroy_handle(pNormalView);
+ return FALSE;
+ }
+#else
+ if (!vp_mm_player_set_video_sink
+ (pNormalView->pPlayerHandle, VP_MM_PLAYER_VIDEO_TYPE_X11,
+ (void *) (pNormalView->pPlayView->pWin))) {
+ VideoLogError("vp_mm_player_set_video_sink fail");
+ return FALSE;
+ }
+#endif
+
+ if (!vp_mm_player_set_hub_download_mode
+ (pNormalView->pPlayerHandle, pPlayView->bStoreDownload)) {
+ VideoLogError("vp_mm_player_set_hub_download_mode fail");
+ }
+
+ if (pNormalView->nRotate == VIDEO_PLAY_ROTATE_NONE) {
+ vp_mm_player_set_video_rotate(pNormalView->pPlayerHandle,
+ VP_MM_PLAYER_ROTATE_0);
+ } else if (pNormalView->nRotate == VIDEO_PLAY_ROTATE_90) {
+ vp_mm_player_set_video_rotate(pNormalView->pPlayerHandle,
+ VP_MM_PLAYER_ROTATE_90);
+ } else if (pNormalView->nRotate == VIDEO_PLAY_ROTATE_180) {
+ vp_mm_player_set_video_rotate(pNormalView->pPlayerHandle,
+ VP_MM_PLAYER_ROTATE_180);
+ } else if (pNormalView->nRotate == VIDEO_PLAY_ROTATE_270) {
+ vp_mm_player_set_video_rotate(pNormalView->pPlayerHandle,
+ VP_MM_PLAYER_ROTATE_270);
+ }
+
+ vp_mm_player_sound_filter_t nSoundFilter = VP_MM_PLAYER_FILTER_NONE;
+
+ if (pNormalView->nSoundAlive == VIDEO_SA_NORMAL) {
+ nSoundFilter = VP_MM_PLAYER_FILTER_NONE;
+ } else if (pNormalView->nSoundAlive == VIDEO_SA_VOICE) {
+ nSoundFilter = VP_MM_PLAYER_FILTER_VOICE;
+ } else if (pNormalView->nSoundAlive == VIDEO_SA_MOVIE) {
+ nSoundFilter = VP_MM_PLAYER_FILTER_MOVIE;
+ } else if (pNormalView->nSoundAlive == VIDEO_SA_7_1_CH) {
+ nSoundFilter = VP_MM_PLAYER_FILTER_VITUAL_71;
+
+ video_sound_device_type_t nSoundDevType = VP_SOUND_DEVICE_NONE;
+ vp_sound_get_active_device(&nSoundDevType);
+
+ if (nSoundDevType != VP_SOUND_DEVICE_EARJACK) {
+ nSoundFilter = VP_MM_PLAYER_FILTER_NONE;
+ }
+ }
+
+ vp_mm_player_set_display_mode(pNormalView->pPlayerHandle,
+ pNormalView->nDisplayMode);
+
+ if (nSoundFilter != VP_MM_PLAYER_FILTER_NONE) {
+ if (!vp_mm_player_set_sound_filter
+ (pNormalView->pPlayerHandle, nSoundFilter)) {
+ VideoLogWarning("vp_mm_player_set_sound_filter is fail");
+ }
+ }
+
+ if (pNormalView->nDefaultAudioTrackIndex > 0) {
+ vp_mm_player_set_audio_track(pNormalView->pPlayerHandle,
+ pNormalView->nDefaultAudioTrackIndex);
+ }
+
+ if (pNormalView->nLaunchingType != VIDEO_PLAY_TYPE_WEB &&
+ pNormalView->nLaunchingType != VIDEO_PLAY_TYPE_MULTI_PATH) {
+ if (pPlayView->szMediaTitle) {
+ elm_object_item_text_set(pNormalView->pNaviItem,
+ pPlayView->szMediaTitle);
+ } else {
+ char *szTitle = NULL;
+ szTitle =
+ vp_play_util_get_title_from_path(pNormalView->szMediaURL);
+ if (szTitle) {
+ elm_object_item_text_set(pNormalView->pNaviItem, szTitle);
+ }
+ VP_FREE(szTitle);
+ }
+ if (!vp_mm_player_realize_async
+ (pNormalView->pPlayerHandle, pNormalView->szMediaURL)) {
+ VideoLogError("vp_mm_player_realize_async fail");
+
+ Evas_Object *pPopup = NULL;
+ pPopup = vp_popup_create(pPlayView->pWin,
+ POPUP_STYLE_DEFAULT_NO_CANCEL_BTN,
+ VP_PLAY_STRING_COM_ERROR,
+ VP_PLAY_STRING_ERROR_UNABLE_PLAY,
+ 3.0,
+ __vp_normal_prepare_error_popup_time_out_cb,
+ NULL, NULL, pNormalView);
+
+
+ evas_object_show(pPopup);
+
+ pNormalView->bIsPopupShow = TRUE;
+
+ return TRUE;
+ }
+ } else {
+ if (pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_WEB) {
+ VideoLogInfo("VIDEO_PLAY_TYPE_WEB:%s",
+ pNormalView->szMediaURL);
+ if (pPlayView->szMediaTitle) {
+ elm_object_item_text_set(pNormalView->pNaviItem,
+ pPlayView->szMediaTitle);
+ } else {
+ elm_object_item_text_set(pNormalView->pNaviItem,
+ VP_PLAY_STRING_STREAMING_PLAYER);
+ }
+ if (pPlayView->szCookie) {
+ if (!vp_mm_player_set_cookie
+ (pNormalView->pPlayerHandle, pPlayView->szCookie)) {
+ VideoLogError("vp_mm_player_set_cookie fail");
+ }
+ }
+ if (pPlayView->szProxy) {
+ if (!vp_mm_player_set_proxy
+ (pNormalView->pPlayerHandle, pPlayView->szProxy)) {
+ VideoLogError("vp_mm_player_set_proxy fail");
+ }
+ }
+ char *szSdpPath = NULL;
+ szSdpPath =
+ vp_play_util_get_sdp_url((const char *) pNormalView->
+ szMediaURL);
+ if (vp_play_util_check_sdp_url((const char *) szSdpPath)) {
+ VP_FREE(szSdpPath);
+ return TRUE;
+ }
+ VP_FREE(szSdpPath);
+
+ if (!vp_mm_player_realize_async
+ (pNormalView->pPlayerHandle, pNormalView->szMediaURL)) {
+ VideoLogError("vp_mm_player_realize_async fail");
+ Evas_Object *pPopup = NULL;
+ pPopup = vp_popup_create(pPlayView->pWin,
+ POPUP_STYLE_DEFAULT_NO_CANCEL_BTN,
+ VP_PLAY_STRING_COM_ERROR,
+ VP_PLAY_STRING_ERROR_UNABLE_PLAY,
+ 3.0,
+ __vp_normal_prepare_error_popup_time_out_cb,
+ NULL, NULL, pNormalView);
+
+ evas_object_show(pPopup);
+
+ pNormalView->bIsPopupShow = TRUE;
+
+ return TRUE;
+ }
+ } else if (pNormalView->nLaunchingType ==
+ VIDEO_PLAY_TYPE_MULTI_PATH) {
+
+ char *szTitle = NULL;
+ char *szMultiPathURL = NULL;
+ char *szSubtitleForMultiPath = NULL;
+ int nMultiPathPosition = 0;
+ int nMultiPathDuration = 0;
+ bool bIsSameAP = TRUE;
+
+
+ vp_multi_path_get_current_item(pNormalView->szMediaURL,
+ &szMultiPathURL, &szTitle,
+ &szSubtitleForMultiPath,
+ &nMultiPathPosition,
+ &nMultiPathDuration, &bIsSameAP,
+ pPlayView->pMultiPathList);
+ if (szSubtitleForMultiPath) {
+ if (strlen(szSubtitleForMultiPath) > 0) {
+ if (vp_file_exists(szSubtitleForMultiPath)) {
+ pNormalView->bIsExistSubtitle = TRUE;
+ VideoSecureLogInfo("SUBTITLE : %s",
+ szSubtitleForMultiPath);
+ vp_mm_player_set_subtitle_url(pNormalView->
+ pPlayerHandle,
+ szSubtitleForMultiPath);
+ VP_FREE(pNormalView->szSubtitleURL);
+ } else {
+ pNormalView->pPopup =
+ vp_popup_create(pPlayView->pWin,
+ POPUP_STYLE_DEFAULT_NO_CANCEL_BTN,
+ VP_PLAY_STRING_COM_ERROR,
+ VP_PLAY_STRING_ERROR_SUBTITLE_FAIL,
+ 3.0,
+ __vp_normal_error_popup_time_out_cb,
+ __vp_normal_error_popup_key_event_cb,
+ __vp_normal_error_popup_mouse_event_cb,
+ pNormalView);
+ evas_object_show(pNormalView->pPopup);
+ pNormalView->bIsPopupShow = TRUE;
+ _vp_play_normal_view_release_service_share
+ (pNormalView->pPlayView);
+ }
+ }
+ }
+
+ if (!szTitle) {
+ szTitle =
+ vp_play_util_get_title_from_path(pNormalView->
+ szMediaURL);
+ }
+
+ if (szTitle) {
+ elm_object_item_text_set(pNormalView->pNaviItem, szTitle);
+ } else {
+ elm_object_item_text_set(pNormalView->pNaviItem,
+ VP_PLAY_STRING_NO_TITLE);
+ }
+
+ if (pNormalView->nStartPosition == 0) {
+ pNormalView->nStartPosition = nMultiPathPosition;
+ }
+
+ if (nMultiPathDuration > 0) {
+ pNormalView->nDuration = nMultiPathDuration;
+ }
+
+ VP_FREE(szMultiPathURL);
+ VP_FREE(szSubtitleForMultiPath);
+ VP_FREE(szTitle);
+
+ if (!vp_mm_player_realize_async
+ (pNormalView->pPlayerHandle, pNormalView->szMediaURL)) {
+ VideoLogError("vp_mm_player_realize_async fail");
+ Evas_Object *pPopup = NULL;
+ pPopup = vp_popup_create(pPlayView->pWin,
+ POPUP_STYLE_DEFAULT_NO_CANCEL_BTN,
+ VP_PLAY_STRING_COM_ERROR,
+ VP_PLAY_STRING_ERROR_UNABLE_PLAY,
+ 3.0,
+ __vp_normal_prepare_error_popup_time_out_cb,
+ NULL, NULL, pNormalView);
+
+ evas_object_show(pPopup);
+
+ pNormalView->bIsPopupShow = TRUE;
+
+ return TRUE;
+ }
+ }
+ }
+
+ if (!pNormalView->bAudioOnly) {
+ vp_play_util_set_lock_power_key();
+ }
+
+ VideoLogWarning("<<");
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pNormalView
+ * @param bManual
+ */
+static void _vp_play_normal_view_on_next_play(NormalView * pNormalView,
+ bool bManual)
+{
+ if (!pNormalView) {
+ VideoLogError("pNormalView is NULL");
+ return;
+ }
+
+ PlayView *pPlayView = pNormalView->pPlayView;
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return;
+ }
+
+ if (pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_MESSAGE ||
+ pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_EMAIL ||
+ pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_PREVIEW) {
+ return;
+ }
+
+ bool bIsExit = FALSE;
+
+ pNormalView->nStartPosition = 0;
+ pNormalView->nDefaultAudioTrackIndex = 0;
+ pNormalView->nSpeedValue = 1;
+ pNormalView->fPlaySpeed = 1.0;
+
+ VP_FREE(pNormalView->szSubtitleURL);
+ vp_mm_player_set_subtitle_url(pNormalView->pPlayerHandle, "");
+
+ _vp_play_normal_view_on_bookmark_mode(pNormalView, FALSE);
+
+ if (pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_WEB) {
+ if (pNormalView->nRepeatMode == VIDEO_PLAY_REPEAT_NONE) {
+ if (bManual) {
+ return;
+ } else {
+ bIsExit = TRUE;
+ }
+ } else {
+ _vp_play_normal_view_play_start(pNormalView, FALSE);
+ }
+ } else if (pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_MULTI_PATH) {
+ PlayView *pPlayView = pNormalView->pPlayView;
+
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ bIsExit = TRUE;
+ } else if (!pPlayView->pMultiPathList) {
+ VideoLogError("pMultiPathList is NULL");
+ bIsExit = TRUE;
+ } else {
+ if (bManual) {
+ _vp_play_normal_view_set_played_time(pNormalView);
+
+ char *szNextURL = NULL;
+ char *szSubtitle = NULL;
+ int nPosition = 0;
+ int nDuration = 0;
+ vp_multi_path_get_next_item(pNormalView->szMediaURL,
+ &szNextURL, &szSubtitle,
+ &nPosition, &nDuration, TRUE,
+ pPlayView->pMultiPathList);
+ VP_FREE(szSubtitle);
+ if (szNextURL) {
+ VP_FREE(pNormalView->szMediaURL);
+ VP_STRDUP(pNormalView->szMediaURL, szNextURL);
+ VP_FREE(szNextURL);
+ pNormalView->nStartPosition = nPosition;
+ pNormalView->nDuration = nDuration;
+ _vp_play_normal_view_play_start(pNormalView, TRUE);
+ } else {
+ _vp_play_normal_view_play_start(pNormalView, TRUE);
+ }
+ return;
+ }
+
+ if (pNormalView->nRepeatMode == VIDEO_PLAY_REPEAT_NONE) {
+ bIsExit = TRUE;
+ } else if (pNormalView->nRepeatMode == VIDEO_PLAY_REPEAT_OFF) {
+ bIsExit = TRUE;
+ } else if (pNormalView->nRepeatMode ==
+ VIDEO_PLAY_REPEAT_ALL_STOP) {
+ char *szNextURL = NULL;
+ char *szSubtitle = NULL;
+ int nPosition = 0;
+ int nDuration = 0;
+ vp_multi_path_get_next_item(pNormalView->szMediaURL,
+ &szNextURL, &szSubtitle,
+ &nPosition, &nDuration, FALSE,
+ pPlayView->pMultiPathList);
+
+ VP_FREE(szSubtitle);
+
+ if (!szNextURL) {
+ bIsExit = TRUE;
+ } else {
+ VP_FREE(pNormalView->szMediaURL);
+ VP_STRDUP(pNormalView->szMediaURL, szNextURL);
+ VP_FREE(szNextURL);
+ pNormalView->nDuration = nDuration;
+ _vp_play_normal_view_play_start(pNormalView, TRUE);
+ }
+ } else if (pNormalView->nRepeatMode == VIDEO_PLAY_REPEAT_ONE) {
+ _vp_play_normal_view_play_start(pNormalView, TRUE);
+ } else if (pNormalView->nRepeatMode == VIDEO_PLAY_REPEAT_ALL) {
+ char *szNextURL = NULL;
+ char *szSubtitle = NULL;
+ int nPosition = 0;
+ int nDuration = 0;
+ vp_multi_path_get_next_item(pNormalView->szMediaURL,
+ &szNextURL, &szSubtitle,
+ &nPosition, &nDuration, TRUE,
+ pPlayView->pMultiPathList);
+ VP_FREE(szSubtitle);
+ if (!szNextURL) {
+ bIsExit = TRUE;
+ } else {
+ VP_FREE(pNormalView->szMediaURL);
+ VP_STRDUP(pNormalView->szMediaURL, szNextURL);
+ VP_FREE(szNextURL);
+ pNormalView->nDuration = nDuration;
+ _vp_play_normal_view_play_start(pNormalView, TRUE);
+ }
+ }
+ }
+ } else {
+ if (bManual) {
+ _vp_play_normal_view_set_played_time(pNormalView);
+ char *szNextURL = NULL;
+ vp_media_contents_get_next_file_path(pNormalView->szMediaURL,
+ &szNextURL, TRUE,
+ pNormalView->
+ pMediaItemList);
+
+ VideoSecureLogInfo("pNormalView->szMediaURL is %s",
+ pNormalView->szMediaURL);
+ if (szNextURL) {
+ VP_FREE(pNormalView->szMediaURL);
+ VP_STRDUP(pNormalView->szMediaURL, szNextURL);
+ VP_FREE(szNextURL);
+
+ if (_vp_play_normal_view_play_start(pNormalView, TRUE)) {
+ vp_mm_player_state_t nState = VP_MM_PLAYER_STATE_NONE;
+ if (!vp_mm_player_get_state
+ (pNormalView->pPlayerHandle, &nState)) {
+ VideoLogWarning("vp_mm_player_get_state is fail");
+ }
+ if (!stay_pause && nState != VP_MM_PLAYER_STATE_PLAYING) {
+ vp_mm_player_play(pNormalView->pPlayerHandle);
+ pNormalView->bManualPause = FALSE;
+ }
+ }
+
+
+ if (stay_pause) {
+ VideoLogDebug
+ ("Some other application requested Video Player to remain in Paused state");
+ stay_pause = false;
+ }
+
+ if (pPlayView->win_minicon) {
+ vp_minicontroller_update_control(pPlayView);
+ }
+ if (pPlayView->win_lockmini) {
+ vp_lockscreenmini_update_control(pPlayView);
+ }
+
+ _vp_play_normal_view_set_play_state(pNormalView);
+ _vp_play_normal_view_on_capture_mode(pNormalView);
+ } else {
+ _vp_play_normal_view_play_start(pNormalView, TRUE);
+ }
+ return;
+ }
+
+ if (pNormalView->nRepeatMode == VIDEO_PLAY_REPEAT_NONE) {
+ bIsExit = TRUE;
+ } else if (pNormalView->nRepeatMode == VIDEO_PLAY_REPEAT_OFF) {
+ bIsExit = TRUE;
+ } else if (pNormalView->nRepeatMode == VIDEO_PLAY_REPEAT_ALL_STOP) {
+ char *szNextURL = NULL;
+ vp_media_contents_get_next_file_path(pNormalView->szMediaURL,
+ &szNextURL, FALSE,
+ pNormalView->
+ pMediaItemList);
+ if (!szNextURL) {
+ bIsExit = TRUE;
+ } else {
+ VP_FREE(pNormalView->szMediaURL);
+ VP_STRDUP(pNormalView->szMediaURL, szNextURL);
+ VP_FREE(szNextURL);
+ _vp_play_normal_view_play_start(pNormalView, TRUE);
+ }
+ } else if (pNormalView->nRepeatMode == VIDEO_PLAY_REPEAT_ONE) {
+ _vp_play_normal_view_play_start(pNormalView, TRUE);
+ } else if (pNormalView->nRepeatMode == VIDEO_PLAY_REPEAT_ALL) {
+ char *szNextURL = NULL;
+ vp_media_contents_get_next_file_path(pNormalView->szMediaURL,
+ &szNextURL, TRUE,
+ pNormalView->
+ pMediaItemList);
+ if (!szNextURL) {
+ bIsExit = TRUE;
+ } else {
+ VP_FREE(pNormalView->szMediaURL);
+ VP_STRDUP(pNormalView->szMediaURL, szNextURL);
+ VP_FREE(szNextURL);
+ _vp_play_normal_view_play_start(pNormalView, TRUE);
+ }
+ }
+ }
+
+ if (bIsExit) {
+ if (!pPlayView->pFunc) {
+ VideoLogError("pPlayView pFunc is NULL");
+ return;
+ }
+
+ if (!pPlayView->pFunc->vp_play_func_exit) {
+ VideoLogError("pPlayView exit Func is NULL");
+ return;
+ }
+ vp_device_set_screen_off(FALSE);
+ vp_play_util_set_unlock_power_key();
+
+ pPlayView->pFunc->vp_play_func_exit(pPlayView);
+ }
+}
+
+/**
+ *
+ * @param pNormalView
+ * @param bManual
+ * @param bVoice
+ */
+static void _vp_play_normal_view_on_prev_play(NormalView * pNormalView,
+ bool bManual, bool bVoice)
+{
+ if (!pNormalView) {
+ VideoLogError("pNormalView is NULL");
+ return;
+ }
+ PlayView *pPlayView = pNormalView->pPlayView;
+
+ pNormalView->nDefaultAudioTrackIndex = 0;
+ pNormalView->nSpeedValue = 1;
+ pNormalView->fPlaySpeed = 1.0;
+
+ VP_FREE(pNormalView->szSubtitleURL);
+ vp_mm_player_set_subtitle_url(pNormalView->pPlayerHandle, "");
+
+ if (pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_WEB) {
+ _vp_play_normal_view_play_start(pNormalView, FALSE);
+ return;
+ }
+
+ int nPosition = 0;
+ if (!vp_mm_player_get_position(pNormalView->pPlayerHandle, &nPosition)) {
+ VideoLogError("vp_mm_player_get_position is fail");
+ }
+
+ pNormalView->nStartPosition = 0;
+ if (bVoice == FALSE) {
+ if (nPosition > 2000) {
+ vp_mm_player_set_position(pNormalView->pPlayerHandle, 0);
+
+ if (pNormalView->bManualPause) {
+ vp_play_progressbar_set_position(pNormalView->pProgressbar,
+ 0);
+ }
+ return;
+ }
+ }
+
+ if (pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_MESSAGE ||
+ pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_EMAIL ||
+ pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_PREVIEW ||
+ (pPlayView && (strstr(pPlayView->szMediaURL, "/.") != NULL))) {
+ return;
+ }
+
+ if (bManual) {
+ _vp_play_normal_view_set_played_time(pNormalView);
+ }
+
+ char *szPrevURL = NULL;
+ if (pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_MULTI_PATH) {
+ if (!pPlayView) {
+ _vp_play_normal_view_play_start(pNormalView, TRUE);
+ return;
+ } else if (pPlayView->pMultiPathList == NULL) {
+ _vp_play_normal_view_play_start(pNormalView, TRUE);
+ return;
+ } else {
+ char *szSubtitle = NULL;
+ int nPosition = 0;
+ int nDuration = 0;
+ vp_multi_path_get_next_item(pNormalView->szMediaURL,
+ &szPrevURL, &szSubtitle,
+ &nPosition, &nDuration, TRUE,
+ pPlayView->pMultiPathList);
+ VP_FREE(szSubtitle);
+
+ if (szPrevURL) {
+ VP_FREE(pNormalView->szMediaURL);
+ VP_STRDUP(pNormalView->szMediaURL, szPrevURL);
+ VP_FREE(szPrevURL);
+ pNormalView->nDuration = nDuration;
+ }
+
+ _vp_play_normal_view_play_start(pNormalView, TRUE);
+ }
+
+ } else {
+ vp_media_contents_get_prev_file_path(pNormalView->szMediaURL,
+ &szPrevURL, TRUE,
+ pNormalView->pMediaItemList);
+ VideoSecureLogInfo("pNormalView->szMediaURL pre is %s",
+ pNormalView->szMediaURL);
+ if (szPrevURL) {
+ VP_FREE(pNormalView->szMediaURL);
+ VP_STRDUP(pNormalView->szMediaURL, szPrevURL);
+ VP_FREE(szPrevURL);
+ }
+
+ _vp_play_normal_view_on_bookmark_mode(pNormalView, FALSE);
+ if (_vp_play_normal_view_play_start(pNormalView, TRUE)) {
+ vp_mm_player_state_t nState = VP_MM_PLAYER_STATE_NONE;
+ if (!vp_mm_player_get_state(pNormalView->pPlayerHandle, &nState)) {
+ VideoLogWarning("vp_mm_player_get_state is fail");
+ }
+ if (!stay_pause && nState != VP_MM_PLAYER_STATE_PLAYING) {
+ vp_mm_player_play(pNormalView->pPlayerHandle);
+ pNormalView->bManualPause = FALSE;
+ }
+ }
+
+
+ if (stay_pause) {
+ VideoLogDebug
+ ("Some other application requested Video Player to remain in Paused state");
+ stay_pause = false;
+ }
+
+ if (pPlayView->win_minicon) {
+ vp_minicontroller_update_control(pPlayView);
+ }
+ if (pPlayView->win_lockmini) {
+ vp_lockscreenmini_update_control(pPlayView);
+ }
+
+ _vp_play_normal_view_set_play_state(pNormalView);
+ _vp_play_normal_view_on_capture_mode(pNormalView);
+ }
+}
+
+/**
+ *
+ * @param pNormalView
+ */
+static void _vp_play_normal_view_set_played_time(NormalView * pNormalView)
+{
+ if (!pNormalView) {
+ VideoLogError("pNormalView is NULL");
+ return;
+ }
+
+ int nPosition = 0;
+ if (pNormalView->nLaunchingType != VIDEO_PLAY_TYPE_WEB &&
+ pNormalView->nLaunchingType != VIDEO_PLAY_TYPE_PREVIEW &&
+ pNormalView->nLaunchingType != VIDEO_PLAY_TYPE_MESSAGE &&
+ pNormalView->nLaunchingType != VIDEO_PLAY_TYPE_EMAIL &&
+ pNormalView->nLaunchingType != VIDEO_PLAY_TYPE_MULTI_PATH) {
+ if (!vp_mm_player_get_position
+ (pNormalView->pPlayerHandle, &nPosition)) {
+ VideoLogError("vp_mm_player_get_position is fail");
+ }
+ } else if (pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_MULTI_PATH) {
+ if (!vp_mm_player_get_position
+ (pNormalView->pPlayerHandle, &nPosition)) {
+ VideoLogError("vp_mm_player_get_position is fail");
+ } else {
+ PlayView *pPlayView = pNormalView->pPlayView;
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return;
+ }
+ if (!pPlayView->pMultiPathList) {
+ VideoLogError("pMultiPathList is NULL");
+ return;
+ }
+ if (nPosition >= pNormalView->nDuration) {
+ nPosition = 0;
+ }
+ vp_multi_path_set_item_position(pNormalView->szMediaURL,
+ nPosition,
+ pPlayView->pMultiPathList);
+ }
+
+ }
+ if (pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_LIST ||
+ pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_OTHER) {
+ bool bIsCloud = FALSE;
+ vp_media_contents_get_cloud_attribute(pNormalView->szMediaURL,
+ &bIsCloud);
+ if (!bIsCloud) {
+ PlayView *pPlayView = pNormalView->pPlayView;
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return;
+ }
+ if (pPlayView->bViewChange == FALSE) {
+ if (vp_file_exists(pNormalView->szMediaURL)) {
+ vp_play_config_set_preview_url_videos(pNormalView->
+ szMediaURL);
+ } else {
+ _vp_play_normal_view_release_service_share
+ (pNormalView->pPlayView);
+ }
+ }
+ vp_play_preference_set_preview_audio_track(pNormalView->
+ nDefaultAudioTrackIndex);
+ }
+ }
+}
+
+/**
+ *
+ * @param pNormalView
+ * @param bFoward
+ */
+static void _vp_play_normal_view_screen_move(NormalView * pNormalView,
+ bool bFoward)
+{
+ if (!pNormalView) {
+ VideoLogError("pNormalView is NULL");
+ return;
+ }
+
+ int nSetPosition = 0;
+ int nCurPosition = 0;
+
+ if (!vp_mm_player_get_position
+ (pNormalView->pPlayerHandle, &nCurPosition)) {
+ VideoLogError("vp_mm_player_get_position is fail");
+ return;
+ }
+
+
+ if (bFoward) {
+ nSetPosition = nCurPosition + 1000;
+ } else {
+ nSetPosition = nCurPosition - 1000;
+ }
+
+ if (pNormalView->nDuration < nSetPosition) {
+ nSetPosition = pNormalView->nDuration;
+ }
+
+ if (nSetPosition < 0) {
+ nSetPosition = 0;
+ }
+
+ if (vp_mm_player_set_position
+ (pNormalView->pPlayerHandle, nSetPosition)) {
+ pNormalView->nWaitPos = -1;
+ pNormalView->bSeekComplete = FALSE;
+ vp_play_progressbar_set_position(pNormalView->pProgressbar,
+ nSetPosition);
+ }
+}
+
+#ifdef ENABLE_GESTURE_ZOOM_FEATURE
+static void _vp_play_normal_view_on_zoom_mode(NormalView * pNormalView)
+{
+ if (!pNormalView) {
+ VideoLogError("pNormalView is NULL");
+ return;
+ }
+
+ if (!pNormalView->pPlayerHandle) {
+ VideoLogWarning("Player Handle is NULL");
+ return;
+ }
+
+ if (vp_play_util_check_streaming(pNormalView->szMediaURL)) {
+ VideoLogWarning("Skip for streaming");
+ return;
+ }
+
+ if (pNormalView->fZoomValue > 1.0) {
+ pNormalView->bZoomEnable = TRUE;
+ if (!pNormalView->pZoomGuide) {
+ VP_EVAS_TIMER_DEL(pNormalView->pMomentTimer);
+
+ VP_EVAS_JOB_DEL(pNormalView->pVolumeJob);
+ VP_EVAS_JOB_DEL(pNormalView->pBrightnessJob);
+
+ if (!vp_play_brightness_unrealize
+ (pNormalView->pBrightnessHandle)) {
+ VideoLogWarning("vp_play_brightness_unrealize is fail");
+ }
+
+ if (!vp_play_volume_popup_unrealize
+ (pNormalView->pVolumePopupHandle)) {
+ VideoLogWarning("vp_play_volume_popup_unrealize is fail");
+ }
+
+ pNormalView->pZoomGuide =
+ vp_zoom_guide_create(pNormalView->pMainLayout);
+ vp_zoom_guide_realize(pNormalView->pZoomGuide);
+ Evas_Object *pZoomGuideLayout =
+ vp_zoom_guide_get_object(pNormalView->pZoomGuide);
+ if (pZoomGuideLayout) {
+ elm_object_part_content_set(pNormalView->pMainLayout,
+ VP_PLAY_SWALLOW_NORMAL_ZOOM_GUIDE,
+ pZoomGuideLayout);
+ } else {
+ VideoLogError("pZoomGuideLayout is NULL");
+ }
+
+ Evas_Coord_Rectangle rtSrc = { 0, };
+ Evas_Coord_Rectangle rtDst = { 0, };
+ Evas_Coord_Rectangle rtResult = { 0, };
+ int nWidth = 0;
+ int nHeight = 0;
+
+ elm_win_screen_size_get(pNormalView->pPlayView->pWin, NULL,
+ NULL, &nWidth, &nHeight);
+
+ if (pNormalView->nRotate == VIDEO_PLAY_ROTATE_90
+ || pNormalView->nRotate == VIDEO_PLAY_ROTATE_270) {
+ rtDst.w = nHeight;
+ rtDst.h = nWidth;
+ } else {
+ rtDst.w = nWidth;
+ rtDst.h = nHeight;
+ }
+ vp_mm_player_get_resolution(pNormalView->pPlayerHandle,
+ &(rtSrc.w), &(rtSrc.h));
+ vp_play_util_calculator_position(rtSrc, rtDst, &rtResult,
+ pNormalView->nDisplayMode);
+ vp_zoom_guide_set_move_position(pNormalView->pZoomGuide,
+ (double) pNormalView->
+ nZoomPosX / rtDst.w,
+ (double) pNormalView->
+ nZoomPosY / rtDst.h);
+ float fPosX = pNormalView->nZoomPosX / rtResult.w;
+ float fPosY = pNormalView->nZoomPosY / rtResult.h;
+ if (fPosX > 1.0) {
+ fPosX = 1.0;
+ }
+
+ if (fPosY > 1.0) {
+ fPosY = 1.0;
+ }
+
+ if (fPosX < 0.0) {
+ fPosX = 0.0;
+ }
+
+ if (fPosY < 0.0) {
+ fPosY = 0.0;
+ }
+ }
+ // event filtering
+ bool bLandscape = FALSE;
+ if (pNormalView->nRotate == VIDEO_PLAY_ROTATE_90
+ || pNormalView->nRotate == VIDEO_PLAY_ROTATE_270) {
+ bLandscape = TRUE;
+ }
+ if (bLandscape
+ && fabs(pNormalView->fPrevZoomValue -
+ pNormalView->fZoomValue) < 0.05) {
+ return;
+ }
+
+ vp_zoom_guide_set_zoom_value(pNormalView->pZoomGuide,
+ pNormalView->fZoomValue);
+ pNormalView->fPrevZoomValue = pNormalView->fZoomValue;
+ } else {
+ pNormalView->fZoomValue = 1.0;
+ pNormalView->bZoomEnable = FALSE;
+ vp_zoom_guide_set_zoom_value(pNormalView->pZoomGuide,
+ pNormalView->fZoomValue);
+ elm_object_part_content_unset(pNormalView->pMainLayout,
+ VP_PLAY_SWALLOW_NORMAL_ZOOM_GUIDE);
+
+ vp_mm_player_set_zoom(pNormalView->pPlayerHandle,
+ pNormalView->fZoomValue, 0, 0);
+
+ vp_zoom_guide_destroy(pNormalView->pZoomGuide);
+ pNormalView->pZoomGuide = NULL;
+ }
+}
+#endif
+
+/**
+ *
+ * @param pNormalView
+ */
+static void _vp_play_normal_view_on_capture_mode(NormalView * pNormalView)
+{
+ if (!pNormalView) {
+ VideoLogError("pNormalView is NULL");
+ return;
+ }
+ PlayView *pPlayView = pNormalView->pPlayView;
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return;
+ }
+ Evas_Object *pParent = NULL;
+ pParent = pNormalView->pTopControlLayout;
+ if (!pParent) {
+ VideoLogError("pParent is NULL");
+ return;
+ }
+ vp_play_preference_get_capture_on_key(&pNormalView->bCaptureMode);
+
+ elm_object_part_content_unset(pParent,
+ VP_PLAY_SWALLOW_NORMAL_TOP_CAPTURE);
+ elm_object_part_content_unset(pParent,
+ VP_PLAY_SWALLOW_NORMAL_TOP_CAPTURE_REW);
+ elm_object_part_content_unset(pParent,
+ VP_PLAY_SWALLOW_NORMAL_TOP_CAPTURE_FF);
+
+ VP_EVAS_DEL(pNormalView->pCaptureBtn);
+ VP_EVAS_DEL(pNormalView->pCaptureRewBtn);
+ VP_EVAS_DEL(pNormalView->pCaptureFFBtn);
+
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VP_PLAY_RESROUCE_EDJ_PATH);
+ free(path);
+ if (!pNormalView->szMediaURL) {
+ return;
+ }
+
+ if (pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_WEB) {
+ return;
+ }
+
+ if (pNormalView->bCaptureMode) {
+ pNormalView->pCaptureBtn =
+ vp_button_create(pNormalView->pNaviFrame,
+ "custom/flat_63_63/default", NULL,
+ (Evas_Smart_Cb)
+ __vp_normal_control_btn_clicked_cb,
+ (Evas_Smart_Cb)
+ __vp_normal_control_btn_press_cb,
+ (Evas_Smart_Cb)
+ __vp_normal_control_btn_unpress_cb,
+ (void *) pNormalView);
+ Evas_Object *pIcon = NULL;
+ pIcon =
+ vp_button_create_icon(pNormalView->pCaptureBtn, edj_path,
+ VP_PLAY_NORMAL_RES_CAPTURE);
+ elm_object_part_content_set(pNormalView->pCaptureBtn,
+ VP_PLAY_SWALLOW_BUTTON_ICON, pIcon);
+
+ pIcon =
+ vp_button_create_icon(pNormalView->pCaptureBtn, edj_path,
+ VP_PLAY_NORMAL_RES_CAPTURE_PRESS);
+ elm_object_part_content_set(pNormalView->pCaptureBtn,
+ VP_PLAY_SWALLOW_BUTTON_PRESS_ICON,
+ pIcon);
+
+ pIcon =
+ vp_button_create_icon(pNormalView->pCaptureBtn, edj_path,
+ VP_PLAY_NORMAL_RES_CAPTURE_DIM);
+ elm_object_part_content_set(pNormalView->pCaptureBtn,
+ VP_PLAY_SWALLOW_BUTTON_DIM_ICON,
+ pIcon);
+
+ elm_object_part_content_set(pParent,
+ VP_PLAY_SWALLOW_NORMAL_TOP_CAPTURE,
+ pNormalView->pCaptureBtn);
+
+ evas_object_show(pNormalView->pCaptureBtn);
+
+ vp_mm_player_state_t nState = VP_MM_PLAYER_STATE_NONE;
+ if (!vp_mm_player_get_state(pNormalView->pPlayerHandle, &nState)) {
+ VideoLogWarning("vp_mm_player_get_state is fail");
+ }
+ if (nState == VP_MM_PLAYER_STATE_PAUSED ||
+ (nState != VP_MM_PLAYER_STATE_PLAYING
+ && pNormalView->bManualPause)) {
+ pNormalView->pCaptureRewBtn =
+ vp_button_create(pNormalView->pNaviFrame,
+ "custom/flat_63_63/default", NULL,
+ (Evas_Smart_Cb)
+ __vp_normal_control_btn_clicked_cb,
+ (Evas_Smart_Cb)
+ __vp_normal_control_btn_press_cb,
+ (Evas_Smart_Cb)
+ __vp_normal_control_btn_unpress_cb,
+ (void *) pNormalView);
+
+ pNormalView->pCaptureFFBtn =
+ vp_button_create(pNormalView->pNaviFrame,
+ "custom/flat_63_63/default", NULL,
+ (Evas_Smart_Cb)
+ __vp_normal_control_btn_clicked_cb,
+ (Evas_Smart_Cb)
+ __vp_normal_control_btn_press_cb,
+ (Evas_Smart_Cb)
+ __vp_normal_control_btn_unpress_cb,
+ (void *) pNormalView);
+
+ pIcon =
+ vp_button_create_icon(pNormalView->pCaptureRewBtn,
+ edj_path,
+ VP_PLAY_NORMAL_RES_CAPTURE_REW);
+ elm_object_part_content_set(pNormalView->pCaptureRewBtn,
+ VP_PLAY_SWALLOW_BUTTON_ICON,
+ pIcon);
+
+ pIcon =
+ vp_button_create_icon(pNormalView->pCaptureRewBtn,
+ edj_path,
+ VP_PLAY_NORMAL_RES_CAPTURE_REW_PRESS);
+ elm_object_part_content_set(pNormalView->pCaptureRewBtn,
+ VP_PLAY_SWALLOW_BUTTON_PRESS_ICON,
+ pIcon);
+
+ pIcon =
+ vp_button_create_icon(pNormalView->pCaptureRewBtn,
+ edj_path,
+ VP_PLAY_NORMAL_RES_CAPTURE_REW_DIM);
+ elm_object_part_content_set(pNormalView->pCaptureRewBtn,
+ VP_PLAY_SWALLOW_BUTTON_DIM_ICON,
+ pIcon);
+
+
+ pIcon =
+ vp_button_create_icon(pNormalView->pCaptureFFBtn, edj_path,
+ VP_PLAY_NORMAL_RES_CAPTURE_FF);
+ elm_object_part_content_set(pNormalView->pCaptureFFBtn,
+ VP_PLAY_SWALLOW_BUTTON_ICON,
+ pIcon);
+
+ pIcon =
+ vp_button_create_icon(pNormalView->pCaptureFFBtn, edj_path,
+ VP_PLAY_NORMAL_RES_CAPTURE_FF_PRESS);
+ elm_object_part_content_set(pNormalView->pCaptureFFBtn,
+ VP_PLAY_SWALLOW_BUTTON_PRESS_ICON,
+ pIcon);
+
+ pIcon =
+ vp_button_create_icon(pNormalView->pCaptureFFBtn, edj_path,
+ VP_PLAY_NORMAL_RES_CAPTURE_FF_DIM);
+ elm_object_part_content_set(pNormalView->pCaptureFFBtn,
+ VP_PLAY_SWALLOW_BUTTON_DIM_ICON,
+ pIcon);
+
+ elm_object_part_content_set(pParent,
+ VP_PLAY_SWALLOW_NORMAL_TOP_CAPTURE_REW,
+ pNormalView->pCaptureRewBtn);
+ elm_object_part_content_set(pParent,
+ VP_PLAY_SWALLOW_NORMAL_TOP_CAPTURE_FF,
+ pNormalView->pCaptureFFBtn);
+
+ evas_object_show(pNormalView->pCaptureRewBtn);
+ evas_object_show(pNormalView->pCaptureFFBtn);
+ }
+
+ }
+}
+
+/**
+ *
+ * @param pNormalView
+ */
+static void _vp_play_normal_view_on_share_popup(NormalView * pNormalView)
+{
+ if (!pNormalView) {
+ VideoLogError("pNormalView is NULL");
+ return;
+ }
+
+ PlayView *pPlayView = pNormalView->pPlayView;
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return;
+ }
+
+ vp_mm_player_state_t nState = VP_MM_PLAYER_STATE_NONE;
+ if (!vp_mm_player_get_state(pNormalView->pPlayerHandle, &nState)) {
+ VideoLogWarning("vp_mm_player_get_state is fail");
+ }
+ pPlayView->bIsSharePopup = TRUE;
+ if (nState != VP_MM_PLAYER_STATE_PLAYING) {
+ pPlayView->bIsPlayBeforeShare = false;
+ } else {
+ pPlayView->bIsPlayBeforeShare = true;
+ }
+
+ bool bDRMLock = FALSE;
+
+ _vp_play_normal_view_check_drm_lock(pNormalView, &bDRMLock);
+ if (bDRMLock) {
+ VP_EVAS_DEL(pNormalView->pPopup);
+ pNormalView->pPopup = NULL;
+
+ pNormalView->pPopup = vp_popup_create(pPlayView->pWin,
+ POPUP_STYLE_DEFAULT_NO_CANCEL_BTN,
+ VP_PLAY_STRING_COM_ERROR,
+ VP_PLAY_STRING_DRM_UNABLE_TO_SHARE_DRM_FILE,
+ 3.0,
+ __vp_normal_popup_time_out_cb,
+ NULL, NULL, pNormalView);
+
+ evas_object_show(pNormalView->pPopup);
+ pNormalView->bIsPopupShow = TRUE;
+ return;
+ }
+
+ if (!vp_mm_player_pause(pNormalView->pPlayerHandle)) {
+ VideoLogWarning("Pause Fail");
+ }
+ if (pPlayView->win_minicon) {
+ vp_minicontroller_update_control(pPlayView);
+ }
+ if (pPlayView->win_lockmini) {
+ vp_lockscreenmini_update_control(pPlayView);
+ }
+ _vp_play_normal_view_set_play_state(pNormalView);
+
+ pNormalView->bSharePanelPause = FALSE;
+ pNormalView->bSharePanelFocusIn = FALSE;
+ VideoLogInfo("share popup: bSharePanelPause = %d",
+ pNormalView->bManualPause);
+ if (!pNormalView->bManualPause) {
+ pNormalView->bSharePanelPause = TRUE;
+ }
+
+ if (vp_play_app_launch_share_panel
+ (pPlayView->pWin, pNormalView->szMediaURL,
+ &pPlayView->pServiceShare, (void *) pNormalView)) {
+ pNormalView->bSharepopup = TRUE;
+
+ } else {
+ pNormalView->bSharepopup = FALSE;
+ VideoLogError("Launch share app failed");
+ }
+
+ VP_EVAS_TIMER_DEL(pNormalView->pHideTimer);
+ VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+
+}
+
+/**
+ *
+ * @param pNormalView
+ */
+static void _vp_play_normal_view_on_sound_alive_popup(NormalView *
+ pNormalView)
+{
+ if (!pNormalView) {
+ VideoLogError("pNormalView is NULL");
+ return;
+ }
+
+ vp_mm_player_state_t nState = VP_MM_PLAYER_STATE_NONE;
+ if (!vp_mm_player_get_state(pNormalView->pPlayerHandle, &nState)) {
+ VideoLogWarning("vp_mm_player_get_state is fail");
+ }
+
+ if (pNormalView->bVideoOnlyMode == FALSE
+ && nState == VP_MM_PLAYER_STATE_PLAYING) {
+ if (!vp_mm_player_pause(pNormalView->pPlayerHandle)) {
+ VideoLogError("Pause Fail");
+ }
+
+ _vp_play_normal_view_set_play_state(pNormalView);
+ }
+
+ vp_sound_alive_destroy(pNormalView->pSAHandle);
+
+ PlayView *pPlayView = pNormalView->pPlayView;
+
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return;
+ }
+
+ pNormalView->pSAHandle = vp_sound_alive_create(pPlayView->pWin,
+ pNormalView->szMediaURL,
+ __vp_normal_sound_alive_popup_close_cb,
+ pNormalView->
+ nSoundAlive);
+ if (!pNormalView->pSAHandle) {
+ VideoLogError("vp_sound_alive_create fail");
+ return;
+ }
+ if (!vp_sound_alive_set_user_data
+ (pNormalView->pSAHandle, (void *) pNormalView)) {
+ VideoLogWarning("vp_share_set_user_data is fail");
+ }
+
+ if (!vp_sound_alive_realize(pNormalView->pSAHandle)) {
+ VideoLogWarning("vp_share_realize is fail");
+ }
+ pNormalView->bIsPopupShow = TRUE;
+
+ VP_EVAS_TIMER_DEL(pNormalView->pHideTimer);
+ VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+
+}
+
+/**
+ *
+ * @param pNormalView
+ */
+static void _vp_play_normal_view_on_sound_path_popup(NormalView *
+ pNormalView)
+{
+ if (!pNormalView) {
+ VideoLogError("pNormalView is NULL");
+ return;
+ }
+
+ vp_sound_path_destroy(pNormalView->pSoundPathHandle);
+ pNormalView->pSoundPathHandle = NULL;
+
+ PlayView *pPlayView = pNormalView->pPlayView;
+
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return;
+ }
+
+ vp_mm_player_state_t nState = VP_MM_PLAYER_STATE_NONE;
+ if (!vp_mm_player_get_state(pNormalView->pPlayerHandle, &nState)) {
+ VideoLogWarning("vp_mm_player_get_state is fail");
+ }
+
+ if (pNormalView->bVideoOnlyMode == FALSE
+ && nState == VP_MM_PLAYER_STATE_PLAYING) {
+ if (!vp_mm_player_pause(pNormalView->pPlayerHandle)) {
+ VideoLogError("Pause Fail");
+ }
+ _vp_play_normal_view_set_play_state(pNormalView);
+ }
+
+ pNormalView->pSoundPathHandle = vp_sound_path_create(pPlayView->pWin,
+ __vp_normal_sound_path_popup_close_cb);
+ if (!pNormalView->pSoundPathHandle) {
+ VideoLogError("vp_sound_path_create fail");
+ return;
+ }
+ if (!vp_sound_path_set_user_data
+ (pNormalView->pSoundPathHandle, (void *) pNormalView)) {
+ VideoLogWarning("vp_sound_path_set_user_data is fail");
+ }
+
+ if (!vp_sound_path_realize(pNormalView->pSoundPathHandle)) {
+ VideoLogWarning("vp_sound_path_realize is fail");
+ }
+ pNormalView->bIsPopupShow = TRUE;
+
+ VP_EVAS_TIMER_DEL(pNormalView->pHideTimer);
+ VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+
+}
+
+/**
+ *
+ * @param pNormalView
+ */
+static void _vp_play_normal_view_on_subtitle_popup(NormalView *
+ pNormalView)
+{
+ if (!pNormalView) {
+ VideoLogError("pNormalView is NULL");
+ return;
+ }
+
+ PlayView *pPlayView = pNormalView->pPlayView;
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return;
+ }
+
+ SubtitleInfo *pSubtitleInfo = NULL;
+ pSubtitleInfo = calloc(1, sizeof(SubtitleInfo));
+ if (!pSubtitleInfo) {
+ VideoLogError("pSubtitleInfo alloc fail");
+ return;
+ }
+ bool bIsClosedCaption = FALSE;
+ bIsClosedCaption =
+ vp_mm_player_is_closed_caption_exist(pNormalView->pPlayerHandle);
+
+ pSubtitleInfo->bClosedCaption = bIsClosedCaption;
+ pSubtitleInfo->fSync = pNormalView->fSubtitleSyncValue;
+ int nCount = 0;
+ char *szSubtitle = NULL;
+
+ if (vp_mm_player_get_subtitle_track_count
+ (pNormalView->pPlayerHandle, &nCount)) {
+ if (nCount > 0) {
+ char *szCode = NULL;
+#ifdef _SUBTITLE_MULTI_LANGUAGE
+ if (pNormalView->pSelectedSubtitleLanguage
+ && nCount == pNormalView->nSubtitleLanguageCount) {
+ int index = 0;
+ VP_FREE(pSubtitleInfo->szLanguage);
+ for (; index < nCount; ++index) {
+ if (pNormalView->pSelectedSubtitleLanguage[index]) {
+ char *szName = NULL;
+ vp_mm_player_get_subtitle_track_language_code
+ (pNormalView->pPlayerHandle, index, &szCode);
+ vp_subtitle_track_get_name(szCode, &szName);
+ if (!pSubtitleInfo->szLanguage) {
+ pSubtitleInfo->szLanguage = g_strdup(szName);
+ } else {
+ char *szTmp =
+ g_strdup(pSubtitleInfo->szLanguage);
+ VP_FREE(pSubtitleInfo->szLanguage);
+ pSubtitleInfo->szLanguage =
+ g_strdup_printf("%s,%s", szTmp, szName);
+ VP_FREE(szTmp);
+ }
+ VP_FREE(szName);
+ VP_FREE(szCode);
+ }
+ }
+ } else
+#endif
+ {
+ vp_mm_player_get_subtitle_track_language_code(pNormalView->
+ pPlayerHandle,
+ pNormalView->
+ nDefaultSubtitleTrackIndex,
+ &szCode);
+ vp_subtitle_track_get_name(szCode,
+ &(pSubtitleInfo->szLanguage));
+ VP_FREE(szCode);
+ }
+ } else {
+ pSubtitleInfo->szLanguage =
+ g_strdup_printf("%s", VP_PLAY_STRING_COM_UNKNOWN);
+ }
+ }
+
+ if (!pSubtitleInfo->szLanguage) {
+ pSubtitleInfo->szLanguage =
+ g_strdup_printf("%s", VP_PLAY_STRING_COM_UNKNOWN);
+ }
+
+ vp_play_preference_get_subtitle_font_name_key(&
+ (pSubtitleInfo->
+ szFontName));
+ if (pSubtitleInfo->szFontName) {
+ if (strcmp(pSubtitleInfo->szFontName, "Tizen") == 0) {
+ VP_FREE(pSubtitleInfo->szFontName);
+ pSubtitleInfo->szFontName =
+ g_strdup_printf("%s", VP_PLAY_STRING_FONT_DEFAULT);
+ }
+ }
+ vp_play_preference_get_subtitle_size_key(&(pSubtitleInfo->nFontSize));
+ vp_play_preference_get_subtitle_edge_key(&(pSubtitleInfo->nEdge));
+
+#ifndef SUBTITLE_K_FEATURE
+ vp_play_preference_get_subtitle_font_color_key(&
+ (pSubtitleInfo->
+ nTextColor));
+ vp_play_preference_get_subtitle_bg_color_key(&
+ (pSubtitleInfo->
+ nBGColor));
+#else
+ vp_play_preference_get_subtitle_font_color_hex_key(&
+ (pSubtitleInfo->
+ pTextColorHex));
+ vp_play_preference_get_subtitle_bg_color_hex_key(&
+ (pSubtitleInfo->
+ pBGColorHex));
+ vp_play_preference_get_subtitle_caption_win_color_hex_key(&
+ (pSubtitleInfo->
+ pCaptionWinColorHex));
+
+ int nAlignment = VIDEO_SUBTITLE_ALIGNMENT_CENTER;
+ vp_play_preference_get_subtitle_alignment_key(&nAlignment);
+ pSubtitleInfo->eAlignment = nAlignment;
+#endif
+ vp_mm_player_get_subtitle_url(pNormalView->pPlayerHandle, &szSubtitle);
+ if (szSubtitle) {
+ VP_STRDUP(pSubtitleInfo->szURL, szSubtitle);
+ }
+
+ VP_FREE(szSubtitle);
+
+ if (pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_WEB) {
+ pSubtitleInfo->bSupportSelect = FALSE;
+ } else {
+ pSubtitleInfo->bSupportSelect = TRUE;
+ }
+ vp_play_subtitle_get_text(pNormalView->pSubtitle,
+ &pSubtitleInfo->szText);
+ vp_play_subtitle_get_size_zoom(pNormalView->pSubtitle,
+ &pSubtitleInfo->fZoom);
+
+ if (pNormalView->pSubtitlePopup) {
+ VideoLogWarning("pSubtitlePopup has been created");
+ vp_subtitle_update(pNormalView->pSubtitlePopup, pSubtitleInfo);
+ } else {
+ pNormalView->pSubtitlePopup =
+ vp_subtitle_create(pPlayView->pWin, pSubtitleInfo,
+ __vp_normal_subtitle_popup_close_cb);
+
+ if (!pNormalView->pSubtitlePopup) {
+ VideoLogError("vp_subtitle_create fail");
+
+ VP_FREE(pSubtitleInfo->szURL);
+ VP_FREE(pSubtitleInfo->szText);
+ VP_FREE(pSubtitleInfo->szLanguage);
+ VP_FREE(pSubtitleInfo->szFontName);
+
+ VP_FREE(pSubtitleInfo);
+ return;
+ }
+ if (!vp_subtitle_set_user_data
+ (pNormalView->pSubtitlePopup, (void *) pNormalView)) {
+ VideoLogWarning("vp_subtitle_set_user_data is fail");
+ }
+
+ if (!vp_subtitle_realize(pNormalView->pSubtitlePopup)) {
+ VideoLogWarning("vp_subtitle_realize is fail");
+ }
+ }
+
+ VP_FREE(pSubtitleInfo->szLanguage);
+ VP_FREE(pSubtitleInfo->szFontName);
+ VP_FREE(pSubtitleInfo->szText);
+ VP_FREE(pSubtitleInfo->szURL);
+ VP_FREE(pSubtitleInfo);
+
+ pNormalView->bIsSubtitleShow = TRUE;
+
+ VP_EVAS_TIMER_DEL(pNormalView->pHideTimer);
+ VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+
+}
+
+/**
+ *
+ * @param pNormalView
+ */
+static void _vp_play_normal_view_on_subtitle_sync_popup(NormalView *
+ pNormalView)
+{
+ if (!pNormalView) {
+ VideoLogError("pNormalView is NULL");
+ return;
+ }
+
+ PlayView *pPlayView = pNormalView->pPlayView;
+
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return;
+ }
+
+ pNormalView->pSubtitleSyncPopup =
+ vp_subtitle_sync_popup_create(pPlayView->pWin,
+ pNormalView->fSubtitleSyncValue,
+ __vp_normal_subtitle_sync_popup_update_cb,
+ __vp_normal_subtitle_sync_popup_done_cb);
+
+ if (!pNormalView->pSubtitleSyncPopup) {
+ VideoLogError("vp_subtitle_sync_popup_create fail");
+ return;
+ }
+ if (!vp_subtitle_sync_popup_set_user_data
+ (pNormalView->pSubtitleSyncPopup, (void *) pNormalView)) {
+ VideoLogWarning("vp_subtitle_sync_popup_set_user_data is fail");
+ }
+
+ if (!vp_subtitle_sync_popup_realize(pNormalView->pSubtitleSyncPopup)) {
+ VideoLogWarning("vp_subtitle_sync_popup_realize is fail");
+ }
+ pNormalView->bIsPopupShow = TRUE;
+
+ VP_EVAS_TIMER_DEL(pNormalView->pHideTimer);
+ VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+
+}
+
+#ifdef _SUBTITLE_MULTI_LANGUAGE
+
+static void _vp_play_normal_view_selected_subtitle_language(NormalView *
+ pNormalView)
+{
+ if (!pNormalView) {
+ VideoLogError("pNormalView is NULL");
+ return;
+ }
+
+ if (!pNormalView->pPlayerHandle) {
+ VideoLogError("pPlayerHandle is NULL");
+ return;
+ }
+
+ VP_FREE(pNormalView->pSelectedSubtitleLanguage);
+ pNormalView->pSelectedSubtitleLanguage =
+ calloc(pNormalView->nSubtitleLanguageCount, sizeof(int));
+
+}
+
+static void _vp_play_normal_view_subtitle_add_language_cb(int index,
+ void *pUserData)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ NormalView *pNormalView = (NormalView *) pUserData;
+ if (!pNormalView->pPlayerHandle) {
+ VideoLogError("pPlayerHandle is NULL");
+ return;
+ }
+
+ if (!pNormalView->pSelectedSubtitleLanguage) {
+ VideoLogError("pSelectedSubtitleLanguage is NULL");
+ return;
+ }
+
+ if (index < 0 || index > pNormalView->nSubtitleLanguageCount) {
+ VideoLogError("Invalid index");
+ return;
+ }
+
+ if (pNormalView->pSelectedSubtitleLanguage[index]) {
+ VideoLogWarning("index:%d has been added", index);
+ } else {
+ if (!vp_mm_player_add_subtitle_language
+ (pNormalView->pPlayerHandle, index)) {
+ VideoLogError("vp_mm_player_add_subtitle_language:%d failed",
+ index);
+ } else {
+ VideoLogInfo("vp_mm_player_add_subtitle_language:%d successed",
+ index);
+ pNormalView->pSelectedSubtitleLanguage[index] = true;
+ }
+ }
+}
+
+static void _vp_play_normal_view_subtitle_remove_language_cb(int index,
+ void
+ *pUserData)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ NormalView *pNormalView = (NormalView *) pUserData;
+ if (!pNormalView->pPlayerHandle) {
+ VideoLogError("pPlayerHandle is NULL");
+ return;
+ }
+
+ if (!pNormalView->pSelectedSubtitleLanguage) {
+ VideoLogError("pSelectedSubtitleLanguage is NULL");
+ return;
+ }
+
+ if (index < 0 || index > pNormalView->nSubtitleLanguageCount) {
+ VideoLogError("Invalid index");
+ return;
+ }
+
+ if (pNormalView->pSelectedSubtitleLanguage[index]) {
+ if (!vp_mm_player_remove_subtitle_language
+ (pNormalView->pPlayerHandle, index)) {
+ VideoLogError
+ ("vp_mm_player_remove_subtitle_language:%d failed", index);
+ } else {
+ VideoLogInfo
+ ("vp_mm_player_remove_subtitle_language:%d successed",
+ index);
+ pNormalView->pSelectedSubtitleLanguage[index] = false;
+ }
+ } else {
+ VideoLogWarning("index:%d has not been selected", index);
+ }
+}
+
+#endif
+
+/**
+ *
+ * @param pNormalView
+ */
+static void _vp_play_normal_view_on_subtitle_language_popup(NormalView *
+ pNormalView)
+{
+ if (!pNormalView) {
+ VideoLogError("pNormalView is NULL");
+ return;
+ }
+
+ PlayView *pPlayView = pNormalView->pPlayView;
+
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return;
+ }
+ vp_mm_player_state_t nState = VP_MM_PLAYER_STATE_NONE;
+ if (!vp_mm_player_get_state(pNormalView->pPlayerHandle, &nState)) {
+ VideoLogWarning("vp_mm_player_get_state is fail");
+ }
+
+ if (nState == VP_MM_PLAYER_STATE_PLAYING) {
+ if (!vp_mm_player_pause(pNormalView->pPlayerHandle)) {
+ VideoLogError("Pause Fail");
+ }
+ if (pPlayView->win_minicon) {
+ vp_minicontroller_update_control(pPlayView);
+ }
+ if (pPlayView->win_lockmini) {
+ vp_lockscreenmini_update_control(pPlayView);
+ }
+ _vp_play_normal_view_set_play_state(pNormalView);
+
+ }
+
+ vp_subtitle_track_destroy(pNormalView->pSubtitleTrackHandle);
+ pNormalView->pSubtitleTrackHandle = NULL;
+
+#ifdef _SUBTITLE_MULTI_LANGUAGE
+ pNormalView->pSubtitleTrackHandle =
+ vp_subtitle_track_create(pPlayView->pWin,
+ __vp_normal_subtitle_track_popup_close_cb);
+#else
+ pNormalView->pSubtitleTrackHandle =
+ vp_subtitle_track_create(pPlayView->pWin,
+ __vp_normal_subtitle_track_popup_close_cb,
+ pNormalView->nDefaultSubtitleTrackIndex);
+#endif
+ if (!pNormalView->pSubtitleTrackHandle) {
+ VideoLogError("vp_subtitle_track_create fail");
+ return;
+ }
+
+ if (!vp_subtitle_track_set_user_data
+ (pNormalView->pSubtitleTrackHandle, (void *) pNormalView)) {
+ VideoLogWarning("vp_subtitle_track_set_user_data is fail");
+ }
+
+ int nCount = 0;
+ if (vp_mm_player_get_subtitle_track_count
+ (pNormalView->pPlayerHandle, &nCount)) {
+ VideoLogInfo("== TRACK : %d ==", nCount);
+ if (nCount > 0) {
+#ifdef _SUBTITLE_MULTI_LANGUAGE
+ pNormalView->nSubtitleLanguageCount = nCount;
+ _vp_play_normal_view_selected_subtitle_language(pNormalView);
+#endif
+ int nIdx = 0;
+ for (nIdx = 0; nIdx < nCount; nIdx++) {
+ char *szCode = NULL;
+ if (vp_mm_player_get_subtitle_track_language_code
+ (pNormalView->pPlayerHandle, nIdx, &szCode)) {
+ VideoLogWarning("== language : %s ==", szCode);
+#ifdef _SUBTITLE_MULTI_LANGUAGE
+ vp_subtitle_track_add_Item(pNormalView->
+ pSubtitleTrackHandle,
+ szCode, nIdx,
+ pNormalView->
+ pSelectedSubtitleLanguage
+ [nIdx]);
+#else
+ vp_subtitle_track_add_Item(pNormalView->
+ pSubtitleTrackHandle,
+ szCode, nIdx);
+#endif
+ }
+ VP_FREE(szCode);
+ }
+#ifdef _SUBTITLE_MULTI_LANGUAGE
+ vp_subtitle_track_set_add_language_cb(pNormalView->
+ pSubtitleTrackHandle,
+ _vp_play_normal_view_subtitle_add_language_cb);
+ vp_subtitle_track_set_remove_language_cb(pNormalView->
+ pSubtitleTrackHandle,
+ _vp_play_normal_view_subtitle_remove_language_cb);
+#endif
+ } else {
+ char *szTrack =
+ g_strdup_printf("%s %d", VP_PLAY_STRING_COM_DEFAULT, 0);
+#ifdef _SUBTITLE_MULTI_LANGUAGE
+ vp_subtitle_track_add_Item(pNormalView->pSubtitleTrackHandle,
+ szTrack, 0, true);
+#else
+ vp_subtitle_track_add_Item(pNormalView->pSubtitleTrackHandle,
+ szTrack, 0);
+#endif
+ VP_FREE(szTrack);
+ }
+ } else {
+ char *szTrack =
+ g_strdup_printf("%s %d", VP_PLAY_STRING_COM_DEFAULT, 0);
+#ifdef _SUBTITLE_MULTI_LANGUAGE
+ vp_subtitle_track_add_Item(pNormalView->pSubtitleTrackHandle,
+ szTrack, 0, true);
+#else
+ vp_subtitle_track_add_Item(pNormalView->pSubtitleTrackHandle,
+ szTrack, 0);
+#endif
+ VP_FREE(szTrack);
+ }
+
+ if (!vp_subtitle_track_realize(pNormalView->pSubtitleTrackHandle)) {
+ VideoLogWarning("vp_subtitle_track_realize is fail");
+ }
+ pNormalView->bIsPopupShow = TRUE;
+
+ VP_EVAS_TIMER_DEL(pNormalView->pHideTimer);
+ VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+}
+
+#ifdef SUBTITLE_K_FEATURE
+/**
+ *
+ * @param nType
+ * @param bPause
+ * @param pUserData
+ */
+static void __vp_normal_subtitle_alignment_popup_done_cb(int nType,
+ bool bPause,
+ void *pUserData)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+ NormalView *pNormalView = (NormalView *) pUserData;
+
+ vp_subtitle_alignment_destroy(pNormalView->pSubtitleAlignmentPopup);
+ pNormalView->pSubtitleAlignmentPopup = NULL;
+ pNormalView->bIsPopupShow = FALSE;
+
+ if (nType != -1) {
+
+ vp_subtitle_alignment_t nAlignment = VP_SUBTITLE_ALIGNMENT_CENTER;
+ if (nType == VIDEO_SUBTITLE_ALIGNMENT_LEFT) {
+ nAlignment = VP_SUBTITLE_ALIGNMENT_LEFT;
+ } else if (nType == VIDEO_SUBTITLE_ALIGNMENT_CENTER) {
+ nAlignment = VP_SUBTITLE_ALIGNMENT_CENTER;
+ } else if (nType == VIDEO_SUBTITLE_ALIGNMENT_RIGHT) {
+ nAlignment = VP_SUBTITLE_ALIGNMENT_RIGHT;
+ }
+
+ vp_play_subtitle_set_alignment(pNormalView->pSubtitle, nAlignment);
+
+ vp_play_preference_set_subtitle_alignment_key(nType);
+
+ _vp_play_normal_view_set_subtitle_font_config(pNormalView);
+
+ /*Set caption window: size, rel1, color */
+ __vp_normal_subtitle_set_caption_window(pNormalView);
+ }
+
+ _vp_play_normal_view_on_subtitle_popup(pNormalView);
+
+}
+
+/**
+ *
+ * @param pNormalView
+ */
+static void _vp_play_normal_view_on_subtitle_alignment_popup(NormalView *
+ pNormalView)
+{
+ if (!pNormalView) {
+ VideoLogError("pNormalView is NULL");
+ return;
+ }
+
+ PlayView *pPlayView = pNormalView->pPlayView;
+
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return;
+ }
+ int nAlignment = 0;
+ vp_play_preference_get_subtitle_alignment_key(&nAlignment);
+
+ pNormalView->pSubtitleAlignmentPopup =
+ vp_subtitle_alignment_create(pPlayView->pWin,
+ __vp_normal_subtitle_alignment_popup_done_cb,
+ nAlignment);
+
+ if (!pNormalView->pSubtitleAlignmentPopup) {
+ VideoLogError("vp_subtitle_alignment_create fail");
+ return;
+ }
+ if (!vp_subtitle_alignment_set_user_data
+ (pNormalView->pSubtitleAlignmentPopup, (void *) pNormalView)) {
+ VideoLogWarning("vp_subtitle_alignment_set_user_data is fail");
+ }
+
+ if (!vp_subtitle_alignment_realize
+ (pNormalView->pSubtitleAlignmentPopup)) {
+ VideoLogWarning("vp_subtitle_alignment_realize is fail");
+ }
+ pNormalView->bIsPopupShow = TRUE;
+
+ VP_EVAS_TIMER_DEL(pNormalView->pHideTimer);
+ VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+}
+#endif
+
+/**
+ *
+ * @param pNormalView
+ */
+static void _vp_play_normal_view_on_subtitle_select_popup(NormalView *
+ pNormalView)
+{
+ if (!pNormalView) {
+ VideoLogError("pNormalView is NULL");
+ return;
+ }
+
+ PlayView *pPlayView = pNormalView->pPlayView;
+
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return;
+ }
+ char *szSubtitle = NULL;
+ GList *pItemList = NULL;
+ char *szDir = NULL;
+ szDir = vp_play_util_get_folder_from_path(pNormalView->szMediaURL);
+#ifdef ENABLE_SUBTITLE
+ bool bIsExistSubtitlesInFolder = FALSE;
+ bIsExistSubtitlesInFolder =
+ vp_play_util_get_subtitle_path_list(&pItemList);
+ if (bIsExistSubtitlesInFolder && pItemList) {
+
+ if (g_list_length(pItemList) > 0) {
+ bIsExistSubtitlesInFolder = TRUE;
+ } else {
+ g_list_free(pItemList);
+ pItemList = NULL;
+ }
+
+ } else {
+ VideoLogInfo("bIsExistSubtitlesInFolder && pItemList failed");
+ bIsExistSubtitlesInFolder = FALSE;
+ }
+
+#endif
+ vp_mm_player_state_t nState = VP_MM_PLAYER_STATE_NONE;
+ if (!vp_mm_player_get_state(pNormalView->pPlayerHandle, &nState)) {
+ VideoLogWarning("vp_mm_player_get_state is fail");
+ }
+
+ if (nState == VP_MM_PLAYER_STATE_PLAYING) {
+ if (!vp_mm_player_pause(pNormalView->pPlayerHandle)) {
+ VideoLogError("Pause Fail");
+ }
+ if (pPlayView->win_minicon) {
+ vp_minicontroller_update_control(pPlayView);
+ }
+ if (pPlayView->win_lockmini) {
+ vp_lockscreenmini_update_control(pPlayView);
+ }
+ _vp_play_normal_view_set_play_state(pNormalView);
+
+ }
+#ifdef ENABLE_SUBTITLE
+#else
+ vp_play_util_get_subtitle_path_list(&pItemList);
+#endif
+ VP_FREE(szDir);
+ vp_mm_player_get_subtitle_url(pNormalView->pPlayerHandle, &szSubtitle);
+ pNormalView->pSubtitleSelectPopup =
+ vp_subtitle_select_create(pPlayView->pWin,
+ __vp_normal_subtitle_select_popup_done_cb,
+ __vp_normal_subtitle_select_button_popup_done_cb,
+ pItemList, szSubtitle,
+ !(pNormalView->bIsExistSubtitle));
+ VP_FREE(szSubtitle);
+ if (pItemList) {
+
+ int nCount = 0;
+ int i = 0;
+ nCount = g_list_length(pItemList);
+ for (i = 0; i < nCount; i++) {
+ char *szName = NULL;
+ szName = (char *) g_list_nth_data(pItemList, i);
+ VP_FREE(szName);
+ }
+
+ g_list_free(pItemList);
+ pItemList = NULL;
+ }
+
+ if (!pNormalView->pSubtitleSelectPopup) {
+ VideoLogError("vp_subtitle_select_create fail");
+ return;
+ }
+ if (!vp_subtitle_select_set_user_data
+ (pNormalView->pSubtitleSelectPopup, (void *) pNormalView)) {
+ VideoLogWarning("vp_subtitle_select_set_user_data is fail");
+ }
+
+ if (!vp_subtitle_select_realize(pNormalView->pSubtitleSelectPopup)) {
+ VideoLogWarning("vp_subtitle_select_realize is fail");
+ }
+ pNormalView->bIsPopupShow = TRUE;
+
+ VP_EVAS_TIMER_DEL(pNormalView->pHideTimer);
+ VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+
+}
+
+/**
+ *
+ * @param pNormalView
+ */
+static void _vp_play_normal_view_on_subtitle_font_popup(NormalView *
+ pNormalView)
+{
+ if (!pNormalView) {
+ VideoLogError("pNormalView is NULL");
+ return;
+ }
+
+ PlayView *pPlayView = pNormalView->pPlayView;
+
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return;
+ }
+
+ char *szFont = NULL;
+ vp_play_preference_get_subtitle_font_name_key(&szFont);
+
+ pNormalView->pSubtitleFontPopup =
+ vp_subtitle_font_create(pPlayView->pWin,
+ __vp_normal_subtitle_font_popup_done_cb,
+ szFont);
+ VP_FREE(szFont);
+
+ if (!pNormalView->pSubtitleFontPopup) {
+ VideoLogError("vp_subtitle_font_create fail");
+ return;
+ }
+ if (!vp_subtitle_font_set_user_data
+ (pNormalView->pSubtitleFontPopup, (void *) pNormalView)) {
+ VideoLogWarning("vp_subtitle_font_set_user_data is fail");
+ }
+
+ if (!vp_subtitle_font_realize(pNormalView->pSubtitleFontPopup)) {
+ VideoLogWarning("vp_subtitle_font_realize is fail");
+ }
+ pNormalView->bIsPopupShow = TRUE;
+
+ VP_EVAS_TIMER_DEL(pNormalView->pHideTimer);
+ VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+
+
+}
+
+
+/**
+ *
+ * @param pNormalView
+ */
+static void _vp_play_normal_view_on_subtitle_size_popup(NormalView *
+ pNormalView)
+{
+ if (!pNormalView) {
+ VideoLogError("pNormalView is NULL");
+ return;
+ }
+
+ PlayView *pPlayView = pNormalView->pPlayView;
+
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return;
+ }
+ int nSize = 0;
+ vp_play_preference_get_subtitle_size_key(&nSize);
+
+ pNormalView->pSubtitleSizePopup =
+ vp_subtitle_size_create(pPlayView->pWin,
+ __vp_normal_subtitle_size_popup_done_cb,
+ nSize);
+
+ if (!pNormalView->pSubtitleSizePopup) {
+ VideoLogError("vp_subtitle_size_create fail");
+ return;
+ }
+ if (!vp_subtitle_size_set_user_data
+ (pNormalView->pSubtitleSizePopup, (void *) pNormalView)) {
+ VideoLogWarning("vp_subtitle_size_set_user_data is fail");
+ }
+
+ if (!vp_subtitle_size_realize(pNormalView->pSubtitleSizePopup)) {
+ VideoLogWarning("vp_subtitle_size_realize is fail");
+ }
+ pNormalView->bIsPopupShow = TRUE;
+
+ VP_EVAS_TIMER_DEL(pNormalView->pHideTimer);
+ VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+
+}
+
+/**
+ *
+ * @param nType
+ * @param bPause
+ * @param pUserData
+ */
+static void __vp_normal_subtitle_edge_popup_done_cb(int nType, bool bPause,
+ void *pUserData)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+ // to do
+ NormalView *pNormalView = (NormalView *) pUserData;
+ PlayView *pPlayView = pNormalView->pPlayView;
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ }
+ vp_subtitle_edge_destroy(pNormalView->pSubtitleEdgePopup);
+ pNormalView->pSubtitleEdgePopup = NULL;
+ pNormalView->bIsPopupShow = FALSE;
+
+ if (nType != -1) {
+ vp_play_subtitle_set_edge(pNormalView->pSubtitle, nType);
+ vp_play_preference_set_subtitle_edge_key(nType);
+ /*Set caption window: size, rel1, color */
+ __vp_normal_subtitle_set_caption_window(pNormalView);
+ }
+
+ if (bPause) {
+ if (!vp_mm_player_pause(pNormalView->pPlayerHandle)) {
+ VideoLogWarning("Pause Fail");
+ }
+ if (pPlayView && pPlayView->win_minicon) {
+ vp_minicontroller_update_control(pPlayView);
+ }
+ if (pPlayView && pPlayView->win_lockmini) {
+ vp_lockscreenmini_update_control(pPlayView);
+ }
+ _vp_play_normal_view_set_play_state(pNormalView);
+ _vp_play_normal_view_on_capture_mode(pNormalView);
+ }
+ _vp_play_normal_view_on_subtitle_popup(pNormalView);
+
+}
+
+/**
+ *
+ * @param pNormalView
+ */
+static void _vp_play_normal_view_on_subtitle_edge_popup(NormalView *
+ pNormalView)
+{
+ if (!pNormalView) {
+ VideoLogError("pNormalView is NULL");
+ return;
+ }
+
+ PlayView *pPlayView = pNormalView->pPlayView;
+
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return;
+ }
+ int nEdge = 0;
+ vp_play_preference_get_subtitle_edge_key(&nEdge);
+
+ pNormalView->pSubtitleEdgePopup =
+ vp_subtitle_edge_create(pPlayView->pWin,
+ __vp_normal_subtitle_edge_popup_done_cb,
+ nEdge);
+
+ if (!pNormalView->pSubtitleEdgePopup) {
+ VideoLogError("vp_subtitle_size_create fail");
+ return;
+ }
+ if (!vp_subtitle_edge_set_user_data
+ (pNormalView->pSubtitleEdgePopup, (void *) pNormalView)) {
+ VideoLogWarning("vp_subtitle_size_set_user_data is fail");
+ }
+
+ if (!vp_subtitle_edge_realize(pNormalView->pSubtitleEdgePopup)) {
+ VideoLogWarning("vp_subtitle_size_realize is fail");
+ }
+ pNormalView->bIsPopupShow = TRUE;
+
+ VP_EVAS_TIMER_DEL(pNormalView->pHideTimer);
+ VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+
+}
+
+/**
+ *
+ * @param pNormalView
+ */
+static void _vp_play_normal_view_on_subtitle_font_color_popup(NormalView *
+ pNormalView)
+{
+ if (!pNormalView) {
+ VideoLogError("pNormalView is NULL");
+ return;
+ }
+
+ PlayView *pPlayView = pNormalView->pPlayView;
+
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return;
+ }
+ int nColor = 0;
+ vp_play_preference_get_subtitle_font_color_key(&nColor);
+
+#ifndef SUBTITLE_K_FEATURE
+ pNormalView->pSubtitleFontColorPopup =
+ vp_subtitle_color_create(pPlayView->pWin,
+ __vp_normal_subtitle_font_color_popup_done_cb,
+ nColor);
+#else
+ char *szColorHex = NULL;
+ vp_play_preference_get_subtitle_font_color_hex_key(&szColorHex);
+ if (!szColorHex) {
+ VideoLogError("szColorHex is NULL");
+ } else {
+ pNormalView->pSubtitleFontColorPopup =
+ vp_subtitle_color_hex_create(pPlayView->pWin,
+ __vp_normal_subtitle_font_color_popup_done_hex_cb,
+ szColorHex);
+ }
+ VP_FREE(szColorHex);
+#endif
+
+ if (!pNormalView->pSubtitleFontColorPopup) {
+ VideoLogError("vp_subtitle_color_create fail");
+ return;
+ }
+ if (!vp_subtitle_color_set_user_data
+ (pNormalView->pSubtitleFontColorPopup, (void *) pNormalView)) {
+ VideoLogWarning("vp_subtitle_font_color_set_user_data is fail");
+ }
+
+ if (!vp_subtitle_color_realize(pNormalView->pSubtitleFontColorPopup)) {
+ VideoLogWarning("vp_subtitle_color_realize is fail");
+ }
+ pNormalView->bIsPopupShow = TRUE;
+
+ VP_EVAS_TIMER_DEL(pNormalView->pHideTimer);
+ VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+
+}
+
+/**
+ *
+ * @param pNormalView
+ */
+static void _vp_play_normal_view_on_subtitle_bg_color_popup(NormalView *
+ pNormalView)
+{
+ if (!pNormalView) {
+ VideoLogError("pNormalView is NULL");
+ return;
+ }
+
+ PlayView *pPlayView = pNormalView->pPlayView;
+
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return;
+ }
+#ifndef SUBTITLE_K_FEATURE
+ int nColor = 0;
+ vp_play_preference_get_subtitle_bg_color_key(&nColor);
+
+ pNormalView->pSubtitleBGColorPopup =
+ vp_subtitle_bg_color_create(pPlayView->pWin,
+ __vp_normal_subtitle_bg_color_popup_done_cb,
+ nColor);
+#else
+ char *szColorHex = NULL;
+ vp_play_preference_get_subtitle_bg_color_hex_key(&szColorHex);
+ if (!szColorHex) {
+ VideoLogError("szColorHex is NULL");
+ } else { //prevent issue fix
+ pNormalView->pSubtitleBGColorPopup =
+ vp_subtitle_color_hex_create(pPlayView->pWin,
+ __vp_normal_subtitle_bg_color_popup_done_hex_cb,
+ szColorHex);
+ VP_FREE(szColorHex);
+ }
+#endif
+
+ if (!pNormalView->pSubtitleBGColorPopup) {
+ VideoLogError("vp_subtitle_bg_color_create fail");
+ return;
+ }
+ if (!vp_subtitle_color_set_user_data
+ (pNormalView->pSubtitleBGColorPopup, (void *) pNormalView)) {
+ VideoLogWarning("vp_subtitle_color_set_user_data is fail");
+ }
+
+ if (!vp_subtitle_color_realize(pNormalView->pSubtitleBGColorPopup)) {
+ VideoLogWarning("vp_subtitle_color_realize is fail");
+ }
+ pNormalView->bIsPopupShow = TRUE;
+
+ VP_EVAS_TIMER_DEL(pNormalView->pHideTimer);
+ VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+
+}
+
+/**
+ *
+ * @param pNormalView
+ */
+static void
+_vp_play_normal_view_on_subtitle_caption_win_color_popup(NormalView *
+ pNormalView)
+{
+ if (!pNormalView) {
+ VideoLogError("pNormalView is NULL");
+ return;
+ }
+
+ PlayView *pPlayView = pNormalView->pPlayView;
+
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return;
+ }
+
+ char *szColorHex = NULL;
+ vp_play_preference_get_subtitle_caption_win_color_hex_key(&szColorHex);
+ if (!szColorHex) {
+ VideoLogError("szColorHex is NULL");
+ } else {
+ pNormalView->pSubtitleCaptionWinColorPopup =
+ vp_subtitle_color_hex_create(pPlayView->pWin,
+ __vp_normal_subtitle_caption_win_color_popup_done_hex_cb,
+ szColorHex);
+ }
+ VP_FREE(szColorHex);
+
+
+ if (!pNormalView->pSubtitleCaptionWinColorPopup) {
+ VideoLogError("vp_subtitle_color_hex_create fail");
+ return;
+ }
+ if (!vp_subtitle_color_set_user_data
+ (pNormalView->pSubtitleCaptionWinColorPopup,
+ (void *) pNormalView)) {
+ VideoLogWarning("vp_subtitle_color_set_user_data is fail");
+ }
+
+ if (!vp_subtitle_color_realize
+ (pNormalView->pSubtitleCaptionWinColorPopup)) {
+ VideoLogWarning("vp_subtitle_color_realize is fail");
+ }
+ pNormalView->bIsPopupShow = TRUE;
+
+ VP_EVAS_TIMER_DEL(pNormalView->pHideTimer);
+ VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param emission
+ * @param source
+ */
+static void _vp_play_normal_view_on_play_speed_popup_cb(void *data,
+ Evas_Object * obj,
+ const char
+ *emission,
+ const char *source)
+{
+ NormalView *pNormalView = (NormalView *) data;
+ _vp_play_normal_view_on_play_speed_popup(pNormalView);
+}
+
+/**
+ *
+ * @param pNormalView
+ */
+static void _vp_play_normal_view_on_play_speed_popup(NormalView *
+ pNormalView)
+{
+ if (!pNormalView) {
+ VideoLogError("pNormalView is NULL");
+ return;
+ }
+
+ vp_play_speed_popup_destroy(pNormalView->pPlaySpeedPopup);
+ pNormalView->pPlaySpeedPopup = NULL;
+
+ PlayView *pPlayView = pNormalView->pPlayView;
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return;
+ }
+
+ pNormalView->pPlaySpeedPopup =
+ vp_play_speed_popup_create(pPlayView->pWin,
+ pNormalView->fPlaySpeed,
+ __vp_normal_play_speed_popup_update_cb,
+ __vp_normal_play_speed_popup_done_cb);
+
+ if (!pNormalView->pPlaySpeedPopup) {
+ VideoLogError("vp_play_speed_popup_create fail");
+ return;
+ }
+ if (!vp_play_speed_popup_set_user_data
+ (pNormalView->pPlaySpeedPopup, (void *) pNormalView)) {
+ VideoLogWarning("vp_play_speed_popup_set_user_data is fail");
+ }
+
+ if (!vp_play_speed_popup_realize(pNormalView->pPlaySpeedPopup)) {
+ VideoLogWarning("vp_play_speed_popup_realize is fail");
+ }
+ pNormalView->bIsPopupShow = TRUE;
+
+ VP_EVAS_TIMER_DEL(pNormalView->pHideTimer);
+ VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+
+}
+
+/**
+ *
+ * @param pNormalView
+ */
+static void _vp_play_normal_view_on_detail_popup(NormalView * pNormalView)
+{
+ if (!pNormalView) {
+ VideoLogError("pNormalView is NULL");
+ return;
+ }
+
+ vp_detail_destroy(pNormalView->pDetailHandle);
+ pNormalView->pDetailHandle = NULL;
+
+ PlayView *pPlayView = pNormalView->pPlayView;
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return;
+ }
+
+ vp_mm_player_state_t nState = VP_MM_PLAYER_STATE_NONE;
+ if (!vp_mm_player_get_state(pNormalView->pPlayerHandle, &nState)) {
+ VideoLogWarning("vp_mm_player_get_state is fail");
+ }
+
+ if (pNormalView->bVideoOnlyMode == FALSE
+ && nState == VP_MM_PLAYER_STATE_PLAYING) {
+ if (!vp_mm_player_pause(pNormalView->pPlayerHandle)) {
+ VideoLogError("Pause Fail");
+ }
+ if (pPlayView->win_minicon) {
+ vp_minicontroller_update_control(pPlayView);
+ }
+ if (pPlayView->win_lockmini) {
+ vp_lockscreenmini_update_control(pPlayView);
+ }
+ _vp_play_normal_view_set_play_state(pNormalView);
+ }
+
+ _vp_play_normal_view_set_play_state(pNormalView);
+
+ vp_detail_info *pDetailInfo = NULL;
+
+ pDetailInfo = calloc(1, sizeof(vp_detail_info));
+ if (!pDetailInfo) {
+ VideoLogError("pDetailInfo is alloc fail");
+ return;
+ }
+ int nWidth = 0;
+ int nHeight = 0;
+ double dLatitude = 0.0;
+ double dLongitude = 0.0;
+ char *szModifiedTime = NULL;
+ char *szTitle = NULL;
+ char *szFileDate = NULL;
+ int nDuration = 0;
+
+#ifdef ENABLE_DRM_FEATURE
+ vp_drm_is_drm_file(pNormalView->szMediaURL, &(pDetailInfo->bDrm));
+ vp_drm_is_playready_drm_file(pNormalView->szMediaURL,
+ &(pDetailInfo->bPlayready));
+ _vp_play_normal_view_check_drm_lock(pNormalView,
+ &(pDetailInfo->bForwardLock));
+#endif
+ if (pDetailInfo->bPlayready == FALSE) { /* Just check it for performance */
+ vp_media_contents_get_content_info(pNormalView->szMediaURL,
+ &szTitle, &nWidth, &nHeight,
+ &nDuration, &dLatitude,
+ &dLongitude, &szModifiedTime);
+ if (szTitle) {
+ pDetailInfo->szTitle =
+ vp_play_util_get_title_from_path(szTitle);
+ } else {
+ pDetailInfo->szTitle =
+ vp_play_util_get_title_from_path(pNormalView->szMediaURL);
+ }
+
+ if (nWidth == 0) {
+ vp_media_metadata_get_width(pNormalView->szMediaURL, &nWidth);
+ }
+ if (nHeight == 0) {
+ vp_media_metadata_get_height(pNormalView->szMediaURL,
+ &nHeight);
+ }
+ } else {
+ pDetailInfo->szTitle =
+ vp_play_util_get_title_from_path(pNormalView->szMediaURL);
+ }
+
+ vp_play_util_get_file_info(pNormalView->szMediaURL,
+ &pDetailInfo->szSize, &pDetailInfo->szDate,
+ &pDetailInfo->szFormat);
+
+ VP_FREE(szTitle);
+ VP_FREE(szFileDate);
+ if (!szModifiedTime && pDetailInfo->szDate) {
+ pDetailInfo->szLastModified = g_strdup(pDetailInfo->szDate);
+ } else {
+ pDetailInfo->szLastModified = g_strdup(szModifiedTime);
+ }
+ pDetailInfo->szResolution =
+ g_strdup_printf("%d X %d", nWidth, nHeight);
+ pDetailInfo->szLatitude = g_strdup_printf("%f", dLatitude);
+ pDetailInfo->szLongitude = g_strdup_printf("%f", dLongitude);
+
+ if (vp_file_exists((const char *) pNormalView->szMediaURL)) {
+ pDetailInfo->szLocation =
+ vp_dir_get((const char *) pNormalView->szMediaURL);
+ } else {
+ _vp_play_normal_view_release_service_share(pNormalView->pPlayView);
+ }
+
+ pNormalView->pDetailHandle =
+ vp_detail_page_create((void *) pPlayView->pNaviframe,
+ __vp_normal_detail_popup_close_cb,
+ pDetailInfo);
+ if (!pNormalView->pDetailHandle) {
+ VideoLogError("vp_detail_create fail");
+
+ VP_FREE(pDetailInfo->szTitle);
+ VP_FREE(pDetailInfo->szFormat);
+ VP_FREE(pDetailInfo->szDate);
+ VP_FREE(pDetailInfo->szSize);
+ VP_FREE(pDetailInfo->szLastModified);
+ VP_FREE(pDetailInfo->szResolution);
+ VP_FREE(pDetailInfo->szLatitude);
+ VP_FREE(pDetailInfo->szLongitude);
+ VP_FREE(pDetailInfo->szLocation);
+ VP_FREE(pDetailInfo->szLastModified);
+ VP_FREE(pDetailInfo);
+ return;
+ }
+ if (!vp_detail_set_user_data
+ (pNormalView->pDetailHandle, (void *) pNormalView)) {
+ VideoLogWarning("vp_detail_set_user_data is fail");
+ }
+ VP_FREE(pDetailInfo->szTitle);
+ VP_FREE(pDetailInfo->szFormat);
+ VP_FREE(pDetailInfo->szDate);
+ VP_FREE(pDetailInfo->szSize);
+ VP_FREE(pDetailInfo->szResolution);
+ VP_FREE(pDetailInfo->szLatitude);
+ VP_FREE(pDetailInfo->szLongitude);
+ VP_FREE(pDetailInfo->szLocation);
+ VP_FREE(pDetailInfo->szLastModified);
+ VP_FREE(pDetailInfo);
+
+ VP_EVAS_TIMER_DEL(pNormalView->pHideTimer);
+ VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+}
+
+/**
+ *
+ * @param pNormalView
+ * @param bToggle
+ */
+static void _vp_play_normal_view_on_volume_popup(NormalView * pNormalView,
+ bool bToggle)
+{
+ if (!pNormalView) {
+ VideoLogError("pNormalView is NULL");
+ return;
+ }
+
+ bool bLandscape =
+ vp_play_util_get_landscape_check(pNormalView->nRotate);
+ bool bIsRealize = FALSE;
+
+ if (pNormalView->pVolumePopupHandle) {
+ if (!vp_play_volume_popup_unrealize
+ (pNormalView->pVolumePopupHandle)) {
+ VideoLogWarning("vp_play_volume_popup_unrealize is fail");
+ }
+ }
+ if (!pNormalView->pVolumeHandle) {
+ if (!pNormalView->pPlayView) {
+ VideoLogError("pNormalView->pPlayView is NULL");
+ return;
+ }
+
+ Evas_Object *pParent = pNormalView->pPlayView->pWin;
+
+ pNormalView->pVolumeHandle =
+ vp_play_volume_create(pParent, pNormalView->pPlayerHandle,
+ __vp_normal_volume_change_value_cb);
+ if (!pNormalView->pVolumeHandle) {
+ VideoLogError("pNormalView->pVolumeHandle is NULL");
+ return;
+ }
+ if (!vp_play_volume_set_user_data
+ (pNormalView->pVolumeHandle, (void *) pNormalView)) {
+ VideoLogWarning("vp_play_volume_set_user_data is fail");
+ return;
+ }
+ if (!pNormalView->bLockScreen) {
+ vp_play_volume_set_mouse_callbacks(pNormalView->pVolumeHandle,
+ pNormalView->pPlayView->
+ pWin);
+ } else {
+ vp_play_volume_unset_mouse_callbacks(pNormalView->
+ pVolumeHandle,
+ pNormalView->pPlayView->
+ pWin);
+ }
+ }
+ Evas_Object *pParent = pNormalView->pPlayView->pWin;
+ if (!vp_play_volume_set_landscape_mode
+ (pNormalView->pVolumeHandle, bLandscape, pParent)) {
+ VideoLogWarning("vp_play_volume_set_landscape_mode is fail");
+ return;
+ }
+
+ if (!vp_play_volume_is_realize
+ (pNormalView->pVolumeHandle, &bIsRealize)) {
+ VideoLogWarning("vp_play_volume_is_realize is fail");
+ return;
+ }
+
+ if (bIsRealize && bToggle) {
+ if (!vp_play_volume_unrealize(pNormalView->pVolumeHandle)) {
+ VideoLogWarning("vp_play_volume_unrealize is fail");
+ }
+ } else {
+ if (!vp_play_volume_update_value(pNormalView->pVolumeHandle)) {
+ VideoLogWarning("vp_play_volume_update_value is fail");
+ }
+
+ VP_EVAS_DEL(pNormalView->pCtxPopup);
+
+ if (!vp_play_volume_realize
+ (pNormalView->pVolumeHandle, pNormalView->pPlayView->pWin)) {
+ VideoLogWarning("vp_play_volume_realize is fail");
+ }
+ }
+}
+
+/**
+ *
+ * @param pNormalView
+ * @param bShow
+ */
+static void _vp_play_normal_view_on_bookmark_mode(NormalView * pNormalView,
+ bool bShow)
+{
+ if (!pNormalView) {
+ VideoLogError("pNormalView is NULL");
+ return;
+ }
+
+ if (bShow) {
+ _vp_play_normal_view_show_layout(pNormalView);
+ }
+
+ if (bShow) {
+ pNormalView->bCaptureComplete = TRUE;
+ vp_play_bookmark_realize(pNormalView->pBookmarkHandle);
+#ifndef SUBTITLE_K_FEATURE
+ elm_object_signal_emit(pNormalView->pMainLayout,
+ VP_NORMAL_SIGNAL_MAIN_BOOKMARK_ON, "*");
+#endif
+ elm_object_part_content_set(pNormalView->pControlLayout,
+ VP_PLAY_SWALLOW_NORMAL_BOOKMARK,
+ pNormalView->pBookmarkObj);
+ } else {
+ pNormalView->bCaptureComplete = TRUE;
+#ifndef SUBTITLE_K_FEATURE
+ elm_object_signal_emit(pNormalView->pMainLayout,
+ VP_NORMAL_SIGNAL_MAIN_BOOKMARK_OFF, "*");
+#endif
+ elm_object_part_content_unset(pNormalView->pControlLayout,
+ VP_PLAY_SWALLOW_NORMAL_BOOKMARK);
+ vp_play_bookmark_unrealize(pNormalView->pBookmarkHandle);
+ }
+}
+
+/**
+ *
+ * @param pNormalView
+ */
+static void _vp_play_normal_view_all_close_popup(NormalView * pNormalView)
+{
+ if (!pNormalView) {
+ VideoLogError("pNormalView is NULL");
+ return;
+ }
+
+ if (pNormalView->pPopup) {
+ VP_EVAS_DEL(pNormalView->pPopup);
+ pNormalView->pPopup = NULL;
+ }
+
+ if (pNormalView->pCtxPopup) {
+ VP_EVAS_DEL(pNormalView->pCtxPopup);
+ pNormalView->pCtxPopup = NULL;
+ }
+
+ if (pNormalView->pSubtitlePopup) {
+ vp_subtitle_destroy(pNormalView->pSubtitlePopup);
+ pNormalView->pSubtitlePopup = NULL;
+ pNormalView->bIsSubtitleShow = FALSE;
+ }
+
+ if (pNormalView->pSubtitleSelectPopup) {
+ vp_subtitle_select_destroy(pNormalView->pSubtitleSelectPopup);
+ pNormalView->pSubtitleSelectPopup = NULL;
+ }
+
+ if (pNormalView->pSubtitleFontPopup) {
+ vp_subtitle_font_destroy(pNormalView->pSubtitleFontPopup);
+ pNormalView->pSubtitleFontPopup = NULL;
+ }
+
+ if (pNormalView->pSubtitleAlignmentPopup) {
+ vp_subtitle_alignment_destroy(pNormalView->
+ pSubtitleAlignmentPopup);
+ pNormalView->pSubtitleAlignmentPopup = NULL;
+ }
+
+ if (pNormalView->pSubtitleFontColorPopup) {
+ vp_subtitle_color_destroy(pNormalView->pSubtitleFontColorPopup);
+ pNormalView->pSubtitleFontColorPopup = NULL;
+ }
+
+ if (pNormalView->pSubtitleBGColorPopup) {
+ vp_subtitle_bg_color_destroy(pNormalView->pSubtitleBGColorPopup);
+ pNormalView->pSubtitleBGColorPopup = NULL;
+ }
+
+ if (pNormalView->pSubtitleEdgePopup) {
+ vp_subtitle_edge_destroy(pNormalView->pSubtitleEdgePopup);
+ pNormalView->pSubtitleEdgePopup = NULL;
+ }
+
+ if (pNormalView->pSubtitleSizePopup) {
+ vp_subtitle_size_destroy(pNormalView->pSubtitleSizePopup);
+ pNormalView->pSubtitleSizePopup = NULL;
+ }
+
+ if (pNormalView->pSubtitleSyncPopup) {
+ vp_subtitle_sync_popup_destroy(pNormalView->pSubtitleSyncPopup);
+ pNormalView->pSubtitleSyncPopup = NULL;
+ }
+
+ if (pNormalView->pRepeatHandle) {
+ vp_repeat_destroy(pNormalView->pRepeatHandle);
+ pNormalView->pRepeatHandle = NULL;
+ }
+
+ if (pNormalView->pSAHandle) {
+ vp_sound_alive_destroy(pNormalView->pSAHandle);
+ pNormalView->pSAHandle = NULL;
+ }
+
+ if (pNormalView->pSoundPathHandle) {
+ vp_sound_path_destroy(pNormalView->pSoundPathHandle);
+ pNormalView->pSoundPathHandle = NULL;
+ }
+
+ if (pNormalView->pAudioTrackHandle) {
+ vp_audio_track_destroy(pNormalView->pAudioTrackHandle);
+ pNormalView->pAudioTrackHandle = NULL;
+ }
+
+ if (pNormalView->pSettingHandle) {
+ vp_setting_destroy(pNormalView->pSettingHandle);
+ pNormalView->pSettingHandle = NULL;
+ }
+
+ if (pNormalView->pCapturePopup) {
+ vp_capture_popup_destroy(pNormalView->pCapturePopup);
+ pNormalView->pCapturePopup = NULL;
+ }
+
+ if (pNormalView->pPlaySpeedPopup) {
+ vp_mm_player_set_rate(pNormalView->pPlayerHandle,
+ (float) pNormalView->fPlaySpeed);
+ vp_play_speed_popup_destroy(pNormalView->pPlaySpeedPopup);
+ pNormalView->pPlaySpeedPopup = NULL;
+ }
+
+ pNormalView->bIsPopupShow = FALSE;
+}
+
+/**
+ *
+ * @param pNormalView
+ */
+static void _vp_play_normal_view_show_layout(NormalView * pNormalView)
+{
+ if (!pNormalView) {
+ VideoLogError("pNormalView is NULL");
+ return;
+ }
+
+ if (!pNormalView->pNaviItem) {
+ VideoLogError("pNaviItem is NULL");
+ return;
+ }
+
+ if (pNormalView->bLockScreen) {
+ VideoLogError("bLockScreen is TRUE");
+ vp_play_normal_view_set_lock_screen(pNormalView,
+ pNormalView->bLockScreen);
+ return;
+ }
+
+ PlayView *pPlayView = pNormalView->pPlayView;
+
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return;
+ }
+ if (!pPlayView->pWin) {
+ VideoLogError("pPlayView->pWin is NULL");
+ return;
+ }
+
+ vp_device_set_frame_rate(60);
+
+ _vp_play_normal_view_set_rotate_lock_state(pNormalView);
+
+ VP_EVAS_TIMER_DEL(pNormalView->pScreenShotTimer);
+
+ elm_object_part_content_unset(pNormalView->pMainLayout,
+ VP_PLAY_SWALLOW_NORMAL_SCREENSHOT_PORTRAIT);
+ elm_object_part_content_unset(pNormalView->pMainLayout,
+ VP_PLAY_SWALLOW_NORMAL_SCREENSHOT_LANDSCAPE);
+
+ elm_object_signal_emit(pNormalView->pMainLayout,
+ VP_NORMAL_SIGNAL_MAIN_SCREEN_HIDE, "*");
+ elm_object_signal_emit(pNormalView->pMainLayout,
+ VP_NORMAL_SIGNAL_MAIN_ROTATE_HIDE, "*");
+ elm_object_signal_emit(pNormalView->pMainLayout,
+ VP_NORMAL_SIGNAL_MAIN_VOLUME_HIDE, "*");
+ elm_object_signal_emit(pNormalView->pMainLayout,
+ VP_NORMAL_SIGNAL_MAIN_PLAYING_SPEED_HIDE, "*");
+
+ VP_EVAS_DEL(pNormalView->pScreenShot);
+ pNormalView->pScreenShot = NULL;
+
+ elm_object_item_signal_emit(pNormalView->pNaviItem,
+ VP_NORMAL_SIGNAL_NAVIFRAME_TITLE_SHOW,
+ "elm");
+ _vp_play_normal_view_show_rotate(pNormalView);
+ _vp_play_normal_view_show_volume(pNormalView);
+
+ bool bLandscape =
+ vp_play_util_get_landscape_check(pNormalView->nRotate);
+ if (bLandscape) {
+ elm_object_signal_emit(pNormalView->pMainLayout,
+ VP_NORMAL_SIGNAL_MAIN_LANDSCAPE_SHOW, "*");
+ elm_object_signal_emit(pNormalView->pMainLayout,
+ VP_NORMAL_SIGNAL_MAIN_NO_EFFECT_LANDSCAPE_SHOW,
+ "*");
+ elm_object_signal_emit(pNormalView->pControlLayout,
+ VP_NORMAL_SIGNAL_CONTROL_LANDSCAPE_MODE,
+ "*");
+ elm_object_signal_emit(pNormalView->pFunctionLayout,
+ VP_NORMAL_SIGNAL_FUNCTION_LANDSCAPE_MODE,
+ "*");
+ vp_play_progressbar_set_landscape_mode(pNormalView->pProgressbar,
+ TRUE);
+ } else {
+ elm_object_signal_emit(pNormalView->pMainLayout,
+ VP_NORMAL_SIGNAL_MAIN_PORTRAIT_SHOW, "*");
+ elm_object_signal_emit(pNormalView->pMainLayout,
+ VP_NORMAL_SIGNAL_MAIN_NO_EFFECT_PORTRAIT_SHOW,
+ "*");
+ elm_object_signal_emit(pNormalView->pControlLayout,
+ VP_NORMAL_SIGNAL_CONTROL_PORTRAIT_MODE,
+ "*");
+ elm_object_signal_emit(pNormalView->pFunctionLayout,
+ VP_NORMAL_SIGNAL_FUNCTION_PORTRAIT_MODE,
+ "*");
+ vp_play_progressbar_set_landscape_mode(pNormalView->pProgressbar,
+ FALSE);
+ }
+
+ bool bIsRealize = FALSE;
+ if (pNormalView->pBookmarkHandle) {
+ vp_play_bookmark_is_realize(pNormalView->pBookmarkHandle,
+ &bIsRealize);
+ if (bIsRealize) {
+#ifndef SUBTITLE_K_FEATURE
+ elm_object_signal_emit(pNormalView->pMainLayout,
+ VP_NORMAL_SIGNAL_MAIN_BOOKMARK_ON, "*");
+#endif
+ }
+ }
+
+ _vp_play_normal_view_set_play_state(pNormalView);
+ _vp_play_normal_view_on_capture_mode(pNormalView);
+
+ VP_EVAS_TIMER_DEL(pNormalView->pHideTimer);
+ VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+
+ pNormalView->bShowLayout = TRUE;
+ vp_play_normal_view_set_main_layout_focus_out((void *) pPlayView->
+ pNormalView);
+ _vp_play_normal_view_set_button_focus_sequence(pNormalView);
+ _vp_play_normal_view_create_layout_hide_timer(pNormalView);
+}
+
+/**
+ *
+ * @param pNormalView
+ * @param bNoEffect
+ */
+static void _vp_play_normal_view_hide_layout(NormalView * pNormalView,
+ bool bNoEffect)
+{
+ if (!pNormalView) {
+ VideoLogError("pNormalView is NULL");
+ return;
+ }
+
+ if (!pNormalView->pNaviItem) {
+ VideoLogError("pNaviItem is NULL");
+ return;
+ }
+
+ PlayView *pPlayView = pNormalView->pPlayView;
+
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return;
+ }
+
+ if (pNormalView->pBookmarkHandle) {
+ bool bIsRealize = FALSE;
+ bool bEditMode = FALSE;
+ bool bPressed = FALSE;
+ if (!vp_play_bookmark_is_realize
+ (pNormalView->pBookmarkHandle, &bIsRealize)) {
+ VideoLogWarning("vp_play_bookmark_is_realize fail");
+ }
+ if (bIsRealize) {
+ if (!vp_play_bookmark_get_edit_mode
+ (pNormalView->pBookmarkHandle, &bEditMode)) {
+ VideoLogWarning("vp_play_bookmark_get_edit_mode fail");
+ }
+ if (bEditMode) {
+ _vp_play_normal_view_create_layout_hide_timer(pNormalView);
+ return;
+ }
+
+ if (!vp_play_bookmark_get_pressed_status
+ (pNormalView->pBookmarkHandle, &bPressed)) {
+ VideoLogWarning
+ ("vp_play_bookmark_get_pressed_status fail");
+ }
+
+ if (bPressed) {
+ _vp_play_normal_view_create_layout_hide_timer(pNormalView);
+ return;
+ }
+ }
+ }
+
+ VP_EVAS_TIMER_DEL(pNormalView->pScreenShotTimer);
+
+ elm_object_part_content_unset(pNormalView->pMainLayout,
+ VP_PLAY_SWALLOW_NORMAL_SCREENSHOT_PORTRAIT);
+ elm_object_part_content_unset(pNormalView->pMainLayout,
+ VP_PLAY_SWALLOW_NORMAL_SCREENSHOT_LANDSCAPE);
+
+ elm_object_signal_emit(pNormalView->pMainLayout,
+ VP_NORMAL_SIGNAL_MAIN_SCREEN_HIDE, "*");
+ elm_object_signal_emit(pNormalView->pMainLayout,
+ VP_NORMAL_SIGNAL_MAIN_ROTATE_HIDE, "*");
+ elm_object_signal_emit(pNormalView->pMainLayout,
+ VP_NORMAL_SIGNAL_MAIN_VOLUME_HIDE, "*");
+ elm_object_signal_emit(pNormalView->pMainLayout,
+ VP_NORMAL_SIGNAL_MAIN_PLAYING_SPEED_HIDE, "*");
+
+ VP_EVAS_DEL(pNormalView->pScreenShot);
+ pNormalView->pScreenShot = NULL;
+
+ VP_EVAS_TIMER_DEL(pNormalView->pProgressTimer);
+
+ if (bNoEffect) {
+ elm_object_item_signal_emit(pNormalView->pNaviItem,
+ VP_NORMAL_SIGNAL_NAVIFRAME_TITLE_NO_EFFECT_HIDE,
+ "elm");
+ elm_object_signal_emit(pNormalView->pMainLayout,
+ VP_NORMAL_SIGNAL_MAIN_NO_EFFECT_HIDE, "*");
+ } else {
+ elm_object_item_signal_emit(pNormalView->pNaviItem,
+ VP_NORMAL_SIGNAL_NAVIFRAME_TITLE_HIDE,
+ "elm");
+ elm_object_signal_emit(pNormalView->pMainLayout,
+ VP_NORMAL_SIGNAL_MAIN_HIDE, "*");
+ }
+ vp_play_normal_view_set_main_layout_focus_out((void *) pPlayView->
+ pNormalView);
+ pNormalView->bShowLayout = FALSE;
+}
+
+/**
+ *
+ * @param pObj
+ * @param nCurX
+ * @return
+ */
+static double _vp_play_normal_view_get_mouse_pos_ratio(Evas_Object * pObj,
+ int nCurX)
+{
+ if (!pObj) {
+ VideoLogError("pObj is NULL");
+ return 0.0;
+ }
+
+ int nWidth = 0;
+ int nCurrent = 0;
+ double dRatio = 0.0;
+
+ evas_object_geometry_get(pObj, NULL, NULL, &nWidth, NULL);
+
+ nCurrent = nCurX - (VP_NORMAL_PROGRESS_BAR_START_TERM);
+ nWidth = nWidth - (VP_NORMAL_PROGRESS_BAR_WIDTH_TERM);
+
+ if (nCurrent < 0) {
+ nCurrent = 0;
+ } else if (nCurrent > nWidth) {
+ nCurrent = nWidth;
+ }
+
+ dRatio = (double) nCurrent / nWidth;
+
+ return dRatio;
+}
+
+/**
+ *
+ * @param pNormalView
+ */
+static void _vp_play_normal_view_create_progress_timer(NormalView *
+ pNormalView)
+{
+ if (!pNormalView) {
+ VideoLogError("pNormalView is NULL");
+ return;
+ }
+
+ VP_EVAS_TIMER_DEL(pNormalView->pProgressTimer);
+
+ pNormalView->pProgressTimer =
+ ecore_timer_add(VP_NORMAL_PROGRESS_TIMER_INTERVAL,
+ __vp_normal_progressbar_timer_cb,
+ (void *) pNormalView);
+}
+
+/**
+ *
+ * @param pNormalView
+ */
+static void _vp_play_normal_view_create_layout_hide_timer(NormalView *
+ pNormalView)
+{
+ if (!pNormalView) {
+ VideoLogError("pNormalView is NULL");
+ return;
+ }
+
+ VP_EVAS_TIMER_DEL(pNormalView->pHideTimer);
+ VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+ pNormalView->pHideTimer =
+ ecore_timer_add(VP_NORMAL_HIDE_LAYOUT_TIMER_INTERVAL,
+ __vp_normal_hide_layout_timer_cb,
+ (void *) pNormalView);
+}
+
+/**
+ *
+ * @param pNormalView
+ */
+static void _vp_play_normal_view_show_rotate(NormalView * pNormalView)
+{
+ bool bLockState = FALSE;
+
+ if (!vp_play_config_get_rotate_lock_status(&bLockState)) {
+ VideoLogError("vp_play_config_get_rotate_lock_status is fail");
+ return;
+ }
+
+ if (!bLockState) {
+ if (pNormalView->pMainLayout) {
+ elm_object_signal_emit(pNormalView->pMainLayout,
+ VP_NORMAL_SIGNAL_MAIN_ROTATE_SHOW, "*");
+ }
+ }
+}
+
+/**
+ *
+ * @param pNormalView
+ */
+static void _vp_play_normal_view_show_volume(NormalView * pNormalView)
+{
+ bool bLockState = FALSE;
+
+ if (!bLockState) {
+ if (pNormalView->pMainLayout) {
+ if ((pNormalView->fPlaySpeed - 0.05) > 1.000
+ || (pNormalView->fPlaySpeed + 0.05) < 1.000) {
+ elm_object_signal_emit(pNormalView->pMainLayout,
+ VP_NORMAL_SIGNAL_MAIN_PLAYING_SPEED_SHOW,
+ "*");
+ elm_object_signal_callback_add(pNormalView->pMainLayout,
+ "elm,action,click", "",
+ _vp_play_normal_view_on_play_speed_popup_cb,
+ pNormalView);
+ _vp_play_normal_view_create_layout_hide_timer(pNormalView);
+ } else {
+ elm_object_signal_emit(pNormalView->pMainLayout,
+ VP_NORMAL_SIGNAL_MAIN_PLAYING_SPEED_HIDE,
+ "*");
+ }
+ char szTxt[5] = { 0, };
+ snprintf(szTxt, 5, "%1.1fX", (float) pNormalView->fPlaySpeed);
+ elm_object_part_text_set(pNormalView->pMainLayout,
+ VP_PLAY_PART_NORMAL_PLAYING_SPEED_TXT,
+ szTxt);
+ }
+ bool bLandscape =
+ vp_play_util_get_landscape_check(pNormalView->nRotate);
+ if (bLandscape) {
+ elm_object_signal_emit(pNormalView->pMainLayout,
+ VP_NORMAL_SIGNAL_MAIN_VOLUME_LANDSCAPE_SHOW,
+ "*");
+ } else {
+ elm_object_signal_emit(pNormalView->pMainLayout,
+ VP_NORMAL_SIGNAL_MAIN_VOLUME_PORTRAIT_SHOW,
+ "*");
+ }
+ }
+}
+
+/**
+ *
+ * @param pNormalView
+ */
+static void _vp_play_normal_view_set_rotate_lock_state(NormalView *
+ pNormalView)
+{
+ if (!pNormalView) {
+ VideoLogError("pNormalView is NULL");
+ return;
+ }
+
+ bool bLockState = FALSE;
+
+ if (!vp_play_config_get_rotate_lock_status(&bLockState)) {
+ VideoLogError("vp_play_config_get_rotate_lock_status is fail");
+ return;
+ }
+
+ if (pNormalView->pMainLayout) {
+ elm_object_part_content_unset(pNormalView->pMainLayout,
+ VP_PLAY_SWALLOW_NORMAL_ROTATE);
+ }
+
+ VP_EVAS_DEL(pNormalView->pRotateBtn);
+ pNormalView->pRotateBtn = NULL;
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VP_PLAY_RESROUCE_EDJ_PATH);
+ free(path);
+ Evas_Object *pParent = NULL;
+ if (!pNormalView->pSoundPathBtn) {
+ pParent = pNormalView->pMainLayout;
+
+ } else if (pNormalView->pFunctionLayout) {
+
+ pParent = pNormalView->pFunctionLayout;
+
+ } else {
+
+ pParent = pNormalView->pMainLayout;
+ }
+
+ if (!bLockState) {
+ pNormalView->pRotateBtn =
+ vp_button_create(pParent, "custom/flat_46_46/default",
+ VP_PLAY_STRING_COM_ROTATE,
+ (Evas_Smart_Cb)
+ __vp_normal_control_btn_clicked_cb,
+ (Evas_Smart_Cb)
+ __vp_normal_control_btn_press_cb,
+ (Evas_Smart_Cb)
+ __vp_normal_control_btn_unpress_cb,
+ (void *) pNormalView);
+
+ Evas_Object *pIcon = NULL;
+ pIcon =
+ vp_button_create_icon(pNormalView->pRotateBtn, edj_path,
+ VP_PLAY_NORMAL_RES_ROTATE);
+ elm_object_part_content_set(pNormalView->pRotateBtn,
+ VP_PLAY_SWALLOW_BUTTON_ICON, pIcon);
+
+ pIcon =
+ vp_button_create_icon(pNormalView->pRotateBtn, edj_path,
+ VP_PLAY_NORMAL_RES_ROTATE_PRESS);
+ elm_object_part_content_set(pNormalView->pRotateBtn,
+ VP_PLAY_SWALLOW_BUTTON_PRESS_ICON,
+ pIcon);
+
+ pIcon =
+ vp_button_create_icon(pNormalView->pRotateBtn, edj_path,
+ VP_PLAY_NORMAL_RES_ROTATE_DIM);
+ elm_object_part_content_set(pNormalView->pRotateBtn,
+ VP_PLAY_SWALLOW_BUTTON_DIM_ICON,
+ pIcon);
+
+ if (pNormalView->pMainLayout) {
+ elm_object_part_content_set(pNormalView->pMainLayout,
+ VP_PLAY_SWALLOW_NORMAL_ROTATE,
+ pNormalView->pRotateBtn);
+ }
+ }
+
+}
+
+/**
+ *
+ * @param pNormalView
+ */
+static void _vp_play_normal_view_set_volume_lock_state(NormalView *
+ pNormalView)
+{
+ if (!pNormalView) {
+ VideoLogError("pNormalView is NULL");
+ return;
+ }
+
+ bool bLockState = FALSE;
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VP_PLAY_RESROUCE_EDJ_PATH);
+ free(path);
+ if (pNormalView->pMainLayout) {
+ elm_object_part_content_unset(pNormalView->pMainLayout,
+ VP_PLAY_SWALLOW_NORMAL_VOLUME);
+ }
+
+ VP_EVAS_DEL(pNormalView->pVolumeBtn);
+ pNormalView->pVolumeBtn = NULL;
+
+
+ Evas_Object *pParent = NULL;
+ if (pNormalView->pSoundPathBtn == NULL) {
+ pParent = pNormalView->pMainLayout;
+
+ } else if (pNormalView->pFunctionLayout) {
+
+ pParent = pNormalView->pFunctionLayout;
+
+ } else {
+
+ pParent = pNormalView->pMainLayout;
+ }
+
+ if (!bLockState) {
+ pNormalView->pVolumeBtn =
+ vp_button_create(pParent, "custom/flat_46_46/default",
+ VP_PLAY_STRING_COM_VOLUME,
+ (Evas_Smart_Cb)
+ __vp_normal_function_btn_clicked_cb,
+ (Evas_Smart_Cb)
+ __vp_normal_control_btn_press_cb,
+ (Evas_Smart_Cb)
+ __vp_normal_control_btn_unpress_cb,
+ (void *) pNormalView);
+ if (!pNormalView->pVolumeBtn) {
+ VideoLogError("elm_button_add is fail");
+ return;
+ }
+ Evas_Object *pIcon = NULL;
+ int nVolume = 0;
+ vp_sound_get_volume(&nVolume);
+
+ VideoLogError("nVolume = %d:", nVolume);
+
+ if (nVolume == 0) {
+ pIcon =
+ vp_button_create_icon(pNormalView->pVolumeBtn, edj_path,
+ VP_PLAY_NORMAL_RES_MUTE);
+ elm_object_part_content_set(pNormalView->pVolumeBtn,
+ VP_PLAY_SWALLOW_BUTTON_ICON,
+ pIcon);
+
+ pIcon =
+ vp_button_create_icon(pNormalView->pVolumeBtn, edj_path,
+ VP_PLAY_NORMAL_RES_MUTE_PRESS);
+ elm_object_part_content_set(pNormalView->pVolumeBtn,
+ VP_PLAY_SWALLOW_BUTTON_PRESS_ICON,
+ pIcon);
+
+ pIcon =
+ vp_button_create_icon(pNormalView->pVolumeBtn, edj_path,
+ VP_PLAY_NORMAL_RES_MUTE_DIM);
+ elm_object_part_content_set(pNormalView->pVolumeBtn,
+ VP_PLAY_SWALLOW_BUTTON_DIM_ICON,
+ pIcon);
+ } else {
+ pIcon =
+ vp_button_create_icon(pNormalView->pVolumeBtn, edj_path,
+ VP_PLAY_NORMAL_RES_VOLUME);
+ elm_object_part_content_set(pNormalView->pVolumeBtn,
+ VP_PLAY_SWALLOW_BUTTON_ICON,
+ pIcon);
+
+ pIcon =
+ vp_button_create_icon(pNormalView->pVolumeBtn, edj_path,
+ VP_PLAY_NORMAL_RES_VOLUME_PRESS);
+ elm_object_part_content_set(pNormalView->pVolumeBtn,
+ VP_PLAY_SWALLOW_BUTTON_PRESS_ICON,
+ pIcon);
+
+ pIcon =
+ vp_button_create_icon(pNormalView->pVolumeBtn, edj_path,
+ VP_PLAY_NORMAL_RES_VOLUME_DIM);
+ elm_object_part_content_set(pNormalView->pVolumeBtn,
+ VP_PLAY_SWALLOW_BUTTON_DIM_ICON,
+ pIcon);
+ }
+
+ if (pNormalView->pMainLayout) {
+ elm_object_part_content_set(pNormalView->pMainLayout,
+ VP_PLAY_SWALLOW_NORMAL_VOLUME,
+ pNormalView->pVolumeBtn);
+ }
+ }
+}
+
+/**
+ *
+ * @param pNormalView
+ */
+static void _vp_play_normal_view_set_sound_path_state(NormalView *
+ pNormalView)
+{
+ if (!pNormalView) {
+ VideoLogError("pNormalView is NULL");
+ return;
+ }
+ VideoLogInfo("set_sound_path");
+
+ bool bSoundPath = FALSE;
+ bool bEarjack = FALSE;
+
+ vp_sound_path_destroy(pNormalView->pSoundPathHandle);
+ pNormalView->pSoundPathHandle = NULL;
+
+ vp_sound_is_sound_path_enable(&bSoundPath);
+
+ bEarjack =
+ vp_sound_device_is_enable(VP_SOUND_DEVICE_EARJACK,
+ pNormalView->pPlayView);
+ vp_sound_set_earjack_connection_changed_cb(pNormalView->pPlayView);
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VP_PLAY_RESROUCE_EDJ_PATH);
+ free(path);
+ if (pNormalView->bEarjackConnect != bEarjack) {
+ if (bEarjack == FALSE) {
+ pNormalView->bManualPause = TRUE;
+ }
+ }
+
+ pNormalView->bEarjackConnect = bEarjack;
+
+ if (!vp_play_preference_get_sound_alive_status
+ (&pNormalView->nSoundAlive)) {
+ VideoLogError("vp_play_preference_get_sound_alive_status failed");
+ }
+ if (bEarjack == FALSE && pNormalView->nSoundAlive == VIDEO_SA_7_1_CH) {
+ pNormalView->nSoundAlive = VIDEO_SA_NORMAL;
+ if (!vp_play_preference_set_sound_alive_status
+ (pNormalView->nSoundAlive)) {
+ VideoLogError
+ ("vp_play_preference_set_sound_alive_status failed");
+ }
+ if (!vp_mm_player_set_sound_filter
+ (pNormalView->pPlayerHandle, VP_MM_PLAYER_FILTER_NONE)) {
+ VideoLogWarning("vp_mm_player_set_sound_filter is fail");
+ }
+ }
+
+ elm_object_item_part_content_unset(pNormalView->pNaviItem,
+ "title_right_btn");
+ VideoLogInfo("rotate_lock_state_sound:%d", bSoundPath);
+
+ VP_EVAS_DEL(pNormalView->pSoundPathBtn);
+ pNormalView->pSoundPathBtn = NULL;
+
+ if (bSoundPath) {
+ VP_EVAS_DEL(pNormalView->pRotateBtn);
+ pNormalView->pRotateBtn = NULL;
+
+ video_sound_device_type_t nType = VP_SOUND_DEVICE_NONE;
+ vp_sound_get_active_device(&nType);
+ char *szIconPath = VP_PLAY_NORMAL_RES_SPEAKER;
+ switch (nType) {
+ case VP_SOUND_DEVICE_SPEAKER:
+ szIconPath = VP_PLAY_NORMAL_RES_SPEAKER;
+ break;
+
+ case VP_SOUND_DEVICE_EARJACK:
+ szIconPath = VP_PLAY_NORMAL_RES_EARPHONE;
+ break;
+
+ case VP_SOUND_DEVICE_BLUETOOTH:
+ szIconPath = VP_PLAY_NORMAL_RES_BLUETOOTH_HEADSET;
+ break;
+
+ case VP_SOUND_DEVICE_HDMI:
+ szIconPath = VP_PLAY_NORMAL_RES_ICON_HDMI;
+ break;
+
+ case VP_SOUND_DEVICE_MIRRORING:
+ szIconPath = VP_PLAY_NORMAL_RES_MIRRORING;
+ break;
+
+ case VP_SOUND_DEVICE_USB_AUDIO:
+ szIconPath = VP_PLAY_NORMAL_RES_USB_AUDIOE;
+ break;
+
+ default:
+ szIconPath = VP_PLAY_NORMAL_RES_SPEAKER;
+ break;
+ }
+
+ pNormalView->pSoundPathBtn =
+ vp_navirame_button_create(pNormalView->pNaviFrame,
+ "custom/navi_button/default",
+ edj_path, (const char *) szIconPath,
+ (Evas_Smart_Cb)
+ __vp_normal_control_btn_clicked_cb,
+ (void *) pNormalView);
+
+ elm_object_item_part_content_set(pNormalView->pNaviItem,
+ "title_right_btn",
+ pNormalView->pSoundPathBtn);
+ }
+}
+
+/**
+ *
+ * @param pNormalView
+ */
+static void _vp_play_normal_view_set_play_state(NormalView * pNormalView)
+{
+ if (!pNormalView) {
+ VideoLogError("pNormalView is NULL");
+ return;
+ }
+ PlayView *pPlayView = pNormalView->pPlayView;
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return;
+ }
+ if (!pPlayView->pWin) {
+ VideoLogError("pPlayView->pWin is NULL");
+ return;
+ }
+
+ Evas_Object *pParent = NULL;
+ vp_mm_player_state_t nState = VP_MM_PLAYER_STATE_NONE;
+
+ pParent = pNormalView->pControlLayout;
+
+ if (!vp_mm_player_get_state(pNormalView->pPlayerHandle, &nState)) {
+ VideoLogWarning("vp_mm_player_get_state is fail");
+ }
+
+ if (pPlayView->bAVRCP && nState != VP_MM_PLAYER_STATE_NONE
+ && nState != VP_MM_PLAYER_STATE_IDLE) {
+ vp_avrcp_noti_player_state(nState);
+ }
+
+ elm_object_part_content_unset(pParent, VP_PLAY_SWALLOW_NORMAL_PLAY);
+ evas_object_hide(pNormalView->pPauseBtn);
+ evas_object_hide(pNormalView->pResumeBtn);
+
+ if (nState == VP_MM_PLAYER_STATE_PLAYING) {
+ VideoLogWarning("VP_MM_PLAYER_STATE_PLAYING");
+ evas_object_show(pNormalView->pPauseBtn);
+ elm_object_part_content_set(pParent, VP_PLAY_SWALLOW_NORMAL_PLAY,
+ pNormalView->pPauseBtn);
+ evas_object_hide(pNormalView->pResumeBtn);
+
+ if (!pNormalView->pProgressTimer) {
+ _vp_play_normal_view_create_progress_timer(pNormalView);
+ }
+ if (!pNormalView->bAudioOnly) {
+ vp_play_util_set_lock_power_key();
+ }
+ vp_play_progressbar_set_opacity(pNormalView->pProgressbar, FALSE);
+ } else {
+ VideoLogWarning("Play_Status[%d]", nState);
+ evas_object_show(pNormalView->pResumeBtn);
+ elm_object_part_content_set(pParent, VP_PLAY_SWALLOW_NORMAL_PLAY,
+ pNormalView->pResumeBtn);
+ evas_object_hide(pNormalView->pPauseBtn);
+ VP_EVAS_TIMER_DEL(pNormalView->pProgressTimer);
+
+ if (nState == VP_MM_PLAYER_STATE_PAUSED) {
+ vp_device_set_screen_off(FALSE);
+ }
+ vp_play_util_set_unlock_power_key();
+ }
+
+ VideoLogWarning("STATUS[%d]", nState);
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+static Evas_Object *_vp_play_normal_view_create_main_layout(Evas_Object *
+ pParent)
+{
+ if (!pParent) {
+ VideoLogError("Parent is NULL");
+ return NULL;
+ }
+
+ Evas_Object *pObj = NULL;
+ Eina_Bool bRet = EINA_FALSE;
+
+ pObj = elm_layout_add(pParent);
+ if (!pObj) {
+ VideoLogError("elm_layout_add object is NULL");
+ return NULL;
+ }
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VP_PLAY_NORMAL_MAIN_EDJ);
+ free(path);
+ bRet =
+ elm_layout_file_set(pObj, edj_path, VP_PLAY_EDJ_GROUP_NORMAL_MAIN);
+ if (bRet != EINA_TRUE) {
+ VideoLogError("elm_layout_file_set fail : %s [%s]", edj_path,
+ VP_PLAY_EDJ_GROUP_NORMAL_MAIN);
+ }
+
+ evas_object_show(pObj);
+
+ return pObj;
+}
+
+/**
+ *
+ * @param pNormalView
+ * @return
+ */
+static bool _vp_play_normal_view_create_gesture_layout(NormalView *
+ pNormalView)
+{
+ if (!pNormalView) {
+ VideoLogError("Parent is NULL");
+ return FALSE;
+ }
+
+ Evas_Object *pParent = NULL;
+ PlayView *pPlayView = pNormalView->pPlayView;
+ Eina_Bool bRet = EINA_FALSE;
+
+ pParent = pPlayView->pMainLayout;
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje", VP_PLAY_GESTURE_EDJ);
+ free(path);
+ pNormalView->pMainEventRect = elm_layout_add(pParent);
+ bRet =
+ elm_layout_file_set(pNormalView->pMainEventRect, edj_path,
+ VP_PLAY_EDJ_GROUP_GESTURE);
+ if (bRet != EINA_TRUE) {
+ VideoLogError("elm_layout_file_set fail : %s [%s]", edj_path,
+ VP_PLAY_EDJ_GROUP_GESTURE);
+ return FALSE;
+ }
+ elm_object_part_content_set(pParent, "elm.swallow.event",
+ pNormalView->pMainEventRect);
+
+ pNormalView->pGestureRect =
+ elm_gesture_layer_add(pNormalView->pMainEventRect);
+ if (!pNormalView->pGestureRect) {
+ VideoLogError("elm_gesture_layer_add is NULL");
+ return FALSE;
+ }
+ elm_gesture_layer_hold_events_set(pNormalView->pGestureRect,
+ EINA_FALSE);
+
+ elm_gesture_layer_cb_set(pNormalView->pGestureRect, ELM_GESTURE_N_TAPS,
+ ELM_GESTURE_STATE_START,
+ __vp_normal_gesture_n_tab_start_cb,
+ (void *) pNormalView);
+ elm_gesture_layer_cb_set(pNormalView->pGestureRect, ELM_GESTURE_N_TAPS,
+ ELM_GESTURE_STATE_END,
+ __vp_normal_gesture_n_tab_end_cb,
+ (void *) pNormalView);
+ elm_gesture_layer_cb_set(pNormalView->pGestureRect, ELM_GESTURE_N_TAPS,
+ ELM_GESTURE_STATE_ABORT,
+ __vp_normal_gesture_n_tab_abort_cb,
+ (void *) pNormalView);
+
+ elm_gesture_layer_cb_set(pNormalView->pGestureRect,
+ ELM_GESTURE_MOMENTUM, ELM_GESTURE_STATE_START,
+ __vp_normal_gesture_momentum_start_cb,
+ (void *) pNormalView);
+ elm_gesture_layer_cb_set(pNormalView->pGestureRect,
+ ELM_GESTURE_MOMENTUM, ELM_GESTURE_STATE_END,
+ __vp_normal_gesture_momentum_end_cb,
+ (void *) pNormalView);
+ elm_gesture_layer_cb_set(pNormalView->pGestureRect,
+ ELM_GESTURE_MOMENTUM, ELM_GESTURE_STATE_ABORT,
+ __vp_normal_gesture_momentum_end_cb,
+ (void *) pNormalView);
+ elm_gesture_layer_cb_set(pNormalView->pGestureRect,
+ ELM_GESTURE_MOMENTUM, ELM_GESTURE_STATE_MOVE,
+ __vp_normal_gesture_momentum_move_cb,
+ (void *) pNormalView);
+
+#ifdef ENABLE_GESTURE_ZOOM_FEATURE
+ elm_gesture_layer_cb_set(pNormalView->pGestureRect, ELM_GESTURE_ZOOM,
+ ELM_GESTURE_STATE_START,
+ __vp_normal_gesture_zoom_start_cb,
+ (void *) pNormalView);
+ elm_gesture_layer_cb_set(pNormalView->pGestureRect, ELM_GESTURE_ZOOM,
+ ELM_GESTURE_STATE_END,
+ __vp_normal_gesture_zoom_end_cb,
+ (void *) pNormalView);
+ elm_gesture_layer_cb_set(pNormalView->pGestureRect, ELM_GESTURE_ZOOM,
+ ELM_GESTURE_STATE_ABORT,
+ __vp_normal_gesture_zoom_abort_cb,
+ (void *) pNormalView);
+ elm_gesture_layer_cb_set(pNormalView->pGestureRect, ELM_GESTURE_ZOOM,
+ ELM_GESTURE_STATE_MOVE,
+ __vp_normal_gesture_zoom_move_cb,
+ (void *) pNormalView);
+#endif
+
+ elm_gesture_layer_cb_set(pNormalView->pGestureRect,
+ ELM_GESTURE_N_DOUBLE_TAPS,
+ ELM_GESTURE_STATE_START,
+ __vp_normal_gesture_double_click_start_cb,
+ (void *) pNormalView);
+ elm_gesture_layer_cb_set(pNormalView->pGestureRect,
+ ELM_GESTURE_N_DOUBLE_TAPS,
+ ELM_GESTURE_STATE_END,
+ __vp_normal_gesture_double_click_end_cb,
+ (void *) pNormalView);
+ elm_gesture_layer_cb_set(pNormalView->pGestureRect,
+ ELM_GESTURE_N_DOUBLE_TAPS,
+ ELM_GESTURE_STATE_ABORT,
+ __vp_normal_gesture_double_click_abort_cb,
+ (void *) pNormalView);
+
+#ifdef FLICK_JUMP
+ elm_gesture_layer_cb_set(pNormalView->pGestureRect,
+ ELM_GESTURE_N_FLICKS, ELM_GESTURE_STATE_START,
+ __vp_normal_gesture_flick_start_cb,
+ (void *) pNormalView);
+ elm_gesture_layer_cb_set(pNormalView->pGestureRect,
+ ELM_GESTURE_N_FLICKS, ELM_GESTURE_STATE_END,
+ __vp_normal_gesture_flick_end_cb,
+ (void *) pNormalView);
+ elm_gesture_layer_cb_set(pNormalView->pGestureRect,
+ ELM_GESTURE_N_FLICKS, ELM_GESTURE_STATE_ABORT,
+ __vp_normal_gesture_flick_abort_cb,
+ (void *) pNormalView);
+#endif
+
+ elm_gesture_layer_line_angular_tolerance_set(pNormalView->pGestureRect, 60); // 60 degree ??
+
+ elm_gesture_layer_attach(pNormalView->pGestureRect,
+ pNormalView->pMainEventRect);
+
+ evas_object_show(pNormalView->pMainEventRect);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+static Evas_Object
+ *_vp_play_normal_view_create_top_control_layout(Evas_Object * pParent)
+{
+ if (!pParent) {
+ VideoLogError("Parent is NULL");
+ return NULL;
+ }
+
+ Evas_Object *pObj = NULL;
+ Eina_Bool bRet = EINA_FALSE;
+
+ pObj = elm_layout_add(pParent);
+ if (!pObj) {
+ VideoLogError("elm_layout_add object is NULL");
+ return NULL;
+ }
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VP_PLAY_NORMAL_TOP_CONTROL_EDJ);
+ free(path);
+ bRet =
+ elm_layout_file_set(pObj, edj_path,
+ VP_PLAY_EDJ_GROUP_NORMAL_TOP_CONTROL);
+ if (bRet != EINA_TRUE) {
+ VideoLogError("elm_layout_file_set fail");
+ }
+
+ evas_object_show(pObj);
+
+ return pObj;
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+static Evas_Object *_vp_play_normal_view_create_control_layout(Evas_Object
+ *pParent)
+{
+ if (!pParent) {
+ VideoLogError("Parent is NULL");
+ return NULL;
+ }
+
+ Evas_Object *pObj = NULL;
+ Eina_Bool bRet = EINA_FALSE;
+
+ pObj = elm_layout_add(pParent);
+ if (!pObj) {
+ VideoLogError("elm_layout_add object is NULL");
+ return NULL;
+ }
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VP_PLAY_NORMAL_CONTROL_EDJ);
+ free(path);
+ bRet =
+ elm_layout_file_set(pObj, edj_path,
+ VP_PLAY_EDJ_GROUP_NORMAL_CONTROL);
+ if (bRet != EINA_TRUE) {
+ VideoLogError("elm_layout_file_set fail");
+ }
+
+ evas_object_show(pObj);
+
+ return pObj;
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+static Evas_Object *_vp_play_normal_view_create_function_layout(Evas_Object
+ *pParent)
+{
+ if (!pParent) {
+ VideoLogError("Parent is NULL");
+ return NULL;
+ }
+
+ Evas_Object *pObj = NULL;
+ Eina_Bool bRet = EINA_FALSE;
+
+ pObj = elm_layout_add(pParent);
+ if (!pObj) {
+ VideoLogError("elm_layout_add object is NULL");
+ return NULL;
+ }
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VP_PLAY_NORMAL_FUNCTION_EDJ_PATH);
+ free(path);
+ bRet =
+ elm_layout_file_set(pObj, edj_path,
+ VP_PLAY_EDJ_GROUP_NORMAL_FUNCTION);
+ if (bRet != EINA_TRUE) {
+ VideoLogError("elm_layout_file_set fail");
+ }
+
+ evas_object_show(pObj);
+
+ return pObj;
+}
+
+/**
+ *
+ * @param data
+ * @param e
+ * @param obj
+ * @param event_info
+ */
+static void _vp_normal_view_top_layout_del_cb(void *data, Evas * e,
+ Evas_Object * obj,
+ void *event_info)
+{
+ if (!data) {
+ VideoLogError("pNormalView is NULL");
+ return;
+ }
+
+ NormalView *pNormalView = (NormalView *) data;
+ pNormalView->pTopControlLayout = NULL;
+}
+
+/**
+ *
+ * @param pNormalView
+ * @return
+ */
+static bool _vp_play_normal_view_create_top_control(NormalView *
+ pNormalView)
+{
+ if (!pNormalView) {
+ VideoLogError("pNormalView is NULL");
+ return FALSE;
+ }
+
+ VideoLogInfo("create top control");
+
+ pNormalView->pTopControlLayout =
+ _vp_play_normal_view_create_top_control_layout(pNormalView->
+ pMainLayout);
+ if (!pNormalView->pTopControlLayout) {
+ VideoLogError("pNormalView->pTopControlLayout is NULL");
+ return FALSE;
+ }
+ evas_object_event_callback_add(pNormalView->pTopControlLayout,
+ EVAS_CALLBACK_DEL,
+ _vp_normal_view_top_layout_del_cb,
+ (void *) pNormalView);
+
+ elm_object_part_content_set(pNormalView->pMainLayout,
+ VP_PLAY_SWALLOW_NORMAL_TOP_CONTROL,
+ pNormalView->pTopControlLayout);
+
+ _vp_play_normal_view_on_capture_mode(pNormalView);
+ _vp_play_normal_view_set_sound_path_state(pNormalView);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param data
+ * @param e
+ * @param obj
+ * @param event_info
+ */
+static void _vp_play_normal_view_control_layout_del_cb(void *data,
+ Evas * e,
+ Evas_Object * obj,
+ void *event_info)
+{
+ if (!data) {
+ VideoLogError("pNormalView is NULL");
+ return;
+ }
+
+ NormalView *pNormalView = (NormalView *) data;
+ if (pNormalView->pControlLayout) {
+ evas_object_event_callback_del(pNormalView->pControlLayout,
+ EVAS_CALLBACK_DEL,
+ _vp_play_normal_view_control_layout_del_cb);
+ pNormalView->pControlLayout = NULL;
+ pNormalView->pResumeBtn = NULL;
+ pNormalView->pPauseBtn = NULL;
+ pNormalView->pPlayFocusBtn = NULL;
+ pNormalView->pPrevBtn = NULL;
+ pNormalView->pNextBtn = NULL;
+ pNormalView->pVolumeBtn = NULL;
+ pNormalView->pScreenSizeBtn = NULL;
+ }
+}
+
+/**
+ *
+ * @param pNormalView
+ * @return
+ */
+static bool _vp_play_normal_view_create_main_control(NormalView *
+ pNormalView)
+{
+ if (!pNormalView) {
+ VideoLogError("pNormalView is NULL");
+ return FALSE;
+ }
+
+ Evas_Object *pParent = NULL;
+
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VP_PLAY_RESROUCE_EDJ_PATH);
+ free(path);
+ pNormalView->pControlLayout =
+ _vp_play_normal_view_create_control_layout(pNormalView->
+ pMainLayout);
+ if (!pNormalView->pControlLayout) {
+ VideoLogError("pNormalView->pControlLayout is NULL");
+ return FALSE;
+ }
+
+ elm_object_focus_custom_chain_append(pNormalView->pMainLayout,
+ pNormalView->pControlLayout,
+ NULL);
+
+ elm_object_part_content_set(pNormalView->pMainLayout,
+ VP_PLAY_SWALLOW_NORMAL_CONTROL,
+ pNormalView->pControlLayout);
+ evas_object_event_callback_add(pNormalView->pControlLayout,
+ EVAS_CALLBACK_DEL,
+ _vp_play_normal_view_control_layout_del_cb,
+ (void *) pNormalView);
+
+ pParent = pNormalView->pControlLayout;
+
+ pNormalView->pResumeBtn =
+ vp_button_create(pParent, "custom/circle_1/default",
+ VP_PLAY_STRING_COM_PLAY,
+ (Evas_Smart_Cb)
+ __vp_normal_control_btn_clicked_cb,
+ (Evas_Smart_Cb) __vp_normal_control_btn_press_cb,
+ (Evas_Smart_Cb)
+ __vp_normal_control_btn_unpress_cb,
+ (void *) pNormalView);
+ if (!pNormalView->pResumeBtn) {
+ VideoLogError("elm_button_add is fail");
+ return FALSE;
+ }
+
+ pNormalView->pPauseBtn =
+ vp_button_create(pParent, "custom/circle_1_focus/default",
+ VP_PLAY_STRING_COM_PAUSE,
+ (Evas_Smart_Cb)
+ __vp_normal_control_btn_clicked_cb,
+ (Evas_Smart_Cb) __vp_normal_control_btn_press_cb,
+ (Evas_Smart_Cb)
+ __vp_normal_control_btn_unpress_cb,
+ (void *) pNormalView);
+ if (!pNormalView->pPauseBtn) {
+ VideoLogError("elm_button_add is fail");
+ return FALSE;
+ }
+
+ pNormalView->pPlayFocusBtn = vp_button_create(pParent, "focus", NULL,
+ (Evas_Smart_Cb)
+ __vp_normal_control_btn_clicked_cb,
+ (Evas_Smart_Cb)
+ __vp_normal_control_btn_press_cb,
+ (Evas_Smart_Cb)
+ __vp_normal_control_btn_unpress_cb,
+ (void *) pNormalView);
+ if (!pNormalView->pPlayFocusBtn) {
+ VideoLogError("elm_button_add is fail");
+ return FALSE;
+ }
+
+ pNormalView->pPrevBtn =
+ vp_button_create(pParent, "custom/circle_2/default",
+ VP_PLAY_STRING_COM_PREVIOUS,
+ (Evas_Smart_Cb)
+ __vp_normal_control_btn_clicked_cb,
+ (Evas_Smart_Cb) __vp_normal_control_btn_press_cb,
+ (Evas_Smart_Cb)
+ __vp_normal_control_btn_unpress_cb,
+ (void *) pNormalView);
+ if (!pNormalView->pPrevBtn) {
+ VideoLogError("elm_button_add is fail");
+ return FALSE;
+ }
+
+ pNormalView->pNextBtn =
+ vp_button_create(pParent, "custom/circle_3/default",
+ VP_PLAY_STRING_COM_NEXT,
+ (Evas_Smart_Cb)
+ __vp_normal_control_btn_clicked_cb,
+ (Evas_Smart_Cb) __vp_normal_control_btn_press_cb,
+ (Evas_Smart_Cb)
+ __vp_normal_control_btn_unpress_cb,
+ (void *) pNormalView);
+ if (!pNormalView->pNextBtn) {
+ VideoLogError("elm_button_add is fail");
+ return FALSE;
+ }
+
+ pNormalView->pScreenSizeBtn =
+ vp_button_create(pParent, "custom/flat_56_56/default",
+ VP_PLAY_STRING_COM_FULL,
+ (Evas_Smart_Cb)
+ __vp_normal_function_btn_clicked_cb,
+ (Evas_Smart_Cb) __vp_normal_control_btn_press_cb,
+ (Evas_Smart_Cb)
+ __vp_normal_control_btn_unpress_cb,
+ (void *) pNormalView);
+ evas_object_color_set(pNormalView->pScreenSizeBtn, 0, 166, 191, 255);
+ if (!pNormalView->pScreenSizeBtn) {
+ VideoLogError("elm_button_add is fail");
+ return FALSE;
+ }
+
+
+ pNormalView->pLockBtn =
+ vp_button_create(pNormalView->pMainLayout,
+ "custom/flat_46_46/default", NULL,
+ (Evas_Smart_Cb)
+ __vp_normal_function_btn_clicked_cb,
+ (Evas_Smart_Cb) __vp_normal_control_btn_press_cb,
+ (Evas_Smart_Cb)
+ __vp_normal_control_btn_unpress_cb,
+ (void *) pNormalView);
+ if (!pNormalView->pLockBtn) {
+ VideoLogError("elm_button_add is fail");
+ return FALSE;
+ }
+
+ Evas_Object *pIcon = NULL;
+
+ pIcon =
+ vp_button_create_icon(pNormalView->pResumeBtn, edj_path,
+ VP_PLAY_NORMAL_RES_RESUME);
+ elm_object_part_content_set(pNormalView->pResumeBtn,
+ VP_PLAY_SWALLOW_BUTTON_ICON, pIcon);
+
+ pIcon =
+ vp_button_create_icon(pNormalView->pPauseBtn, edj_path,
+ VP_PLAY_NORMAL_RES_PAUSE);
+ elm_object_part_content_set(pNormalView->pPauseBtn,
+ VP_PLAY_SWALLOW_BUTTON_ICON, pIcon);
+
+ if (pNormalView->nDisplayMode == VP_MM_PLAYER_DISPLAY_FULL_SCREEN) {
+ pIcon =
+ vp_button_create_icon(pNormalView->pScreenSizeBtn, edj_path,
+ VP_PLAY_NORMAL_RES_SCREEN_2_MODE);
+ elm_object_part_content_set(pNormalView->pScreenSizeBtn,
+ VP_PLAY_SWALLOW_BUTTON_ICON, pIcon);
+
+ pIcon =
+ vp_button_create_icon(pNormalView->pScreenSizeBtn, edj_path,
+ VP_PLAY_NORMAL_RES_SCREEN_2_MODE);
+ elm_object_part_content_set(pNormalView->pScreenSizeBtn,
+ VP_PLAY_SWALLOW_BUTTON_PRESS_ICON,
+ pIcon);
+
+ } else if (pNormalView->nDisplayMode ==
+ VP_MM_PLAYER_DISPLAY_ORIGIN_SIZE) {
+ pIcon =
+ vp_button_create_icon(pNormalView->pScreenSizeBtn, edj_path,
+ VP_PLAY_NORMAL_RES_SCREEN_1_MODE);
+ elm_object_part_content_set(pNormalView->pScreenSizeBtn,
+ VP_PLAY_SWALLOW_BUTTON_ICON, pIcon);
+
+ pIcon =
+ vp_button_create_icon(pNormalView->pScreenSizeBtn, edj_path,
+ VP_PLAY_NORMAL_RES_SCREEN_1_MODE);
+ elm_object_part_content_set(pNormalView->pScreenSizeBtn,
+ VP_PLAY_SWALLOW_BUTTON_PRESS_ICON,
+ pIcon);
+ } else if (pNormalView->nDisplayMode ==
+ VP_MM_PLAYER_DISPLAY_ORIGIN_OR_LETTER) {
+ pIcon =
+ vp_button_create_icon(pNormalView->pScreenSizeBtn, edj_path,
+ VP_PLAY_NORMAL_RES_SCREEN_3_MODE);
+ elm_object_part_content_set(pNormalView->pScreenSizeBtn,
+ VP_PLAY_SWALLOW_BUTTON_ICON, pIcon);
+
+ } else {
+ pIcon =
+ vp_button_create_icon(pNormalView->pScreenSizeBtn, edj_path,
+ VP_PLAY_NORMAL_RES_SCREEN_1_MODE);
+ elm_object_part_content_set(pNormalView->pScreenSizeBtn,
+ VP_PLAY_SWALLOW_BUTTON_ICON, pIcon);
+
+ }
+
+
+ if (pNormalView->pResumeBtn) {
+ elm_object_part_content_set(pParent, VP_PLAY_SWALLOW_NORMAL_PLAY,
+ pNormalView->pResumeBtn);
+
+ elm_object_focus_custom_chain_append(pNormalView->pMainLayout,
+ pNormalView->pResumeBtn,
+ NULL);
+ }
+
+ if (pNormalView->pPlayFocusBtn) {
+ elm_object_part_content_set(pParent,
+ VP_PLAY_SWALLOW_NORMAL_PLAY_FOCUS,
+ pNormalView->pPlayFocusBtn);
+ elm_object_focus_custom_chain_append(pNormalView->pMainLayout,
+ pNormalView->pPlayFocusBtn,
+ NULL);
+ }
+
+ if (pNormalView->pPrevBtn) {
+ elm_object_part_content_set(pParent, VP_PLAY_SWALLOW_NORMAL_REW,
+ pNormalView->pPrevBtn);
+ elm_object_focus_custom_chain_append(pNormalView->pMainLayout,
+ pNormalView->pPrevBtn, NULL);
+ }
+
+ if (pNormalView->pNextBtn) {
+ elm_object_part_content_set(pParent, VP_PLAY_SWALLOW_NORMAL_FF,
+ pNormalView->pNextBtn);
+ elm_object_focus_custom_chain_append(pNormalView->pMainLayout,
+ pNormalView->pNextBtn, NULL);
+ }
+
+ if (pNormalView->pScreenSizeBtn) {
+ elm_object_part_content_set(pParent,
+ VP_PLAY_SWALLOW_NORMAL_SCREENSIZE,
+ pNormalView->pScreenSizeBtn);
+ elm_object_focus_custom_chain_append(pNormalView->pMainLayout,
+ pNormalView->pScreenSizeBtn,
+ NULL);
+ }
+
+ vp_play_util_focus_next_object_set(pNormalView->pVolumeBtn,
+ pNormalView->pPrevBtn,
+ ELM_FOCUS_RIGHT);
+ vp_play_util_focus_next_object_set(pNormalView->pPrevBtn,
+ pNormalView->pPlayFocusBtn,
+ ELM_FOCUS_RIGHT);
+ vp_play_util_focus_next_object_set(pNormalView->pPlayFocusBtn,
+ pNormalView->pNextBtn,
+ ELM_FOCUS_RIGHT);
+ vp_play_util_focus_next_object_set(pNormalView->pNextBtn,
+ pNormalView->pScreenSizeBtn,
+ ELM_FOCUS_RIGHT);
+
+ _vp_play_normal_view_set_rotate_lock_state(pNormalView);
+ _vp_play_normal_view_set_volume_lock_state(pNormalView);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param data
+ * @param e
+ * @param obj
+ * @param event_info
+ */
+static void _vp_normal_view_function_layout_del_cb(void *data, Evas * e,
+ Evas_Object * obj,
+ void *event_info)
+{
+ if (!data) {
+ VideoLogError("pNormalView is NULL");
+ return;
+ }
+
+ NormalView *pNormalView = (NormalView *) data;
+ pNormalView->pTopControlLayout = NULL;
+ pNormalView->pBookmarkBtn = NULL;
+ pNormalView->pMultiWinBtn = NULL;
+ pNormalView->pRepeatBtn = NULL;
+ pNormalView->pTrimBtn = NULL;
+ pNormalView->pSoundAliveBtn = NULL;
+ pNormalView->pShareBtn = NULL;
+}
+
+/**
+ *
+ * @param pNormalView
+ * @return
+ */
+static bool _vp_play_normal_view_create_function_control(NormalView *
+ pNormalView)
+{
+ if (!pNormalView) {
+ VideoLogError("pNormalView is NULL");
+ return FALSE;
+ }
+
+ pNormalView->pFunctionLayout =
+ _vp_play_normal_view_create_function_layout(pNormalView->
+ pMainLayout);
+ if (!pNormalView->pFunctionLayout) {
+ VideoLogError("pNormalView->pFunctionLayout is NULL");
+ return FALSE;
+ }
+ evas_object_event_callback_add(pNormalView->pFunctionLayout,
+ EVAS_CALLBACK_DEL,
+ _vp_normal_view_function_layout_del_cb,
+ (void *) pNormalView);
+ elm_object_part_content_set(pNormalView->pControlLayout,
+ VP_PLAY_SWALLOW_NORMAL_FUNCTION,
+ pNormalView->pFunctionLayout);
+ elm_object_focus_custom_chain_append(pNormalView->pMainLayout,
+ pNormalView->pFunctionLayout,
+ NULL);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pNormalView
+ * @return
+ */
+static bool _vp_play_normal_view_create_progressbar(NormalView *
+ pNormalView)
+{
+ if (!pNormalView) {
+ VideoLogError("pNormalView is NULL");
+ return FALSE;
+ }
+
+ Evas_Object *pParent = NULL;
+
+ pParent = pNormalView->pControlLayout;
+
+ pNormalView->pProgressbar =
+ vp_play_progressbar_create(pParent, VIDEO_PROGRESSBAR_TYPE_NORMAL);
+ if (!pNormalView->pProgressbar) {
+ VideoLogError("pProgressbar create fail");
+ return FALSE;
+ }
+
+ pNormalView->pProgressEvent =
+ vp_play_progressbar_get_object(pNormalView->pProgressbar);
+ if (!pNormalView->pProgressEvent) {
+ VideoLogError("vp_play_progressbar_get_object fail");
+ return FALSE;
+ }
+
+ elm_object_part_content_set(pParent, VP_PLAY_SWALLOW_NORMAL_PROGRESS,
+ pNormalView->pProgressEvent);
+
+ evas_object_event_callback_add(pNormalView->pProgressEvent,
+ EVAS_CALLBACK_MOUSE_DOWN,
+ __vp_normal_progress_mouse_down_cb,
+ (void *) pNormalView);
+
+ evas_object_event_callback_add(pNormalView->pProgressEvent,
+ EVAS_CALLBACK_MOUSE_UP,
+ __vp_normal_progress_mouse_up_cb,
+ (void *) pNormalView);
+
+ evas_object_event_callback_add(pNormalView->pProgressEvent,
+ EVAS_CALLBACK_MOUSE_MOVE,
+ __vp_normal_progress_mouse_move_cb,
+ (void *) pNormalView);
+
+ evas_object_event_callback_add(pNormalView->pProgressEvent,
+ EVAS_CALLBACK_DEL,
+ __vp_normal_progress_del_cb,
+ (void *) pNormalView);
+
+ Evas_Object *pProgressFocus =
+ vp_play_progressbar_get_focus_object(pNormalView->pProgressbar);
+
+ evas_object_event_callback_add(pProgressFocus, EVAS_CALLBACK_KEY_DOWN,
+ __vp_normal_focus_key_down_cb,
+ (void *) pNormalView);
+ evas_object_event_callback_add(pProgressFocus, EVAS_CALLBACK_KEY_UP,
+ __vp_normal_focus_key_up_cb,
+ (void *) pNormalView);
+
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pNormalView
+ * @return
+ */
+static bool _vp_play_normal_view_create_subtitle(NormalView * pNormalView)
+{
+ if (!pNormalView) {
+ VideoLogError("pNormalView is NULL");
+ return FALSE;
+ }
+
+ Evas_Object *pParent = NULL;
+ Evas_Object *pObj = NULL;
+
+#ifdef SUBTITLE_K_FEATURE
+ pParent = pNormalView->pMainLayout;
+ VideoLogError("1");
+#else
+ pParent = pNormalView->pMainLayout;
+ VideoLogError("2");
+#endif
+
+
+ pNormalView->pSubtitle =
+ vp_play_subtitle_create(pParent, VP_SUBTITLE_TYPE_NORMAL);
+ if (!pNormalView->pSubtitle) {
+ VideoLogError("pSubtitle create fail");
+ return FALSE;
+ }
+
+ pObj = vp_play_subtitle_get_object(pNormalView->pSubtitle);
+ if (!pObj) {
+ VideoLogError("vp_play_subtitle_get_object fail");
+ return FALSE;
+ }
+
+ vp_play_subtitle_realize(pNormalView->pSubtitle);
+ char *szFont = NULL;
+ int nSize = 0;
+
+#ifdef SUBTITLE_K_FEATURE
+ int nAlignmentKey = VP_SUBTITLE_ALIGNMENT_CENTER;
+ vp_subtitle_alignment_t nAlignment = VP_SUBTITLE_ALIGNMENT_CENTER;
+#else
+ video_subtitle_color_t nFontColor = VP_SUBTITLE_COLOR_BLACK;
+ video_subtitle_color_t nBGColor = VP_SUBTITLE_COLOR_BLACK;
+#endif
+
+ vp_play_preference_get_subtitle_size_key(&nSize);
+ vp_play_preference_get_subtitle_font_name_key(&szFont);
+ vp_play_subtitle_set_size(pNormalView->pSubtitle, nSize);
+ vp_play_subtitle_set_size_zoom(pNormalView->pSubtitle, 1.0);
+ vp_play_subtitle_set_font(pNormalView->pSubtitle, szFont);
+
+ VP_FREE(szFont);
+#ifndef SUBTITLE_K_FEATURE
+ int nFontColorKey = VP_SUBTITLE_COLOR_BLACK;
+ int nBGColorKey = VP_SUBTITLE_COLOR_BLACK;
+ vp_play_preference_get_subtitle_font_color_key(&nFontColorKey);
+ vp_play_preference_get_subtitle_bg_color_key(&nBGColorKey);
+
+ if (nFontColorKey == VIDEO_SUBTITLE_COLOR_BLACK) {
+ nFontColor = VP_SUBTITLE_COLOR_BLACK;
+ } else if (nFontColorKey == VIDEO_SUBTITLE_COLOR_BLUE) {
+ nFontColor = VP_SUBTITLE_COLOR_BLUE;
+ } else if (nFontColorKey == VIDEO_SUBTITLE_COLOR_GREEN) {
+ nFontColor = VP_SUBTITLE_COLOR_GREEN;
+ } else if (nFontColorKey == VIDEO_SUBTITLE_COLOR_WHITE) {
+ nFontColor = VP_SUBTITLE_COLOR_WHITE;
+ }
+
+ if (nBGColorKey == VIDEO_SUBTITLE_COLOR_BLACK) {
+ nBGColor = VP_SUBTITLE_COLOR_BLACK;
+ } else if (nBGColorKey == VIDEO_SUBTITLE_COLOR_WHITE) {
+ nBGColor = VP_SUBTITLE_COLOR_WHITE;
+ } else if (nBGColorKey == VIDEO_SUBTITLE_COLOR_NONE) {
+ nBGColor = VP_SUBTITLE_COLOR_NONE;
+ }
+ vp_play_subtitle_set_color(pNormalView->pSubtitle, nFontColor);
+ vp_play_subtitle_set_bg_color(pNormalView->pSubtitle, nBGColor);
+
+ elm_object_part_content_set(pParent, VP_PLAY_SWALLOW_NORMAL_SUBTITLE,
+ pObj);
+
+#else
+ vp_play_preference_get_subtitle_alignment_key(&nAlignmentKey);
+
+ char *szColorHex = NULL;
+ char *szColorBGHex = NULL;
+ vp_play_preference_get_subtitle_font_color_hex_key(&szColorHex);
+ if (!szColorHex) {
+ VideoLogError("szColorHex is NULL");
+ }
+
+ vp_play_preference_get_subtitle_bg_color_hex_key(&szColorBGHex);
+ if (!szColorBGHex) {
+ VideoLogError("szColorBGHex is NULL");
+ }
+
+
+ if (nAlignmentKey == VIDEO_SUBTITLE_ALIGNMENT_LEFT) {
+ nAlignment = VP_SUBTITLE_ALIGNMENT_LEFT;
+ } else if (nAlignmentKey == VIDEO_SUBTITLE_ALIGNMENT_CENTER) {
+ nAlignment = VP_SUBTITLE_ALIGNMENT_CENTER;
+ } else if (nAlignmentKey == VIDEO_SUBTITLE_ALIGNMENT_RIGHT) {
+ nAlignment = VP_SUBTITLE_ALIGNMENT_RIGHT;
+ }
+
+ vp_play_subtitle_set_color(pNormalView->pSubtitle, szColorHex);
+ vp_play_subtitle_set_bg_color(pNormalView->pSubtitle, szColorBGHex);
+
+ vp_play_subtitle_set_alignment(pNormalView->pSubtitle, nAlignment);
+ elm_object_part_content_set(pParent, VP_PLAY_SWALLOW_NORMAL_SUBTITLE,
+ pObj);
+ evas_object_show(pObj);
+#endif
+
+ return TRUE;
+}
+
+#ifdef _PERF_TEST_
+static Evas_Object *_vp_play_normal_view_create_conformant(Evas_Object *
+ pParent)
+{
+ if (!pParent) {
+ VideoLogError("Parent is NULL");
+ return NULL;
+ }
+
+ Evas_Object *pObj = NULL;
+
+ pObj = elm_conformant_add(pParent);
+ if (!pObj) {
+ VideoLogError("elm_conformant_add object is NULL");
+ return NULL;
+ }
+ evas_object_size_hint_weight_set(pObj, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ elm_win_conformant_set(pParent, EINA_TRUE);
+ elm_win_resize_object_add(pParent, pObj);
+
+ elm_object_signal_emit(pObj, "elm,state,indicator,overlap", "");
+ evas_object_data_set(pObj, "overlap", (void *) EINA_TRUE);
+
+ evas_object_show(pObj);
+
+ return pObj;
+}
+
+static Evas_Object *_vp_play_normal_view_create_layout(Evas_Object *
+ pParent)
+{
+ if (!pParent) {
+ VideoLogError("Parent is NULL");
+ return NULL;
+ }
+
+ Evas_Object *pObj = NULL;
+ Eina_Bool bRet = EINA_FALSE;
+
+ pObj = elm_layout_add(pParent);
+ if (!pObj) {
+ VideoLogError("elm_layout_add object is NULL");
+ return NULL;
+ }
+
+ bRet = elm_layout_theme_set(pObj, VP_PLAY_CUSTOM_LAYOUT_KLASS,
+ VP_PLAY_CUSTOM_LAYOUT_GROUP,
+ VP_PLAY_CUSTOM_LAYOUT_STYLE);
+ if (bRet != EINA_TRUE) {
+ VideoLogError("elm_layout_theme_set fail");
+ }
+ evas_object_size_hint_weight_set(pObj, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ elm_object_content_set(pParent, pObj);
+
+ evas_object_show(pObj);
+
+ return pObj;
+}
+
+static Evas_Object *_vp_play_normal_view_create_naviframe(Evas_Object *
+ pParent)
+{
+ if (!pParent) {
+ VideoLogError("Parent is NULL");
+ return NULL;
+ }
+
+ Evas_Object *pObj = NULL;
+ pObj = elm_naviframe_add(pParent);
+ if (!pObj) {
+ VideoLogError("elm_naviframe_add object is NULL");
+ return NULL;
+ }
+
+ eext_object_event_callback_add(pObj, EEXT_CALLBACK_BACK,
+ eext_naviframe_back_cb, NULL);
+ eext_object_event_callback_add(pObj, EEXT_CALLBACK_MORE,
+ eext_naviframe_more_cb, NULL);
+
+ elm_object_part_content_set(pParent, "elm.swallow.content", pObj);
+ elm_object_focus_set(pObj, EINA_TRUE);
+
+ elm_naviframe_prev_btn_auto_pushed_set(pObj, EINA_FALSE);
+
+ evas_object_show(pObj);
+
+ return pObj;
+}
+#endif
+
+/**
+ *
+ * @param data
+ * @param e
+ * @param obj
+ * @param event_info
+ */
+static void _vp_play_normal_view_del_cb(void *data, Evas * e,
+ Evas_Object * obj,
+ void *event_info)
+{
+ if (!data) {
+ VideoLogError("pNormalView is NULL");
+ return;
+ }
+
+ NormalView *pNormalView = (NormalView *) data;
+ if (pNormalView->pMainLayout) {
+ evas_object_event_callback_del(pNormalView->pMainLayout,
+ EVAS_CALLBACK_DEL,
+ _vp_play_normal_view_del_cb);
+ elm_object_focus_custom_chain_unset(pNormalView->pMainLayout);
+ pNormalView->pMainLayout = NULL;
+ pNormalView->pAllsharBtn = NULL;
+ }
+}
+
+/**
+ *
+ * @param pNormalView
+ * @return
+ */
+static bool _vp_play_normal_view_init_layout(NormalView * pNormalView)
+{
+ if (!pNormalView) {
+ VideoLogError("pNormalView is NULL");
+ return FALSE;
+ }
+#ifdef _PERF_TEST_
+ if (pNormalView->pMainLayout) {
+ VideoLogError("Already exists MainLayout: %p",
+ pNormalView->pMainLayout);
+ return TRUE;
+ }
+//////////
+ PlayView *pPlayView = pNormalView->pPlayView;
+
+
+ pPlayView->pConformant =
+ _vp_play_normal_view_create_conformant(pPlayView->pWin);
+ if (!pPlayView->pConformant) {
+ VideoLogError("pConformant is null");
+ return FALSE;
+ }
+
+ pPlayView->pMainLayout =
+ _vp_play_normal_view_create_layout(pPlayView->pConformant);
+ if (!pPlayView->pMainLayout) {
+ VideoLogError("pMainLayout is null");
+ return FALSE;
+ }
+ pPlayView->pNaviframe =
+ _vp_play_normal_view_create_naviframe(pPlayView->pMainLayout);
+ if (!pPlayView->pNaviframe) {
+ VideoLogError("pNaviframe is null");
+ return FALSE;
+ }
+
+ pNormalView->pNaviFrame = pPlayView->pNaviframe;
+ pNormalView->bDestroyNavi = FALSE;
+ pNormalView->nXwinID = elm_win_xwindow_get(pPlayView->pWin);
+
+//////////
+#endif
+
+ if (!_vp_play_normal_view_create_gesture_layout(pNormalView)) {
+ VideoLogError
+ ("_vp_play_normal_view_create_gesture_layout is fail");
+ return FALSE;
+ }
+
+ pNormalView->pMainLayout =
+ _vp_play_normal_view_create_main_layout(pNormalView->pNaviFrame);
+ if (!pNormalView->pMainLayout) {
+ VideoLogError("pLayout create fail");
+ return FALSE;
+ }
+
+ evas_object_event_callback_add(pNormalView->pMainLayout,
+ EVAS_CALLBACK_DEL,
+ _vp_play_normal_view_del_cb,
+ (void *) pNormalView);
+ evas_object_event_callback_add(pNormalView->pMainLayout,
+ EVAS_CALLBACK_RESIZE,
+ __vp_normal_main_layout_resize_cb,
+ (void *) pNormalView);
+ elm_access_highlight_set(pNormalView->pMainLayout);
+
+ pNormalView->pNaviItem =
+ elm_naviframe_item_push(pNormalView->pNaviFrame, NULL, NULL, NULL,
+ pNormalView->pMainLayout,
+ "playview/1line");
+
+ Evas_Object *pLeftbtn = elm_button_add(pNormalView->pNaviFrame);
+ elm_object_style_set(pLeftbtn, "back");
+ evas_object_smart_callback_add(pLeftbtn, "clicked",
+ __vp_normal_naviframe_back_btn_cb,
+ (void *) pNormalView);
+ elm_object_item_part_content_set(pNormalView->pNaviItem,
+ "title_left_btn", pLeftbtn);
+ evas_object_show(pLeftbtn);
+
+ elm_naviframe_item_pop_cb_set(pNormalView->pNaviItem,
+ __vp_normal_naviframe_pop_cb,
+ (void *) pNormalView);
+
+ if (!pNormalView->pNaviItem) {
+ VideoLogError("elm_naviframe_item_push fail");
+ return FALSE;
+ }
+
+ elm_object_signal_callback_add(pNormalView->pMainLayout,
+ VP_NORMAL_SIGNAL_MAIN_SHOW_FINISH, "*",
+ __vp_normal_show_finish_cb,
+ (void *) pNormalView);
+ elm_object_signal_callback_add(pNormalView->pMainLayout,
+ VP_NORMAL_SIGNAL_MAIN_HIDE_FINISH, "*",
+ __vp_normal_hide_finish_cb,
+ (void *) pNormalView);
+
+ if (!_vp_play_normal_view_create_top_control(pNormalView)) {
+ VideoLogError("_vp_play_normal_view_create_top_control fail");
+ return FALSE;
+ }
+
+ if (!_vp_play_normal_view_create_main_control(pNormalView)) {
+ VideoLogError("_vp_play_normal_view_create_main_control fail");
+ return FALSE;
+ }
+
+ if (!_vp_play_normal_view_create_function_control(pNormalView)) {
+ VideoLogError("_vp_play_normal_view_create_function_control fail");
+ return FALSE;
+ }
+
+ if (!_vp_play_normal_view_create_progressbar(pNormalView)) {
+ VideoLogError("_vp_play_normal_view_create_progressbar fail");
+ return FALSE;
+ }
+
+ if (!_vp_play_normal_view_create_subtitle(pNormalView)) {
+ VideoLogError("_vp_play_normal_view_create_subtitle fail");
+ return FALSE;
+ }
+
+ if (!_vp_play_normal_view_create_loading_ani(pNormalView)) {
+ VideoLogError("_vp_play_normal_view_create_loading_ani fail");
+ return FALSE;
+ }
+ return TRUE;
+}
+
+/**
+ *
+ * @param pNormalView
+ */
+static void _vp_play_normal_view_destroy_handle(NormalView * pNormalView)
+{
+ if (!pNormalView) {
+ VideoLogError("pNormalView is NULL");
+ return;
+ }
+ VideoLogError("_vp_play_normal_view_destroy Start");
+ vp_language_list_destroy();
+ if (pNormalView->pMainLayout) {
+ elm_object_focus_custom_chain_unset(pNormalView->pMainLayout);
+ }
+
+ if (pNormalView->pPlayerHandle) {
+ vp_mm_player_destroy(pNormalView->pPlayerHandle);
+ pNormalView->pPlayerHandle = NULL;
+ }
+
+ if (pNormalView->pVolumeHandle) {
+ vp_play_volume_destroy(pNormalView->pVolumeHandle);
+ pNormalView->pVolumeHandle = NULL;
+ }
+
+ if (pNormalView->pVolumePopupHandle) {
+ vp_play_volume_popup_destroy(pNormalView->pVolumePopupHandle);
+ pNormalView->pVolumePopupHandle = NULL;
+ }
+
+ if (pNormalView->pBrightnessHandle) {
+ vp_play_brightness_destroy(pNormalView->pBrightnessHandle);
+ pNormalView->pBrightnessHandle = NULL;
+ }
+
+ VP_EVAS_PIPE_DEL(pNormalView->pPreparePipe);
+ VP_EVAS_PIPE_DEL(pNormalView->pSeekPipe);
+
+ VP_EVAS_TIMER_DEL(pNormalView->pSpeedTimer);
+ VP_EVAS_TIMER_DEL(pNormalView->pLockScreenTimer);
+ VP_EVAS_TIMER_DEL(pNormalView->pProgressTimer);
+ VP_EVAS_TIMER_DEL(pNormalView->pExitWaitTimer);
+ VP_EVAS_TIMER_DEL(pNormalView->pMomentTimer);
+
+ if (pNormalView->pProgressEvent) {
+ evas_object_event_callback_del(pNormalView->pProgressEvent,
+ EVAS_CALLBACK_MOUSE_DOWN,
+ __vp_normal_progress_mouse_down_cb);
+
+ evas_object_event_callback_del(pNormalView->pProgressEvent,
+ EVAS_CALLBACK_MOUSE_UP,
+ __vp_normal_progress_mouse_up_cb);
+
+ evas_object_event_callback_del(pNormalView->pProgressEvent,
+ EVAS_CALLBACK_MOUSE_MOVE,
+ __vp_normal_progress_mouse_move_cb);
+ pNormalView->pProgressEvent = NULL;
+ }
+#ifdef K_FEATURE_MICROSEEK
+ VP_EVAS_DEL(pNormalView->pMicroSeekTextLayout);
+ VP_EVAS_DEL(pNormalView->pMicroSeekImageLayout);
+#endif
+#ifdef FLICK_JUMP
+ VP_EVAS_DEL(pNormalView->pFlickJumpSeek);
+#endif
+
+ vp_audio_track_destroy(pNormalView->pAudioTrackHandle);
+ pNormalView->pAudioTrackHandle = NULL;
+
+ vp_share_destroy(pNormalView->pShareHandle);
+ pNormalView->pShareHandle = NULL;
+
+ vp_sound_alive_destroy(pNormalView->pSAHandle);
+ pNormalView->pSAHandle = NULL;
+
+ vp_subtitle_destroy(pNormalView->pSubtitlePopup);
+ pNormalView->pSubtitlePopup = NULL;
+
+ vp_subtitle_sync_popup_destroy(pNormalView->pSubtitleSyncPopup);
+ pNormalView->pSubtitleSyncPopup = NULL;
+
+ vp_subtitle_select_destroy(pNormalView->pSubtitleSelectPopup);
+ pNormalView->pSubtitleSelectPopup = NULL;
+
+ vp_subtitle_font_destroy(pNormalView->pSubtitleFontPopup);
+ pNormalView->pSubtitleFontPopup = NULL;
+
+ vp_subtitle_size_destroy(pNormalView->pSubtitleSizePopup);
+ pNormalView->pSubtitleSizePopup = NULL;
+
+ vp_subtitle_color_destroy(pNormalView->pSubtitleFontColorPopup);
+ pNormalView->pSubtitleFontColorPopup = NULL;
+#ifndef SUBTITLE_K_FEATURE
+ vp_subtitle_bg_color_destroy(pNormalView->pSubtitleBGColorPopup);
+ pNormalView->pSubtitleBGColorPopup = NULL;
+#else
+ vp_subtitle_color_destroy(pNormalView->pSubtitleBGColorPopup);
+ pNormalView->pSubtitleBGColorPopup = NULL;
+#endif
+ vp_subtitle_edge_destroy(pNormalView->pSubtitleEdgePopup);
+ pNormalView->pSubtitleEdgePopup = NULL;
+
+ VP_EVAS_TIMER_DEL(pNormalView->pSubtitleTimer);
+
+ VP_EVAS_TIMER_DEL(pNormalView->pScreenShotTimer);
+ VP_EVAS_DEL(pNormalView->pScreenShot);
+
+ vp_repeat_destroy(pNormalView->pRepeatHandle);
+ pNormalView->pRepeatHandle = NULL;
+
+ vp_play_loading_ani_destroy(pNormalView->pLoadingAni);
+
+ vp_sound_path_destroy(pNormalView->pSoundPathHandle);
+ pNormalView->pSoundPathHandle = NULL;
+
+ vp_setting_destroy(pNormalView->pSettingHandle);
+ pNormalView->pSettingHandle = NULL;
+
+ vp_capture_popup_destroy(pNormalView->pCapturePopup);
+ pNormalView->pCapturePopup = NULL;
+
+ vp_play_speed_popup_destroy(pNormalView->pPlaySpeedPopup);
+ pNormalView->pPlaySpeedPopup = NULL;
+
+ vp_detail_destroy(pNormalView->pDetailHandle);
+ pNormalView->pDetailHandle = NULL;
+
+ vp_zoom_guide_destroy(pNormalView->pZoomGuide);
+ pNormalView->pZoomGuide = NULL;
+
+ VP_EVAS_JOB_DEL(pNormalView->pVolumeJob);
+ VP_EVAS_JOB_DEL(pNormalView->pBrightnessJob);
+
+ if (pNormalView->pMediaKey) {
+ vp_media_key_destroy(pNormalView->pMediaKey);
+ pNormalView->pMediaKey = NULL;
+ }
+ if (pNormalView->pSubtitle) {
+ vp_play_subtitle_destroy(pNormalView->pSubtitle);
+ pNormalView->pSubtitle = NULL;
+ }
+
+ if (pNormalView->pBookmarkHandle) {
+ vp_play_bookmark_destroy(pNormalView->pBookmarkHandle);
+ pNormalView->pBookmarkHandle = NULL;
+ }
+
+ if (pNormalView->pProgressbar) {
+ vp_play_progressbar_destroy(pNormalView->pProgressbar);
+ pNormalView->pProgressbar = NULL;
+ }
+
+ VP_EVAS_TIMER_DEL(pNormalView->pHideTimer);
+ VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+ VP_EVAS_IDLER_DEL(pNormalView->pControlIdler);
+ VP_EVAS_IDLER_DEL(pNormalView->pMultiWinIdler);
+
+ VP_EVAS_DEL(pNormalView->pImageBufferObj);
+
+ VP_EVAS_DEL(pNormalView->pSoundPathBtn);
+ VP_EVAS_DEL(pNormalView->pLockBtn);
+
+ VP_EVAS_DEL(pNormalView->pPopup);
+ VP_EVAS_DEL(pNormalView->pSpeedBoxCtrl);
+ VP_EVAS_DEL(pNormalView->pNextBtn);
+ VP_EVAS_DEL(pNormalView->pPrevBtn);
+ VP_EVAS_DEL(pNormalView->pPauseBtn);
+ VP_EVAS_DEL(pNormalView->pResumeBtn);
+ VP_EVAS_DEL(pNormalView->pPlayFocusBtn);
+
+ VP_EVAS_DEL(pNormalView->pRotateBtn);
+ VP_EVAS_DEL(pNormalView->pVolumeBtn);
+ VP_EVAS_DEL(pNormalView->pScreenSizeBtn);
+ VP_EVAS_DEL(pNormalView->pBookmarkBtn);
+ VP_EVAS_DEL(pNormalView->pMultiWinBtn);
+ VP_EVAS_DEL(pNormalView->pRepeatBtn);
+ VP_EVAS_DEL(pNormalView->pTrimBtn);
+ VP_EVAS_DEL(pNormalView->pSoundAliveBtn);
+ VP_EVAS_DEL(pNormalView->pShareBtn);
+
+ VP_EVAS_DEL(pNormalView->pCtxPopup);
+
+ VP_EVAS_DEL(pNormalView->pBackBtn);
+ VP_EVAS_DEL(pNormalView->pMoreBtn);
+ VP_EVAS_DEL(pNormalView->pCaptureRewBtn);
+ VP_EVAS_DEL(pNormalView->pCaptureBtn);
+ VP_EVAS_DEL(pNormalView->pCaptureFFBtn);
+
+ VP_EVAS_DEL(pNormalView->pMainEventRect);
+ VP_EVAS_DEL(pNormalView->pGestureRect);
+
+ VP_EVAS_DEL(pNormalView->pFunctionLayout);
+ VP_EVAS_DEL(pNormalView->pTopControlLayout);
+ VP_EVAS_DEL(pNormalView->pControlLayout);
+ VP_EVAS_DEL(pNormalView->pNaviRightBtn);
+ VP_EVAS_DEL(pNormalView->pNaviLeftBtn);
+#ifdef _NATIVE_BUFFER_SYNC
+ VP_EVAS_DEL(pNormalView->pVideoSink);
+#endif
+ VP_EVAS_DEL(pNormalView->pMainLayout);
+
+ VP_FREE(pNormalView->szMediaURL);
+ VP_FREE(pNormalView->szSubtitleURL);
+ VP_FREE(pNormalView->szScreenMirrorMacAddr);
+#ifdef _SUBTITLE_MULTI_LANGUAGE
+ VP_FREE(pNormalView->pSelectedSubtitleLanguage);
+#endif
+ VP_FREE(pNormalView);
+ VideoLogError("_vp_play_normal_view_destroy End");
+}
+
+/**
+ *
+ * @param data
+ * @param pipeData
+ * @param nbyte
+ */
+static void _vp_play_normal_view_prepare_pipe_cb(void *data,
+ void *pipeData,
+ unsigned int nbyte)
+{
+ if (!data) {
+ VideoLogError("data is NULL");
+ return;
+ }
+ VideoLogInfo("");
+
+ NormalView *pNormalView = (NormalView *) data;
+ bool bLCDOffStatus = FALSE;
+
+ vp_mm_player_set_rate(pNormalView->pPlayerHandle,
+ (float) pNormalView->fPlaySpeed);
+
+ vp_play_config_get_lcd_off_state(&bLCDOffStatus);
+ PlayView *pPlayView = pNormalView->pPlayView;
+ if (!pPlayView) {
+ VideoLogError("pPlayView handle is NULL");
+ return;
+ }
+
+ if (!pPlayView->pWin) {
+ VideoLogError("pPlayView->pWin handle is NULL");
+ return;
+ }
+
+ if (bLCDOffStatus && (pNormalView->bVideoOnlyMode == FALSE)) {
+ VideoLogError("Invalid LCD Status");
+
+ pPlayView->pFunc->vp_play_func_exit(pPlayView);
+ return;
+ }
+
+ int nDuration = 0;
+ if (!vp_mm_player_get_duration(pNormalView->pPlayerHandle, &nDuration)) {
+ VideoLogError("vp_mm_player_get_duration is fail");
+ }
+ if (pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_WEB
+ && nDuration == 0) {
+ pNormalView->bHLSMode = TRUE;
+ } else {
+ pNormalView->bHLSMode = FALSE;
+ }
+
+ if (pPlayView->bAVRCP) {
+ const char *navi_title =
+ elm_object_item_text_get(pNormalView->pNaviItem);
+ vp_avrcp_noti_track(navi_title, "Unknown", "Unknown", "Unknown",
+ nDuration);
+ }
+
+ if (pNormalView->bHLSMode == FALSE) {
+ pNormalView->nDuration = nDuration;
+ vp_play_progressbar_set_duration(pNormalView->pProgressbar,
+ nDuration);
+ }
+
+ if (vp_mm_player_is_closed_caption_exist(pNormalView->pPlayerHandle)) {
+ pNormalView->bIsExistSubtitle = TRUE;
+ }
+
+ if (pNormalView->bIsExistSubtitle) {
+ _vp_play_normal_view_set_subtitle_font_config(pNormalView);
+ }
+
+ vp_play_progressbar_set_position(pNormalView->pProgressbar,
+ pNormalView->nStartPosition);
+ _vp_play_normal_view_check_audio_only(pNormalView);
+
+ if (pNormalView->nStartPosition > 0) {
+ pNormalView->bSeekComplete = FALSE;
+ if (vp_mm_player_set_position
+ (pNormalView->pPlayerHandle,
+ pNormalView->nStartPosition) == FALSE) {
+ VideoLogWarning("vp_mm_player_set_position error");
+ return;
+ }
+ } else {
+ if (pPlayView->bAVRCP) {
+ vp_avrcp_noti_track_position(0);
+ }
+ }
+
+ pNormalView->bIsRealize = TRUE;
+ pNormalView->bSeekComplete = TRUE;
+#if 1
+ if (vp_play_util_check_streaming(pNormalView->szMediaURL)) {
+ if (pNormalView->bBufferingComplete == FALSE) {
+ VideoLogWarning("Skip for buffering state");
+ return;
+ }
+ }
+#endif
+ if (pNormalView->pLoadingAni) {
+ _vp_play_normal_view_create_layout_hide_timer(pNormalView);
+ vp_play_loading_ani_destroy(pNormalView->pLoadingAni);
+ pNormalView->pLoadingAni = NULL;
+ }
+
+ bool bXwincheck = TRUE;
+ if (vp_play_util_is_Xwindow_focused(pNormalView->nXwinID) == FALSE) {
+ VideoLogWarning
+ ("CASE : Not a splite view and Not focused state in mainwindow[%p]",
+ pPlayView->pWin);
+ bXwincheck = FALSE;
+ }
+
+ if (pNormalView->nStartPosition <= 0) {
+ if (pNormalView->bManualPause || bXwincheck == FALSE
+ || _vp_play_normal_view_check_during_call(pNormalView)) {
+ vp_mm_player_set_visible(pNormalView->pPlayerHandle, TRUE);
+ vp_mm_player_pause(pNormalView->pPlayerHandle);
+ } else {
+ vp_mm_player_play(pNormalView->pPlayerHandle);
+ }
+ }
+
+ if (!vp_mm_player_set_subtitle_position
+ (pNormalView->pPlayerHandle,
+ pNormalView->fSubtitleSyncValue * 1000)) {
+ VideoLogError("vp_mm_player_set_subtitle_position is fail");
+ }
+
+ if (pPlayView->win_minicon) {
+ vp_minicontroller_update_control(pPlayView);
+ }
+ if (pPlayView->win_lockmini) {
+ vp_lockscreenmini_update_control(pPlayView);
+ }
+ _vp_play_normal_view_set_play_state(pNormalView);
+ _vp_play_normal_view_on_capture_mode(pNormalView);
+
+}
+
+/**
+ *
+ * @param pNormalView
+ * @param pPlayView
+ * @param path
+ */
+void vp_check_is_live_streming(NormalView *pNormalView, PlayView * pPlayView, char *path)
+{
+ /* Supported streaming protocols */
+ char streamingProtocols[VP_NORMAL_STREAMING_PROTOCOLS_MAX][VP_NORMAL_MAX_STR_LEN] = {
+ "http://",
+ "rtsp://"
+ };
+
+ int ctr;
+
+ pNormalView->isLiveStreaming = false;
+ pPlayView->isLiveStreaming = false;
+
+ for (ctr = 0; ctr < VP_NORMAL_STREAMING_PROTOCOLS_MAX; ctr++) {
+ if (!strncmp(streamingProtocols[ctr], path, strlen(streamingProtocols[ctr]))) {
+ pNormalView->isLiveStreaming = true;
+ pPlayView->isLiveStreaming = true;
+ break;
+ }
+ }
+}
+
+/**
+ *
+ * @param pPlayView
+ * @param nLaunchingType
+ * @return
+ */
+normal_view_handle vp_play_normal_view_create(PlayView * pPlayView,
+ video_play_launching_type_t
+ nLaunchingType)
+{
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return NULL;
+ }
+
+ NormalView *pNormalView = NULL;
+
+ pNormalView = calloc(1, sizeof(NormalView));
+
+ if (!pNormalView) {
+ VideoLogError("pNormalView alloc fail");
+ return NULL;
+ }
+
+ int nScreenMode = VP_MM_PLAYER_DISPLAY_LETTER_BOX;
+ vp_play_preference_get_screen_mode_key(&nScreenMode);
+ if ((nScreenMode != VP_MM_PLAYER_DISPLAY_LETTER_BOX)
+ && (nScreenMode != VP_MM_PLAYER_DISPLAY_FULL_SCREEN)) {
+ nScreenMode = VP_MM_PLAYER_DISPLAY_LETTER_BOX;
+ vp_play_preference_set_screen_mode_key
+ (VP_MM_PLAYER_DISPLAY_LETTER_BOX);
+ }
+ pNormalView->nDisplayMode = nScreenMode;
+
+ pNormalView->pPlayView = pPlayView;
+ pNormalView->pNaviFrame = pPlayView->pNaviframe;
+ pNormalView->nXwinID = elm_win_xwindow_get(pPlayView->pWin);
+ pNormalView->nLaunchingType = nLaunchingType;
+ pNormalView->nStartPosition = 0;
+ pNormalView->nRepeatMode = VIDEO_PLAY_REPEAT_NONE;
+ pNormalView->bManualPause = FALSE;
+ pNormalView->nWaitPos = -1;
+ pNormalView->fPlaySpeed = pPlayView->fPlaySpeed;
+ pNormalView->fSubtitleSyncValue = pPlayView->fSubtitleSyncValue;
+ curr_Handle = pNormalView;
+ elm_object_focus_allow_set(pNormalView->pNaviFrame, EINA_TRUE);
+ elm_object_tree_focus_allow_set(pNormalView->pNaviFrame, EINA_TRUE);
+ elm_object_focus_set(pNormalView->pNaviFrame, EINA_TRUE);
+
+ // create prepare_cb pipe
+ VP_EVAS_PIPE_DEL(pNormalView->pPreparePipe);
+ pNormalView->pPreparePipe =
+ ecore_pipe_add((Ecore_Pipe_Cb)
+ _vp_play_normal_view_prepare_pipe_cb,
+ (void *) pNormalView);
+
+ VP_EVAS_PIPE_DEL(pNormalView->pSeekPipe);
+ pNormalView->pSeekPipe =
+ ecore_pipe_add((Ecore_Pipe_Cb) __vp_play_normal_view_seek_pipe_cb,
+ (void *) pNormalView);
+#ifndef _PERF_TEST_
+ if (!_vp_play_normal_view_init_layout(pNormalView)) {
+ VideoLogError("_vp_play_normal_view_init_layout is fail");
+ return NULL;
+ }
+#endif
+ bool bMultiPlay = TRUE;
+ vp_play_preference_get_multi_play_status(&bMultiPlay);
+ if (bMultiPlay) {
+ vp_play_preference_set_multi_play_status(FALSE);
+ }
+
+ return (normal_view_handle) pNormalView;
+}
+
+/**
+ *
+ * @param pPlayView
+ * @param pViewHandle
+ */
+void vp_play_normal_view_key_create(PlayView * pPlayView,
+ normal_view_handle pViewHandle)
+{
+ if (!pViewHandle) {
+ VideoLogError("pViewHandle is NULL");
+ return;
+ }
+
+ NormalView *pNormalView = (NormalView *) pViewHandle;
+ pNormalView->pMediaKey =
+ vp_media_key_create(pPlayView->pWin,
+ __vp_normal_media_key_event_cb);
+ vp_media_key_set_user_data(pNormalView->pMediaKey,
+ (void *) pNormalView);
+ vp_media_key_realize(pNormalView->pMediaKey);
+}
+
+/**
+ *
+ * @param pViewHandle
+ */
+void vp_play_normal_view_destroy(normal_view_handle pViewHandle)
+{
+ if (!pViewHandle) {
+ VideoLogError("pViewHandle is NULL");
+ return;
+ }
+
+ NormalView *pNormalView = (NormalView *) pViewHandle;
+ PlayView *pPlayView = pNormalView->pPlayView;
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ } else {
+ if (pPlayView->win_minicon) {
+ vp_minicontroller_destroy(pPlayView);
+ }
+ }
+ elm_access_object_unregister(pNormalView->pMainLayout);
+ elm_object_focus_allow_set(pNormalView->pNaviFrame, EINA_FALSE);
+ elm_object_tree_focus_allow_set(pNormalView->pNaviFrame, EINA_FALSE);
+ elm_object_focus_set(pNormalView->pNaviFrame, EINA_FALSE);
+
+ pNormalView->bDestroyNavi = TRUE;
+
+ elm_naviframe_item_pop(pNormalView->pNaviFrame);
+
+ _vp_play_normal_view_destroy_handle(pNormalView);
+ curr_Handle = NULL;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @return
+ */
+bool vp_play_normal_view_realize(normal_view_handle pViewHandle)
+{
+ if (!pViewHandle) {
+ VideoLogError("pViewHandle is NULL");
+ return FALSE;
+ }
+
+ NormalView *pNormalView = (NormalView *) pViewHandle;
+ PlayView *pPlayView = pNormalView->pPlayView;
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return FALSE;
+ }
+
+ if (!pNormalView->pLoadingAni) {
+ if (!_vp_play_normal_view_create_loading_ani(pNormalView)) {
+ VideoLogWarning
+ ("_vp_play_normal_view_create_loading_ani fail");
+ }
+ }
+
+ /* There is no repeat setting for these modes */
+ if (pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_WEB) {
+ pNormalView->nRepeatMode = VIDEO_PLAY_REPEAT_NONE;
+ } else if (pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_MULTI_PATH) {
+ if (pPlayView->bStopAfterRepeat == TRUE) {
+ pNormalView->nRepeatMode = VIDEO_PLAY_REPEAT_ALL_STOP;
+ } else {
+ pNormalView->nRepeatMode = VIDEO_PLAY_REPEAT_NONE;
+ }
+ } else {
+ int nVal = 0;
+ vp_play_preference_get_repeat_mode_key(&nVal);
+ pNormalView->nRepeatMode = (video_play_repeat_mode_t) nVal;
+ }
+
+ int nScreenMode = 0;
+ vp_play_preference_get_screen_mode_key(&nScreenMode);
+ pNormalView->nDisplayMode = (vp_mm_player_display_mode_t) nScreenMode;
+
+ pNormalView->bSeekComplete = TRUE;
+ pNormalView->bIsActive = TRUE;
+ VideoLogInfo("vp_play_normal_view_realize");
+
+ if (pNormalView->pMediaItemList) {
+ vp_media_contents_free_video_items(pNormalView->pMediaItemList);
+ pNormalView->pMediaItemList = NULL;
+ }
+
+ video_play_sort_type_t nType = VIDEO_SORT_BY_NONE;
+ int nSortVal = 0;
+ vp_play_config_get_sort_type_key(&nSortVal);
+ nType = (video_play_sort_type_t) nSortVal;
+
+ _vp_play_normal_view_set_volume_state(pNormalView);
+
+ vp_check_is_live_streming(pNormalView, pPlayView, pNormalView->szMediaURL);
+
+ if (pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_GALLERY
+ || pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_MYFILE) {
+ char *szFolder =
+ vp_play_util_get_folder_from_path(pNormalView->szMediaURL);
+ vp_media_contents_get_video_items_to_folder
+ (VIDEO_SORT_BY_DATE_MOST_RECENT, szFolder,
+ &(pNormalView->pMediaItemList));
+ VP_FREE(szFolder);
+ } else if (pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_MULTI_PATH) {
+ } else {
+ if (pPlayView->nListType == VIDEO_PLAY_LIST_TYPE_FOLDER) {
+ char *szFolder =
+ vp_play_util_get_folder_from_path(pNormalView->szMediaURL);
+ vp_media_contents_get_video_items_to_folder(nType, szFolder,
+ &(pNormalView->
+ pMediaItemList));
+ VP_FREE(szFolder);
+ } else {
+ vp_media_contents_get_video_items(nType,
+ &(pNormalView->
+ pMediaItemList));
+ }
+ }
+#ifdef _PERF_TEST_
+ if (!_vp_play_normal_view_play_start(pNormalView, TRUE)) {
+ VideoLogError("_vp_play_normal_view_play_start is Fail");
+ return FALSE;
+ }
+
+ _vp_play_normal_view_init_layout(pNormalView);
+ _vp_play_normal_view_hide_layout(pNormalView, TRUE);
+#else
+ _vp_play_normal_view_hide_layout(pNormalView, TRUE);
+
+ if (!_vp_play_normal_view_play_start(pNormalView, TRUE)) {
+ VideoLogError("_vp_play_normal_view_play_start is Fail");
+ return FALSE;
+ }
+#endif
+ _vp_play_normal_view_set_rotate_lock_state(pNormalView);
+ _vp_play_normal_view_set_volume_lock_state(pNormalView);
+
+ vp_play_preference_set_allow_dock_connect_key(FALSE);
+
+ elm_object_signal_emit(pNormalView->pMainLayout,
+ VP_NORMAL_SIGNAL_VIDEO_ON, "*");
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @return
+ */
+bool vp_play_normal_view_unrealize(normal_view_handle pViewHandle)
+{
+ if (!pViewHandle) {
+ VideoLogError("pViewHandle is NULL");
+ return FALSE;
+ }
+
+ NormalView *pNormalView = (NormalView *) pViewHandle;
+ if (pNormalView->pNaviItem) {
+ elm_object_item_text_set(pNormalView->pNaviItem, "");
+ }
+ elm_object_signal_emit(pNormalView->pMainLayout,
+ VP_NORMAL_SIGNAL_VIDEO_OFF, "*");
+
+ _vp_play_normal_view_set_played_time(pNormalView);
+
+ pNormalView->bIsActive = FALSE;
+ pNormalView->bIsExistSubtitle = FALSE;
+ VP_FREE(pNormalView->szSubtitleURL);
+ VideoLogInfo("vp_play_normal_view_unrealize");
+
+ if (pNormalView->pMediaItemList) {
+ vp_media_contents_free_video_items(pNormalView->pMediaItemList);
+ pNormalView->pMediaItemList = NULL;
+ }
+
+ if (pNormalView->pDetailHandle) {
+ vp_detail_destroy(pNormalView->pDetailHandle);
+ pNormalView->pDetailHandle = NULL;
+ }
+ vp_sound_unset_earjack_connection_changed_cb();
+ vp_play_preference_set_allow_dock_connect_key(TRUE);
+
+ vp_device_set_screen_off(FALSE);
+ vp_play_util_set_unlock_power_key();
+ vp_device_set_frame_rate(60);
+
+ VP_EVAS_TIMER_DEL(pNormalView->pSpeedTimer);
+ VP_EVAS_TIMER_DEL(pNormalView->pHideTimer);
+ VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+ VP_EVAS_TIMER_DEL(pNormalView->pSubtitleTimer);
+ VP_EVAS_TIMER_DEL(pNormalView->pProgressTimer);
+ VP_EVAS_TIMER_DEL(pNormalView->pLockScreenTimer);
+#ifdef _NATIVE_BUFFER_SYNC
+ VP_EVAS_DEL(pNormalView->pVideoSink);
+#endif
+
+ if (pNormalView->pPlayerHandle && !pNormalView->bAudioOnly) { //check here
+ vp_mm_player_destroy(pNormalView->pPlayerHandle);
+ pNormalView->pPlayerHandle = NULL;
+ }
+
+ pNormalView->bIsRealize = FALSE;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param bIsRealize
+ * @return
+ */
+bool vp_play_normal_view_is_realize(normal_view_handle pViewHandle,
+ bool * bIsRealize)
+{
+ if (!pViewHandle) {
+ VideoLogError("pViewHandle is NULL");
+ return FALSE;
+ }
+
+ NormalView *pNormalView = (NormalView *) pViewHandle;
+
+ *bIsRealize = pNormalView->bIsRealize;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @return
+ */
+bool vp_play_normal_view_pause(normal_view_handle pViewHandle)
+{
+ if (!pViewHandle) {
+ VideoLogError("pViewHandle is NULL");
+ return FALSE;
+ }
+
+ NormalView *pNormalView = (NormalView *) pViewHandle;
+ PlayView *pPlayView = pNormalView->pPlayView;
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ }
+
+ vp_mm_player_pause(pNormalView->pPlayerHandle);
+ _vp_play_normal_view_set_play_state(pNormalView);
+ if (pPlayView && pPlayView->win_minicon) {
+ vp_minicontroller_update_control(pPlayView);
+ }
+ if (pPlayView && pPlayView->win_lockmini) {
+ vp_lockscreenmini_update_control(pPlayView);
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @return
+ */
+bool vp_play_normal_view_resume_or_pause(normal_view_handle pViewHandle)
+{
+ if (!pViewHandle) {
+ VideoLogError("[ERR] No Exist pUserData.");
+ return FALSE;
+ }
+
+ NormalView *pNormalView = (NormalView *) pViewHandle;
+ PlayView *pPlayView = pNormalView->pPlayView;
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ }
+ vp_mm_player_state_t nState = VP_MM_PLAYER_STATE_NONE;
+
+ if (!vp_mm_player_get_state(pNormalView->pPlayerHandle, &nState)) {
+ VideoLogWarning("vp_mm_player_get_state is fail");
+ }
+
+ switch (nState) {
+ case VP_MM_PLAYER_STATE_NONE:
+ case VP_MM_PLAYER_STATE_IDLE:
+ case VP_MM_PLAYER_STATE_READY:
+ case VP_MM_PLAYER_STATE_PAUSED:
+ _vp_play_normal_view_all_close_popup(pNormalView);
+ if (!_vp_play_normal_view_check_during_call(pNormalView))
+ vp_mm_player_play(pNormalView->pPlayerHandle);
+ break;
+ case VP_MM_PLAYER_STATE_PLAYING:
+ vp_mm_player_pause(pNormalView->pPlayerHandle);
+ break;
+ case VP_MM_PLAYER_STATE_STOP:
+ break;
+ }
+
+ if (pPlayView && pPlayView->win_minicon) {
+ vp_minicontroller_update_control(pPlayView);
+ }
+ if (pPlayView && pPlayView->win_lockmini) {
+ vp_lockscreenmini_update_control(pPlayView);
+ }
+ _vp_play_normal_view_set_play_state(pNormalView);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @return
+ */
+bool vp_play_normal_view_next_play(normal_view_handle pViewHandle)
+{
+ if (!pViewHandle) {
+ VideoLogError("pViewHandle is NULL");
+ return FALSE;
+ }
+
+ NormalView *pNormalView = (NormalView *) pViewHandle;
+
+ _vp_play_normal_view_on_next_play(pNormalView, TRUE);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @return
+ */
+bool vp_play_normal_view_prev_play(normal_view_handle pViewHandle)
+{
+ if (!pViewHandle) {
+ VideoLogError("pViewHandle is NULL");
+ return FALSE;
+ }
+
+ NormalView *pNormalView = (NormalView *) pViewHandle;
+
+ _vp_play_normal_view_on_prev_play(pNormalView, TRUE, FALSE);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param szMediaURL
+ * @return
+ */
+bool vp_play_normal_view_set_url(normal_view_handle pViewHandle,
+ const char *szMediaURL)
+{
+ if (!pViewHandle) {
+ VideoLogError("pViewHandle is NULL");
+ return FALSE;
+ }
+
+ if (!szMediaURL) {
+ VideoLogError("szMediaURL is NULL");
+ return FALSE;
+ }
+
+ NormalView *pNormalView = (NormalView *) pViewHandle;
+
+ VP_FREE(pNormalView->szMediaURL);
+ VP_STRDUP(pNormalView->szMediaURL, szMediaURL);
+
+ return TRUE;
+
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @return
+ */
+bool vp_play_normal_view_stop_player(normal_view_handle pViewHandle)
+{
+ if (!pViewHandle) {
+ VideoLogError("pViewHandle is NULL");
+ return FALSE;
+ }
+
+ NormalView *pNormalView = (NormalView *) pViewHandle;
+ if (!(vp_mm_player_stop(pNormalView->pPlayerHandle))) {
+ VideoLogError("player_stop failed");
+ return FALSE;
+ }
+ return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param bVideoOnly
+ * @return
+ */
+bool vp_play_normal_view_set_video_only(normal_view_handle pViewHandle,
+ bool bVideoOnly)
+{
+ if (!pViewHandle) {
+ VideoLogError("pViewHandle is NULL");
+ return FALSE;
+ }
+
+ NormalView *pNormalView = (NormalView *) pViewHandle;
+
+ PlayView *pPlayView = pNormalView->pPlayView;
+
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return FALSE;
+ }
+
+ pNormalView->bVideoOnlyMode = bVideoOnly;
+
+ vp_mm_player_state_t nState = VP_MM_PLAYER_STATE_NONE;
+ if (!vp_mm_player_get_state(pNormalView->pPlayerHandle, &nState)) {
+ VideoLogWarning("vp_mm_player_get_state is fail");
+ }
+
+ if (nState != VP_MM_PLAYER_STATE_NONE
+ && nState != VP_MM_PLAYER_STATE_IDLE) {
+ vp_play_subtitle_set_text(pNormalView->pSubtitle, "");
+ }
+
+ if (bVideoOnly == TRUE) {
+ if (pNormalView->pImageBufferObj) {
+ elm_object_part_content_unset(pNormalView->pMainLayout,
+ VP_PLAY_SWALLOW_NORMAL_IMAGE_BUFFER);
+ VP_EVAS_DEL(pNormalView->pImageBufferObj);
+ }
+
+ elm_object_signal_emit(pNormalView->pMainLayout,
+ VP_NORMAL_SIGNAL_NO_CONTNES_SHOW, "*");
+
+ VP_EVAS_DISABLE_SET(pNormalView->pSoundPathBtn, EINA_TRUE);
+
+ if (pNormalView->pRotateBtn) {
+ _vp_play_normal_view_set_rotate_lock_state(pNormalView);
+ _vp_play_normal_view_set_volume_lock_state(pNormalView);
+ }
+
+ VP_EVAS_DISABLE_SET(pNormalView->pScreenSizeBtn, EINA_TRUE);
+ VP_EVAS_DISABLE_SET(pNormalView->pBookmarkBtn, EINA_TRUE);
+ VP_EVAS_DISABLE_SET(pNormalView->pMultiWinBtn, EINA_TRUE);
+ VP_EVAS_DISABLE_SET(pNormalView->pRepeatBtn, EINA_TRUE);
+ VP_EVAS_DISABLE_SET(pNormalView->pTrimBtn, EINA_TRUE);
+ VP_EVAS_DISABLE_SET(pNormalView->pShareBtn, EINA_TRUE);
+ } else {
+ elm_object_signal_emit(pNormalView->pMainLayout,
+ VP_NORMAL_SIGNAL_NO_CONTNES_HIDE, "*");
+
+ VP_FREE(pNormalView->szScreenMirrorMacAddr);
+ if (pNormalView->pRotateBtn) {
+ _vp_play_normal_view_set_rotate_lock_state(pNormalView);
+ _vp_play_normal_view_set_volume_lock_state(pNormalView);
+ }
+ VP_EVAS_DISABLE_SET(pNormalView->pScreenSizeBtn, EINA_FALSE);
+ VP_EVAS_DISABLE_SET(pNormalView->pRepeatBtn, EINA_FALSE);
+ if (pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_EMAIL) {
+ char *szMediaID = NULL;
+ bool bReturn = FALSE;
+ bReturn =
+ vp_media_contents_get_video_id(pNormalView->szMediaURL,
+ &szMediaID);
+
+ if (szMediaID && bReturn) {
+ VP_EVAS_DISABLE_SET(pNormalView->pTrimBtn, EINA_FALSE);
+ } else {
+ VP_EVAS_DISABLE_SET(pNormalView->pTrimBtn, EINA_TRUE);
+ }
+ VP_FREE(szMediaID);
+ } else {
+ VP_EVAS_DISABLE_SET(pNormalView->pTrimBtn, EINA_FALSE);
+ }
+ VP_EVAS_DISABLE_SET(pNormalView->pSoundAliveBtn, EINA_FALSE);
+
+ if (pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_MULTI_PATH) {
+ if (vp_play_util_check_streaming(pNormalView->szMediaURL) ==
+ TRUE) {
+ VP_EVAS_DISABLE_SET(pNormalView->pShareBtn, EINA_TRUE);
+ } else {
+ VP_EVAS_DISABLE_SET(pNormalView->pShareBtn, EINA_FALSE);
+ }
+ } else {
+ VP_EVAS_DISABLE_SET(pNormalView->pShareBtn, EINA_FALSE);
+ }
+
+ VP_EVAS_DISABLE_SET(pNormalView->pBookmarkBtn, EINA_FALSE);
+ VP_EVAS_DISABLE_SET(pNormalView->pMultiWinBtn, EINA_FALSE);
+
+ vp_play_progressbar_set_opacity(pNormalView->pProgressbar, FALSE);
+ }
+
+ _vp_play_normal_view_on_capture_mode(pNormalView);
+ _vp_play_normal_view_set_play_state(pNormalView);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param nStartPosition
+ * @return
+ */
+bool vp_play_normal_view_set_start_position(normal_view_handle pViewHandle,
+ int nStartPosition)
+{
+ if (!pViewHandle) {
+ VideoLogError("pViewHandle is NULL");
+ return FALSE;
+ }
+
+ if (nStartPosition < 0) {
+ VideoLogError("szMediaURL is NULL");
+ return FALSE;
+ }
+
+ NormalView *pNormalView = (NormalView *) pViewHandle;
+
+ pNormalView->nStartPosition = nStartPosition;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param nCurPos
+ * @return
+ */
+bool vp_play_normal_view_get_last_position(normal_view_handle pViewHandle,
+ int *nCurPos)
+{
+ if (!pViewHandle) {
+ VideoLogError("pViewHandle is NULL");
+ return FALSE;
+ }
+
+ NormalView *pNormalView = (NormalView *) pViewHandle;
+
+ int nPosition = 0;
+
+ if (pNormalView->bHLSMode) {
+ *nCurPos = 0;
+ return TRUE;
+ }
+
+ if (!vp_mm_player_get_position(pNormalView->pPlayerHandle, &nPosition)) {
+ VideoLogError("vp_mm_player_get_position is fail");
+ return FALSE;
+ }
+
+ pNormalView->nCurPosition = nPosition;
+
+ *nCurPos = pNormalView->nCurPosition;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param szSubtitle
+ * @return
+ */
+bool vp_play_normal_view_set_subtitle(normal_view_handle pViewHandle,
+ char *szSubtitle)
+{
+ if (!pViewHandle) {
+ VideoLogError("pViewHandle is NULL");
+ return FALSE;
+ }
+
+ NormalView *pNormalView = (NormalView *) pViewHandle;
+
+ VP_FREE(pNormalView->szSubtitleURL);
+
+ if (vp_file_exists(szSubtitle)) {
+ VP_STRDUP(pNormalView->szSubtitleURL, szSubtitle);
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param szSubtitle
+ * @return
+ */
+bool vp_play_normal_view_get_subtitle(normal_view_handle pViewHandle,
+ char **szSubtitle)
+{
+ if (!pViewHandle) {
+ VideoLogError("pViewHandle is NULL");
+ return FALSE;
+ }
+
+ NormalView *pNormalView = (NormalView *) pViewHandle;
+
+ if (!vp_mm_player_get_subtitle_url
+ (pNormalView->pPlayerHandle, szSubtitle)) {
+ VideoLogError("vp_mm_player_get_subtitle_url is fail");
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param nDuration
+ * @return
+ */
+bool vp_play_normal_view_get_video_duration(normal_view_handle pViewHandle,
+ int *nDuration)
+{
+ if (!pViewHandle || !nDuration) {
+ VideoLogError("pViewHandle is NULL");
+ return FALSE;
+ }
+
+ NormalView *pNormalView = (NormalView *) pViewHandle;
+ *nDuration = pNormalView->nDuration;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param nAudioTrack
+ * @return
+ */
+bool vp_play_normal_view_get_audio_track(normal_view_handle pViewHandle,
+ int *nAudioTrack)
+{
+ if (!pViewHandle) {
+ VideoLogError("pViewHandle is NULL");
+ return FALSE;
+ }
+
+ NormalView *pNormalView = (NormalView *) pViewHandle;
+
+ *nAudioTrack = pNormalView->nDefaultAudioTrackIndex;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param nAudioTrack
+ * @return
+ */
+bool vp_play_normal_view_set_audio_track(normal_view_handle pViewHandle,
+ int nAudioTrack)
+{
+ if (!pViewHandle) {
+ VideoLogError("pViewHandle is NULL");
+ return FALSE;
+ }
+
+ NormalView *pNormalView = (NormalView *) pViewHandle;
+
+ pNormalView->nDefaultAudioTrackIndex = nAudioTrack;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param bManualPause
+ * @return
+ */
+bool vp_play_normal_view_set_manual_pause(normal_view_handle pViewHandle,
+ bool bManualPause)
+{
+ if (!pViewHandle) {
+ VideoLogError("pViewHandle is NULL");
+ return FALSE;
+ }
+
+ NormalView *pNormalView = (NormalView *) pViewHandle;
+
+ pNormalView->bManualPause = bManualPause;
+
+ return TRUE;
+
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param bManualPause
+ * @return
+ */
+bool vp_play_normal_view_get_manual_pause(normal_view_handle pViewHandle,
+ bool * bManualPause)
+{
+ if (!pViewHandle) {
+ VideoLogError("pViewHandle is NULL");
+ return FALSE;
+ }
+
+ NormalView *pNormalView = (NormalView *) pViewHandle;
+
+ *bManualPause = pNormalView->bManualPause;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ */
+void vp_play_normal_check_detail_view(normal_view_handle pViewHandle)
+{
+
+ if (!pViewHandle) {
+ VideoLogError("pViewHandle is NULL");
+ return;
+ }
+
+ NormalView *pNormalView = (NormalView *) pViewHandle;
+
+ if (pNormalView->pDetailHandle) {
+ vp_detail_destroy(pNormalView->pDetailHandle);
+ pNormalView->pDetailHandle = NULL;
+ }
+
+ return;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param bPause
+ * @return
+ */
+bool vp_play_normal_view_get_pause_status(normal_view_handle pViewHandle,
+ bool * bPause)
+{
+ if (!pViewHandle) {
+ VideoLogError("pViewHandle is NULL");
+ return FALSE;
+ }
+
+ NormalView *pNormalView = (NormalView *) pViewHandle;
+ vp_mm_player_state_t nState = VP_MM_PLAYER_STATE_NONE;
+
+ if (!vp_mm_player_get_state(pNormalView->pPlayerHandle, &nState)) {
+ VideoLogWarning("vp_mm_player_get_state is fail");
+ }
+
+
+ if (nState == VP_MM_PLAYER_STATE_PLAYING) {
+ *bPause = FALSE;
+ } else {
+ *bPause = TRUE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param nSoundAlive
+ * @return
+ */
+bool vp_play_normal_view_get_sound_filter(normal_view_handle pViewHandle,
+ video_sound_alive_t *
+ nSoundAlive)
+{
+ if (!pViewHandle) {
+ VideoLogError("pViewHandle is NULL");
+ return FALSE;
+ }
+
+ NormalView *pNormalView = (NormalView *) pViewHandle;
+
+ *nSoundAlive = pNormalView->nSoundAlive;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param nSoundAlive
+ * @return
+ */
+bool vp_play_normal_view_set_sound_filter(normal_view_handle pViewHandle,
+ video_sound_alive_t nSoundAlive)
+{
+ if (!pViewHandle) {
+ VideoLogError("pViewHandle is NULL");
+ return FALSE;
+ }
+
+ NormalView *pNormalView = (NormalView *) pViewHandle;
+
+ pNormalView->nSoundAlive = nSoundAlive;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param nRotate
+ * @param bLayoutHide
+ * @return
+ */
+bool vp_play_normal_view_set_rotate(normal_view_handle pViewHandle,
+ video_play_rotate_t nRotate,
+ bool bLayoutHide)
+{
+ if (!pViewHandle) {
+ VideoLogError("pViewHandle is NULL");
+ return FALSE;
+ }
+
+ NormalView *pNormalView = (NormalView *) pViewHandle;
+ PlayView *pPlayView = pNormalView->pPlayView;
+
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return FALSE;
+ }
+
+ if (nRotate == VIDEO_PLAY_ROTATE_NONE) {
+ vp_mm_player_set_video_rotate(pNormalView->pPlayerHandle,
+ VP_MM_PLAYER_ROTATE_0);
+ } else if (nRotate == VIDEO_PLAY_ROTATE_90) {
+ vp_mm_player_set_video_rotate(pNormalView->pPlayerHandle,
+ VP_MM_PLAYER_ROTATE_90);
+ } else if (nRotate == VIDEO_PLAY_ROTATE_180) {
+ vp_mm_player_set_video_rotate(pNormalView->pPlayerHandle,
+ VP_MM_PLAYER_ROTATE_180);
+ } else if (nRotate == VIDEO_PLAY_ROTATE_270) {
+ vp_mm_player_set_video_rotate(pNormalView->pPlayerHandle,
+ VP_MM_PLAYER_ROTATE_270);
+ }
+
+ int nAngle = elm_win_rotation_get(pPlayView->pWin);
+ video_play_rotate_t nCurRot = VIDEO_PLAY_ROTATE_NONE;
+
+ switch (nAngle) {
+ case 0:
+ nCurRot = VIDEO_PLAY_ROTATE_NONE;
+ break;
+ case 90:
+ nCurRot = VIDEO_PLAY_ROTATE_90;
+ break;
+ case 180:
+ nCurRot = VIDEO_PLAY_ROTATE_180;
+ break;
+ case 270:
+ nCurRot = VIDEO_PLAY_ROTATE_270;
+ break;
+ }
+
+ if (nRotate != nCurRot) {
+ if (nRotate == VIDEO_PLAY_ROTATE_NONE) {
+ elm_win_wm_rotation_preferred_rotation_set(pPlayView->pWin, 0);
+ } else if (nRotate == VIDEO_PLAY_ROTATE_90) {
+ elm_win_wm_rotation_preferred_rotation_set(pPlayView->pWin,
+ 90);
+ } else if (nRotate == VIDEO_PLAY_ROTATE_180) {
+ elm_win_wm_rotation_preferred_rotation_set(pPlayView->pWin,
+ 180);
+ } else if (nRotate == VIDEO_PLAY_ROTATE_270) {
+ elm_win_wm_rotation_preferred_rotation_set(pPlayView->pWin,
+ 270);
+ }
+ }
+
+ if (pNormalView->nRotate != nRotate) {
+ if (pNormalView->pBookmarkHandle) {
+ bool bIsReailze = FALSE;
+ vp_play_bookmark_is_realize(pNormalView->pBookmarkHandle,
+ &bIsReailze);
+
+ if (bIsReailze) {
+ _vp_play_normal_view_on_bookmark_mode(pNormalView, FALSE);
+ vp_play_bookmark_unrealize(pNormalView->pBookmarkHandle);
+ }
+ }
+ }
+
+ if (pNormalView->pVolumeHandle) {
+ bool bIsRealize = FALSE;
+
+ if (!vp_play_volume_is_realize
+ (pNormalView->pVolumeHandle, &bIsRealize)) {
+ VideoLogWarning("vp_play_volume_is_realize is fail");
+ }
+
+ if (bIsRealize) {
+ if (!vp_play_volume_unrealize(pNormalView->pVolumeHandle)) {
+ VideoLogWarning("vp_play_volume_unrealize is fail");
+ }
+ }
+ }
+
+ if (pNormalView->pVolumePopupHandle) {
+ bool bIsRealize = FALSE;
+
+ if (!vp_play_volume_popup_is_realize
+ (pNormalView->pVolumePopupHandle, &bIsRealize)) {
+ VideoLogWarning("vp_play_volume_popup_is_realize is fail");
+ }
+
+ if (bIsRealize) {
+ if (!vp_play_volume_popup_unrealize
+ (pNormalView->pVolumePopupHandle)) {
+ VideoLogWarning("vp_play_volume_popup_unrealize is fail");
+ }
+ }
+ }
+
+ if (pNormalView->pBrightnessHandle) {
+ bool bIsRealize = FALSE;
+
+ if (!vp_play_brightness_is_realize
+ (pNormalView->pBrightnessHandle, &bIsRealize)) {
+ VideoLogWarning("vp_play_volume_is_realize is fail");
+ }
+ if (bIsRealize) {
+ if (!vp_play_brightness_unrealize
+ (pNormalView->pBrightnessHandle)) {
+ VideoLogWarning("vp_play_brightness_unrealize is fail");
+ }
+ }
+ }
+
+ _vp_play_normal_view_set_rotate_lock_state(pNormalView);
+ bool bLandscape = vp_play_util_get_landscape_check(nRotate);
+
+ if (bLandscape) {
+ elm_object_signal_emit(pNormalView->pMainLayout,
+ VP_NORMAL_SIGNAL_MAIN_NO_EFFECT_LANDSCAPE_SHOW,
+ "*");
+#ifdef SUBTITLE_K_FEATURE
+ elm_object_signal_emit(vp_play_subtitle_get_object
+ (pNormalView->pSubtitle),
+ VP_SUBTITLE_SIGNAL_MAIN_LANDSCAPE_SHOW,
+ "*");
+ evas_object_move(vp_play_subtitle_get_object
+ (pNormalView->pSubtitle),
+ VP_SUBTITLE_LANDSCAPE_POSX,
+ VP_SUBTITLE_LANDSCAPE_POSY);
+ pNormalView->nInitSubtitleX = VP_SUBTITLE_LANDSCAPE_POSX;
+ pNormalView->nInitSubtitleY = VP_SUBTITLE_LANDSCAPE_POSY;
+#endif
+ } else {
+ elm_object_signal_emit(pNormalView->pMainLayout,
+ VP_NORMAL_SIGNAL_MAIN_NO_EFFECT_PORTRAIT_SHOW,
+ "*");
+#ifdef SUBTITLE_K_FEATURE
+ elm_object_signal_emit(vp_play_subtitle_get_object
+ (pNormalView->pSubtitle),
+ VP_SUBTITLE_SIGNAL_MAIN_PORTRAIT_SHOW, "*");
+ evas_object_move(vp_play_subtitle_get_object
+ (pNormalView->pSubtitle),
+ VP_SUBTITLE_PORTRAIT_POSX,
+ VP_SUBTITLE_PORTRAIT_POSY);
+ pNormalView->nInitSubtitleX = VP_SUBTITLE_PORTRAIT_POSX;
+ pNormalView->nInitSubtitleY = VP_SUBTITLE_PORTRAIT_POSY;
+#endif
+ }
+
+#ifndef SUBTITLE_K_FEATURE
+ if (pNormalView->nDisplayMode != VP_MM_PLAYER_DISPLAY_FULL_SCREEN) {
+ if (nRotate == VIDEO_PLAY_ROTATE_NONE
+ || nRotate == VIDEO_PLAY_ROTATE_180) {
+ elm_object_signal_emit(pNormalView->pMainLayout,
+ VP_NORMAL_SIGNAL_MAIN_SUBTITLE_PORTRAIT,
+ "*");
+ } else {
+ elm_object_signal_emit(pNormalView->pMainLayout,
+ VP_NORMAL_SIGNAL_MAIN_SUBTITLE_HIDE,
+ "*");
+ }
+ } else {
+ elm_object_signal_emit(pNormalView->pMainLayout,
+ VP_NORMAL_SIGNAL_MAIN_SUBTITLE_HIDE, "*");
+ }
+#endif
+
+ if (bLayoutHide) {
+ _vp_play_normal_view_hide_layout(pNormalView, TRUE);
+ }
+
+ VP_EVAS_TIMER_DEL(pNormalView->pSpeedTimer);
+ elm_object_signal_emit(pNormalView->pMainLayout,
+ VP_NORMAL_SIGNAL_MAIN_SPEED_HIDE, "*");
+ pNormalView->nRotate = nRotate;
+
+#ifdef FLICK_JUMP
+ __vp_normal_flickjump_layout_position(pNormalView);
+#endif
+
+ if (pNormalView->pCtxPopup) {
+ PlayView *pPlayView = pNormalView->pPlayView;
+
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return FALSE;
+ }
+
+ int nW = 0;
+ int nH = 0;
+
+ Evas_Coord_Rectangle rect = { 0, };
+ elm_win_screen_size_get(pPlayView->pWin, &rect.x, &rect.y, &rect.w,
+ &rect.h);
+ if (pNormalView->nRotate == VIDEO_PLAY_ROTATE_NONE) {
+ nW = rect.w / 2;
+ nH = rect.h;
+ } else if (pNormalView->nRotate == VIDEO_PLAY_ROTATE_90) {
+ nW = rect.h / 2;
+ nH = rect.w;
+ } else if (pNormalView->nRotate == VIDEO_PLAY_ROTATE_180) {
+ nW = rect.w / 2;
+ nH = rect.h;
+ } else if (pNormalView->nRotate == VIDEO_PLAY_ROTATE_270) {
+ nW = rect.h / 2;
+ nH = rect.w;
+ }
+
+ evas_object_move(pNormalView->pCtxPopup, nW, nH);
+
+ evas_object_show(pNormalView->pCtxPopup);
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param nLaunchingType
+ * @return
+ */
+bool vp_play_normal_view_set_launching_mode(normal_view_handle pViewHandle,
+ video_play_launching_type_t
+ nLaunchingType)
+{
+ if (!pViewHandle) {
+ VideoLogError("pViewHandle is NULL");
+ return FALSE;
+ }
+
+ NormalView *pNormalView = (NormalView *) pViewHandle;
+
+ pNormalView->nLaunchingType = nLaunchingType;
+
+ return TRUE;
+
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @return
+ */
+bool vp_play_normal_view_update(normal_view_handle pViewHandle)
+{
+ if (!pViewHandle) {
+ VideoLogError("pViewHandle is NULL");
+ return FALSE;
+ }
+
+ NormalView *pNormalView = (NormalView *) pViewHandle;
+ PlayView *pPlayView = pNormalView->pPlayView;
+
+ VideoLogWarning(" == NORMAL VIEW UPDATE ==");
+
+ if (pNormalView->pVolumeHandle) {
+ bool bIsRealize = FALSE;
+ if (!vp_play_volume_is_realize
+ (pNormalView->pVolumeHandle, &bIsRealize)) {
+ VideoLogWarning("vp_play_volume_is_realize is fail");
+ }
+
+ if (bIsRealize) {
+ /*update volume popup */
+ if (!vp_play_normal_view_volume_update(pNormalView)) {
+ VideoLogWarning
+ ("vp_play_normal_view_volume_update is fail");
+ }
+ }
+ }
+
+ if (pNormalView->pVolumePopupHandle) {
+ bool bIsRealize = FALSE;
+
+ if (!vp_play_volume_popup_is_realize
+ (pNormalView->pVolumePopupHandle, &bIsRealize)) {
+ VideoLogWarning("vp_play_volume_popup_is_realize is fail");
+ }
+
+ if (bIsRealize) {
+ if (!vp_play_volume_popup_unrealize
+ (pNormalView->pVolumePopupHandle)) {
+ VideoLogWarning("vp_play_volume_popup_unrealize is fail");
+ }
+ }
+ }
+
+ if (pNormalView->pBrightnessHandle) {
+ bool bIsRealize = FALSE;
+
+ if (!vp_play_brightness_is_realize
+ (pNormalView->pBrightnessHandle, &bIsRealize)) {
+ VideoLogWarning("vp_play_volume_is_realize is fail");
+ }
+ if (bIsRealize) {
+ if (!vp_play_brightness_unrealize
+ (pNormalView->pBrightnessHandle)) {
+ VideoLogWarning("vp_play_brightness_unrealize is fail");
+ }
+ }
+ }
+
+ bool bLock = FALSE;
+ vp_play_normal_view_get_lock_screen(pNormalView, &bLock);
+ if (bLock) {
+ vp_play_normal_view_set_lock_screen(pNormalView, bLock);
+ }
+
+ _vp_play_normal_view_set_sound_path_state(pNormalView);
+
+ VideoLogWarning("share popup==%d,%d", pNormalView->bSharePanelFocusIn,
+ pNormalView->bSharePanelPause);
+ if (pNormalView->bSharePanelFocusIn && pNormalView->bSharePanelPause) {
+ VideoLogWarning("pNormalView->bManualPause == FALSE");
+ pNormalView->bSharePanelPause = FALSE;
+ pNormalView->bSharepopup = FALSE;
+
+ vp_mm_player_state_t nState = VP_MM_PLAYER_STATE_NONE;
+
+ if (!vp_mm_player_get_state(pNormalView->pPlayerHandle, &nState)) {
+ VideoLogWarning("vp_mm_player_get_state is fail");
+ }
+ if (!_vp_play_normal_view_check_during_call(pNormalView)) {
+ if (nState != VP_MM_PLAYER_STATE_PLAYING) {
+ if (!vp_mm_player_play(pNormalView->pPlayerHandle)) {
+ VideoLogError("Unable to play");
+ }
+ _vp_play_normal_view_set_play_state(pNormalView);
+ }
+ }
+ }
+
+ if (pPlayView->win_minicon) {
+ vp_minicontroller_update_control(pPlayView);
+ }
+ if (pPlayView->win_lockmini) {
+ vp_lockscreenmini_update_control(pPlayView);
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @return
+ */
+bool vp_play_normal_view_set_share_panel_state(normal_view_handle
+ pViewHandle)
+{
+ if (!pViewHandle) {
+ VideoLogError("PlayView handle is NULL");
+ return FALSE;
+ }
+ NormalView *pNormalView = (NormalView *) pViewHandle;
+ pNormalView->bSharepopup = FALSE;
+ pNormalView->bSharePanelFocusIn = TRUE;
+
+ PlayView *pPlayView = pNormalView->pPlayView;
+ pPlayView->bIsSharePopup = FALSE;
+ if (pPlayView->bIsPlayBeforeShare) {
+ vp_play_normal_view_resume_or_pause(pPlayView->pNormalView);
+ pPlayView->bIsPlayBeforeShare = FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @return
+ */
+bool vp_play_normal_view_on_more_menu(normal_view_handle pViewHandle)
+{
+ if (!pViewHandle) {
+ VideoLogError("pViewHandle is NULL");
+ return FALSE;
+ }
+
+ NormalView *pNormalView = (NormalView *) pViewHandle;
+ VideoLogInfo("bIsPopupShow=%d,bIsSubtitleShow=%d",
+ pNormalView->bIsPopupShow, pNormalView->bIsSubtitleShow);
+
+ if (pNormalView->pDetailHandle != NULL) {
+ VideoLogError("Detail View exists");
+ return NULL;
+ }
+
+ if (pNormalView->bIsPopupShow || pNormalView->bIsSubtitleShow) {
+ if (pNormalView->pCtxPopup) {
+ elm_ctxpopup_dismiss(pNormalView->pCtxPopup);
+ }
+ return TRUE;
+ }
+
+ if (pNormalView->pCtxPopup) {
+ elm_ctxpopup_dismiss(pNormalView->pCtxPopup);
+
+ if (!vp_play_volume_unrealize(pNormalView->pVolumeHandle)) {
+ VideoLogWarning("vp_play_volume_unrealize is fail");
+ }
+ } else {
+ __vp_normal_more_btn_clicked_cb((void *) pNormalView,
+ pNormalView->pMoreBtn, NULL);
+ }
+
+ return TRUE;
+
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @return
+ */
+bool vp_play_normal_view_volume_increase(normal_view_handle pViewHandle)
+{
+ if (!pViewHandle) {
+ VideoLogError("pViewHandle is NULL");
+ return FALSE;
+ }
+
+ NormalView *pNormalView = (NormalView *) pViewHandle;
+
+ if (pNormalView->pCtxPopup) {
+ elm_ctxpopup_dismiss(pNormalView->pCtxPopup);
+ }
+
+ _vp_play_normal_view_on_volume_popup(pNormalView, FALSE);
+
+ int nCurVal = 0;
+
+ vp_play_volume_increase_value(pNormalView->pVolumeHandle);
+ nCurVal = vp_play_volume_get_value(pNormalView->pVolumeHandle);
+
+ _vp_play_normal_view_set_volume_state(pNormalView);
+
+ pNormalView->nLastVolume = nCurVal;
+
+ _vp_play_normal_view_create_layout_hide_timer(pNormalView);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @return
+ */
+bool vp_play_normal_view_volume_decrease(normal_view_handle pViewHandle)
+{
+ if (!pViewHandle) {
+ VideoLogError("pViewHandle is NULL");
+ return FALSE;
+ }
+
+ NormalView *pNormalView = (NormalView *) pViewHandle;
+
+ if (pNormalView->pCtxPopup) {
+ elm_ctxpopup_dismiss(pNormalView->pCtxPopup);
+ }
+
+ _vp_play_normal_view_on_volume_popup(pNormalView, FALSE);
+
+ int nCurVal = 0;
+
+ vp_play_volume_decrease_value(pNormalView->pVolumeHandle);
+ nCurVal = vp_play_volume_get_value(pNormalView->pVolumeHandle);
+
+ _vp_play_normal_view_set_volume_state(pNormalView);
+
+ pNormalView->nLastVolume = nCurVal;
+
+ _vp_play_normal_view_create_layout_hide_timer(pNormalView);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @return
+ */
+bool vp_play_normal_view_volume_mute(normal_view_handle pViewHandle)
+{
+ if (!pViewHandle) {
+ VideoLogError("pViewHandle is NULL");
+ return FALSE;
+ }
+
+ NormalView *pNormalView = (NormalView *) pViewHandle;
+
+ _vp_play_normal_view_on_volume_popup(pNormalView, FALSE);
+
+ int nMuteVal =
+ vp_play_volume_get_mute_value(pNormalView->pVolumeHandle);
+ if (nMuteVal > 0) {
+ pNormalView->nLastVolume = nMuteVal;
+ vp_play_volume_set_value(pNormalView->pVolumeHandle,
+ pNormalView->nLastVolume);
+ } else {
+ vp_play_volume_set_mute_value(pNormalView->pVolumeHandle);
+ pNormalView->nLastVolume = 0;
+ vp_play_volume_set_value(pNormalView->pVolumeHandle, 0);
+ }
+ _vp_play_normal_view_set_volume_state(pNormalView);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @return
+ */
+bool vp_play_normal_view_volume_update(normal_view_handle pViewHandle)
+{
+ if (!pViewHandle) {
+ VideoLogError("pViewHandle is NULL");
+ return FALSE;
+ }
+
+ NormalView *pNormalView = (NormalView *) pViewHandle;
+
+ if (!pNormalView->pVolumeHandle) {
+ return TRUE;
+ }
+
+ vp_play_volume_update_value(pNormalView->pVolumeHandle);
+ _vp_play_normal_view_set_volume_state(pNormalView);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param bLock
+ * @return
+ */
+bool vp_play_normal_view_set_lock_screen(normal_view_handle pViewHandle,
+ bool bLock)
+{
+ if (!pViewHandle) {
+ VideoLogError("pViewHandle is NULL");
+ return FALSE;
+ }
+
+ NormalView *pNormalView = (NormalView *) pViewHandle;
+
+ if (pNormalView->bAudioOnly) {
+ VideoLogDebug("Audio only mode is on hence lock feature disabled");
+ return FALSE;
+ }
+
+ pNormalView->bLockScreen = bLock;
+ VP_EVAS_TIMER_DEL(pNormalView->pLockScreenTimer);
+
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VP_PLAY_RESROUCE_EDJ_PATH);
+ free(path);
+ elm_object_part_content_unset(pNormalView->pMainLayout,
+ VP_PLAY_SWALLOW_NORMAL_LOCKSCREEN);
+ VP_EVAS_DEL(pNormalView->pLockBtn);
+ PlayView *pPlayView = pNormalView->pPlayView;
+ Evas_Object *pParent = NULL;
+ if (!pNormalView->pSoundPathBtn) {
+ pParent = pNormalView->pMainLayout;
+
+ } else if (pNormalView->pFunctionLayout) {
+
+ pParent = pNormalView->pFunctionLayout;
+
+ } else {
+
+ pParent = pNormalView->pMainLayout;
+ }
+ if (!pPlayView) {
+ VideoLogError("pNormalView is NULL");
+ return FALSE;
+ }
+ if (bLock) {
+ VideoLogWarning("================ LOCK HOME KEY ==============");
+ vp_play_util_key_grab(pPlayView->pWin, VP_HOME_KEY);
+
+ _vp_play_normal_view_all_close_popup(pNormalView);
+
+ VP_EVAS_TIMER_DEL(pNormalView->pHideTimer);
+ VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+
+ _vp_play_normal_view_hide_layout(pNormalView, TRUE);
+ vp_play_volume_unset_mouse_callbacks(pNormalView->pVolumeHandle,
+ pNormalView->pPlayView->pWin);
+
+ pNormalView->pLockScreenTimer =
+ ecore_timer_add(VP_NORMAL_HIDE_SCREEN_LOCK_TIMER_INTERVAL,
+ __vp_normal_lockscreen_timer_cb,
+ (void *) pNormalView);
+
+ elm_object_signal_emit(pNormalView->pMainLayout,
+ VP_NORMAL_SIGNAL_LOCKSCREEN_SHOW, "*");
+
+ pNormalView->pLockBtn =
+ vp_button_create(pParent, "custom/flat_46_46/default", NULL,
+ (Evas_Smart_Cb)
+ __vp_normal_function_btn_clicked_cb,
+ (Evas_Smart_Cb)
+ __vp_normal_control_btn_press_cb,
+ (Evas_Smart_Cb)
+ __vp_normal_control_btn_unpress_cb,
+ (void *) pNormalView);
+ if (!pNormalView->pLockBtn) {
+ VideoLogError("elm_button_add is fail");
+ return FALSE;
+ }
+
+
+ Evas_Object *pIcon = NULL;
+
+ pIcon =
+ vp_button_create_icon(pNormalView->pLockBtn, edj_path,
+ VP_PLAY_NORMAL_RES_LOCK);
+ elm_object_part_content_set(pNormalView->pLockBtn,
+ VP_PLAY_SWALLOW_BUTTON_ICON, pIcon);
+
+ pIcon =
+ vp_button_create_icon(pNormalView->pLockBtn, edj_path,
+ VP_PLAY_NORMAL_RES_LOCK_PRESS);
+ elm_object_part_content_set(pNormalView->pLockBtn,
+ VP_PLAY_SWALLOW_BUTTON_PRESS_ICON,
+ pIcon);
+
+ pIcon =
+ vp_button_create_icon(pNormalView->pLockBtn, edj_path,
+ VP_PLAY_NORMAL_RES_LOCK);
+ elm_object_part_content_set(pNormalView->pLockBtn,
+ VP_PLAY_SWALLOW_BUTTON_DIM_ICON,
+ pIcon);
+
+ elm_object_part_content_set(pNormalView->pMainLayout,
+ VP_PLAY_SWALLOW_NORMAL_LOCKSCREEN,
+ pNormalView->pLockBtn);
+
+ evas_object_show(pNormalView->pLockBtn);
+
+ if (pNormalView->bManualPause == FALSE) {
+ if (!vp_mm_player_play(pNormalView->pPlayerHandle)) {
+ VideoLogWarning("Start Fail");
+ }
+ _vp_play_normal_view_set_play_state(pNormalView);
+ _vp_play_normal_view_on_capture_mode(pNormalView);
+ }
+ } else {
+ VideoLogWarning("================ UNLOCK HOME KEY ==============");
+ vp_play_util_key_ungrab(pPlayView->pWin, VP_HOME_KEY);
+
+ elm_object_signal_emit(pNormalView->pMainLayout,
+ VP_NORMAL_SIGNAL_LOCKSCREEN_HIDE, "*");
+ vp_play_volume_set_mouse_callbacks(pNormalView->pVolumeHandle,
+ pNormalView->pPlayView->pWin);
+ vp_play_util_key_grab(pPlayView->pWin, VP_VOLUME_UP_KEY);
+ vp_play_util_key_grab(pPlayView->pWin, VP_VOLUME_DOWN_KEY);
+ vp_play_util_key_grab(pPlayView->pWin, VP_VOLUME_MUTE);
+
+ _vp_play_normal_view_show_layout(pNormalView);
+ }
+ return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param bLock
+ * @return
+ */
+bool vp_play_normal_view_get_lock_screen(normal_view_handle pViewHandle,
+ bool * bLock)
+{
+ if (!pViewHandle) {
+ VideoLogError("pViewHandle is NULL");
+ return FALSE;
+ }
+
+ NormalView *pNormalView = (NormalView *) pViewHandle;
+
+ *bLock = pNormalView->bLockScreen;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ */
+void vp_play_normal_view_hide_sound_popup(normal_view_handle pViewHandle)
+{
+
+ if (!pViewHandle) {
+ VideoLogError("pViewHandle is NULL");
+ return;
+ }
+
+ NormalView *pNormalView = (NormalView *) pViewHandle;
+
+ if (pNormalView->bIsPopupShow) {
+
+ VP_EVAS_DEL(pNormalView->pPopup);
+ pNormalView->bIsPopupShow = FALSE;
+ }
+}
+
+/**
+ *
+ * @param pViewHandle
+ */
+void vp_play_normal_view_web_type_disconnect(normal_view_handle
+ pViewHandle)
+{
+ if (!pViewHandle) {
+ VideoLogError("pViewHandle is NULL");
+ return;
+ }
+
+ NormalView *pNormalView = (NormalView *) pViewHandle;
+
+ if (!pNormalView->pPlayView) {
+ VideoLogError("pNormalView->pPlayView is NULL");
+ return;
+ }
+
+ PlayView *pPlayView = pNormalView->pPlayView;
+
+ if (pPlayView->nStartPosition <= 0) {
+ int nPosition = 0;
+ if (!vp_mm_player_get_position
+ (pNormalView->pPlayerHandle, &nPosition)) {
+ VideoLogError("vp_mm_player_get_position is fail");
+ }
+ if (nPosition > 0) {
+ pNormalView->nStartPosition = nPosition;
+ }
+ } else {
+ pNormalView->nStartPosition = pPlayView->nStartPosition;
+ }
+
+ vp_mm_player_destroy(pNormalView->pPlayerHandle);
+ pNormalView->pPlayerHandle = NULL;
+
+ VideoLogInfo("pNormalView->nStartPosition : [%d]",
+ pNormalView->nStartPosition);
+}
+
+/**
+ *
+ * @param pViewHandle
+ */
+void vp_play_normal_view_web_type_reconnect(normal_view_handle pViewHandle)
+{
+ if (!pViewHandle) {
+ VideoLogError("pViewHandle is NULL");
+ return;
+ }
+
+ NormalView *pNormalView = (NormalView *) pViewHandle;
+
+ if (!pNormalView->pPlayView) {
+ VideoLogError("pNormalView->pPlayView is NULL");
+ return;
+ }
+
+ if (pNormalView->nLaunchingType != VIDEO_PLAY_TYPE_WEB) {
+ VideoLogInfo("Not WEB type");
+ return;
+ }
+
+ if (pNormalView->pPlayerHandle) {
+ vp_mm_player_destroy(pNormalView->pPlayerHandle);
+ pNormalView->pPlayerHandle = NULL;
+ }
+
+ PlayView *pPlayView = pNormalView->pPlayView;
+ if (pPlayView->nStartPosition > 0) {
+ pNormalView->nStartPosition = pPlayView->nStartPosition;
+ }
+
+ VideoLogInfo("pNormalView->nStartPosition : [%d]",
+ pNormalView->nStartPosition);
+ _vp_play_normal_view_play_start(pNormalView, FALSE);
+}
+
+//For mini controller
+/**
+ *
+ * @param pViewHandle
+ * @return
+ */
+int vp_controller_normal_view_get_played_state(normal_view_handle
+ pViewHandle)
+{
+ NormalView *pNormalView = (NormalView *) pViewHandle;
+ vp_mm_player_state_t nState = VP_MM_PLAYER_STATE_NONE;
+ if (!pNormalView) {
+ VideoLogError("pViewHandle is NULL");
+ return nState;
+ }
+ if (!vp_mm_player_get_state(pNormalView->pPlayerHandle, &nState)) {
+ VideoLogWarning("vp_mm_player_get_state is fail");
+ }
+ VideoLogError("state is %d", nState);
+
+ return (int) nState;
+}
+
+/**
+ *
+ * @param pViewHandle
+ */
+void vp_play_normal_view_db_change(normal_view_handle pViewHandle)
+{
+ if (!pViewHandle) {
+ VideoLogError("pViewHandle is NULL");
+ return;
+ }
+
+ NormalView *pNormalView = (NormalView *) pViewHandle;
+ PlayView *pPlayView = pNormalView->pPlayView;
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return;
+ }
+
+ if (pNormalView->nLaunchingType != VIDEO_PLAY_TYPE_WEB &&
+ pNormalView->nLaunchingType != VIDEO_PLAY_TYPE_PREVIEW &&
+ pNormalView->nLaunchingType != VIDEO_PLAY_TYPE_MESSAGE &&
+ pNormalView->nLaunchingType != VIDEO_PLAY_TYPE_EMAIL &&
+ pNormalView->nLaunchingType != VIDEO_PLAY_TYPE_MULTI_PATH) {
+
+ char *pVideoId = NULL;
+ vp_media_contents_get_video_id(pNormalView->szMediaURL, &pVideoId);
+
+ VideoSecureLogInfo("change == %d, %s, %s",
+ pNormalView->nLaunchingType,
+ pNormalView->szMediaURL, pVideoId);
+ if (!vp_file_exists(pNormalView->szMediaURL) || !pVideoId) {
+ VideoLogError("current file is deleted");
+ _vp_play_normal_view_release_service_share(pNormalView->
+ pPlayView);
+ VP_FREE(pVideoId);
+ if (!pPlayView->pFunc) {
+ VideoLogError("pPlayView pFunc is NULL");
+ return;
+ }
+
+ if (!pPlayView->pFunc->vp_play_func_exit) {
+ VideoLogError("pPlayView exit Func is NULL");
+ return;
+ }
+
+ vp_mm_player_state_t nState = VP_MM_PLAYER_STATE_NONE;
+
+ if (!vp_mm_player_get_state
+ (pNormalView->pPlayerHandle, &nState)) {
+ VideoLogWarning("vp_mm_player_get_state is fail");
+ }
+ if (nState == VP_MM_PLAYER_STATE_PAUSED) {
+ vp_device_set_screen_off(FALSE);
+ vp_device_display_lcd_unlock();
+
+ pPlayView->pFunc->vp_play_func_exit(pPlayView);
+ }
+
+ PlayView *pPlayView = pNormalView->pPlayView;
+ if (pNormalView->bAudioOnly == TRUE) {
+ pNormalView->bAudioOnly = FALSE;
+ if (pPlayView) {
+ pPlayView->bAudioOnly = FALSE;
+
+ vp_play_normal_view_on_controller_button_press
+ (pPlayView->pNormalView, CONTROLLER_PAUSE_BUTTON);
+ if (pPlayView->win_minicon) {
+ vp_minicontroller_destroy(pPlayView);
+ }
+ if (pPlayView->win_lockmini) {
+ vp_lockscreenmini_destroy(pPlayView);
+ }
+ }
+
+ }
+ }
+ VP_FREE(pVideoId);
+ }
+}
+
+/**
+ *
+ * @param pPlayView
+ * @return
+ */
+vp_mm_player_state_t vp_play_normal_view_get_player_state(PlayView *
+ pPlayView)
+{
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return -1;
+ }
+
+ NormalView *pNormalView = (NormalView *) pPlayView->pNormalView;
+
+ if (!pNormalView) {
+ VideoLogError("pNormalView is NULL");
+ return -1;
+ }
+
+ vp_mm_player_state_t nState = VP_MM_PLAYER_STATE_NONE;
+
+ if (!vp_mm_player_get_state(pNormalView->pPlayerHandle, &nState)) {
+ VideoLogWarning("vp_mm_player_get_state is fail");
+ }
+
+ return nState;
+}
+
+/**
+ *
+ * @param pPlayView
+ * @return
+ */
+bool vp_play_normal_view_is_audio_only(PlayView * pPlayView)
+{
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return FALSE;
+ }
+
+ NormalView *pNormalView = (NormalView *) pPlayView->pNormalView;
+
+ if (pNormalView->bAudioOnly == TRUE) {
+ return TRUE;
+ } else {
+ return FALSE;
+ }
+
+ return FALSE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @return
+ */
+bool vp_play_normal_view_reset_audio_only(normal_view_handle * pViewHandle)
+{
+
+ NormalView *pNormalView = (NormalView *) pViewHandle;
+ if (!pNormalView) {
+ VideoLogError("pNormalView is NULL");
+ return FALSE;
+ }
+
+ pNormalView->bAudioOnly = FALSE;
+ return TRUE;
+
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @return
+ */
+bool vp_play_normal_view_handle_language_change(normal_view_handle * pViewHandle)
+{
+ NormalView *pNormalView = (NormalView *) pViewHandle;
+
+ if (!pNormalView) {
+ VideoLogError("pNormalView is NULL");
+ return FALSE;
+ }
+
+ VP_EVAS_DEL(pNormalView->pCtxPopup);
+
+ if (pNormalView->nDisplayMode == VP_MM_PLAYER_DISPLAY_LETTER_BOX) {
+ elm_object_text_set(pNormalView->pScreenSizeBtn,
+ VP_PLAY_STRING_COM_FULL);
+ } else {
+ elm_object_text_set(pNormalView->pScreenSizeBtn,
+ VP_PLAY_STRING_COM_KEEP_RATIO);
+ }
+
+ return TRUE;
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <media_key.h>
+#include <sound_manager.h>
+
+#include "vp-play-string-define.h"
+#include "vp-play-value-define.h"
+#include "vp-play-macro-define.h"
+
+#include "vp-play-view.h"
+#include "vp-play-view-priv.h"
+
+#include "vp-play-normal-view.h"
+#include "vp-play-minicontroller.h"
+#include "vp-play-lockscreenmc.h"
+
+#include "vp-play-ug.h"
+
+#include "vp-play-util.h"
+#include "vp-play-config.h"
+#include "vp-play-preference.h"
+#include "vp-hollic.h"
+#include "vp-sound.h"
+#include "vp-sensor.h"
+#include "vp-mm-player.h"
+
+#ifdef ENABLE_DRM_FEATURE
+#include "vp-drm.h"
+#endif
+#include "vp-multi-path.h"
+#include "vp-media-contents.h"
+
+/* check temp */
+#include "vp-play-log.h"
+#include "vp-util.h"
+#include "vp-avrcp.h"
+
+
+#define VP_PLAY_VIEW_VOLUME_TIMER 1.0
+#define VP_PLAY_VIEW_VOLUME_SPEED_TIMER 0.05
+#define VP_PLAY_VIEW_DB_UPDATE_TIMER 1.0
+
+static bool _vp_play_view_create_mode(PlayView * pPlayView);
+static bool _vp_play_view_destroy_mode(PlayView * pPlayView);
+
+static void _vp_play_view_destroy_handle(PlayView * pPlayView);
+static void _vp_play_view_create_volume_timer(PlayView * pPlayView);
+
+
+/**
+ *
+ * @param pUserData
+ * @return
+ */
+static Eina_Bool __vp_play_view_volume_timer_cb(void *pUserData)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return EINA_FALSE;
+ }
+
+ PlayView *pPlayView = (PlayView *) pUserData;
+ if (pPlayView->bVolumeIncrease) {
+ vp_play_normal_view_volume_increase(pPlayView->pNormalView);
+ } else {
+ vp_play_normal_view_volume_decrease(pPlayView->pNormalView);
+ }
+
+ VP_EVAS_TIMER_DEL(pPlayView->pVolumeTimer);
+
+ pPlayView->pVolumeTimer =
+ ecore_timer_add(VP_PLAY_VIEW_VOLUME_SPEED_TIMER,
+ __vp_play_view_volume_timer_cb,
+ (void *) pPlayView);
+
+ return EINA_FALSE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @return
+ */
+static Eina_Bool __vp_play_view_hw_key_long_press_timer_cb(void *pUserData)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return EINA_FALSE;
+ }
+
+ PlayView *pPlayView = (PlayView *) pUserData;
+ pPlayView->pHwKeyLongPressTimer = NULL;
+
+ return EINA_FALSE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @return
+ */
+static Eina_Bool __vp_play_view_media_long_press_timer_cb(void *pUserData)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return EINA_FALSE;
+ }
+
+ PlayView *pPlayView = (PlayView *) pUserData;
+
+ VP_EVAS_TIMER_DEL(pPlayView->pMediaLongPressTimer);
+
+ return EINA_FALSE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @return
+ */
+static Eina_Bool __vp_play_view_media_key_timer_cb(void *pUserData)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return EINA_FALSE;
+ }
+
+ PlayView *pPlayView = (PlayView *) pUserData;
+
+ if (pPlayView->nMediaKeyPressCount == 1) {
+ if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+ vp_play_normal_view_resume_or_pause(pPlayView->pNormalView);
+ }
+
+ } else if (pPlayView->nMediaKeyPressCount == 2) {
+ if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+ vp_play_normal_view_next_play(pPlayView->pNormalView);
+ }
+ } else if (pPlayView->nMediaKeyPressCount == 3) {
+ if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+ vp_play_normal_view_prev_play(pPlayView->pNormalView);
+ }
+ }
+ pPlayView->nMediaKeyPressCount = 0;
+
+ VP_EVAS_TIMER_DEL(pPlayView->pMediaKeyTimer);
+
+ return EINA_FALSE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pBuf
+ * @param nByte
+ */
+static void __vp_play_view_noti_pipe_cb(void *pUserData, void *pBuf,
+ int nByte)
+{
+ if (!pUserData) {
+ VideoLogError("PlayView handle is NULL");
+ return;
+ }
+
+ PlayView *pPlayView = (PlayView *) pUserData;
+
+ if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+ vp_play_normal_view_hide_sound_popup(pPlayView->pNormalView);
+ vp_play_normal_view_update(pPlayView->pNormalView);
+ }
+}
+
+/**
+ *
+ * @param nRoute
+ * @param bAvailable
+ * @param pUserData
+ */
+static void __vp_play_sound_route_change_cb(int nRoute, bool bAvailable,
+ void *pUserData)
+{
+ if (!pUserData) {
+ VideoLogError("PlayView handle is NULL");
+ return;
+ }
+
+ PlayView *pPlayView = (PlayView *) pUserData;
+
+ if (pPlayView->pNotiPipe) {
+ ecore_pipe_write(pPlayView->pNotiPipe, pUserData,
+ sizeof(PlayView));
+ }
+}
+
+/**
+ *
+ * @param nType
+ * @param nVolume
+ * @param pUserData
+ */
+static void __vp_play_sound_volume_change_cb(int nType, int nVolume,
+ void *pUserData)
+{
+ if (!pUserData) {
+ VideoLogError("PlayView handle is NULL");
+ return;
+ }
+
+ PlayView *pPlayView = (PlayView *) pUserData;
+
+ if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+ vp_play_normal_view_volume_update(pPlayView->pNormalView);
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_play_rotate_changed_cb(void *pUserData,
+ Evas_Object * pObj,
+ void *pEventInfo)
+{
+ if (!pUserData) {
+ VideoLogError("PlayView handle is NULL");
+ return;
+ }
+ PlayView *pPlayView = (PlayView *) pUserData;
+
+ int nAngle = elm_win_rotation_get((Evas_Object *) pObj);
+ video_play_rotate_t nRotate = VIDEO_PLAY_ROTATE_NONE;
+
+ switch (nAngle) {
+ case 0:
+ nRotate = VIDEO_PLAY_ROTATE_NONE;
+ break;
+ case 90:
+ nRotate = VIDEO_PLAY_ROTATE_90;
+ break;
+ case 180:
+ nRotate = VIDEO_PLAY_ROTATE_180;
+ break;
+ case 270:
+ nRotate = VIDEO_PLAY_ROTATE_270;
+ break;
+ }
+
+ VideoLogWarning("CHANGE ROTATE : %d", nRotate);
+
+ if (pPlayView->nRotate != nRotate) {
+ vp_play_view_set_rotate(pPlayView, nRotate);
+ }
+ if (pPlayView->win_minicon) {
+ vp_minicontroller_rotate(pPlayView, nAngle);
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ */
+static void __vp_play_view_realize_cb(void *pUserData)
+{
+ if (!pUserData) {
+ VideoLogError("PlayView handle is NULL");
+ return;
+ }
+
+ vp_util_lock_cpu();
+
+ PlayView *pPlayView = (PlayView *) pUserData;
+
+
+ /* send event to parent */
+ if (pPlayView->pCallback == NULL) {
+ VideoLogError("PlayView Callback is NULL");
+ return;
+ }
+
+ if (pPlayView->pCallback->pRealizeCb == NULL) {
+ VideoLogError("PlayView Realize Callback is NULL");
+ return;
+ }
+
+ pPlayView->pCallback->pRealizeCb(pPlayView->pUserData);
+}
+
+/**
+ *
+ * @param pUserData
+ */
+static void __vp_play_view_destroy_cb(void *pUserData)
+{
+ if (!pUserData) {
+ VideoLogError("PlayView handle is NULL");
+ return;
+ }
+
+ PlayView *pPlayView = (PlayView *) pUserData;
+
+ /* send event to parent */
+ if (!pPlayView->pCallback) {
+ VideoLogError("PlayView Callback is NULL");
+ return;
+ }
+
+ if (!pPlayView->pCallback->pDestroyCb) {
+ VideoLogError("PlayView Realize Callback is NULL");
+ return;
+ }
+
+ VP_EVAS_EVENT_HANDLER_DEL(pPlayView->pKeyEventDown);
+ VP_EVAS_EVENT_HANDLER_DEL(pPlayView->pKeyEventUp);
+ VP_EVAS_EVENT_HANDLER_DEL(pPlayView->pFocusIn);
+ VP_EVAS_EVENT_HANDLER_DEL(pPlayView->pFocusOut);
+ VP_EVAS_EVENT_HANDLER_DEL(pPlayView->pVisiblility);
+ VP_EVAS_EVENT_HANDLER_DEL(pPlayView->pClientMessage);
+ VP_EVAS_EVENT_HANDLER_DEL(pPlayView->pDeleteRequest);
+ VP_EVAS_EVENT_HANDLER_DEL(pPlayView->pPropertyHandler);
+ VP_EVAS_EVENT_HANDLER_DEL(pPlayView->pMouseInHandler);
+ VP_EVAS_EVENT_HANDLER_DEL(pPlayView->pMouseOutHandler);
+ VP_EVAS_EVENT_HANDLER_DEL(pPlayView->pPalmHoldEventHandler);
+
+ pPlayView->pCallback->pDestroyCb(pPlayView->pUserData);
+
+ elm_exit();
+}
+
+/**
+ *
+ * @param pUserData
+ * @param nType
+ * @param pEvent
+ * @return
+ */
+static Eina_Bool __vp_play_view_event_key_down_cb(void *pUserData,
+ int nType, void *pEvent)
+{
+ if (!pUserData) {
+ VideoLogError("PlayView handle is NULL");
+ return EINA_FALSE;
+ }
+
+ if (!pEvent) {
+ VideoLogError("pEvent handle is NULL");
+ return EINA_FALSE;
+ }
+
+
+ PlayView *pPlayView = (PlayView *) pUserData;
+ Ecore_Event_Key *pKeyEvent = (Ecore_Event_Key *) pEvent;
+
+ /* default operation */
+ VideoLogWarning("HW EVENT KEY DOWN:%s", pKeyEvent->keyname);
+
+ if (!strcmp(pKeyEvent->keyname, VP_END_KEY)) {
+ VideoLogWarning("Back(End) key");
+ } else if (!strcmp(pKeyEvent->keyname, VP_MENU_KEY)) {
+ VideoLogWarning("Menu key");
+ } else if (!strcmp(pKeyEvent->keyname, VP_HOME_KEY)) {
+ VideoLogWarning("HOME_KEY");
+
+ if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+ bool bLock = FALSE;
+ pPlayView->bManualAppPause = TRUE;
+ vp_play_normal_view_get_lock_screen(pPlayView->pNormalView,
+ &bLock);
+ if (bLock) {
+ vp_play_normal_view_set_lock_screen(pPlayView->pNormalView,
+ bLock);
+ }
+ if (vp_play_normal_view_is_audio_only(pPlayView)) {
+ VideoLogDebug("Lock the screen");
+ vp_play_util_set_unlock_power_key();
+ }
+ }
+ } else if (!strcmp(pKeyEvent->keyname, VP_MEDIA_KEY)) {
+ VP_EVAS_TIMER_DEL(pPlayView->pMediaLongPressTimer);
+ pPlayView->pMediaLongPressTimer =
+ ecore_timer_add(0.5, __vp_play_view_media_long_press_timer_cb,
+ (void *) pPlayView);
+ } else if (!strcmp(pKeyEvent->keyname, VP_VOLUME_DOWN_KEY)) {
+ VideoLogWarning("VOLUME DOWN");
+ VP_EVAS_TIMER_DEL(pPlayView->pVolumeTimer);
+ if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+ vp_normalview_popup_style_e nPopupState =
+ vp_play_normal_view_get_popup_show_state(pPlayView->
+ pNormalView);
+ if (nPopupState == VP_PLAY_NORMAL_VIEW_POPUP_NONE
+ || nPopupState == VP_PLAY_NORMAL_VIEW_CTX_POPUP) {
+ vp_play_normal_view_volume_decrease(pPlayView->
+ pNormalView);
+ pPlayView->bVolumeIncrease = FALSE;
+ _vp_play_view_create_volume_timer(pPlayView);
+ }
+ }
+ } else if (!strcmp(pKeyEvent->keyname, "Down")) {
+ VideoLogWarning("KEY DOWN");
+ VP_EVAS_TIMER_DEL(pPlayView->pVolumeTimer);
+ if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+ vp_normalview_popup_style_e nPopupState =
+ vp_play_normal_view_get_popup_show_state(pPlayView->
+ pNormalView);
+ if (nPopupState == VP_PLAY_NORMAL_VIEW_POPUP_NONE) {
+ if (vp_play_normal_view_get_main_layout_focus_state
+ (pPlayView->pNormalView) == FALSE) {
+ vp_play_normal_view_volume_decrease(pPlayView->
+ pNormalView);
+ pPlayView->bVolumeIncrease = FALSE;
+ _vp_play_view_create_volume_timer(pPlayView);
+ }
+ }
+ }
+ } else if (!strcmp(pKeyEvent->keyname, VP_VOLUME_UP_KEY)) {
+ VideoLogWarning("VOLUME UP");
+ VP_EVAS_TIMER_DEL(pPlayView->pVolumeTimer);
+ if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+ vp_normalview_popup_style_e nPopupState =
+ vp_play_normal_view_get_popup_show_state(pPlayView->
+ pNormalView);
+ if (nPopupState == VP_PLAY_NORMAL_VIEW_POPUP_NONE
+ || nPopupState == VP_PLAY_NORMAL_VIEW_CTX_POPUP) {
+ vp_play_normal_view_volume_increase(pPlayView->
+ pNormalView);
+ pPlayView->bVolumeIncrease = TRUE;
+ _vp_play_view_create_volume_timer(pPlayView);
+ }
+ }
+ } else if (!strcmp(pKeyEvent->keyname, "Up")) {
+ VideoLogWarning("KEY UP");
+ VP_EVAS_TIMER_DEL(pPlayView->pVolumeTimer);
+ if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+ vp_normalview_popup_style_e nPopupState =
+ vp_play_normal_view_get_popup_show_state(pPlayView->
+ pNormalView);
+ if (nPopupState == VP_PLAY_NORMAL_VIEW_POPUP_NONE) {
+ if (vp_play_normal_view_get_main_layout_focus_state
+ (pPlayView->pNormalView) == FALSE) {
+ vp_play_normal_view_volume_increase(pPlayView->
+ pNormalView);
+ pPlayView->bVolumeIncrease = TRUE;
+ _vp_play_view_create_volume_timer(pPlayView);
+ }
+ }
+ }
+ } else if (!strcmp(pKeyEvent->keyname, VP_VOLUME_MUTE)) {
+ VideoLogWarning("VOLUME MUTE");
+ VP_EVAS_TIMER_DEL(pPlayView->pVolumeTimer);
+ if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+ vp_play_normal_view_volume_mute(pPlayView->pNormalView);
+ pPlayView->bVolumeIncrease = TRUE;
+ _vp_play_view_create_volume_timer(pPlayView);
+ }
+
+ } else if (!strcmp(pKeyEvent->keyname, VP_POWER_KEY)
+ || !strcmp(pKeyEvent->keyname, VP_SCREENSAVER_KEY)) {
+ VideoLogWarning("POWER KEY or SCREENSAVER KEY");
+
+ if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+ VP_EVAS_TIMER_DEL(pPlayView->pHwKeyLongPressTimer);
+ pPlayView->pHwKeyLongPressTimer =
+ ecore_timer_add(0.5,
+ __vp_play_view_hw_key_long_press_timer_cb,
+ (void *) pPlayView);
+
+ vp_play_normal_check_detail_view(pPlayView->pNormalView);
+ bool bPause = FALSE;
+ vp_play_normal_view_get_pause_status(pPlayView->pNormalView,
+ &bPause);
+ if (bPause && !vp_play_normal_view_is_audio_only(pPlayView)) {
+ vp_play_util_set_lock_power_key();
+ } else {
+ if (vp_play_normal_view_is_audio_only(pPlayView)) {
+ VideoLogDebug("Lock the screen");
+ vp_play_util_set_unlock_power_key();
+ }
+ VideoLogDebug("Lock feature disabled");
+ }
+
+ vp_mm_player_state_t nState =
+ vp_play_normal_view_get_player_state(pPlayView);
+ if (nState == VP_MM_PLAYER_STATE_PLAYING
+ && pPlayView->win_lockmini)
+ vp_lockscreenmini_show(pPlayView);
+
+ return EINA_TRUE;
+ }
+ } else if (!strcmp(pKeyEvent->keyname, VP_KEY_CANCLE)
+ || !strcmp(pKeyEvent->keyname, "Esc")) {
+ VideoLogWarning("CANCLE KEY");
+ VP_EVAS_TIMER_DEL(pPlayView->pVolumeTimer);
+ } else if (!strcmp(pKeyEvent->keyname, VP_PLAY_KEY)
+ || !strcmp(pKeyEvent->keyname, VP_PAUSE_KEY)) {
+ if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+ vp_play_normal_view_resume_or_pause(pPlayView->pNormalView);
+ }
+ } else if (!strcmp(pKeyEvent->keyname, VP_PLAY_NEXT_SONG_KEY)) {
+ if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+ vp_play_normal_view_next_play(pPlayView->pNormalView);
+ }
+ } else if (!strcmp(pKeyEvent->keyname, VP_PLAY_PREV_SONG_KEY)) {
+ if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+ vp_play_normal_view_prev_play(pPlayView->pNormalView);
+ }
+ } else if (!strcmp(pKeyEvent->keyname, VP_FORWARD_KEY)) {
+ if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+ vp_normalview_popup_style_e nPopupState =
+ vp_play_normal_view_get_popup_show_state(pPlayView->
+ pNormalView);
+ if (nPopupState == VP_PLAY_NORMAL_VIEW_POPUP_NONE
+ || nPopupState == VP_PLAY_NORMAL_VIEW_CTX_POPUP) {
+ if (vp_play_normal_view_get_main_layout_focus_state
+ (pPlayView->pNormalView) == FALSE) {
+ if (vp_play_normal_view_get_main_layout_show_state
+ (pPlayView->pNormalView) == FALSE) {
+ vp_play_normal_view_show_main_layout(pPlayView->
+ pNormalView);
+ }
+ if (pPlayView->bKeySpeed == FALSE) {
+ vp_play_normal_view_ff_rew_keyboard_longpress_event_cb
+ (pPlayView->pNormalView, FALSE, TRUE);
+ pPlayView->bKeySpeed = TRUE;
+ }
+ }
+ }
+ }
+ } else if (!strcmp(pKeyEvent->keyname, VP_REWIND_KEY)) {
+ if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+ vp_normalview_popup_style_e nPopupState =
+ vp_play_normal_view_get_popup_show_state(pPlayView->
+ pNormalView);
+ if (nPopupState == VP_PLAY_NORMAL_VIEW_POPUP_NONE
+ || nPopupState == VP_PLAY_NORMAL_VIEW_CTX_POPUP) {
+ if (vp_play_normal_view_get_main_layout_focus_state
+ (pPlayView->pNormalView) == FALSE) {
+ if (vp_play_normal_view_get_main_layout_show_state
+ (pPlayView->pNormalView) == FALSE) {
+ vp_play_normal_view_show_main_layout(pPlayView->
+ pNormalView);
+ }
+ if (pPlayView->bKeySpeed == FALSE) {
+ vp_play_normal_view_ff_rew_keyboard_longpress_event_cb
+ (pPlayView->pNormalView, FALSE, FALSE);
+ pPlayView->bKeySpeed = TRUE;
+ }
+ }
+ }
+ }
+ } else if (!strcmp(pKeyEvent->keyname, "Tab")) {
+ VideoLogInfo("Tab Press Down");
+ if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+ bool bMainShowState =
+ vp_play_normal_view_get_main_layout_show_state(pPlayView->
+ pNormalView);
+ if (bMainShowState) {
+ VideoLogInfo("main focus in");
+ vp_play_normal_view_set_main_layout_focus_in(pPlayView->
+ pNormalView);
+ }
+ }
+ } else if (!strcmp(pKeyEvent->keyname, "Return")) {
+ VideoLogInfo("Return Press Down");
+ if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+ bool bMainFocusState =
+ vp_play_normal_view_get_main_layout_focus_state(pPlayView->
+ pNormalView);
+ if (bMainFocusState == FALSE) {
+ vp_normalview_popup_style_e nPopupState =
+ vp_play_normal_view_get_popup_show_state(pPlayView->
+ pNormalView);
+ if (nPopupState == VP_PLAY_NORMAL_VIEW_POPUP_NONE) {
+ vp_play_normal_view_set_resume_or_pause(pPlayView->
+ pNormalView);
+ }
+ }
+ }
+ } else if (!strcmp(pKeyEvent->keyname, "space")) {
+ VideoLogInfo("space Press Down");
+ if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+ vp_normalview_popup_style_e nPopupState =
+ vp_play_normal_view_get_popup_show_state(pPlayView->
+ pNormalView);
+ if (nPopupState == VP_PLAY_NORMAL_VIEW_POPUP_NONE) {
+ vp_play_normal_view_set_resume_or_pause(pPlayView->
+ pNormalView);
+ }
+ }
+ }
+ //For normal view hide control layout
+ if (!strcmp(pKeyEvent->keyname, "Tab")
+ || !strcmp(pKeyEvent->keyname, "Right")
+ || !strcmp(pKeyEvent->keyname, "Left")
+ || !strcmp(pKeyEvent->keyname, "Up")
+ || !strcmp(pKeyEvent->keyname, "Down")) {
+ if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+ vp_play_normal_view_create_main_layout_hide_timer(pPlayView->
+ pNormalView);
+ }
+ }
+ /* send event to parent */
+ if (pPlayView->pCallback == NULL) {
+ VideoLogError("PlayView Callback is NULL");
+ return EINA_FALSE;
+ }
+
+ if (pPlayView->pCallback->pEventKeyDown == NULL) {
+ VideoLogError("PlayView pEventKeyDown Callback is NULL");
+ return EINA_FALSE;
+ }
+
+ pPlayView->pCallback->pEventKeyDown(pPlayView->pUserData, nType,
+ pEvent);
+
+ return EINA_FALSE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param nType
+ * @param pEvent
+ * @return
+ */
+static Eina_Bool __vp_play_view_event_key_up_cb(void *pUserData, int nType,
+ void *pEvent)
+{
+ if (!pUserData) {
+ VideoLogError("PlayView handle is NULL");
+ return EINA_FALSE;
+ }
+
+ if (!pEvent) {
+ VideoLogError("pEvent handle is NULL");
+ return EINA_FALSE;
+ }
+
+ PlayView *pPlayView = (PlayView *) pUserData;
+ Ecore_Event_Key *pKeyEvent = (Ecore_Event_Key *) pEvent;
+
+ /* default operation */
+ VideoLogWarning("HW EVENT KEY UP:%s", pKeyEvent->keyname);
+
+ if (!strcmp(pKeyEvent->keyname, VP_END_KEY)) {
+ VideoLogWarning("Back(End) key");
+ } else if (!strcmp(pKeyEvent->keyname, VP_MENU_KEY)
+ || !strcmp(pKeyEvent->keyname, "Menu")) {
+ if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+ vp_play_normal_view_on_more_menu(pPlayView->pNormalView);
+ }
+ } else if (!strcmp(pKeyEvent->keyname, VP_HOME_KEY)) {
+ VideoLogWarning("HOME_KEY");
+ if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+ bool bLock = FALSE;
+ vp_play_normal_view_get_lock_screen(pPlayView->pNormalView,
+ &bLock);
+ if (!bLock && !pPlayView->bAudioOnly) {
+ if (!vp_play_normal_view_pause(pPlayView->pNormalView)) {
+ VideoLogError("vp_play_normal_view_pause fail");
+ }
+ if (!vp_play_normal_view_update(pPlayView->pNormalView)) {
+ VideoLogError("vp_play_normal_view_update fail");
+ }
+ }
+ }
+ } else if (!strcmp(pKeyEvent->keyname, VP_VOLUME_DOWN_KEY)
+ || !strcmp(pKeyEvent->keyname, "Down")) {
+ VideoLogWarning("VOLUME DOWN");
+ if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+ VP_EVAS_TIMER_DEL(pPlayView->pVolumeTimer);
+ }
+ } else if (!strcmp(pKeyEvent->keyname, VP_VOLUME_UP_KEY)
+ || !strcmp(pKeyEvent->keyname, "Up")) {
+ VideoLogWarning("VOLUME UP");
+ if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+ VP_EVAS_TIMER_DEL(pPlayView->pVolumeTimer);
+ }
+ } else if (!strcmp(pKeyEvent->keyname, VP_VOLUME_MUTE)) {
+ VideoLogWarning("VOLUME MUTE");
+ if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+ VP_EVAS_TIMER_DEL(pPlayView->pVolumeTimer);
+ }
+ } else if (!strcmp(pKeyEvent->keyname, VP_MEDIA_KEY)) {
+ if (pPlayView->nMediaKeyPressCount > 3) {
+ VideoLogWarning("pressed more than 3times");
+ return EINA_FALSE;
+ }
+
+ if (pPlayView->pMediaLongPressTimer) {
+ VP_EVAS_TIMER_DEL(pPlayView->pMediaKeyTimer);
+ pPlayView->pMediaKeyTimer =
+ ecore_timer_add(0.5, __vp_play_view_media_key_timer_cb,
+ (void *) pPlayView);
+ pPlayView->nMediaKeyPressCount++;
+ } else {
+ VP_EVAS_TIMER_DEL(pPlayView->pMediaLongPressTimer);
+ pPlayView->nMediaKeyPressCount = 0;
+ }
+ } else if (!strcmp(pKeyEvent->keyname, VP_POWER_KEY)
+ || !strcmp(pKeyEvent->keyname, VP_SCREENSAVER_KEY)) {
+ VideoLogWarning("POWER KEY");
+ if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+ if (pPlayView->pHwKeyLongPressTimer) {
+ VideoLogWarning("HW Key: It is click event!");
+ VP_EVAS_TIMER_DEL(pPlayView->pHwKeyLongPressTimer);
+ bool bLock = FALSE;
+ vp_play_normal_view_get_lock_screen(pPlayView->pNormalView,
+ &bLock);
+ bLock = !bLock;
+ vp_play_normal_view_set_lock_screen(pPlayView->pNormalView,
+ bLock);
+ }
+
+ bool bPause = FALSE;
+ vp_play_normal_view_get_pause_status(pPlayView->pNormalView,
+ &bPause);
+ if (bPause || vp_play_normal_view_is_audio_only(pPlayView)) {
+ vp_play_util_set_unlock_power_key();
+ }
+ }
+ } else if (!strcmp(pKeyEvent->keyname, VP_KEY_CANCLE)
+ || !strcmp(pKeyEvent->keyname, "Esc")) {
+ VideoLogWarning("CANCLE KEY");
+
+ VP_EVAS_TIMER_DEL(pPlayView->pVolumeTimer);
+ } else if (!strcmp(pKeyEvent->keyname, VP_FORWARD_KEY)) {
+ VideoLogWarning("Right");
+ if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+ if (pPlayView->bKeySpeed == TRUE) {
+ vp_play_normal_view_ff_rew_keyboard_longpress_event_cb
+ (pPlayView->pNormalView, TRUE, TRUE);
+ pPlayView->bKeySpeed = FALSE;
+ }
+ }
+ } else if (!strcmp(pKeyEvent->keyname, VP_REWIND_KEY)) {
+ VideoLogWarning("Left");
+ if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+ if (pPlayView->bKeySpeed == TRUE) {
+ vp_play_normal_view_ff_rew_keyboard_longpress_event_cb
+ (pPlayView->pNormalView, TRUE, FALSE);
+ pPlayView->bKeySpeed = FALSE;
+ }
+ }
+ }
+
+ /* send event to parent */
+ if (pPlayView->pCallback == NULL) {
+ VideoLogWarning("PlayView Callback is NULL");
+ return EINA_FALSE;
+ }
+
+ if (pPlayView->pCallback->pEventKeyUp == NULL) {
+ VideoLogWarning("PlayView pEventKeyUp Callback is NULL");
+ return EINA_FALSE;
+ }
+
+ pPlayView->pCallback->pEventKeyUp(pPlayView->pUserData, nType, pEvent);
+
+ return EINA_FALSE;
+}
+
+#ifdef OLD_SENSOR_API
+static void __vp_play_view_sensor_event_cb(vp_sensor_type_t nType,
+ unsigned long long timestamp,
+ void *pUserData)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ PlayView *pPlayView = (PlayView *) pUserData;
+
+ if (nType != VP_SENSOR_TYPE_FACEDOWN) {
+ VideoLogWarning("Invalid sensor type");
+ return;
+ }
+
+ video_sound_device_type_t nSoundDevType = VP_SOUND_DEVICE_NONE;
+ vp_sound_get_active_device(&nSoundDevType);
+
+ if (nSoundDevType == VP_SOUND_DEVICE_EARJACK
+ || nSoundDevType == VP_SOUND_DEVICE_BLUETOOTH) {
+ VideoLogWarning
+ ("Earjack or Bluetooth is connected. ignore sensor event");
+ return;
+
+ }
+
+ if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+ if (!vp_play_normal_view_pause(pPlayView->pNormalView)) {
+ VideoLogError("vp_play_normal_view_realize fail");
+ }
+ if (!vp_play_normal_view_set_manual_pause
+ (pPlayView->pNormalView, TRUE)) {
+ VideoLogError("vp_play_normal_view_set_manual_pause fail");
+ }
+ }
+}
+#endif
+
+/**
+ *
+ * @param key
+ * @param pUserData
+ */
+static void __vp_play_view_rotate_lock_key_changed_cb(system_settings_key_e
+ key, void *pUserData)
+{
+
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ PlayView *pPlayView = (PlayView *) pUserData;
+ bool bLockState = FALSE;
+
+ if (!vp_play_config_get_rotate_lock_status(&bLockState)) {
+ VideoLogError("vp_play_config_get_rotate_lock_status is fail");
+ return;
+ }
+ vp_normal_rotate_icon_timer_cb(pUserData);
+ if (bLockState == FALSE) {
+ elm_win_wm_rotation_preferred_rotation_set(pPlayView->pWin, 0);
+ } else {
+ elm_win_wm_rotation_preferred_rotation_set(pPlayView->pWin, -1);
+ }
+}
+
+/**
+ *
+ * @param key
+ * @param pUserData
+ */
+static void __vp_play_view_lock_state_key_changed_cb(system_settings_key_e
+ key, void *pUserData)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ PlayView *pPlayView = (PlayView *) pUserData;
+ int lock_state = SYSTEM_SETTINGS_LOCK_STATE_UNLOCK;
+
+ if (key == SYSTEM_SETTINGS_KEY_LOCK_STATE) {
+ system_settings_get_value_int(key, &lock_state);
+
+ if (vp_play_normal_view_is_audio_only(pPlayView)) {
+ vp_mm_player_state_t nState =
+ vp_play_normal_view_get_player_state(pPlayView);
+
+ if (lock_state == SYSTEM_SETTINGS_LOCK_STATE_LOCK) {
+ VideoLogInfo("Screen locked in Audio only mode");
+ if (nState == VP_MM_PLAYER_STATE_PLAYING)
+ vp_lockscreenmini_show(pPlayView);
+ else
+ vp_lockscreenmini_hide(pPlayView);
+ }
+
+ if (lock_state == SYSTEM_SETTINGS_LOCK_STATE_UNLOCK) {
+ VideoLogInfo("Screen unlocked in Audio only mode");
+ if (nState == VP_MM_PLAYER_STATE_PLAYING)
+ vp_lockscreenmini_hide(pPlayView);
+ }
+ }
+ }
+}
+
+/**
+ *
+ * @param state
+ * @param ap
+ * @param user_data
+ */
+static void
+__vp_play_view_wifi_key_changed_cb(wifi_manager_connection_state_e state,
+ wifi_manager_ap_h ap, void *user_data)
+{
+ VideoLogError("not supported");
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pEvasObject
+ * @param pEvent
+ */
+static void __vp_play_view_delete_request_cb(void *pUserData,
+ Evas_Object * pEvasObject,
+ void *pEvent)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ evas_object_smart_callback_del(pEvasObject, "delete,request",
+ __vp_play_view_delete_request_cb);
+
+ PlayView *pPlayView = (PlayView *) pUserData;
+ VideoLogError("== delete request call ==");
+
+ _vp_play_view_destroy_handle(pPlayView);
+
+ elm_exit();
+}
+
+/* internal functions */
+/**
+ *
+ * @param pViewHandle
+ * @param nMode
+ * @param szMediaURL
+ * @param nStartPos
+ * @param bManualPause
+ */
+static void __vp_play_view_func_change_mode(void *pViewHandle,
+ video_play_mode_t nMode,
+ const char *szMediaURL,
+ int nStartPos,
+ bool bManualPause)
+{
+ if (!pViewHandle) {
+ VideoLogError("pViewHandle is NULL");
+ return;
+ }
+
+ PlayView *pPlayView = (PlayView *) pViewHandle;
+
+ if (nMode == pPlayView->nPlayMode) {
+ VideoLogWarning("Skip for Same mode");
+ return;
+ }
+
+ if (pPlayView->bViewChange) {
+ VideoLogWarning("Skip for Same mode");
+ return;
+ }
+ VideoLogWarning(">> Change mode");
+
+ pPlayView->bViewChange = TRUE;
+
+ VP_EVAS_TIMER_DEL(pPlayView->pVolumeTimer);
+
+ VP_FREE(pPlayView->szMediaURL);
+ VP_STRDUP(pPlayView->szMediaURL, szMediaURL);
+
+ /* destroy old view */
+ bool bIsTempRealize = pPlayView->bRealized;
+ vp_play_view_unrealize(pPlayView);
+
+ if (nStartPos >= 0) {
+ pPlayView->nStartPosition = nStartPos;
+ }
+
+ pPlayView->bStartPause = bManualPause;
+
+ _vp_play_view_destroy_mode(pPlayView);
+
+ VideoLogInfo("previous model = %d,current view = %d",
+ pPlayView->nPlayMode, nMode);
+
+ pPlayView->nPlayMode = nMode;
+
+ bool bLockState = FALSE;
+ if (!vp_play_config_get_rotate_lock_status(&bLockState)) {
+ VideoLogError("vp_play_config_get_rotate_lock_status is fail");
+ return;
+ }
+
+ if (bLockState == FALSE) {
+ // if auto rotation is locked. set player window as orientation 0
+ elm_win_rotation_with_resize_set(pPlayView->pWin,
+ APP_DEVICE_ORIENTATION_0);
+ vp_play_view_set_rotate(pPlayView, VIDEO_PLAY_ROTATE_NONE);
+ }
+
+ /* create new view */
+ if (!_vp_play_view_create_mode(pPlayView)) {
+ VideoLogWarning("_vp_play_view_create_mode fail");
+ return;
+ }
+
+ if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+ if (!vp_play_normal_view_set_url
+ (pPlayView->pNormalView, pPlayView->szMediaURL)) {
+ VideoLogError("vp_play_normal_view_set_url fail");
+ return;
+ }
+ if (!vp_play_normal_view_set_sound_filter
+ (pPlayView->pNormalView, pPlayView->nSoundAlive)) {
+ VideoLogError
+ ("vp_play_normal_view_set_sound_filter handle is null");
+ return;
+ }
+
+ if (!vp_play_normal_view_set_manual_pause
+ (pPlayView->pNormalView, pPlayView->bStartPause)) {
+ VideoLogError("vp_play_normal_view_set_manual_pause fail");
+ return;
+ }
+
+ if (!vp_play_normal_view_set_rotate
+ (pPlayView->pNormalView, pPlayView->nRotate, FALSE)) {
+ VideoLogError("vp_play_normal_view_set_rotate fail");
+ return;
+ }
+ }
+
+ if (bIsTempRealize) {
+ vp_play_view_realize(pPlayView);
+ }
+
+ pPlayView->bViewChange = FALSE;
+ VideoLogWarning("== Complete View Change ==");
+
+}
+
+/**
+ *
+ * @param pViewHandle
+ */
+static void __vp_play_view_func_exit(void *pViewHandle)
+{
+ if (!pViewHandle) {
+ VideoLogError("play view handle is NULL");
+ return;
+ }
+ PlayView *pPlayView = (PlayView *) pViewHandle;
+
+ pPlayView->bManualAppPause = TRUE;
+
+ /* launching videos
+ Scenario 1 : Videos - Play - MultiWin - Idle - Change to PlayView(Maximize) - back => Launch Videos.
+ */
+ if (pPlayView->bRelaunchCaller && pPlayView->bActivate == TRUE) {
+
+ vp_play_app_launch_videos(pPlayView->pWin, TRUE,
+ (void *) pPlayView);
+ }
+ __vp_play_view_destroy_cb((void *) pPlayView);
+}
+
+
+#ifdef NOT_USED
+static void __vp_play_view_sensor_popup_close_cb(int nType, bool bPause,
+ void *pUserData)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ PlayView *pPlayView = (PlayView *) pUserData;
+
+ vp_play_sensor_popup_destroy(pPlayView->pSensorPopup);
+ pPlayView->pSensorPopup = NULL;
+}
+#endif
+
+
+/* internal functions */
+/**
+ *
+ * @param pPlayView
+ */
+static void _vp_play_view_init_config(PlayView * pPlayView)
+{
+ if (!pPlayView) {
+ VideoLogError("play view handle is NULL");
+ return;
+ }
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VP_PLAY_CUSTOM_THEME);
+ free(path);
+ elm_theme_extension_add(NULL, edj_path);
+}
+
+/**
+ *
+ * @param pPlayView
+ */
+static void _vp_play_view_deinit_config(PlayView * pPlayView)
+{
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VP_PLAY_CUSTOM_THEME);
+ free(path);
+
+ elm_theme_extension_del(NULL, edj_path);
+}
+
+/**
+ *
+ * @param pPlayView
+ */
+static void _vp_play_view_create_volume_timer(PlayView * pPlayView)
+{
+ if (!pPlayView) {
+ VideoLogError("play view handle is NULL");
+ return;
+ }
+
+ VP_EVAS_TIMER_DEL(pPlayView->pVolumeTimer);
+
+ pPlayView->pVolumeTimer = ecore_timer_add(VP_PLAY_VIEW_VOLUME_TIMER,
+ __vp_play_view_volume_timer_cb,
+ (void *) pPlayView);
+
+}
+
+/**
+ *
+ * @param pParent
+ * @param pName
+ * @return
+ */
+static Evas_Object *_vp_play_view_create_window(Evas_Object * pParent,
+ const char *pName)
+{
+ Evas_Object *pObj = NULL;
+
+ pObj = elm_win_add(pParent, pName, ELM_WIN_BASIC);
+ if (pObj == NULL) {
+ VideoLogError("elm_win_add object is NULL");
+ return NULL;
+ }
+
+ elm_win_title_set(pObj, pName);
+ evas_object_smart_callback_add(pObj, "delete,request",
+ __vp_play_view_delete_request_cb, NULL);
+
+ elm_win_indicator_mode_set(pObj, ELM_WIN_INDICATOR_SHOW);
+ elm_win_indicator_opacity_set(pObj, ELM_WIN_INDICATOR_TRANSPARENT);
+
+ if (elm_win_wm_rotation_supported_get(pObj)) {
+ const int rots[4] = { 0, 90, 180, 270 };
+ elm_win_wm_rotation_available_rotations_set(pObj, rots, 4);
+ }
+
+ return pObj;
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+static Evas_Object *_vp_play_view_create_render_rect(Evas_Object * pParent)
+{
+ if (!pParent) {
+ VideoLogError("Parent is NULL");
+ return NULL;
+ }
+
+ Evas *pEvas = evas_object_evas_get(pParent);
+ Evas_Object *pObj = evas_object_rectangle_add(pEvas);
+ if (pObj == NULL) {
+ VideoLogError("render_rect object is NULL");
+ return NULL;
+ }
+
+ evas_object_size_hint_weight_set(pObj, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_color_set(pObj, 0, 0, 0, 0);
+ evas_object_render_op_set(pObj, EVAS_RENDER_COPY);
+ evas_object_show(pObj);
+ elm_win_resize_object_add(pParent, pObj);
+
+ return pObj;
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+static Evas_Object *_vp_play_view_create_conformant(Evas_Object * pParent)
+{
+ if (!pParent) {
+ VideoLogError("Parent is NULL");
+ return NULL;
+ }
+
+ Evas_Object *pObj = NULL;
+
+ pObj = elm_conformant_add(pParent);
+ if (pObj == NULL) {
+ VideoLogError("elm_conformant_add object is NULL");
+ return NULL;
+ }
+
+ evas_object_size_hint_weight_set(pObj, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ elm_win_conformant_set(pParent, EINA_TRUE);
+ elm_win_resize_object_add(pParent, pObj);
+
+ elm_object_signal_emit(pObj, "elm,state,indicator,overlap", "");
+ evas_object_data_set(pObj, "overlap", (void *) EINA_TRUE);
+
+ evas_object_show(pObj);
+
+ return pObj;
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+static Evas_Object *_vp_play_view_create_layout(Evas_Object * pParent)
+{
+ if (!pParent) {
+ VideoLogError("Parent is NULL");
+ return NULL;
+ }
+
+ Evas_Object *pObj = NULL;
+ Eina_Bool bRet = EINA_FALSE;
+
+ pObj = elm_layout_add(pParent);
+ if (!pObj) {
+ VideoLogError("elm_layout_add object is NULL");
+ return NULL;
+ }
+
+ bRet = elm_layout_theme_set(pObj, VP_PLAY_CUSTOM_LAYOUT_KLASS,
+ VP_PLAY_CUSTOM_LAYOUT_GROUP,
+ VP_PLAY_CUSTOM_LAYOUT_STYLE);
+ if (bRet != EINA_TRUE) {
+ VideoLogError("elm_layout_theme_set fail");
+ }
+ evas_object_size_hint_weight_set(pObj, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ elm_object_content_set(pParent, pObj);
+
+ evas_object_show(pObj);
+
+ return pObj;
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+static Evas_Object *_vp_play_view_create_naviframe(Evas_Object * pParent)
+{
+ if (!pParent) {
+ VideoLogError("Parent is NULL");
+ return NULL;
+ }
+
+ Evas_Object *pObj = NULL;
+ pObj = elm_naviframe_add(pParent);
+ if (!pObj) {
+ VideoLogError("elm_naviframe_add object is NULL");
+ return NULL;
+ }
+
+ eext_object_event_callback_add(pObj, EEXT_CALLBACK_BACK,
+ eext_naviframe_back_cb, NULL);
+ eext_object_event_callback_add(pObj, EEXT_CALLBACK_MORE,
+ eext_naviframe_more_cb, NULL);
+
+ elm_object_part_content_set(pParent, "elm.swallow.content", pObj);
+ elm_object_focus_set(pObj, EINA_TRUE);
+
+ elm_naviframe_prev_btn_auto_pushed_set(pObj, EINA_FALSE);
+
+ evas_object_show(pObj);
+
+ return pObj;
+}
+
+/**
+ *
+ * @param pPlayView
+ * @return
+ */
+static bool _vp_play_view_init_layout(PlayView * pPlayView)
+{
+ if (!pPlayView) {
+ VideoLogError("play view handle is NULL");
+ return FALSE;
+ }
+ VideoLogWarning(">> Play view : Init layout");
+
+ pPlayView->pWin =
+ _vp_play_view_create_window(pPlayView->pParent,
+ VP_PLAY_MAIN_WINDOW_NAME);
+ if (pPlayView->pWin == NULL) {
+ VideoLogError("pWin is null");
+ return FALSE;
+ }
+
+ evas_object_smart_callback_add(pPlayView->pWin, "wm,rotation,changed",
+ __vp_play_rotate_changed_cb, pPlayView);
+
+ pPlayView->pRenderRect =
+ _vp_play_view_create_render_rect(pPlayView->pWin);
+ if (pPlayView->pRenderRect == NULL) {
+ VideoLogError("pRenderRect is null");
+ return FALSE;
+ }
+#ifdef _PERF_TEST_
+ if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+ // Move to : NormalView / Realize.
+ } else
+#endif
+ {
+ pPlayView->pConformant =
+ _vp_play_view_create_conformant(pPlayView->pWin);
+ if (pPlayView->pConformant == NULL) {
+ VideoLogError("pConformant is null");
+ return FALSE;
+ }
+
+ pPlayView->pMainLayout =
+ _vp_play_view_create_layout(pPlayView->pConformant);
+ if (pPlayView->pMainLayout == NULL) {
+ VideoLogError("pMainLayout is null");
+ return FALSE;
+ }
+ pPlayView->pNaviframe =
+ _vp_play_view_create_naviframe(pPlayView->pMainLayout);
+ if (pPlayView->pNaviframe == NULL) {
+ VideoLogError("pNaviframe is null");
+ return FALSE;
+ }
+ }
+
+ /*rotation check */
+ VideoLogInfo("<< Play view : Checking initial rotation!");
+
+ int nAngle = elm_win_rotation_get((Evas_Object *) pPlayView->pWin);
+ video_play_rotate_t nRotate = VIDEO_PLAY_ROTATE_NONE;
+
+ switch (nAngle) {
+ case 0:
+ nRotate = VIDEO_PLAY_ROTATE_NONE;
+ break;
+ case 90:
+ nRotate = VIDEO_PLAY_ROTATE_90;
+ break;
+ case 180:
+ nRotate = VIDEO_PLAY_ROTATE_180;
+ break;
+ case 270:
+ nRotate = VIDEO_PLAY_ROTATE_270;
+ break;
+ }
+
+ if (pPlayView->nRotate != nRotate) {
+ vp_play_view_set_rotate(pPlayView, nRotate);
+ }
+ return TRUE;
+}
+
+/**
+ *
+ * @param pPlayView
+ * @return
+ */
+static bool _vp_play_view_create_mode(PlayView * pPlayView)
+{
+ if (!pPlayView) {
+ VideoLogError("play view handle is NULL");
+ return FALSE;
+ }
+
+ if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+ pPlayView->pNormalView =
+ vp_play_normal_view_create(pPlayView,
+ pPlayView->nLaunchingType);
+ if (pPlayView->pNormalView == NULL) {
+ VideoLogError("vp_play_normal_view_create handle is null");
+ return FALSE;
+ }
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pPlayView
+ * @return
+ */
+static bool _vp_play_view_destroy_mode(PlayView * pPlayView)
+{
+ if (!pPlayView) {
+ VideoLogError("play view handle is NULL");
+ return FALSE;
+ }
+
+ if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+ if (!vp_play_normal_view_unrealize(pPlayView->pNormalView)) {
+ VideoLogError("vp_play_normal_view_unrealize fail");
+ return FALSE;
+ }
+
+ vp_play_util_key_ungrab(pPlayView->pWin, VP_VOLUME_UP_KEY);
+ vp_play_util_key_ungrab(pPlayView->pWin, VP_VOLUME_DOWN_KEY);
+ vp_play_util_key_ungrab(pPlayView->pWin, VP_VOLUME_MUTE);
+
+ vp_play_normal_view_destroy(pPlayView->pNormalView);
+ pPlayView->pNormalView = NULL;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pPlayView
+ */
+static void _vp_play_view_create_callback(PlayView * pPlayView)
+{
+ if (!pPlayView) {
+ VideoLogError("play view handle is NULL");
+ return;
+ }
+
+
+ pPlayView->pCallback =
+ (PlayViewCbFunc *) calloc(1, sizeof(PlayViewCbFunc));
+ if (pPlayView->pCallback == NULL) {
+ VideoLogError("playview Callback alloc fail");
+ return;
+ }
+
+ pPlayView->pCallback->pRealizeCb = NULL;
+ pPlayView->pCallback->pDestroyCb = NULL;
+ pPlayView->pCallback->pEventKeyDown = NULL;
+ pPlayView->pCallback->pEventKeyUp = NULL;
+
+ return;
+}
+
+/**
+ *
+ * @param pPlayView
+ */
+static void _vp_play_view_destroy_callback(PlayView * pPlayView)
+{
+ if (!pPlayView) {
+ VideoLogError("play view handle is NULL");
+ return;
+ }
+
+ if (!pPlayView->pCallback) {
+ VideoLogError("play view Callback is NULL");
+ return;
+ }
+
+ pPlayView->pCallback->pRealizeCb = NULL;
+ pPlayView->pCallback->pDestroyCb = NULL;
+ pPlayView->pCallback->pEventKeyDown = NULL;
+ pPlayView->pCallback->pEventKeyUp = NULL;
+
+ VP_FREE(pPlayView->pCallback);
+}
+
+/**
+ *
+ * @param pPlayView
+ */
+static void _vp_play_view_create_func(PlayView * pPlayView)
+{
+ if (!pPlayView) {
+ VideoLogError("play view handle is NULL");
+ return;
+ }
+
+
+ pPlayView->pFunc = (PlayViewFunc *) calloc(1, sizeof(PlayViewFunc));
+ if (pPlayView->pFunc == NULL) {
+ VideoLogError("playview func alloc fail");
+ return;
+ }
+
+ pPlayView->pFunc->vp_play_func_change_mode =
+ __vp_play_view_func_change_mode;
+ pPlayView->pFunc->vp_play_func_exit = __vp_play_view_func_exit;
+
+}
+
+/**
+ *
+ * @param pPlayView
+ */
+static void _vp_play_view_destroy_func(PlayView * pPlayView)
+{
+ if (!pPlayView) {
+ VideoLogError("play view handle is NULL");
+ return;
+ }
+
+ if (!pPlayView->pFunc) {
+ VideoLogError("play view func is NULL");
+ return;
+ }
+
+ pPlayView->pFunc->vp_play_func_change_mode = NULL;
+ pPlayView->pFunc->vp_play_func_exit = NULL;
+
+ VP_FREE(pPlayView->pFunc);
+}
+
+/**
+ *
+ * @param pPlayView
+ */
+static void _vp_play_view_destroy_handle(PlayView * pPlayView)
+{
+ if (!pPlayView) {
+ VideoLogError("play view handle is NULL");
+ return;
+ }
+
+ _vp_play_view_destroy_callback(pPlayView);
+ _vp_play_view_destroy_func(pPlayView);
+#ifdef OLD_SENSOR_API
+ vp_sensor_destroy(pPlayView->pSensorHandle);
+ pPlayView->pSensorHandle = NULL;
+
+ vp_play_sensor_popup_destroy(pPlayView->pSensorPopup);
+ pPlayView->pSensorPopup = NULL;
+#endif
+
+ VP_EVAS_TIMER_DEL(pPlayView->pDbUpdateTimer);
+ VP_EVAS_TIMER_DEL(pPlayView->pSbeamTimer);
+ VP_EVAS_TIMER_DEL(pPlayView->pVolumeTimer);
+ VP_EVAS_TIMER_DEL(pPlayView->pHwKeyLongPressTimer);
+ VP_EVAS_TIMER_DEL(pPlayView->pMediaKeyTimer);
+ VP_EVAS_TIMER_DEL(pPlayView->pMediaLongPressTimer);
+ VP_EVAS_IDLER_DEL(pPlayView->pHideIdler);
+
+ VP_EVAS_EVENT_HANDLER_DEL(pPlayView->pKeyEventDown);
+ VP_EVAS_EVENT_HANDLER_DEL(pPlayView->pKeyEventUp);
+ VP_EVAS_EVENT_HANDLER_DEL(pPlayView->pFocusIn);
+ VP_EVAS_EVENT_HANDLER_DEL(pPlayView->pFocusOut);
+ VP_EVAS_EVENT_HANDLER_DEL(pPlayView->pVisiblility);
+ VP_EVAS_EVENT_HANDLER_DEL(pPlayView->pClientMessage);
+ VP_EVAS_EVENT_HANDLER_DEL(pPlayView->pDeleteRequest);
+ VP_EVAS_EVENT_HANDLER_DEL(pPlayView->pPropertyHandler);
+ VP_EVAS_EVENT_HANDLER_DEL(pPlayView->pMouseInHandler);
+ VP_EVAS_EVENT_HANDLER_DEL(pPlayView->pMouseOutHandler);
+ VP_EVAS_EVENT_HANDLER_DEL(pPlayView->pPalmHoldEventHandler);
+ VP_EVAS_EVENT_HANDLER_DEL(pPlayView->pCallerWinEventHandler);
+
+ VP_EVAS_PIPE_DEL(pPlayView->pNotiPipe);
+
+ if (pPlayView->pNormalView) {
+ vp_play_normal_view_destroy(pPlayView->pNormalView);
+ pPlayView->pNormalView = NULL;
+ }
+
+ VP_EVAS_DEL(pPlayView->pMainLayout);
+ VP_EVAS_DEL(pPlayView->pNaviframe);
+ VP_EVAS_DEL(pPlayView->pConformant);
+ VP_EVAS_DEL(pPlayView->pRenderRect);
+ VP_EVAS_DEL(pPlayView->pBackground);
+ VP_EVAS_DEL(pPlayView->pWin);
+
+ VP_FREE(pPlayView->szSubtitleURL);
+ VP_FREE(pPlayView->szMediaURL);
+ VP_FREE(pPlayView->szDeviceID);
+ VP_FREE(pPlayView->szAutoPlay);
+ VP_FREE(pPlayView->szDMRID);
+ VP_FREE(pPlayView->szCookie);
+ VP_FREE(pPlayView->szProxy);
+
+ _vp_play_view_deinit_config(pPlayView);
+
+ free(pPlayView);
+ pPlayView = NULL;
+}
+
+/**
+ *
+ * @param type
+ * @param pUserData
+ */
+static void _vp_play_view_net_status_changed_cb(connection_type_e type,
+ void *pUserData)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+ PlayView *pPlayView = (PlayView *) pUserData;
+ int net_status = type;
+
+ VideoSecureLogInfo("Changed : NETWORK_STATUS(%d)", net_status);
+
+ if (pPlayView->nLaunchingType != VIDEO_PLAY_TYPE_WEB) {
+ return;
+ }
+
+ if (vp_play_util_rtsp_url_check((const char *) pPlayView->szMediaURL)
+ == FALSE) {
+ VideoLogWarning
+ ("Not a RTSP/RTP url. skip wifi key changed signal");
+ return;
+ } else {
+ VideoLogWarning("RTSP/RTP url");
+ }
+ /*
+ Network change info
+ WIFI(2) -> OFF(0) -> CELLULAR(1)
+ CELLULAR(1) -> WIFI(2)
+ */
+ if (net_status == CONNECTION_TYPE_DISCONNECTED) {
+ VideoSecureLogInfo("network off");
+ if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+ VideoLogInfo("normal view disconnect");
+ vp_play_normal_view_web_type_disconnect(pPlayView->
+ pNormalView);
+ }
+ } else if (net_status == CONNECTION_TYPE_CELLULAR) {
+ if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+ VideoLogInfo("normal view reconnection");
+ vp_play_normal_view_web_type_reconnect(pPlayView->pNormalView);
+ }
+ } else if (net_status == CONNECTION_TYPE_WIFI) {
+ if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+ VideoLogInfo("normal view reconnection");
+ vp_play_normal_view_web_type_reconnect(pPlayView->pNormalView);
+ }
+ }
+}
+
+/**
+ *
+ * @param bCover_state
+ * @param pUserData
+ */
+static void __vp_play_view_holl_ic_changed_cb(bool bCover_state,
+ void *pUserData)
+{
+ // bCover_state : TRUE(Cover Opened), bCover_state : FALSE(Cover closed)
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ PlayView *pPlayView = (PlayView *) pUserData;
+ if (pPlayView->bActivate == FALSE) {
+ return;
+ }
+ VideoLogWarning("bCover_state : %d", bCover_state);
+
+ if (bCover_state == FALSE) {
+ if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+ if (!vp_play_normal_view_pause(pPlayView->pNormalView)) {
+ VideoLogError("vp_play_normal_view_realize fail");
+ }
+ if (!vp_play_normal_view_set_manual_pause
+ (pPlayView->pNormalView, TRUE)) {
+ VideoLogError("vp_play_normal_view_set_manual_pause fail");
+ }
+ }
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ */
+static void _vp_play_view_ignore_callbacks(void *pUserData)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+ PlayView *pPlayView = (PlayView *) pUserData;
+ if (pPlayView->connection) {
+ if (connection_unset_type_changed_cb(pPlayView->connection) !=
+ CONNECTION_ERROR_NONE) {
+ VideoLogError("failed to unregister network status callback");
+ }
+
+ if (connection_destroy(pPlayView->connection) !=
+ CONNECTION_ERROR_NONE) {
+ VideoLogError("failed to destroy connection handle");
+ }
+ pPlayView->connection = NULL;
+ }
+ vp_play_config_ignore_rotate_state_key_changed_cb();
+ vp_play_config_ignore_battery_charge_state_key_changed_cb();
+ if (pPlayView->bWifi) {
+ vp_play_config_ignore_wifi_state_key_changed_cb();
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @return
+ */
+static Eina_Bool __vp_play_view_db_update_timer_cb(void *pUserData)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return ECORE_CALLBACK_CANCEL;
+ }
+ PlayView *pPlayView = (PlayView *) pUserData;
+ pPlayView->pDbUpdateTimer = NULL;
+
+ if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+ vp_play_normal_view_db_change(pPlayView->pNormalView);
+ }
+
+ return ECORE_CALLBACK_CANCEL;
+}
+
+/**
+ *
+ * @param pUserData
+ */
+static void __vp_playview_media_update_cb(void *pUserData)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+ PlayView *pPlayView = (PlayView *) pUserData;
+
+ VP_EVAS_TIMER_DEL(pPlayView->pDbUpdateTimer);
+ pPlayView->pDbUpdateTimer =
+ ecore_timer_add(VP_PLAY_VIEW_DB_UPDATE_TIMER,
+ __vp_play_view_db_update_timer_cb,
+ (void *) pUserData);
+}
+
+/**
+ *
+ * @param pParent
+ * @param nParentXID
+ * @param nMode
+ * @param nLaunchingType
+ * @return
+ */
+play_view_handle vp_play_view_create(Evas_Object * pParent,
+ Ecore_X_Window nParentXID,
+ video_play_mode_t nMode,
+ video_play_launching_type_t
+ nLaunchingType)
+{
+ if (!pParent) {
+ VideoLogWarning("pParent handle is NULL");
+ }
+
+ VideoLogWarning("");
+
+ PlayView *pPlayView = NULL;
+
+ pPlayView = calloc(1, sizeof(PlayView));
+ if (!pPlayView) {
+ VideoLogError("PlayView alloc fail");
+ return NULL;
+ }
+
+ pPlayView->pParent = pParent;
+ pPlayView->nPlayMode = nMode;
+ pPlayView->nLaunchingType = nLaunchingType;
+ pPlayView->minicontroller_layout = NULL;
+ pPlayView->win_minicon = NULL;
+ pPlayView->lockmini_layout = NULL;
+ pPlayView->win_lockmini = NULL;
+
+ /* init preference */
+ vp_play_preference_init();
+
+ /* set custom theme */
+ _vp_play_view_init_config(pPlayView);
+
+ /* create callback */
+ _vp_play_view_create_callback(pPlayView);
+
+ /* create internal function */
+ _vp_play_view_create_func(pPlayView);
+
+ if (!_vp_play_view_init_layout(pPlayView)) {
+ VideoLogError("_vp_play_view_init_layout is fail");
+ _vp_play_view_destroy_handle(pPlayView);
+ return NULL;
+ }
+
+ pPlayView->fPlaySpeed = 1.0;
+ pPlayView->bActivate = TRUE;
+
+
+ if (!_vp_play_view_create_mode(pPlayView)) {
+ VideoLogError("_vp_play_view_handle_create is fail");
+ _vp_play_view_destroy_handle(pPlayView);
+ return NULL;
+ }
+
+ pPlayView->pKeyEventDown =
+ ecore_event_handler_add(ECORE_EVENT_KEY_DOWN,
+ (void *) __vp_play_view_event_key_down_cb,
+ (void *) pPlayView);
+ pPlayView->pKeyEventUp =
+ ecore_event_handler_add(ECORE_EVENT_KEY_UP,
+ (void *) __vp_play_view_event_key_up_cb,
+ (void *) pPlayView);
+
+ pPlayView->pNotiPipe =
+ ecore_pipe_add((Ecore_Pipe_Cb) __vp_play_view_noti_pipe_cb,
+ (void *) pPlayView);
+#ifdef OLD_SENSOR_API
+ pPlayView->pSensorHandle =
+ vp_sensor_create(__vp_play_view_sensor_event_cb);
+ if (pPlayView->pSensorHandle) {
+ vp_sensor_set_user_data(pPlayView->pSensorHandle,
+ (void *) pPlayView);
+ }
+#endif
+
+ pPlayView->bAVRCP = vp_avrcp_initialize(pPlayView);
+ pPlayView->bWifi = vp_play_wifi_initialize();
+
+ bool bWifiConnect = FALSE;
+ vp_play_config_get_wifi_direct_connect_status(&bWifiConnect);
+
+ vp_media_contents_set_update_cb(__vp_playview_media_update_cb,
+ (void *) pPlayView);
+
+ return pPlayView;
+}
+
+#ifdef _PERF_TEST_
+void vp_play_view_reset(play_view_handle pViewHandle, int nMode)
+{
+ if (!pViewHandle) {
+ VideoLogError("PlayView handle is NULL");
+ return;
+ }
+
+ PlayView *pPlayView = (PlayView *) pViewHandle;
+
+ if (nMode != pPlayView->nPlayMode) {
+ VideoLogError("Another mode(%d), reset playview", nMode);
+ vp_play_view_destroy(pViewHandle);
+ }
+}
+#endif
+
+/**
+ *
+ * @param pViewHandle
+ */
+void vp_play_view_destroy(play_view_handle pViewHandle)
+{
+ if (!pViewHandle) {
+ VideoLogError("PlayView handle is NULL");
+ return;
+ }
+
+ VideoLogWarning("");
+
+ PlayView *pPlayView = (PlayView *) pViewHandle;
+
+ vp_play_config_set_multi_play_status(FALSE);
+
+ pPlayView->bDestroy = TRUE;
+
+ vp_media_contents_unset_update_cb();
+
+ vp_play_view_unrealize(pPlayView);
+
+ if (pPlayView->pMultiPathList) {
+ vp_multi_path_clear_item(pPlayView->pMultiPathList);
+ g_list_free(pPlayView->pMultiPathList);
+ pPlayView->pMultiPathList = NULL;
+ }
+
+ _vp_play_view_destroy_handle(pPlayView);
+
+ VideoLogInfo("<< Play View : Destroy");
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @return
+ */
+bool vp_play_view_live_stream_realize(play_view_handle pViewHandle)
+{
+ if (!pViewHandle) {
+ VideoLogError("PlayView handle is NULL");
+ return FALSE;
+ }
+
+ PlayView *pPlayView = (PlayView *) pViewHandle;
+
+ vp_mm_player_state_t nState = VP_MM_PLAYER_STATE_NONE;
+ nState =
+ vp_controller_normal_view_get_played_state(pPlayView->pNormalView);
+ if (nState == VP_MM_PLAYER_STATE_IDLE) {
+ return TRUE;
+ }
+ int nDuration = 0;
+ if (vp_play_normal_view_get_video_duration
+ (pPlayView->pNormalView, &nDuration)) {
+ pPlayView->nDuration = nDuration;
+ }
+ VideoLogInfo(">> Play View : %d", pPlayView->nDuration);
+ if (pPlayView->nDuration == 0) {
+ vp_play_normal_view_play_start(pPlayView->pNormalView);
+ return TRUE;
+ } else {
+ if (pPlayView->bIsPlayBeforeShare
+ && pPlayView->bIsSharePopup == FALSE) {
+ vp_play_normal_view_set_resume_or_pause(pPlayView->
+ pNormalView);
+ return TRUE;
+ } else if (pPlayView->bAudioOnly && pPlayView->bIsSharePopup
+ && nState == VP_MM_PLAYER_STATE_PLAYING) {
+ vp_play_normal_view_set_resume_or_pause(pPlayView->
+ pNormalView);
+ }
+ }
+ return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @return
+ */
+bool vp_play_view_realize(play_view_handle pViewHandle)
+{
+ int error = SOUND_MANAGER_ERROR_NONE;
+ if (!pViewHandle) {
+ VideoLogError("PlayView handle is NULL");
+ return FALSE;
+ }
+
+ PlayView *pPlayView = (PlayView *) pViewHandle;
+
+ VideoLogInfo(">> Play View : Realize");
+
+ if (vp_play_normal_view_is_audio_only(pPlayView)) {
+ int nCurPos;
+ vp_mm_player_state_t nState =
+ vp_play_normal_view_get_player_state(pPlayView);
+
+ vp_play_normal_view_get_last_position(pPlayView->pNormalView,
+ &nCurPos);
+ pPlayView->nStartPosition = nCurPos;
+
+ if (nState == VP_MM_PLAYER_STATE_PLAYING) {
+ return TRUE;
+ }
+ }
+
+ pPlayView->bActivate = TRUE;
+ pPlayView->bVisible = TRUE;
+ pPlayView->telinit = vp_play_telephony_initialize((void *) pPlayView);
+
+ vp_play_normal_view_key_create(pPlayView, pPlayView->pNormalView);
+
+ if (!vp_play_normal_view_is_audio_only(pPlayView)) {
+ vp_sound_init_session(pViewHandle);
+ sound_stream_focus_state_e state_for_playback;
+ sound_stream_focus_state_e state_for_recording;
+ int ret = -1;
+
+ ret =
+ sound_manager_get_focus_state(pPlayView->stream_info,
+ &state_for_playback,
+ &state_for_recording);
+ if (ret != SOUND_MANAGER_ERROR_NONE) {
+ VideoLogError("failed to get focus state error[%x]", ret);
+ }
+ if (state_for_playback == SOUND_STREAM_FOCUS_STATE_RELEASED) {
+ error =
+ sound_manager_acquire_focus(pPlayView->stream_info,
+ SOUND_STREAM_FOCUS_FOR_PLAYBACK,
+ SOUND_BEHAVIOR_NONE, NULL);
+ if (error != SOUND_MANAGER_ERROR_NONE) {
+ VideoLogError("failed to acquire focus [%x]", error);
+ }
+ sound_manager_get_focus_reacquisition(pPlayView->stream_info,
+ &pPlayView->
+ reacquire_state);
+ if (pPlayView->reacquire_state == EINA_FALSE)
+ sound_manager_set_focus_reacquisition(pPlayView->
+ stream_info,
+ EINA_TRUE);
+ }
+ }
+ if (pPlayView->bRealized == TRUE) {
+ VideoLogWarning("Already Realize state");
+ }
+
+ /*unregister callbacks */
+ _vp_play_view_ignore_callbacks(pPlayView);
+
+ if (pPlayView->pHollICHandle) {
+ vp_hollic_destroy_handle(pPlayView->pHollICHandle);
+ pPlayView->pHollICHandle = NULL;
+ }
+ pPlayView->pHollICHandle =
+ vp_hollic_create_handle(__vp_play_view_holl_ic_changed_cb,
+ (void *) pPlayView);
+#ifdef OLD_SENSOR_API
+ vp_sensor_realize(pPlayView->pSensorHandle);
+#endif
+
+ vp_sound_set_route_change_cb(__vp_play_sound_route_change_cb,
+ (void *) pPlayView);
+ vp_sound_set_volume_change_cb(__vp_play_sound_volume_change_cb,
+ (void *) pPlayView);
+ if (!pPlayView->connection) {
+ int ret = connection_create(&pPlayView->connection);
+ if (ret != CONNECTION_ERROR_NONE || !pPlayView->connection) {
+ VideoLogWarning("Fail to create connection handle [%d]\n",
+ ret);
+ }
+
+ if (pPlayView->connection) {
+ ret = connection_set_type_changed_cb(pPlayView->connection,
+ _vp_play_view_net_status_changed_cb,
+ (void *) pPlayView);
+ if (ret != CONNECTION_ERROR_NONE) {
+ VideoLogWarning
+ ("Fail to register network status callback [%d]\n",
+ ret);
+ }
+ }
+ }
+ vp_play_config_set_rotate_state_key_changed_cb
+ (__vp_play_view_rotate_lock_key_changed_cb, (void *) pPlayView);
+ vp_play_config_set_lock_state_key_changed_cb
+ (__vp_play_view_lock_state_key_changed_cb, (void *) pPlayView);
+
+ if (pPlayView->bWifi) {
+ vp_play_config_set_wifi_state_key_changed_cb
+ (__vp_play_view_wifi_key_changed_cb, (void *) pPlayView);
+ }
+
+ if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+ vp_play_util_key_grab(pPlayView->pWin, VP_VOLUME_UP_KEY);
+ vp_play_util_key_grab(pPlayView->pWin, VP_VOLUME_DOWN_KEY);
+ vp_play_util_key_grab(pPlayView->pWin, VP_VOLUME_MUTE);
+
+ vp_play_util_key_grab(pPlayView->pWin, VP_PLAYPAUSE_KEY);
+ vp_play_util_key_grab(pPlayView->pWin, VP_PLAY_NEXT_SONG_KEY);
+ vp_play_util_key_grab(pPlayView->pWin, VP_PLAY_PREV_SONG_KEY);
+
+ vp_play_util_key_grab(pPlayView->pWin, VP_POWER_KEY);
+
+ bool bVideoOnly = FALSE;
+ VideoLogWarning("video output: internal display");
+ vp_play_preference_set_allow_dock_connect_key(FALSE);
+
+ if (pPlayView->szDMRID) {
+ if (!vp_play_normal_view_set_manual_pause
+ ((normal_view_handle) pPlayView->pNormalView, TRUE)) {
+ VideoLogError
+ ("vp_play_normal_view_set_start_position fail");
+ return FALSE;
+ }
+ if (!vp_play_normal_view_set_video_only
+ (pPlayView->pNormalView, TRUE)) {
+ VideoLogError("vp_play_normal_view_set_video_only fail");
+ return FALSE;
+ }
+ } else {
+ if (!vp_play_normal_view_set_video_only
+ (pPlayView->pNormalView, bVideoOnly)) {
+ VideoLogError("vp_play_normal_view_set_video_only fail");
+ return FALSE;
+ }
+ }
+
+ if (!vp_play_normal_view_set_start_position
+ ((normal_view_handle) pPlayView->pNormalView,
+ pPlayView->nStartPosition)) {
+ VideoLogError("vp_play_normal_view_set_start_position fail");
+ return FALSE;
+ }
+
+ if (!vp_play_normal_view_set_audio_track
+ ((normal_view_handle) pPlayView->pNormalView,
+ pPlayView->nAudioIndex)) {
+ VideoLogError("vp_play_normal_view_set_audio_track fail");
+ return FALSE;
+ }
+
+ if (!vp_play_normal_view_set_subtitle
+ ((normal_view_handle) pPlayView->pNormalView,
+ pPlayView->szSubtitleURL)) {
+ VideoLogInfo("vp_play_normal_view_set_subtitle fail");
+ }
+
+ if (!vp_play_normal_view_realize
+ ((normal_view_handle) pPlayView->pNormalView)) {
+ VideoLogError("vp_play_normal_view_realize fail");
+ vp_play_view_unrealize(pPlayView);
+ return FALSE;
+ }
+ }
+
+ pPlayView->bRealized = TRUE;
+
+ __vp_play_view_realize_cb((void *) pPlayView);
+
+ VideoLogWarning("<< Play View : Realize");
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @return
+ */
+bool vp_play_view_unrealize(play_view_handle pViewHandle)
+{
+ int error = SOUND_MANAGER_ERROR_NONE;
+ if (!pViewHandle) {
+ VideoLogError("PlayView handle is NULL");
+ return FALSE;
+ }
+ PlayView *pPlayView = (PlayView *) pViewHandle;
+
+ pPlayView->bActivate = FALSE;
+
+ if (pPlayView->bRealized == FALSE) {
+ VideoLogInfo("Already unrealized : playview");
+ return TRUE;
+ }
+ if (vp_play_normal_view_is_audio_only(pPlayView)) {
+ VideoLogInfo("In audio only mode!!!!");
+ return TRUE;
+ }
+
+ if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+ vp_play_preference_set_allow_dock_connect_key(TRUE);
+
+ VP_EVAS_TIMER_DEL(pPlayView->pVolumeTimer);
+ VP_EVAS_TIMER_DEL(pPlayView->pHwKeyLongPressTimer);
+ VP_EVAS_TIMER_DEL(pPlayView->pMediaKeyTimer);
+ VP_EVAS_TIMER_DEL(pPlayView->pMediaLongPressTimer);
+
+ vp_play_util_key_ungrab(pPlayView->pWin, VP_POWER_KEY);
+
+ vp_play_util_key_ungrab(pPlayView->pWin, VP_PLAYPAUSE_KEY);
+ vp_play_util_key_ungrab(pPlayView->pWin, VP_PLAY_NEXT_SONG_KEY);
+ vp_play_util_key_ungrab(pPlayView->pWin, VP_PLAY_PREV_SONG_KEY);
+
+ vp_play_util_key_ungrab(pPlayView->pWin, VP_VOLUME_UP_KEY);
+ vp_play_util_key_ungrab(pPlayView->pWin, VP_VOLUME_DOWN_KEY);
+ vp_play_util_key_ungrab(pPlayView->pWin, VP_VOLUME_MUTE);
+ vp_play_util_key_ungrab(pPlayView->pWin, VP_HOME_KEY);
+
+ sound_stream_focus_state_e state_for_playback;
+ sound_stream_focus_state_e state_for_recording;
+ int ret = -1;
+ ret =
+ sound_manager_get_focus_state(pPlayView->stream_info,
+ &state_for_playback,
+ &state_for_recording);
+ if (ret != SOUND_MANAGER_ERROR_NONE) {
+ VideoLogError("failed to get focus state error[%x]", ret);
+ }
+ if (state_for_playback != SOUND_STREAM_FOCUS_STATE_RELEASED) {
+ error =
+ sound_manager_release_focus(pPlayView->stream_info,
+ SOUND_STREAM_FOCUS_FOR_PLAYBACK,
+ SOUND_BEHAVIOR_NONE, NULL);
+ if (error != SOUND_MANAGER_ERROR_NONE) {
+ VideoLogError("failed to release focus error[%x]", error);
+ }
+ }
+
+ error = sound_manager_remove_device_state_changed_cb(pPlayView->device_state_id);
+ if (error != SOUND_MANAGER_ERROR_NONE) {
+ VideoLogError("Cannot remove device state changed callback");
+ }
+
+ media_key_release();
+ int nDuration = 0;
+ if (vp_play_normal_view_get_video_duration
+ (pPlayView->pNormalView, &nDuration)) {
+ pPlayView->nDuration = nDuration;
+ }
+ if (pPlayView->nDuration == 0) {
+ if (!vp_play_normal_view_stop_player(pPlayView->pNormalView)) {
+ VideoLogWarning("stop failed");
+ }
+ }
+ }
+
+ if (pPlayView->bDestroy == FALSE) {
+ VideoLogWarning("Skip for screen mirroring mode");
+ //return TRUE;
+ }
+
+ pPlayView->bRealized = FALSE;
+ vp_hollic_destroy_handle(pPlayView->pHollICHandle);
+ pPlayView->pHollICHandle = NULL;
+#ifdef OLD_SENSOR_API
+ vp_sensor_unrealize(pPlayView->pSensorHandle);
+#endif
+
+
+ vp_sound_deinit_session(pPlayView);
+
+ if (pPlayView->bAVRCP) {
+ vp_avrcp_noti_player_state(VP_MM_PLAYER_STATE_STOP);
+ vp_avrcp_deinitialize();
+ pPlayView->bAVRCP = FALSE;
+ }
+
+ _vp_play_view_ignore_callbacks(pPlayView);
+
+ if (pPlayView->bWifi) {
+ vp_play_wifi_deinitialize();
+ pPlayView->bWifi = FALSE;
+ }
+ if (pPlayView->telinit) {
+ vp_play_telephony_deinitialize();
+ }
+
+ if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+ int nCurPos = 0;
+ int nAudioIndex = 0;
+ video_sound_alive_t nSoundAlive = VIDEO_SA_NONE;
+
+ if (vp_play_normal_view_get_last_position
+ (pPlayView->pNormalView, &nCurPos)) {
+ pPlayView->nStartPosition = nCurPos;
+ }
+
+ if (vp_play_normal_view_get_sound_filter
+ (pPlayView->pNormalView, &nSoundAlive)) {
+ pPlayView->nSoundAlive = nSoundAlive;
+ }
+
+ if (vp_play_normal_view_get_audio_track
+ (pPlayView->pNormalView, &nAudioIndex)) {
+ pPlayView->nAudioIndex = nAudioIndex;
+ }
+
+ VP_FREE(pPlayView->szSubtitleURL);
+ vp_play_normal_view_get_subtitle(pPlayView->pNormalView, &pPlayView->szSubtitleURL);
+
+ VideoLogInfo("vp_play_normal_view_unrealize START");
+ if (!pPlayView->bIsSharePopup) {
+ if (!vp_play_normal_view_unrealize(pPlayView->pNormalView)) {
+ VideoLogError("vp_play_normal_view_unrealize fail");
+ }
+ }
+ }
+
+ VideoLogWarning("<< ----------");
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param bRealized
+ * @return
+ */
+bool vp_play_view_is_realize(play_view_handle pViewHandle,
+ bool * bRealized)
+{
+ if (!pViewHandle) {
+ VideoLogError("PlayView handle is NULL");
+ return FALSE;
+ }
+
+ PlayView *pPlayView = (PlayView *) pViewHandle;
+ bool bRealize = FALSE;
+
+ if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+ if (!vp_play_normal_view_is_realize
+ (pPlayView->pNormalView, &bRealize)) {
+ VideoLogError("vp_play_normal_view_is_realize is fail");
+ return FALSE;
+ }
+ }
+
+ *bRealized = bRealize;
+ return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param pUserData
+ * @return
+ */
+bool vp_play_view_set_user_data(play_view_handle pViewHandle,
+ void *pUserData)
+{
+ if (!pViewHandle) {
+ VideoLogError("PlayView handle is NULL");
+ return FALSE;
+ }
+
+ PlayView *pPlayView = (PlayView *) pViewHandle;
+
+ pPlayView->pUserData = pUserData;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param szMediaURL
+ * @return
+ */
+bool vp_play_view_set_url(play_view_handle pViewHandle,
+ const char *szMediaURL)
+{
+ if (!pViewHandle) {
+ VideoLogError("PlayView handle is NULL");
+ return FALSE;
+ }
+ if (!szMediaURL) {
+ VideoLogError("szMediaURL is NULL");
+ return FALSE;
+ }
+
+ PlayView *pPlayView = (PlayView *) pViewHandle;
+
+ VP_FREE(pPlayView->szMediaURL);
+ char *szConvert =
+ vp_play_util_remove_prefix_to_url((char *) szMediaURL);
+ if (szConvert) {
+ VP_STRDUP(pPlayView->szMediaURL, szConvert);
+ } else {
+ VP_STRDUP(pPlayView->szMediaURL, szMediaURL);
+ }
+ VP_FREE(szConvert);
+
+ char *szPreviewURL = NULL;
+ vp_play_config_get_preview_url_videos(&szPreviewURL);
+ if (szPreviewURL) {
+ if (strcmp(szPreviewURL, szMediaURL) == 0) {
+ int nAudioTrack = 0;
+ vp_play_preference_get_preview_audio_track(&nAudioTrack);
+ pPlayView->nAudioIndex = nAudioTrack;
+ }
+ }
+ VP_FREE(szPreviewURL);
+
+ if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+ if (!vp_play_normal_view_set_url
+ (pPlayView->pNormalView, pPlayView->szMediaURL)) {
+ VideoLogError("vp_play_normal_view_set_url fail");
+ return FALSE;
+ }
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param szMediaURL
+ * @return
+ */
+bool vp_play_view_get_url(play_view_handle pViewHandle, char **szMediaURL)
+{
+ if (!pViewHandle) {
+ VideoLogError("PlayView handle is NULL");
+ return FALSE;
+ }
+ if (!szMediaURL) {
+ VideoLogError("szMediaURL is NULL");
+ return FALSE;
+ }
+
+ PlayView *pPlayView = (PlayView *) pViewHandle;
+
+ VP_STRDUP(*szMediaURL, pPlayView->szMediaURL);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param bVisible
+ * @return
+ */
+bool vp_play_view_get_visible_status(play_view_handle pViewHandle,
+ bool * bVisible)
+{
+ if (!pViewHandle) {
+ VideoLogError("PlayView handle is NULL");
+ return FALSE;
+ }
+
+ PlayView *pPlayView = (PlayView *) pViewHandle;
+
+ *bVisible = pPlayView->bVisible;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param szURL
+ * @param szTitle
+ * @param szSubTitle
+ * @param nPosition
+ * @param nDuration
+ * @param bIsSameAP
+ * @return
+ */
+bool vp_play_view_add_multi_path(play_view_handle pViewHandle,
+ const char *szURL,
+ char *szTitle,
+ char *szSubTitle,
+ int nPosition,
+ int nDuration, bool bIsSameAP)
+{
+ if (!pViewHandle) {
+ VideoLogError("PlayView handle is NULL");
+ return FALSE;
+ }
+
+ if (!szURL) {
+ VideoLogError("szURL is NULL");
+ return FALSE;
+ }
+
+ PlayView *pPlayView = (PlayView *) pViewHandle;
+
+ VideoSecureLogInfo
+ ("URL[%s],SubTitle[%s],Pos[%d], Duration[%d], Title[%s], SameAP[%d]",
+ szURL, szSubTitle, nPosition, nDuration, szTitle,
+ (int) bIsSameAP);
+
+ if (!vp_multi_path_add_item
+ (&(pPlayView->pMultiPathList), szURL, szTitle, szSubTitle,
+ nPosition, nDuration, bIsSameAP)) {
+ VideoLogError("vp_multi_path_add_item is fail");
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param szDeviceID
+ * @return
+ */
+bool vp_play_view_set_device_id(play_view_handle pViewHandle,
+ const char *szDeviceID)
+{
+ if (!pViewHandle) {
+ VideoLogError("PlayView handle is NULL");
+ return FALSE;
+ }
+ if (!szDeviceID) {
+ VideoLogError("szDeviceID is NULL");
+ return FALSE;
+ }
+
+ PlayView *pPlayView = (PlayView *) pViewHandle;
+
+ VP_FREE(pPlayView->szDeviceID);
+ VP_STRDUP(pPlayView->szDeviceID, szDeviceID);
+ return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param autoplay
+ * @return
+ */
+bool vp_play_view_set_auto_play_setting(play_view_handle pViewHandle,
+ const char *autoplay)
+{
+ if (!pViewHandle) {
+ VideoLogError("PlayView handle is NULL");
+ return FALSE;
+ }
+ if (!autoplay) {
+ VideoLogError("autoplay is NULL");
+ return FALSE;
+ }
+
+ PlayView *pPlayView = (PlayView *) pViewHandle;
+ VP_FREE(pPlayView->szAutoPlay);
+ VP_STRDUP(pPlayView->szAutoPlay, autoplay);
+ return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param szDMRID
+ * @return
+ */
+bool vp_play_view_set_dmr_id(play_view_handle pViewHandle,
+ const char *szDMRID)
+{
+ if (!pViewHandle) {
+ VideoLogError("PlayView handle is NULL");
+ return FALSE;
+ }
+ if (!szDMRID) {
+ VideoLogError("szDMRID is NULL");
+ return FALSE;
+ }
+
+ PlayView *pPlayView = (PlayView *) pViewHandle;
+
+ VP_FREE(pPlayView->szDMRID);
+ VP_STRDUP(pPlayView->szDMRID, szDMRID);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param szMediaTitle
+ * @return
+ */
+bool vp_play_view_set_media_title(play_view_handle pViewHandle,
+ const char *szMediaTitle)
+{
+ if (!pViewHandle) {
+ VideoLogError("PlayView handle is NULL");
+ return FALSE;
+ }
+ if (!szMediaTitle) {
+ VideoLogError("szMediaTitle is NULL");
+ return FALSE;
+ }
+
+ PlayView *pPlayView = (PlayView *) pViewHandle;
+
+ VP_FREE(pPlayView->szMediaTitle);
+ VP_STRDUP(pPlayView->szMediaTitle, szMediaTitle);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param nPosition
+ * @return
+ */
+bool vp_play_view_set_start_position(play_view_handle pViewHandle,
+ int nPosition)
+{
+ if (!pViewHandle) {
+ VideoLogError("PlayView handle is NULL");
+ return FALSE;
+ }
+ PlayView *pPlayView = (PlayView *) pViewHandle;
+
+ pPlayView->nStartPosition = nPosition;
+
+ if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+ if (!vp_play_normal_view_set_start_position
+ (pPlayView->pNormalView, nPosition)) {
+ VideoLogError("vp_play_normal_view_set_url fail");
+ return FALSE;
+ }
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param nRotate
+ * @return
+ */
+bool vp_play_view_set_rotate(play_view_handle pViewHandle,
+ video_play_rotate_t nRotate)
+{
+ if (!pViewHandle) {
+ VideoLogError("PlayView handle is NULL");
+ return FALSE;
+ }
+ PlayView *pPlayView = (PlayView *) pViewHandle;
+
+ if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+ if (!vp_play_normal_view_set_rotate
+ (pPlayView->pNormalView, nRotate, TRUE)) {
+ VideoLogError("vp_play_normal_view_set_rotate fail");
+ return FALSE;
+ }
+ }
+
+ pPlayView->nRotate = nRotate;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param bPopupMode
+ * @return
+ */
+bool vp_play_view_get_popup_mode(play_view_handle pViewHandle,
+ bool * bPopupMode)
+{
+ if (!pViewHandle) {
+ VideoLogError("PlayView handle is NULL");
+ return FALSE;
+ }
+
+ *bPopupMode = FALSE;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param bRelaunch
+ * @return
+ */
+bool vp_play_view_set_relaunch_caller(play_view_handle pViewHandle,
+ bool bRelaunch)
+{
+ if (!pViewHandle) {
+ VideoLogError("PlayView handle is NULL");
+ return FALSE;
+ }
+
+ PlayView *pPlayView = (PlayView *) pViewHandle;
+
+ pPlayView->bRelaunchCaller = bRelaunch;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param nLaunchingType
+ * @return
+ */
+bool vp_play_view_set_launching_mode(play_view_handle pViewHandle,
+ video_play_launching_type_t
+ nLaunchingType)
+{
+ if (!pViewHandle) {
+ VideoLogError("PlayView handle is NULL");
+ return FALSE;
+ }
+
+ PlayView *pPlayView = (PlayView *) pViewHandle;
+
+ pPlayView->nLaunchingType = nLaunchingType;
+ if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+ if (!vp_play_normal_view_set_launching_mode
+ (pPlayView->pNormalView, nLaunchingType)) {
+ VideoLogError
+ ("vp_play_normal_view_set_launching_mode is fail");
+ return FALSE;
+ }
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param nListType
+ * @return
+ */
+bool vp_play_view_set_list_mode(play_view_handle pViewHandle,
+ video_play_list_type_t nListType)
+{
+ if (!pViewHandle) {
+ VideoLogError("PlayView handle is NULL");
+ return FALSE;
+ }
+
+ PlayView *pPlayView = (PlayView *) pViewHandle;
+
+ pPlayView->nListType = nListType;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param szCookie
+ * @return
+ */
+bool vp_play_view_set_cookie(play_view_handle pViewHandle,
+ const char *szCookie)
+{
+ if (!pViewHandle) {
+ VideoLogError("PlayView handle is NULL");
+ return FALSE;
+ }
+
+ PlayView *pPlayView = (PlayView *) pViewHandle;
+
+ VP_FREE(pPlayView->szCookie);
+
+ VP_STRDUP(pPlayView->szCookie, szCookie);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param szProxy
+ * @return
+ */
+bool vp_play_view_set_proxy(play_view_handle pViewHandle,
+ const char *szProxy)
+{
+ if (!pViewHandle) {
+ VideoLogError("PlayView handle is NULL");
+ return FALSE;
+ }
+
+ PlayView *pPlayView = (PlayView *) pViewHandle;
+
+ VP_FREE(pPlayView->szProxy);
+
+ VP_STRDUP(pPlayView->szProxy, szProxy);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param bStoreDownload
+ * @return
+ */
+bool vp_play_view_set_store_download_mode(play_view_handle pViewHandle,
+ bool bStoreDownload)
+{
+ if (!pViewHandle) {
+ VideoLogError("PlayView handle is NULL");
+ return FALSE;
+ }
+
+ PlayView *pPlayView = (PlayView *) pViewHandle;
+
+ pPlayView->bStoreDownload = bStoreDownload;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param bStopAfterRepeat
+ * @return
+ */
+bool vp_play_view_set_stop_after_repeat_mode(play_view_handle pViewHandle,
+ bool bStopAfterRepeat)
+{
+ if (!pViewHandle) {
+ VideoLogError("PlayView handle is NULL");
+ return FALSE;
+ }
+
+ PlayView *pPlayView = (PlayView *) pViewHandle;
+
+ pPlayView->bStopAfterRepeat = bStopAfterRepeat;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param dStoreDL_FileSize
+ * @return
+ */
+bool vp_play_view_set_store_download_filesize(play_view_handle pViewHandle,
+ double dStoreDL_FileSize)
+{
+ if (!pViewHandle) {
+ VideoLogError("PlayView handle is NULL");
+ return FALSE;
+ }
+
+ PlayView *pPlayView = (PlayView *) pViewHandle;
+
+ pPlayView->dStoreDL_FileSize = dStoreDL_FileSize;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param pStoreOrderId
+ * @param pStoreServerId
+ * @param pStoreAppId
+ * @param pStoreMvId
+ * @return
+ */
+bool vp_play_view_set_store_order_info(play_view_handle pViewHandle,
+ char *pStoreOrderId,
+ char *pStoreServerId,
+ char *pStoreAppId, char *pStoreMvId)
+{
+ if (!pViewHandle) {
+ VideoLogError("PlayView handle is NULL");
+ return FALSE;
+ }
+
+ if (!pStoreOrderId) {
+ VideoLogError("pStoreOrderId is NULL");
+ return FALSE;
+ }
+
+ if (!pStoreServerId) {
+ VideoLogError("pStoreServerId is NULL");
+ return FALSE;
+ }
+
+ if (!pStoreAppId) {
+ VideoLogError("pStoreAppId is NULL");
+ return FALSE;
+ }
+
+ if (!pStoreMvId) {
+ VideoLogError("pStoreMvId is NULL");
+ return FALSE;
+ }
+
+ VideoSecureLogInfo
+ ("pStoreOrderId : [%s], pStoreServerId : [%s], pStoreAppId : [%s], pStoreMvId : [%s]",
+ pStoreOrderId, pStoreServerId, pStoreAppId, pStoreMvId);
+
+
+ PlayView *pPlayView = (PlayView *) pViewHandle;
+
+ VP_FREE(pPlayView->pStoreOrderId);
+ VP_STRDUP(pPlayView->pStoreOrderId, pStoreOrderId);
+
+ VP_FREE(pPlayView->pStoreServerId);
+ VP_STRDUP(pPlayView->pStoreServerId, pStoreServerId);
+
+ VP_FREE(pPlayView->pStoreAppId);
+ VP_STRDUP(pPlayView->pStoreAppId, pStoreAppId);
+
+ VP_FREE(pPlayView->pStoreMvId);
+ VP_STRDUP(pPlayView->pStoreMvId, pStoreMvId);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @return
+ */
+bool vp_play_view_update(play_view_handle pViewHandle)
+{
+ if (!pViewHandle) {
+ VideoLogError("PlayView handle is NULL");
+ return FALSE;
+ }
+ PlayView *pPlayView = (PlayView *) pViewHandle;
+ if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+ vp_play_normal_view_update(pPlayView->pNormalView);
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param nCbType
+ * @param pFunc
+ * @return
+ */
+bool vp_play_view_set_callback(play_view_handle pViewHandle,
+ video_play_callback_type_t nCbType,
+ void *pFunc)
+{
+ if (!pViewHandle) {
+ VideoLogError("PlayView handle is NULL");
+ return FALSE;
+ }
+ PlayView *pPlayView = (PlayView *) pViewHandle;
+
+ if (pPlayView->pCallback == NULL) {
+ VideoLogError("PlayView Callback is NULL");
+ return FALSE;
+ }
+
+ if (nCbType == VIDEO_PLAY_CB_TYPE_REALIZE) {
+ pPlayView->pCallback->pRealizeCb = pFunc;
+ } else if (nCbType == VIDEO_PLAY_CB_TYPE_DESTORY) {
+ pPlayView->pCallback->pDestroyCb = pFunc;
+ } else if (nCbType == VIDEO_PLAY_CB_TYPE_EVENT_KEY_DOWN) {
+ pPlayView->pCallback->pEventKeyDown = pFunc;
+ } else if (nCbType == VIDEO_PLAY_CB_TYPE_EVENT_KEY_UP) {
+ pPlayView->pCallback->pEventKeyUp = pFunc;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param nCbType
+ * @return
+ */
+bool vp_play_view_unset_callback(play_view_handle pViewHandle,
+ video_play_callback_type_t nCbType)
+{
+ if (!pViewHandle) {
+ VideoLogError("PlayView handle is NULL");
+ return FALSE;
+ }
+ PlayView *pPlayView = (PlayView *) pViewHandle;
+
+ if (!pPlayView->pCallback) {
+ VideoLogError("PlayView Callback is NULL");
+ return FALSE;
+ }
+
+ if (nCbType == VIDEO_PLAY_CB_TYPE_REALIZE) {
+ pPlayView->pCallback->pRealizeCb = NULL;
+ } else if (nCbType == VIDEO_PLAY_CB_TYPE_DESTORY) {
+ pPlayView->pCallback->pDestroyCb = NULL;
+ } else if (nCbType == VIDEO_PLAY_CB_TYPE_EVENT_KEY_DOWN) {
+ pPlayView->pCallback->pEventKeyDown = NULL;
+ } else if (nCbType == VIDEO_PLAY_CB_TYPE_EVENT_KEY_UP) {
+ pPlayView->pCallback->pEventKeyUp = NULL;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @return
+ */
+Evas_Object *vp_play_view_get_main_window(play_view_handle pViewHandle)
+{
+ if (!pViewHandle) {
+ VideoLogError("PlayView handle is NULL");
+ return FALSE;
+ }
+ PlayView *pPlayView = (PlayView *) pViewHandle;
+
+ return pPlayView->pWin;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param nLaunchingType
+ * @return
+ */
+bool vp_play_view_change_style_minimode_to_fullmode(play_view_handle
+ pViewHandle,
+ video_play_launching_type_t
+ nLaunchingType)
+{
+ if (!pViewHandle) {
+ VideoLogError("PlayView handle is NULL");
+ return FALSE;
+ }
+
+ PlayView *pPlayView = (PlayView *) pViewHandle;
+
+ pPlayView->nLaunchingType = nLaunchingType;
+ if (nLaunchingType == VIDEO_PLAY_TYPE_MESSAGE
+ || nLaunchingType == VIDEO_PLAY_TYPE_EMAIL) {
+ //change multi mode to mini mode
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pPlayViewHandle
+ * @return
+ */
+bool vp_play_view_reset_audio_only(play_view_handle * pPlayViewHandle)
+{
+ PlayView *pPlayView = (PlayView *) pPlayViewHandle;
+ vp_play_normal_view_reset_audio_only(pPlayView->pNormalView);
+ return TRUE;
+}
+
+/**
+ *
+ * @param pPlayViewHandle
+ * @return
+ */
+bool vp_play_view_handle_language_change(play_view_handle * pPlayViewHandle)
+{
+ PlayView *pPlayView = (PlayView *) pPlayViewHandle;
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return FALSE;
+ }
+
+ return vp_play_normal_view_handle_language_change(pPlayView->pNormalView);
+}
+
+
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+typedef void *bookmark_handle;
+
+typedef void (*BookmarkCaptureStartCbFunc) (void *pUserData);
+typedef void (*BookmarkItemSelectCbFunc) (int nPos, const char *szPath,
+ void *pUserData);
+
+
+bookmark_handle vp_play_bookmark_create(Evas_Object * pParent);
+void vp_play_bookmark_destroy(bookmark_handle pWidgetHandle);
+bool vp_play_bookmark_realize(bookmark_handle pWidgetHandle);
+bool vp_play_bookmark_unrealize(bookmark_handle pWidgetHandle);
+bool vp_play_bookmark_is_realize(bookmark_handle pWidgetHandle,
+ bool * bIsRealize);
+Evas_Object *vp_play_bookmark_get_object(bookmark_handle pWidgetHandle);
+bool vp_play_bookmark_set_capture_callback(bookmark_handle pWidgetHandle,
+ BookmarkCaptureStartCbFunc
+ func);
+bool vp_play_bookmark_set_item_select_callback(bookmark_handle
+ pWidgetHandle,
+ BookmarkItemSelectCbFunc
+ func);
+bool vp_play_bookmark_set_user_param(bookmark_handle pWidgetHandle,
+ void *pUserData);
+bool vp_play_bookmark_set_media_url(bookmark_handle pWidgetHandle,
+ const char *szMediaURL);
+bool vp_play_bookmark_set_edit_mode(bookmark_handle pWidgetHandle,
+ bool bEditMode);
+bool vp_play_bookmark_get_edit_mode(bookmark_handle pWidgetHandle,
+ bool * bEditMode);
+bool vp_play_bookmark_get_pressed_status(bookmark_handle pWidgetHandle,
+ bool * bPressed);
+
+bool vp_play_bookmark_get_item_count(bookmark_handle pWidgetHandle,
+ int *nCount);
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+typedef void *brightness_handle;
+
+brightness_handle vp_play_brightness_create(Evas_Object * pParent);
+void vp_play_brightness_destroy(brightness_handle pBrightnessHandle);
+bool vp_play_brightness_realize(brightness_handle pBrightnessHandlee);
+bool vp_play_brightness_unrealize(brightness_handle pBrightnessHandlee);
+bool vp_play_brightness_set_landscape_mode(brightness_handle
+ pBrightnessHandle,
+ bool bLandscape);
+bool vp_play_brightness_is_realize(brightness_handle pBrightnessHandle,
+ bool * bIsRealize);
+bool vp_play_brightness_set_value(brightness_handle pBrightnessHandle,
+ int nCurVal);
+bool vp_play_brightness_get_value(int *nCurVal);
+bool vp_play_brightness_get_max_value(int *nMaxVal);
+bool vp_play_brightness_get_min_value(int *nMinVal);
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+Evas_Object *vp_button_create(Evas_Object * pParent, const char *pStyle,
+ const char *pTxt, Evas_Smart_Cb pClickFunc,
+ Evas_Smart_Cb pPressFunc,
+ Evas_Smart_Cb pUnpressFunc, void *pUserData);
+Evas_Object *vp_button_create_icon(Evas_Object * pParent,
+ const char *pEdjPath,
+ const char *pGroupName);
+Evas_Object *vp_button_create_image(Evas_Object * pParent,
+ const char *pEdjPath,
+ const char *pGroupName);
+Evas_Object *vp_navirame_button_create(Evas_Object * pParent,
+ const char *pStyle,
+ const char *pEdjPath,
+ const char *pGroupName,
+ Evas_Smart_Cb pClickFunc,
+ void *pUserData);
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+typedef enum {
+ VIDEO_LOADING_SIZE_SMALL = 0x00,
+ VIDEO_LOADING_SIZE_MIDUM,
+ VIDEO_LOADING_SIZE_LARGE,
+ VIDEO_LOADING_SIZE_XLARGE,
+} video_loading_size_t;
+
+Evas_Object *vp_play_loading_ani_create(Evas_Object * pParent,
+ video_loading_size_t nSize);
+void vp_play_loading_ani_destroy(Evas_Object * pProgress);
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#ifndef VP_PLAY_LOCKSCREENMC_H_
+#define VP_PLAY_LOCKSCREENMC_H_
+
+#include "vp-play-view-priv.h"
+enum vp_lc_controller_button_type {
+ LC_CONTROLLER_PLAY_BUTTON = 0,
+ LC_CONTROLLER_PAUSE_BUTTON,
+ LC_CONTROLLER_FF_BUTTON,
+ LC_CONTROLLER_REW_BUTTON
+};
+
+int vp_lockscreenmini_create(PlayView * pPlayView);
+int vp_lockscreenmini_hide(PlayView * pPlayView);
+int vp_lockscreenmini_show(PlayView * pPlayView);
+int vp_lockscreenmini_destroy(PlayView * pPlayView);
+void vp_lockscreenmini_update_control(PlayView * pPlayView);
+void vp_lockscreenmini_update(PlayView * pPlayView);
+
+#endif /* VP_PLAY_LOCKSCREENMC_H_ */
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef VP_PLAY_MINICONTROLLER_H_
+#define VP_PLAY_MINICONTROLLER_H_
+
+#include "vp-play-view-priv.h"
+
+enum vp_controller_button_type {
+ CONTROLLER_PLAY_BUTTON = 0,
+ CONTROLLER_PAUSE_BUTTON,
+ CONTROLLER_FF_BUTTON,
+ CONTROLLER_REW_BUTTON
+};
+
+int vp_minicontroller_create(PlayView * pPlayView);
+int vp_minicontroller_show(PlayView * pPlayView);
+int vp_minicontroller_destroy(PlayView * pPlayView);
+void vp_minicontroller_update_control(PlayView * pPlayView);
+void vp_minicontroller_update(PlayView * pPlayView, bool with_title);
+void vp_minicontroller_rotate(PlayView * pPlayView, int angle);
+int _vp_is_current_focus_available();
+#endif /* VP_PLAY_MINICONTROLLER_H_ */
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+#include <efl_extension.h>
+
+#ifndef TRUE
+#define TRUE 1
+#endif
+
+#ifndef FALSE
+#define FALSE 0
+#endif
+
+typedef void (*PopupCloseCbFunc) (int nType, bool bPause, void *pUserData);
+
+typedef enum {
+ POPUP_STYLE_DEFAULT_NO_CANCEL_BTN = 0x00,
+ POPUP_STYLE_DEFAULT_WITH_CANCEL_BTN,
+ POPUP_STYLE_MENU_LIST_NO_CANCEL_BTN,
+ POPUP_STYLE_MENU_LIST_WITH_CANCEL_BTN,
+ POPUP_STYLE_EXPAND_NO_CANCEL_BTN,
+ POPUP_STYLE_EXPAND_WITH_CANCEL_BTN,
+ POPUP_STYLE_PROGRESS_WITH_NO_CANCEL_BTN,
+ POPUP_STYLE_FULLSCREEN_NO_CANCEL_BTN,
+ POPUP_STYLE_FULLSCREEN_NO_TITLE_NO_CANCEL_BTN
+} video_popup_style_t;
+
+typedef enum {
+ VIDEOS_POPUP_NONE = 0x00,
+ VIDEO_POPUP_DEFAULT,
+ VIDEO_POPUP_2_TEXT,
+ VIDEO_POPUP_2_TEXT_1_ICON,
+ VIDEO_POPUP_LOADING_LIST,
+ VIDEOS_POPUP_MAX
+} video_list_popup_style_t;
+
+Evas_Object *vp_popup_create(Evas_Object * pParent,
+ video_popup_style_t nStyle, char *szTitle,
+ char *szContent, double dTimeOut,
+ Evas_Smart_Cb pTimeoutFunc,
+ Eext_Event_Cb pCancelKeyCb,
+ Evas_Object_Event_Cb pCancelMouseCb,
+ void *pUserData);
+Evas_Object *vp_two_button_popup_create(Evas_Object * pParent,
+ char *szTitle, char *szContent,
+ char *pLeftButtonText,
+ Evas_Smart_Cb leftButtonCb,
+ char *pRightButtonText,
+ Evas_Smart_Cb rightButtonCb,
+ const void *pUserData);
+#ifdef _SUBTITLE_MULTI_LANGUAGE
+Evas_Object *vp_title_two_button_popup_create(Evas_Object * pParent,
+ char *szTitle,
+ char *szContent,
+ char *pLeftButtonText,
+ Evas_Smart_Cb leftButtonCb,
+ char *pRightButtonText,
+ Evas_Smart_Cb rightButtonCb,
+ const void *pUserData);
+#endif
+bool vp_popup_check_landspace_by_win(Evas_Object * pWin);
+void vp_popup_set_popup_min_size(Evas_Object * pWin, Evas_Object * pBox,
+ int nListCount,
+ video_list_popup_style_t eStyle);
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+typedef void *progressbar_handle;
+
+
+typedef enum {
+ VIDEO_PROGRESSBAR_TYPE_NORMAL = 0x00,
+ VIDEO_PROGRESSBAR_TYPE_TRIM,
+} video_progressbar_type_t;
+
+progressbar_handle vp_play_progressbar_create(Evas_Object * pParent,
+ video_progressbar_type_t
+ nType);
+void vp_play_progressbar_destroy(progressbar_handle pWidgetHandle);
+bool vp_play_progressbar_realize(progressbar_handle pWidgetHandle);
+bool vp_play_progressbar_unrealize(progressbar_handle pWidgetHandle);
+Evas_Object *vp_play_progressbar_get_object(progressbar_handle
+ pWidgetHandle);
+bool vp_play_progressbar_set_duration(progressbar_handle pWidgetHandle,
+ int nDuration);
+bool vp_play_progressbar_set_position(progressbar_handle pWidgetHandle,
+ int nPosition);
+bool vp_play_progressbar_set_buffering_position(progressbar_handle
+ pWidgetHandle,
+ int nBufferinPosition);
+bool vp_play_progressbar_set_landscape_mode(progressbar_handle
+ pWidgetHandle,
+ bool bLandscape);
+bool vp_play_progressbar_set_opacity(progressbar_handle pWidgetHandle,
+ bool bDefault);
+Evas_Object *vp_play_progressbar_get_focus_object(progressbar_handle
+ pWidgetHandle);
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+typedef void *subtitle_handle;
+
+typedef enum {
+ VP_SUBTITLE_SMALL = 0x00,
+ VP_SUBTITLE_MEDIUM,
+ VP_SUBTITLE_LARGE,
+} video_subtitle_size_t;
+
+typedef enum {
+ VP_SUBTITLE_COLOR_WHITE = 0x00,
+ VP_SUBTITLE_COLOR_BLACK,
+ VP_SUBTITLE_COLOR_RED,
+ VP_SUBTITLE_COLOR_GREEN,
+ VP_SUBTITLE_COLOR_BLUE,
+ VP_SUBTITLE_COLOR_YELLOW,
+ VP_SUBTITLE_COLOR_MAGENTA,
+ VP_SUBTITLE_COLOR_CYAN,
+ VP_SUBTITLE_COLOR_CUSTOM,
+ VP_SUBTITLE_COLOR_NONE
+} video_subtitle_color_t;
+
+typedef enum {
+ VP_SUBTITLE_ALIGNMENT_LEFT = 0x00,
+ VP_SUBTITLE_ALIGNMENT_CENTER,
+ VP_SUBTITLE_ALIGNMENT_RIGHT
+} vp_subtitle_alignment_t;
+
+typedef enum {
+ VP_SUBTITLE_TYPE_NORMAL = 0x00,
+ VP_SUBTITLE_TYPE_MULTI
+} vp_subtitle_type_t;
+
+typedef struct _SubtitleWidget {
+ Evas_Object *pParent;
+ Evas_Object *pLayout;
+ Evas_Object *pTextBlock;
+ char *szFontName;
+ char *szText;
+ video_subtitle_size_t nSize;
+ int nEdge;
+ float fZoom;
+
+#ifdef SUBTITLE_K_FEATURE
+ vp_subtitle_alignment_t nAlignment;
+#endif
+
+#ifndef SUBTITLE_K_FEATURE
+ video_subtitle_color_t nFontColor;
+ video_subtitle_color_t nBGColor;
+#else
+ char *pFontColorHex;
+ char *pBGColorHex;
+ char *pCaptionWinColorHex;
+#endif
+ bool bIsRealize;
+ bool bShowCaptionWin;
+} Subtitle;
+
+subtitle_handle vp_play_subtitle_create(Evas_Object * pParent,
+ vp_subtitle_type_t nType);
+void vp_play_subtitle_destroy(subtitle_handle pWidgetHandle);
+bool vp_play_subtitle_realize(subtitle_handle pWidgetHandle);
+bool vp_play_subtitle_unrealize(subtitle_handle pWidgetHandle);
+bool vp_play_subtitle_is_realize(subtitle_handle pWidgetHandle,
+ bool * bIsRealize);
+Evas_Object *vp_play_subtitle_get_object(subtitle_handle pWidgetHandle);
+bool vp_play_subtitle_set_font(subtitle_handle pWidgetHandle,
+ char *szFontName);
+bool vp_play_subtitle_get_font(subtitle_handle pWidgetHandle,
+ char **szFontName);
+bool vp_play_subtitle_set_size(subtitle_handle pWidgetHandle,
+ video_subtitle_size_t nSize);
+bool vp_play_subtitle_get_size(subtitle_handle pWidgetHandle,
+ video_subtitle_size_t * nSize);
+bool vp_play_subtitle_set_size_zoom(subtitle_handle pWidgetHandle,
+ float fZoom);
+bool vp_play_subtitle_get_size_zoom(subtitle_handle pWidgetHandle,
+ float *fZoom);
+void vp_play_subtitle_text_update(Subtitle * pSubtitle, const char *szTxt);
+#ifndef SUBTITLE_K_FEATURE
+bool vp_play_subtitle_set_color(subtitle_handle pWidgetHandle,
+ video_subtitle_color_t nColor);
+bool vp_play_subtitle_get_color(subtitle_handle pWidgetHandle,
+ video_subtitle_color_t * nColor);
+bool vp_play_subtitle_set_bg_color(subtitle_handle pWidgetHandle,
+ video_subtitle_color_t nColor);
+bool vp_play_subtitle_get_bg_color(subtitle_handle pWidgetHandle,
+ video_subtitle_color_t * nColor);
+#else
+bool vp_play_subtitle_get_color(subtitle_handle pWidgetHandle,
+ char **pColorHex);
+bool vp_play_subtitle_set_color(subtitle_handle pWidgetHandle,
+ char *pColorHex);
+bool vp_play_subtitle_get_bg_color(subtitle_handle pWidgetHandle,
+ char **pColorHex);
+bool vp_play_subtitle_set_bg_color(subtitle_handle pWidgetHandle,
+ char *pColorHex);
+#endif
+bool vp_play_subtitle_set_text(subtitle_handle pWidgetHandle,
+ const char *szText);
+bool vp_play_subtitle_get_text(subtitle_handle pWidgetHandle,
+ char **szText);
+
+#ifdef SUBTITLE_K_FEATURE
+bool vp_play_subtitle_set_alignment(subtitle_handle pWidgetHandle,
+ vp_subtitle_alignment_t nAlignment);
+bool vp_play_subtitle_get_alignment(subtitle_handle pWidgetHandle,
+ vp_subtitle_alignment_t * nAlignment);
+bool vp_play_subtitle_set_caption_win_color(subtitle_handle pWidgetHandle,
+ bool bShowCaption);
+bool vp_play_subtitle_get_geometry(subtitle_handle pWidgetHandle,
+ bool bLandscape, Evas_Coord * x,
+ Evas_Coord * y, Evas_Coord * w,
+ Evas_Coord * h);
+#endif
+
+bool vp_play_subtitle_set_edge(subtitle_handle pWidgetHandle, int nEdge);
+bool vp_play_subtitle_get_edge(subtitle_handle pWidgetHandle, int *nEdge);
+
+bool vp_play_subtitle_get_size_formatted(subtitle_handle pWidgetHandle,
+ Evas_Coord * ww, Evas_Coord * hh);
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+typedef void *volume_popup_handle;
+
+volume_popup_handle vp_play_volume_popup_create(Evas_Object * pParent);
+void vp_play_volume_popup_destroy(volume_popup_handle pVolumeHandle);
+bool vp_play_volume_popup_realize(volume_popup_handle pVolumeHandle);
+bool vp_play_volume_popup_unrealize(volume_popup_handle pVolumeHandle);
+bool vp_play_volume_popup_set_landscape_mode(volume_popup_handle
+ pVolumeHandle,
+ bool bLandscape);
+bool vp_play_volume_popup_is_realize(volume_popup_handle pVolumeHandle,
+ bool * bIsRealize);
+bool vp_play_volume_popup_set_value(volume_popup_handle pVolumeHandle,
+ int nCurVal);
+bool vp_play_volume_popup_get_value(int *nCurVal);
+bool vp_play_volume_popup_get_max_value(int *nMaxVal);
+bool vp_play_volume_popup_is_mute(volume_popup_handle pVolumeHandle,
+ bool * bIsMute);
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+typedef void *volume_handle;
+
+typedef void (*NormalVolumeChangeCbFunc) (int nValue, void *pUserData);
+
+volume_handle vp_play_volume_create(Evas_Object * pParent,
+ void *pPlayerHandle,
+ NormalVolumeChangeCbFunc pFunc);
+void vp_play_volume_destroy(volume_handle pVolumeHandle);
+bool vp_play_volume_realize(volume_handle pVolumeHandle,
+ Evas_Object * pWin);
+bool vp_play_volume_unrealize(volume_handle pVolumeHandle);
+bool vp_play_volume_set_landscape_mode(volume_handle pVolumeHandle,
+ bool bLandscape,
+ Evas_Object * pWin);
+bool vp_play_volume_set_user_data(volume_handle pVolumeHandle,
+ void *pUserData);
+bool vp_play_volume_is_realize(volume_handle pVolumeHandle,
+ bool * bIsRealize);
+bool vp_play_volume_increase_value(volume_handle pVolumeHandle);
+bool vp_play_volume_decrease_value(volume_handle pVolumeHandle);
+bool vp_play_volume_update_value(volume_handle pVolumeHandle);
+bool vp_play_volume_is_mute(volume_handle pVolumeHandle, bool * bIsMute);
+int vp_play_volume_get_max_value(volume_handle pVolumeHandle);
+int vp_play_volume_get_value(volume_handle pVolumeHandle);
+bool vp_play_volume_set_value(volume_handle pVolumeHandle, int nVolumeVal);
+bool vp_play_volume_set_mute_value(volume_handle pVolumeHandle);
+int vp_play_volume_get_mute_value(volume_handle pVolumeHandle);
+bool vp_play_volume_set_focus_in(volume_handle pVolumeHandle);
+bool vp_play_volume_set_mouse_callbacks(volume_handle pVolumeHandle,
+ Evas_Object * pWin);
+bool vp_play_volume_unset_mouse_callbacks(volume_handle pVolumeHandle,
+ Evas_Object * pWin);
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include <glib.h>
+
+#include "vp-play-string-define.h"
+#include "vp-play-macro-define.h"
+
+#include "vp-play-bookmark.h"
+
+#include "vp-play-button.h"
+
+#include "vp-media-contents.h"
+
+
+/* check temp */
+#include "vp-play-log.h"
+
+
+#define VP_BOOKMARK_ITEM_WIDTH (152 * elm_config_scale_get())
+#define VP_BOOKMARK_ITEM_HEIGHT (132 * elm_config_scale_get())
+
+#define VP_BOOKMARK_THUMB_WIDTH (146 * elm_config_scale_get())
+#define VP_BOOKMARK_THUMB_HEIGHT (88 * elm_config_scale_get())
+
+
+#define VP_BOOKMARK_GENGRID_DATA_KEY "vp.bookmark.gengrid"
+#define VP_BOOKMARK_GENGRID_ITEM_DATA_KEY "vp.bookmark.gengrid.item"
+
+#define VP_BOOKMARK_PLAY_TIME_LENGTH 9
+#define VP_BOOKMARK_PLAY_TIME_FORMAT "02u:%02u:%02u"
+#define VP_BOOKMARK_PLAY_TIME_ARGS(t) \
+ (t) / (60 * 60), \
+ ((t) / 60) % 60, \
+ (t) % 60
+
+typedef struct _BookmarkItem {
+ Elm_Object_Item *pElmItem;
+ char *szFilePath;
+ int nPos;
+} BookmarkItem;
+
+typedef struct _BookmarkWidget {
+ Evas_Object *pParent;
+ Evas_Object *pLayout;
+ Evas_Object *pAddButton;
+ Evas_Object *pGengrid;
+
+ Elm_Object_Item *pLastItem;
+ Elm_Gengrid_Item_Class *pItemClass;
+
+ char *szMediaURL;
+ char *szMediaID;
+
+ bool bIsRealize;
+ bool bEditMode;
+ bool bPressed;
+ GList *pItemList;
+
+ BookmarkCaptureStartCbFunc pCaptureCb;
+ BookmarkItemSelectCbFunc pSelectCb;
+
+ void *pUserData;
+} BookmarkWidget;
+
+static void _vp_play_bookmark_destory_handle(BookmarkWidget *
+ pBookmarkWidget);
+static void _vp_play_bookmark_gengrid_item_update(BookmarkWidget *
+ pBookmarkWidget);
+static void _vp_play_bookmark_gengrid_item_clear(BookmarkWidget *
+ pBookmarkWidget);
+/* callbackk functions */
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEvent
+ */
+static void __vp_play_bookmark_delete_btn_clicked_cb(void *pUserData,
+ Evas_Object * pObj,
+ void *pEvent)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ if (pObj == NULL) {
+ VideoLogError("pObj is NULL");
+ return;
+ }
+ VideoLogError("clicked");
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEvent
+ */
+static void __vp_play_bookmark_delete_btn_press_cb(void *pUserData,
+ Evas_Object * pObj,
+ void *pEvent)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ if (pObj == NULL) {
+ VideoLogError("pObj is NULL");
+ return;
+ }
+ VideoLogError("press");
+
+ Evas_Object *pIcon = NULL;
+ pIcon = elm_object_part_content_get(pObj, VP_PLAY_SWALLOW_BUTTON_ICON);
+ if (pIcon) {
+ evas_object_del(pIcon);
+ pIcon = NULL;
+ }
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VP_PLAY_RESROUCE_EDJ_PATH);
+ free(path);
+ pIcon =
+ vp_button_create_icon(pObj, edj_path,
+ VP_PLAY_BOOKMARK_RES_DEL_PRESS);
+ elm_object_part_content_set(pObj, VP_PLAY_SWALLOW_BUTTON_ICON, pIcon);
+
+ BookmarkWidget *pBookmarkWidget =
+ (BookmarkWidget *) evas_object_data_get(pObj,
+ VP_BOOKMARK_GENGRID_ITEM_DATA_KEY);
+ if (pBookmarkWidget == NULL) {
+ VideoLogError("pBookmarkWidget is NULL");
+ return;
+ }
+
+ BookmarkItem *pBookmarkItem = (BookmarkItem *) pUserData;
+
+ if (pBookmarkWidget->bEditMode == FALSE) {
+ return;
+ }
+
+ if (!vp_media_contents_bookmark_delete
+ (pBookmarkWidget->szMediaID, pBookmarkItem->nPos)) {
+ VideoLogError("vp_media_contents_bookmark_delete is fail");
+ return;
+ }
+
+ pBookmarkWidget->pItemList =
+ g_list_remove(pBookmarkWidget->pItemList, (void *) pBookmarkItem);
+
+ VP_EVAS_ITEM_DEL(pBookmarkItem->pElmItem);
+
+ VP_FREE(pBookmarkItem->szFilePath);
+ VP_FREE(pBookmarkItem);
+
+ pBookmarkItem = NULL;
+
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEvent
+ */
+static void __vp_play_bookmark_delete_btn_unpress_cb(void *pUserData,
+ Evas_Object * pObj,
+ void *pEvent)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ if (pObj == NULL) {
+ VideoLogError("pObj is NULL");
+ return;
+ }
+ VideoLogError("unpress");
+
+ Evas_Object *pIcon = NULL;
+ pIcon = elm_object_part_content_get(pObj, VP_PLAY_SWALLOW_BUTTON_ICON);
+ if (pIcon) {
+ evas_object_del(pIcon);
+ pIcon = NULL;
+ }
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VP_PLAY_RESROUCE_EDJ_PATH);
+ free(path);
+ pIcon =
+ vp_button_create_icon(pObj, edj_path, VP_PLAY_BOOKMARK_RES_DEL);
+ elm_object_part_content_set(pObj, VP_PLAY_SWALLOW_BUTTON_ICON, pIcon);
+
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pPart
+ * @return
+ */
+static Evas_Object *__vp_play_bookmark_gengrid_icon_get_cb(const void
+ *pUserData,
+ Evas_Object *
+ pObj, const char
+ *pPart)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return NULL;
+ }
+
+ if (pPart == NULL) {
+ VideoLogError("pPart is NULL");
+ return NULL;
+ }
+
+ if (pObj == NULL) {
+ VideoLogError("pObj is NULL");
+ return NULL;
+ }
+
+ BookmarkItem *pBookmarkItem = (BookmarkItem *) pUserData;
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VP_PLAY_BOOKMARK_ITEM_EDJ_PATH);
+ free(path);
+ if (!strcmp(pPart, "elm.swallow.icon")) {
+ Evas_Object *layout = NULL;
+ Evas_Object *bg = NULL;
+ char buf[VP_BOOKMARK_PLAY_TIME_LENGTH] = { 0, };
+
+ layout = elm_layout_add(pObj);
+ bg = elm_bg_add(pObj);
+
+ if (bg == NULL || layout == NULL) {
+ VideoLogError("evas object is NULL");
+ return NULL;
+ }
+ elm_layout_file_set(layout, edj_path,
+ VP_PLAY_EDJ_GROUP_BOOKMARK_ITEM);
+ elm_bg_load_size_set(bg, VP_BOOKMARK_THUMB_WIDTH,
+ VP_BOOKMARK_THUMB_HEIGHT);
+ elm_bg_file_set(bg, pBookmarkItem->szFilePath, NULL);
+ evas_object_size_hint_max_set(bg, VP_BOOKMARK_THUMB_WIDTH,
+ VP_BOOKMARK_THUMB_HEIGHT);
+
+ evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(bg, EVAS_HINT_FILL,
+ EVAS_HINT_FILL);
+
+ elm_object_part_content_set(layout,
+ VP_PLAY_SWALLOW_BOOKMARK_ITEM_ICON,
+ bg);
+
+ snprintf(buf, VP_BOOKMARK_PLAY_TIME_LENGTH,
+ "%" VP_BOOKMARK_PLAY_TIME_FORMAT,
+ VP_BOOKMARK_PLAY_TIME_ARGS(pBookmarkItem->nPos / 1000));
+
+ elm_object_part_text_set(layout,
+ VP_PLAY_SWALLOW_BOOKMARK_ITEM_TXT, buf);
+
+ evas_object_show(bg);
+ evas_object_show(layout);
+
+ return layout;
+
+ } else if (!strcmp(pPart, "elm.swallow.end")) {
+ BookmarkWidget *pBookmarkWidget =
+ (BookmarkWidget *) evas_object_data_get(pObj,
+ VP_BOOKMARK_GENGRID_DATA_KEY);
+ if (pBookmarkWidget == NULL) {
+ VideoLogError("pBookmarkWidget is NULL");
+ return NULL;
+ }
+ if (pBookmarkWidget->bEditMode == FALSE) {
+ return NULL;
+ }
+
+ Evas_Object *layout = NULL;
+ Evas_Object *pIcon = NULL;
+ Evas_Object *pBtn = NULL;
+
+ layout = elm_layout_add(pObj);
+ elm_layout_file_set(layout, edj_path,
+ VP_PLAY_EDJ_GROUP_BOOKMARK_ITEM_END);
+ pBtn =
+ vp_button_create(layout, "custom/icon_48_48", NULL,
+ (Evas_Smart_Cb)
+ __vp_play_bookmark_delete_btn_clicked_cb,
+ (Evas_Smart_Cb)
+ __vp_play_bookmark_delete_btn_press_cb,
+ (Evas_Smart_Cb)
+ __vp_play_bookmark_delete_btn_unpress_cb,
+ (void *) pBookmarkItem);
+
+ evas_object_data_set(pBtn, VP_BOOKMARK_GENGRID_ITEM_DATA_KEY,
+ (void *) pBookmarkWidget);
+ char edje_path[1024] = { 0 };
+
+ char *pPath = app_get_resource_path();
+ snprintf(edje_path, 1024, "%s%s/%s", pPath, "edje",
+ VP_PLAY_RESROUCE_EDJ_PATH);
+ free(pPath);
+
+ pIcon =
+ vp_button_create_icon(pBtn, edje_path,
+ VP_PLAY_BOOKMARK_RES_DEL);
+ elm_object_part_content_set(pBtn, VP_PLAY_SWALLOW_BUTTON_ICON,
+ pIcon);
+
+ elm_object_part_content_set(layout,
+ VP_PLAY_SWALLOW_BOOKMARK_ITEM_DEL,
+ pBtn);
+
+ evas_object_show(pBtn);
+ evas_object_show(layout);
+
+ return layout;
+ }
+ return NULL;
+
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEvent
+ */
+static void __vp_play_bookmark_longpress_cb(void *pUserData,
+ Evas_Object * pObj,
+ void *pEvent)
+{
+ VideoLogInfo("");
+
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ BookmarkWidget *pBookmarkWidget = (BookmarkWidget *) pUserData;
+
+ if (pBookmarkWidget->bEditMode == EINA_TRUE) {
+ pBookmarkWidget->bEditMode = EINA_FALSE;
+ pBookmarkWidget->bPressed = FALSE;
+
+ } else {
+ pBookmarkWidget->bEditMode = EINA_TRUE;
+ }
+
+ _vp_play_bookmark_gengrid_item_update(pBookmarkWidget);
+
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEvent
+ */
+static void __vp_play_bookmark_scroll_cb(void *pUserData,
+ Evas_Object * pObj, void *pEvent)
+{
+ return;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEvent
+ */
+static void __vp_play_bookmark_change_cb(void *pUserData,
+ Evas_Object * pObj, void *pEvent)
+{
+ if (pUserData == NULL) {
+ VideoLogError("bookmark data is NULL");
+ return;
+ }
+ BookmarkWidget *pBookmarkWidget = (BookmarkWidget *) pUserData;
+
+ if (pBookmarkWidget->pLastItem == NULL) {
+ return;
+ }
+
+ elm_gengrid_item_bring_in(pBookmarkWidget->pLastItem,
+ ELM_GENGRID_ITEM_SCROLLTO_MIDDLE);
+ pBookmarkWidget->pLastItem = NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEvent
+ */
+static void __vp_play_bookmark_pressed_cb(void *pUserData,
+ Evas_Object * pObj, void *pEvent)
+{
+ if (pUserData == NULL) {
+ VideoLogError("bookmark data is NULL");
+ return;
+ }
+ BookmarkWidget *pBookmarkWidget = (BookmarkWidget *) pUserData;
+
+ pBookmarkWidget->bPressed = TRUE;
+
+ if (pBookmarkWidget->pSelectCb) {
+ pBookmarkWidget->pSelectCb(-1, NULL, pBookmarkWidget->pUserData);
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEvent
+ */
+static void __vp_play_bookmark_released_cb(void *pUserData,
+ Evas_Object * pObj,
+ void *pEvent)
+{
+ if (pUserData == NULL) {
+ VideoLogError("bookmark data is NULL");
+ return;
+ }
+ BookmarkWidget *pBookmarkWidget = (BookmarkWidget *) pUserData;
+
+ pBookmarkWidget->bPressed = FALSE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEvent
+ */
+static void __vp_play_bookmark_item_select_cb(void *pUserData,
+ Evas_Object * pObj,
+ void *pEvent)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ if (pEvent == NULL) {
+ VideoLogError("pEvent is NULL");
+ return;
+ }
+
+ BookmarkWidget *pBookmarkWidget = (BookmarkWidget *) pUserData;
+ BookmarkItem *pBookmarkItem = NULL;
+ pBookmarkItem =
+ (BookmarkItem *) elm_object_item_data_get((Elm_Object_Item *)
+ pEvent);
+ if (pBookmarkItem == NULL) {
+ VideoLogError("pBookmarkItem is NULL");
+ return;
+ }
+ elm_gengrid_item_selected_set(pBookmarkItem->pElmItem, EINA_FALSE);
+
+ if (pBookmarkWidget->bEditMode) {
+ pBookmarkWidget->bEditMode = FALSE;
+ pBookmarkWidget->bPressed = FALSE;
+ _vp_play_bookmark_gengrid_item_update(pBookmarkWidget);
+ VideoLogError("+++");
+ return;
+ } else {
+ if (pBookmarkWidget->pSelectCb) {
+ pBookmarkWidget->pSelectCb(pBookmarkItem->nPos,
+ pBookmarkItem->szFilePath,
+ pBookmarkWidget->pUserData);
+ }
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEvent
+ */
+static void __vp_play_bookmark_btn_clicked_cb(void *pUserData,
+ Evas_Object * pObj,
+ void *pEvent)
+{
+ if (pUserData == NULL) {
+ VideoLogError("bookmark data is NULL");
+ return;
+ }
+
+ BookmarkWidget *pBookmarkWidget = (BookmarkWidget *) pUserData;
+
+ if (pBookmarkWidget->bEditMode) {
+ pBookmarkWidget->bEditMode = FALSE;
+ pBookmarkWidget->bPressed = FALSE;
+ _vp_play_bookmark_gengrid_item_update(pBookmarkWidget);
+ }
+
+ if (pBookmarkWidget->pAddButton == pObj) {
+ if (pBookmarkWidget->pCaptureCb) {
+ pBookmarkWidget->pCaptureCb(pBookmarkWidget->pUserData);
+ }
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEvent
+ */
+static void __vp_play_bookmark_btn_press_cb(void *pUserData,
+ Evas_Object * pObj,
+ void *pEvent)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+ if (!pObj) {
+ VideoLogError("pObj is NULL");
+ return;
+ }
+
+ BookmarkWidget *pBookmarkWidget = (BookmarkWidget *) pUserData;
+ if (pBookmarkWidget->pAddButton == pObj) {
+ Evas_Object *pIcon = NULL;
+ pIcon =
+ elm_object_part_content_get(pBookmarkWidget->pAddButton,
+ VP_PLAY_SWALLOW_BUTTON_ICON);
+ if (pIcon) {
+ evas_object_del(pIcon);
+ pIcon = NULL;
+ }
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VP_PLAY_RESROUCE_EDJ_PATH);
+ free(path);
+
+ pIcon =
+ vp_button_create_icon(pBookmarkWidget->pAddButton,
+ edj_path,
+ VP_PLAY_BOOKMARK_RES_ADD_PRESS);
+ elm_object_part_content_set(pBookmarkWidget->pAddButton,
+ VP_PLAY_SWALLOW_BUTTON_ICON, pIcon);
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEvent
+ */
+static void __vp_play_bookmark_btn_unpress_cb(void *pUserData,
+ Evas_Object * pObj,
+ void *pEvent)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ if (!pObj) {
+ VideoLogError("pObj is NULL");
+ return;
+ }
+
+ BookmarkWidget *pBookmarkWidget = (BookmarkWidget *) pUserData;
+ if (pBookmarkWidget->pAddButton == pObj) {
+ Evas_Object *pIcon = NULL;
+ pIcon =
+ elm_object_part_content_get(pBookmarkWidget->pAddButton,
+ VP_PLAY_SWALLOW_BUTTON_ICON);
+ if (pIcon) {
+ evas_object_del(pIcon);
+ pIcon = NULL;
+ }
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VP_PLAY_RESROUCE_EDJ_PATH);
+ free(path);
+
+ pIcon =
+ vp_button_create_icon(pBookmarkWidget->pAddButton,
+ edj_path, VP_PLAY_BOOKMARK_RES_ADD);
+ elm_object_part_content_set(pBookmarkWidget->pAddButton,
+ VP_PLAY_SWALLOW_BUTTON_ICON, pIcon);
+ }
+}
+
+/* internal functions */
+/**
+ *
+ * @param pBookmarkWidget
+ */
+static void _vp_play_bookmark_destory_handle(BookmarkWidget *
+ pBookmarkWidget)
+{
+ if (pBookmarkWidget == NULL) {
+ VideoLogError("pBookmarkWidget is NULL");
+ return;
+ }
+
+ _vp_play_bookmark_gengrid_item_clear(pBookmarkWidget);
+
+ if (pBookmarkWidget->pItemClass) {
+ elm_gengrid_item_class_free(pBookmarkWidget->pItemClass);
+ pBookmarkWidget->pItemClass = NULL;
+ }
+
+ VP_EVAS_DEL(pBookmarkWidget->pGengrid);
+ VP_EVAS_DEL(pBookmarkWidget->pAddButton);
+ VP_EVAS_DEL(pBookmarkWidget->pLayout);
+
+ VP_FREE(pBookmarkWidget->szMediaID);
+ VP_FREE(pBookmarkWidget->szMediaURL);
+
+ VP_FREE(pBookmarkWidget);
+}
+
+/**
+ *
+ * @param pList
+ * @param nPosition
+ * @param nPos
+ * @return
+ */
+static Elm_Object_Item *_vp_play_bookmark_find_before_item(GList * pList,
+ int nPosition,
+ int *nPos)
+{
+ if (pList == NULL) {
+ VideoLogError("pBookmarkItem list is NULL");
+ return NULL;
+ }
+
+ int nCnt = 0;
+ int idx = 0;
+
+ nCnt = g_list_length(pList);
+ for (idx = 0; idx < nCnt; idx++) {
+ BookmarkItem *pBookmarkItem = NULL;
+ pBookmarkItem = (BookmarkItem *) g_list_nth_data(pList, idx);
+ if (pBookmarkItem) {
+ if (pBookmarkItem->nPos > nPosition) {
+ VideoLogError("Item : %d , nPosition : %d",
+ pBookmarkItem->nPos, nPosition);
+ *nPos = idx + 1;
+ return pBookmarkItem->pElmItem;
+ }
+ }
+ }
+
+ return NULL;
+}
+
+/**
+ *
+ * @param pItem1
+ * @param pItem2
+ * @return
+ */
+static gint __vp_play_bookmark_compare_cb(BookmarkItem * pItem1,
+ BookmarkItem * pItem2)
+{
+ if (pItem1 == NULL) {
+ VideoLogError("pItem1 is NULL");
+ return 0;
+ }
+
+ if (pItem2 == NULL) {
+ VideoLogError("pItem2 is NULL");
+ return 0;
+ }
+
+ if (pItem1->nPos > pItem2->nPos) {
+ return 1;
+ } else {
+ return 0;
+ }
+}
+
+/**
+ *
+ * @param pBookmarkWidget
+ * @param pItem
+ */
+static void _vp_play_bookmark_gengrid_item_append(BookmarkWidget *
+ pBookmarkWidget,
+ BookmarkItem * pItem)
+{
+ if (pBookmarkWidget == NULL) {
+ VideoLogError("pBookmarkWidget is NULL");
+ return;
+ }
+
+ if (pItem == NULL) {
+ VideoLogError("pBookmarkWidget is NULL");
+ return;
+ }
+ if (pBookmarkWidget->pItemClass == NULL) {
+ pBookmarkWidget->pItemClass = elm_gengrid_item_class_new();
+ if (pBookmarkWidget->pItemClass == NULL) {
+ VideoLogError("gengrid item class alloc fail");
+ return;
+ }
+ }
+
+ pBookmarkWidget->pItemClass->item_style = "bookmark";
+ pBookmarkWidget->pItemClass->func.text_get = NULL;
+ pBookmarkWidget->pItemClass->func.content_get =
+ (void *) __vp_play_bookmark_gengrid_icon_get_cb;
+ pBookmarkWidget->pItemClass->func.state_get = NULL;
+ pBookmarkWidget->pItemClass->func.del = NULL;
+
+ Elm_Object_Item *pBeforeItem = NULL;
+ int nPos = 0;
+ pBeforeItem =
+ _vp_play_bookmark_find_before_item(pBookmarkWidget->pItemList,
+ pItem->nPos, &nPos);
+
+ if (pBeforeItem) {
+ pItem->pElmItem =
+ elm_gengrid_item_insert_before(pBookmarkWidget->pGengrid,
+ pBookmarkWidget->pItemClass,
+ (void *) pItem, pBeforeItem,
+ __vp_play_bookmark_item_select_cb,
+ (void *) pBookmarkWidget);
+ } else {
+ pItem->pElmItem =
+ elm_gengrid_item_append(pBookmarkWidget->pGengrid,
+ pBookmarkWidget->pItemClass,
+ (void *) pItem,
+ __vp_play_bookmark_item_select_cb,
+ (void *) pBookmarkWidget);
+ }
+
+ pBookmarkWidget->pLastItem = pItem->pElmItem;
+
+ pBookmarkWidget->pItemList =
+ g_list_insert_sorted(pBookmarkWidget->pItemList, pItem,
+ (GCompareFunc)
+ __vp_play_bookmark_compare_cb);
+}
+
+/**
+ *
+ * @param pBookmarkWidget
+ */
+static void _vp_play_bookmark_gengrid_item_update(BookmarkWidget *
+ pBookmarkWidget)
+{
+ if (pBookmarkWidget == NULL) {
+ VideoLogError("pBookmarkWidget is NULL");
+ return;
+ }
+
+ if (pBookmarkWidget->pItemList == NULL) {
+ VideoLogError("pItemList is NULL");
+ return;
+ }
+
+ int nCount = 0;
+ int i = 0;
+
+ nCount = g_list_length(pBookmarkWidget->pItemList);
+ for (i = 0; i < nCount; i++) {
+ BookmarkItem *pBookmarkItem = NULL;
+ pBookmarkItem =
+ (BookmarkItem *) g_list_nth_data(pBookmarkWidget->pItemList,
+ i);
+ if (pBookmarkItem) {
+ if (pBookmarkItem->pElmItem) {
+ elm_gengrid_item_update(pBookmarkItem->pElmItem);
+ elm_gengrid_item_selected_set(pBookmarkItem->pElmItem,
+ EINA_FALSE);
+ }
+ }
+ }
+}
+
+/**
+ *
+ * @param pBookmarkWidget
+ */
+static void _vp_play_bookmark_gengrid_item_clear(BookmarkWidget *
+ pBookmarkWidget)
+{
+ if (pBookmarkWidget == NULL) {
+ VideoLogError("pBookmarkWidget is NULL");
+ return;
+ }
+
+ if (pBookmarkWidget->pItemList == NULL) {
+ VideoLogError("pItemList is NULL");
+ return;
+ }
+
+ int nCount = 0;
+ int i = 0;
+
+ nCount = g_list_length(pBookmarkWidget->pItemList);
+ for (i = 0; i < nCount; i++) {
+ BookmarkItem *pBookmarkItem = NULL;
+
+ pBookmarkItem =
+ (BookmarkItem *) g_list_nth_data(pBookmarkWidget->pItemList,
+ i);
+ if (pBookmarkItem) {
+ VP_FREE(pBookmarkItem->szFilePath);
+ VP_FREE(pBookmarkItem);
+ }
+ }
+
+ g_list_free(pBookmarkWidget->pItemList);
+ pBookmarkWidget->pItemList = NULL;
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+static Evas_Object *_vp_play_bookmark_create_layout(Evas_Object * pParent)
+{
+ if (!pParent) {
+ VideoLogError("Parent is NULL");
+ return NULL;
+ }
+
+ Evas_Object *pObj = NULL;
+ Eina_Bool bRet = EINA_FALSE;
+
+ pObj = elm_layout_add(pParent);
+ if (pObj == NULL) {
+ VideoLogError("elm_layout_add object is NULL");
+ return NULL;
+ }
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VP_PLAY_BOOKMARK_EDJ_PATH);
+ free(path);
+ bRet = elm_layout_file_set(pObj, edj_path, VP_PLAY_EDJ_GROUP_BOOKMARK);
+ if (bRet != EINA_TRUE) {
+ VideoLogError("elm_layout_file_set fail");
+ return NULL;
+ }
+
+ return pObj;
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+static Evas_Object *_vp_play_bookmark_create_gengrid(Evas_Object * pParent)
+{
+ if (!pParent) {
+ VideoLogError("Parent is NULL");
+ return NULL;
+ }
+
+ Evas_Object *pObj = NULL;
+
+ pObj = elm_gengrid_add(pParent);
+ if (pObj == NULL) {
+ VideoLogError("elm_gengrid_add object is NULL");
+ return NULL;
+ }
+
+ elm_gengrid_item_size_set(pObj, VP_BOOKMARK_ITEM_WIDTH,
+ VP_BOOKMARK_ITEM_HEIGHT);
+
+ elm_gengrid_align_set(pObj, 0.0, 0.0);
+ elm_gengrid_horizontal_set(pObj, EINA_TRUE);
+ elm_gengrid_multi_select_set(pObj, EINA_TRUE);
+ evas_object_size_hint_weight_set(pObj, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_show(pObj);
+
+ return pObj;
+}
+
+/**
+ *
+ * @param data
+ * @param e
+ * @param obj
+ * @param event_info
+ */
+static void _vp_play_bookmark_layout_del_cb(void *data, Evas * e,
+ Evas_Object * obj,
+ void *event_info)
+{
+ if (data == NULL) {
+ VideoLogError("pBookmarkWidget is NULL");
+ return;
+ }
+
+ BookmarkWidget *pBookmarkWidget = (BookmarkWidget *) data;
+ pBookmarkWidget->pLayout = NULL;
+ pBookmarkWidget->pAddButton = NULL;
+ pBookmarkWidget->pGengrid = NULL;
+}
+
+/**
+ *
+ * @param pBookmarkWidget
+ * @return
+ */
+static bool _vp_play_bookmark_init_layout(BookmarkWidget * pBookmarkWidget)
+{
+ if (pBookmarkWidget == NULL) {
+ VideoLogError("pBookmarkWidget is NULL");
+ return FALSE;
+ }
+
+ Evas_Object *pParent = pBookmarkWidget->pParent;
+
+ pBookmarkWidget->pLayout = _vp_play_bookmark_create_layout(pParent);
+ if (pBookmarkWidget->pLayout == NULL) {
+ VideoLogError("_vp_play_bookmark_create_layout is fail");
+ return FALSE;
+ }
+ evas_object_event_callback_add(pBookmarkWidget->pLayout,
+ EVAS_CALLBACK_DEL,
+ _vp_play_bookmark_layout_del_cb,
+ (void *) pBookmarkWidget);
+
+ pBookmarkWidget->pGengrid =
+ _vp_play_bookmark_create_gengrid(pBookmarkWidget->pLayout);
+ if (pBookmarkWidget->pGengrid == NULL) {
+ VideoLogError("_vp_play_bookmark_create_gengrid is fail");
+ return FALSE;
+ }
+
+ evas_object_data_set(pBookmarkWidget->pGengrid,
+ VP_BOOKMARK_GENGRID_DATA_KEY,
+ (void *) pBookmarkWidget);
+
+ pBookmarkWidget->pAddButton =
+ vp_button_create(pParent, "custom/icon_44_44", NULL,
+ (Evas_Smart_Cb)
+ __vp_play_bookmark_btn_clicked_cb,
+ (Evas_Smart_Cb) __vp_play_bookmark_btn_press_cb,
+ (Evas_Smart_Cb)
+ __vp_play_bookmark_btn_unpress_cb,
+ (void *) pBookmarkWidget);
+ if (!pBookmarkWidget->pAddButton) {
+ VideoLogError("elm_button_add is fail");
+ return FALSE;
+ }
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VP_PLAY_RESROUCE_EDJ_PATH);
+ free(path);
+
+ Evas_Object *pIcon = NULL;
+ pIcon =
+ vp_button_create_icon(pBookmarkWidget->pAddButton,
+ edj_path, VP_PLAY_BOOKMARK_RES_ADD);
+ elm_object_part_content_set(pBookmarkWidget->pAddButton,
+ VP_PLAY_SWALLOW_BUTTON_ICON, pIcon);
+
+ elm_object_part_content_set(pBookmarkWidget->pLayout,
+ VP_PLAY_SWALLOW_BOOKMARK_ADD_BUTTON,
+ pBookmarkWidget->pAddButton);
+ elm_object_part_content_set(pBookmarkWidget->pLayout,
+ VP_PLAY_SWALLOW_BOOKMARK_LIST,
+ pBookmarkWidget->pGengrid);
+
+ evas_object_smart_callback_add(pBookmarkWidget->pGengrid,
+ "longpressed",
+ __vp_play_bookmark_longpress_cb,
+ (void *) pBookmarkWidget);
+ evas_object_smart_callback_add(pBookmarkWidget->pGengrid, "scroll",
+ __vp_play_bookmark_scroll_cb,
+ (void *) pBookmarkWidget);
+ evas_object_smart_callback_add(pBookmarkWidget->pGengrid, "changed",
+ __vp_play_bookmark_change_cb,
+ (void *) pBookmarkWidget);
+ evas_object_smart_callback_add(pBookmarkWidget->pGengrid, "pressed",
+ __vp_play_bookmark_pressed_cb,
+ (void *) pBookmarkWidget);
+ evas_object_smart_callback_add(pBookmarkWidget->pGengrid, "released",
+ __vp_play_bookmark_released_cb,
+ (void *) pBookmarkWidget);
+
+ return TRUE;
+}
+
+/* external functions */
+/**
+ *
+ * @param pParent
+ * @return
+ */
+bookmark_handle vp_play_bookmark_create(Evas_Object * pParent)
+{
+ if (pParent == NULL) {
+ VideoLogError("pParent is NULL");
+ return NULL;
+ }
+
+ BookmarkWidget *pBookmarkWidget = NULL;
+
+ pBookmarkWidget = calloc(1, sizeof(BookmarkWidget));
+
+ if (pBookmarkWidget == NULL) {
+ VideoLogError("pBookmarkWidget alloc fail");
+ return NULL;
+ }
+
+ pBookmarkWidget->pParent = pParent;
+ pBookmarkWidget->bIsRealize = FALSE;
+ pBookmarkWidget->bEditMode = FALSE;
+ pBookmarkWidget->bPressed = FALSE;
+
+ if (!_vp_play_bookmark_init_layout(pBookmarkWidget)) {
+ VideoLogError("_vp_play_bookmark_init_layout is fail");
+ VP_FREE(pBookmarkWidget);
+ return NULL;
+ }
+
+ return (bookmark_handle) pBookmarkWidget;
+
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ */
+void vp_play_bookmark_destroy(bookmark_handle pWidgetHandle)
+{
+ if (pWidgetHandle == NULL) {
+ VideoLogError("pWidgetHandle is NULL");
+ return;
+ }
+
+ BookmarkWidget *pBookmarkWidget = (BookmarkWidget *) pWidgetHandle;
+
+ _vp_play_bookmark_destory_handle(pBookmarkWidget);
+
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @return
+ */
+bool vp_play_bookmark_realize(bookmark_handle pWidgetHandle)
+{
+ if (pWidgetHandle == NULL) {
+ VideoLogError("pWidgetHandle is NULL");
+ return FALSE;
+ }
+
+ BookmarkWidget *pBookmarkWidget = (BookmarkWidget *) pWidgetHandle;
+
+ if (pBookmarkWidget->szMediaURL == NULL) {
+ VideoLogError("szMediaURL is NULL");
+ return FALSE;
+ }
+
+ if (pBookmarkWidget->szMediaID == NULL) {
+ VideoLogError("szMediaID is NULL");
+ return FALSE;
+ }
+
+ /* load gengrid items */
+ GList *pList = NULL;
+ int nCnt = 0;
+ int idx = 0;
+ if (!vp_media_contents_bookmark_list_get
+ (pBookmarkWidget->szMediaID, &pList)) {
+ VideoLogError("vp_media_contents_bookmark_list_get is Fail");
+ return FALSE;
+ }
+
+ nCnt = g_list_length(pList);
+ for (idx = 0; idx < nCnt; idx++) {
+ void *pItem = NULL;
+ pItem = g_list_nth_data(pList, idx);
+ VideoLogWarning("Item : %p", pItem);
+ if (pItem) {
+ char *szPath = NULL;
+ int nPos = 0;
+ if (!vp_media_contents_bookmark_get_item_info
+ (pItem, &szPath, &nPos)) {
+ VideoLogWarning
+ ("vp_media_contents_bookmark_get_item_info is Fail");
+ continue;
+ }
+
+ BookmarkItem *pBookmarkItem = NULL;
+ pBookmarkItem = calloc(1, sizeof(BookmarkItem));
+ if (pBookmarkItem == NULL) {
+ VideoLogWarning("pBookmarkItem alloc fail");
+ VP_FREE(szPath);
+ continue;
+ }
+ pBookmarkItem->pElmItem = NULL;
+ pBookmarkItem->nPos = nPos;
+ VP_STRDUP(pBookmarkItem->szFilePath, szPath);
+ VP_FREE(szPath);
+
+ _vp_play_bookmark_gengrid_item_append(pBookmarkWidget,
+ pBookmarkItem);
+ }
+ }
+
+ if (!vp_media_contents_bookmark_list_clear(pList)) {
+ VideoLogWarning("vp_media_contents_bookmark_list_clear is fail");
+ }
+
+ pList = NULL;
+
+ evas_object_show(pBookmarkWidget->pLayout);
+
+ pBookmarkWidget->bIsRealize = TRUE;
+ pBookmarkWidget->bEditMode = FALSE;
+ pBookmarkWidget->bPressed = FALSE;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @return
+ */
+bool vp_play_bookmark_unrealize(bookmark_handle pWidgetHandle)
+{
+ if (pWidgetHandle == NULL) {
+ VideoLogError("pWidgetHandle is NULL");
+ return FALSE;
+ }
+
+ BookmarkWidget *pBookmarkWidget = (BookmarkWidget *) pWidgetHandle;
+
+ _vp_play_bookmark_gengrid_item_clear(pBookmarkWidget);
+ if (pBookmarkWidget->pGengrid) {
+ elm_gengrid_clear(pBookmarkWidget->pGengrid);
+ }
+
+ evas_object_hide(pBookmarkWidget->pLayout);
+
+ pBookmarkWidget->bIsRealize = FALSE;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param bIsRealize
+ * @return
+ */
+bool vp_play_bookmark_is_realize(bookmark_handle pWidgetHandle,
+ bool * bIsRealize)
+{
+ if (pWidgetHandle == NULL) {
+ VideoLogError("pWidgetHandle is NULL");
+ return FALSE;
+ }
+
+ BookmarkWidget *pBookmarkWidget = (BookmarkWidget *) pWidgetHandle;
+
+ *bIsRealize = pBookmarkWidget->bIsRealize;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @return
+ */
+Evas_Object *vp_play_bookmark_get_object(bookmark_handle pWidgetHandle)
+{
+ if (pWidgetHandle == NULL) {
+ VideoLogError("pWidgetHandle is NULL");
+ return NULL;
+ }
+
+ BookmarkWidget *pBookmarkWidget = (BookmarkWidget *) pWidgetHandle;
+
+ return pBookmarkWidget->pLayout;
+
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param func
+ * @return
+ */
+bool vp_play_bookmark_set_capture_callback(bookmark_handle pWidgetHandle,
+ BookmarkCaptureStartCbFunc func)
+{
+ if (pWidgetHandle == NULL) {
+ VideoLogError("pWidgetHandle is NULL");
+ return FALSE;
+ }
+
+ BookmarkWidget *pBookmarkWidget = (BookmarkWidget *) pWidgetHandle;
+
+ pBookmarkWidget->pCaptureCb = func;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param func
+ * @return
+ */
+bool vp_play_bookmark_set_item_select_callback(bookmark_handle
+ pWidgetHandle,
+ BookmarkItemSelectCbFunc
+ func)
+{
+ if (pWidgetHandle == NULL) {
+ VideoLogError("pWidgetHandle is NULL");
+ return FALSE;
+ }
+
+ BookmarkWidget *pBookmarkWidget = (BookmarkWidget *) pWidgetHandle;
+
+ pBookmarkWidget->pSelectCb = func;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param pUserData
+ * @return
+ */
+bool vp_play_bookmark_set_user_param(bookmark_handle pWidgetHandle,
+ void *pUserData)
+{
+ if (pWidgetHandle == NULL) {
+ VideoLogError("pWidgetHandle is NULL");
+ return FALSE;
+ }
+
+ BookmarkWidget *pBookmarkWidget = (BookmarkWidget *) pWidgetHandle;
+
+ pBookmarkWidget->pUserData = pUserData;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param szMediaURL
+ * @return
+ */
+bool vp_play_bookmark_set_media_url(bookmark_handle pWidgetHandle,
+ const char *szMediaURL)
+{
+ if (pWidgetHandle == NULL) {
+ VideoLogError("pWidgetHandle is NULL");
+ return FALSE;
+ }
+
+ if (szMediaURL == NULL) {
+ VideoLogError("szMediaURL is NULL");
+ return FALSE;
+ }
+ VideoLogError("IN");
+
+ BookmarkWidget *pBookmarkWidget = (BookmarkWidget *) pWidgetHandle;
+
+ VP_STRDUP(pBookmarkWidget->szMediaURL, szMediaURL);
+
+ if (!vp_media_contents_get_video_id
+ (szMediaURL, &(pBookmarkWidget->szMediaID))) {
+ VideoLogError("vp_media_contents_get_video_id is fail");
+ return FALSE;
+ }
+ VideoLogError("OUT");
+
+ return TRUE;
+
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param bEditMode
+ * @return
+ */
+bool vp_play_bookmark_set_edit_mode(bookmark_handle pWidgetHandle,
+ bool bEditMode)
+{
+ if (pWidgetHandle == NULL) {
+ VideoLogError("pWidgetHandle is NULL");
+ return FALSE;
+ }
+
+ BookmarkWidget *pBookmarkWidget = (BookmarkWidget *) pWidgetHandle;
+
+ pBookmarkWidget->bEditMode = bEditMode;
+
+ _vp_play_bookmark_gengrid_item_update(pBookmarkWidget);
+
+ return TRUE;
+
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param bEditMode
+ * @return
+ */
+bool vp_play_bookmark_get_edit_mode(bookmark_handle pWidgetHandle,
+ bool * bEditMode)
+{
+ if (pWidgetHandle == NULL) {
+ VideoLogError("pWidgetHandle is NULL");
+ return FALSE;
+ }
+
+ BookmarkWidget *pBookmarkWidget = (BookmarkWidget *) pWidgetHandle;
+
+ *bEditMode = pBookmarkWidget->bEditMode;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param bPressed
+ * @return
+ */
+bool vp_play_bookmark_get_pressed_status(bookmark_handle pWidgetHandle,
+ bool * bPressed)
+{
+ if (pWidgetHandle == NULL) {
+ VideoLogError("pWidgetHandle is NULL");
+ return FALSE;
+ }
+
+ BookmarkWidget *pBookmarkWidget = (BookmarkWidget *) pWidgetHandle;
+
+ *bPressed = pBookmarkWidget->bPressed;
+
+ return TRUE;
+
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param nCount
+ * @return
+ */
+bool vp_play_bookmark_get_item_count(bookmark_handle pWidgetHandle,
+ int *nCount)
+{
+ if (pWidgetHandle == NULL) {
+ VideoLogError("pWidgetHandle is NULL");
+ return FALSE;
+ }
+
+ BookmarkWidget *pBookmarkWidget = (BookmarkWidget *) pWidgetHandle;
+
+ if (pBookmarkWidget->pItemList == NULL) {
+ *nCount = 0;
+ } else {
+ *nCount = g_list_length(pBookmarkWidget->pItemList);
+ }
+
+ return TRUE;
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <pthread.h>
+
+#include "vp-play-string-define.h"
+#include "vp-play-macro-define.h"
+
+#include "vp-play-brightness-popup.h"
+
+#include "vp-device.h"
+#include "vp-play-util.h"
+
+/* check temp */
+#include "vp-play-log.h"
+
+
+#define VP_BRIGHTNESS_HIDE_LAYOUT_TIMER_INTERVAL 5.0
+
+#define VP_BRIGHTNESS_PORTRAIT_POS_X 275
+#define VP_BRIGHTNESS_PORTRAIT_POS_Y 150
+#define VP_BRIGHTNESS_PORTRAIT_HEIGHT 572
+
+#define VP_BRIGHTNESS_LANDSCAPE_POS_X 450
+#define VP_BRIGHTNESS_LANDSCAPE_POS_Y 60
+#define VP_BRIGHTNESS_LANDSCAPE_HEIGHT 440
+
+
+#define VP_BRIGHTNESS_TEXT_MAX_LEN 4
+
+#define VP_BRIGHTNESS_BRIGHTNESS_UNIT 10
+
+#define VP_BRIGHTNESS_ICON_NUM 12
+
+typedef struct _BrightnessWidget {
+ Evas_Object *pParent;
+ Evas_Object *pLayout;
+ Evas_Object *pIcon;
+
+ Ecore_Timer *pHideTimer;
+ Ecore_Timer *pDeviceTimer;
+
+ bool bLandscape;
+ bool bIsRealize;
+ bool bMouseDown;
+
+ int nMaxVal;
+ int nMinVal;
+ int nCurVal;
+
+ int nBrightnessUnit;
+} BrightnessWidget;
+
+static void _vp_play_brightness_destory_handle(BrightnessWidget *
+ pBrightnessWidget);
+static double _vp_play_brightness_get_mouse_pos_ratio(Evas_Object * pObj,
+ bool bLandscape,
+ int nCurY);
+static void _vp_play_brightness_set_value(BrightnessWidget *
+ pBrightnessWidget, int nValue);
+static void _vp_play_brightness_create_timer(BrightnessWidget *
+ pBrightnessWidget);
+
+/* callback functions */
+/**
+ *
+ * @param pUserData
+ * @param e
+ * @param pObj
+ * @param pEvent
+ */
+static void __vp_brightness_mouse_down_cb(void *pUserData, Evas * e,
+ Evas_Object * pObj, void *pEvent)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+ BrightnessWidget *pBrightnessWidget = (BrightnessWidget *) pUserData;
+
+ if (pBrightnessWidget->bIsRealize == FALSE) {
+ return;
+ }
+
+ Evas_Event_Mouse_Down *pMouseDownEvent =
+ (Evas_Event_Mouse_Down *) pEvent;
+
+ double dRatio =
+ _vp_play_brightness_get_mouse_pos_ratio(pBrightnessWidget->pLayout,
+ pBrightnessWidget->bLandscape,
+ pMouseDownEvent->canvas.y);
+
+ int nCurVal =
+ pBrightnessWidget->nMaxVal - (dRatio * pBrightnessWidget->nMaxVal);
+
+ _vp_play_brightness_set_value(pBrightnessWidget, nCurVal);
+
+ VP_EVAS_TIMER_DEL(pBrightnessWidget->pHideTimer);
+
+ pBrightnessWidget->bMouseDown = TRUE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param e
+ * @param pObj
+ * @param pEvent
+ */
+static void __vp_brightness_mouse_up_cb(void *pUserData, Evas * e,
+ Evas_Object * pObj, void *pEvent)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+ BrightnessWidget *pBrightnessWidget = (BrightnessWidget *) pUserData;
+
+ Evas_Event_Mouse_Up *pMouseUpEvent = (Evas_Event_Mouse_Up *) pEvent;
+
+ if (pBrightnessWidget->bIsRealize == FALSE) {
+ return;
+ }
+
+ double dRatio =
+ _vp_play_brightness_get_mouse_pos_ratio(pBrightnessWidget->pLayout,
+ pBrightnessWidget->bLandscape,
+ pMouseUpEvent->canvas.y);
+
+ int nCurVal =
+ pBrightnessWidget->nMaxVal - (dRatio * pBrightnessWidget->nMaxVal);
+
+ _vp_play_brightness_set_value(pBrightnessWidget, nCurVal);
+ _vp_play_brightness_create_timer(pBrightnessWidget);
+
+ pBrightnessWidget->bMouseDown = FALSE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param e
+ * @param pObj
+ * @param pEvent
+ */
+static void __vp_brightness_mouse_move_cb(void *pUserData, Evas * e,
+ Evas_Object * pObj, void *pEvent)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ BrightnessWidget *pBrightnessWidget = (BrightnessWidget *) pUserData;
+
+ Evas_Event_Mouse_Move *pMouseMoveEvent =
+ (Evas_Event_Mouse_Move *) pEvent;
+
+ if (pBrightnessWidget->bIsRealize == FALSE
+ || pBrightnessWidget->bMouseDown == FALSE) {
+ return;
+ }
+
+ double dRatio =
+ _vp_play_brightness_get_mouse_pos_ratio(pBrightnessWidget->pLayout,
+ pBrightnessWidget->bLandscape,
+ pMouseMoveEvent->
+ cur.canvas.y);
+
+ int nCurVal =
+ pBrightnessWidget->nMaxVal - (dRatio * pBrightnessWidget->nMaxVal);
+
+ if (nCurVal != pBrightnessWidget->nCurVal) {
+ _vp_play_brightness_set_value(pBrightnessWidget, nCurVal);
+ }
+
+}
+
+/**
+ *
+ * @param pUserData
+ * @return
+ */
+static Eina_Bool __vp_brightness_hide_timer_cb(void *pUserData)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return EINA_FALSE;
+ }
+
+ BrightnessWidget *pBrightnessWidget = (BrightnessWidget *) pUserData;
+
+ VP_EVAS_TIMER_DEL(pBrightnessWidget->pHideTimer);
+
+ if (!vp_play_brightness_unrealize
+ ((brightness_handle) pBrightnessWidget)) {
+ VideoLogWarning("vp_play_brightness_unrealize is fail");
+ }
+
+ return EINA_FALSE;
+}
+
+/* internal functions */
+/**
+ *
+ * @param pBrightnessWidget
+ */
+static void _vp_play_brightness_destory_handle(BrightnessWidget *
+ pBrightnessWidget)
+{
+ if (pBrightnessWidget == NULL) {
+ VideoLogError("pBrightnessWidget is NULL");
+ return;
+ }
+
+ VP_EVAS_TIMER_DEL(pBrightnessWidget->pHideTimer);
+ VP_EVAS_TIMER_DEL(pBrightnessWidget->pDeviceTimer);
+ VP_EVAS_DEL(pBrightnessWidget->pLayout);
+
+ VP_FREE(pBrightnessWidget);
+}
+
+/**
+ *
+ * @param pObj
+ * @param bLandscape
+ * @param nCurY
+ * @return
+ */
+static double _vp_play_brightness_get_mouse_pos_ratio(Evas_Object * pObj,
+ bool bLandscape,
+ int nCurY)
+{
+ if (pObj == NULL) {
+ VideoLogError("pObj is NULL");
+ return 0.0;
+ }
+
+ int nHeight = 0;
+ int nCurrent = 0;
+ double dRatio = 0.0;
+
+ evas_object_geometry_get(pObj, NULL, NULL, NULL, &nHeight);
+
+ if (bLandscape) {
+ nHeight = VP_BRIGHTNESS_LANDSCAPE_HEIGHT;
+ nCurrent = nCurY - VP_BRIGHTNESS_LANDSCAPE_POS_Y;
+ } else {
+ nHeight = VP_BRIGHTNESS_PORTRAIT_HEIGHT;
+ nCurrent = nCurY - VP_BRIGHTNESS_PORTRAIT_POS_Y;
+ }
+
+ if (nCurrent < 0) {
+ nCurrent = 0;
+ } else if (nCurrent > nHeight) {
+ nCurrent = nHeight;
+ }
+
+ dRatio = (double) nCurrent / nHeight;
+
+ return dRatio;
+}
+
+
+/**
+ *
+ * @param pBrightnessWidget
+ */
+static void _vp_play_brightness_set_widget_position(BrightnessWidget *
+ pBrightnessWidget)
+{
+ if (pBrightnessWidget == NULL) {
+ VideoLogError("pBrightnessWidget is NULL");
+ return;
+ }
+
+ bool bLandscape = pBrightnessWidget->bLandscape;
+ int nWidth = 0;
+ int nHeight = 0;
+
+ elm_win_screen_size_get(pBrightnessWidget->pParent, NULL, NULL,
+ &nWidth, &nHeight);
+
+ if (bLandscape) {
+ evas_object_move(pBrightnessWidget->pLayout,
+ nHeight -
+ VP_BRIGHTNESS_LANDSCAPE_POS_X * VP_SCALE,
+ VP_BRIGHTNESS_LANDSCAPE_POS_Y * VP_SCALE);
+ } else {
+ evas_object_move(pBrightnessWidget->pLayout,
+ nWidth - VP_BRIGHTNESS_PORTRAIT_POS_X * VP_SCALE,
+ VP_BRIGHTNESS_PORTRAIT_POS_Y * VP_SCALE);
+ }
+}
+
+/**
+ *
+ * @param pBrightnessWidget
+ * @param nValueRatio
+ */
+static void _vp_play_brightness_update_icon(BrightnessWidget *
+ pBrightnessWidget,
+ double nValueRatio)
+{
+ if (pBrightnessWidget == NULL) {
+ VideoLogError("pBrightnessWidget is NULL");
+ return;
+ }
+
+ if (pBrightnessWidget->pIcon == NULL) {
+ VideoLogError("pBrightnessWidget->pIcon is NULL");
+ return;
+ }
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VP_PLAY_RESROUCE_EDJ_PATH);
+ free(path);
+ gchar *popup_path = NULL;
+ int req = 0;
+ if (pBrightnessWidget->nCurVal == pBrightnessWidget->nMaxVal) {
+ req = VP_BRIGHTNESS_ICON_NUM - 1;
+ } else if (pBrightnessWidget->nCurVal > pBrightnessWidget->nMinVal) {
+ req = (int) (nValueRatio * (VP_BRIGHTNESS_ICON_NUM - 2) + 1);
+ }
+ popup_path = g_strdup_printf(VP_PLAY_BRIGHTNESS_POPUP_ICON_PATH, req);
+ elm_image_file_set(pBrightnessWidget->pIcon, edj_path, popup_path);
+ g_free(popup_path);
+}
+
+/**
+ *
+ * @param pBrightnessWidget
+ */
+static void _vp_play_brightness_update_value(BrightnessWidget *
+ pBrightnessWidget)
+{
+ if (pBrightnessWidget == NULL) {
+ VideoLogError("pBrightnessWidget is NULL");
+ return;
+ }
+
+ double nValueRatio = 0.0;
+ char szPlayingTime[VP_BRIGHTNESS_TEXT_MAX_LEN] = { 0, };
+
+ snprintf(szPlayingTime, VP_BRIGHTNESS_TEXT_MAX_LEN, "%d",
+ pBrightnessWidget->nCurVal);
+
+ nValueRatio =
+ ((double) pBrightnessWidget->nCurVal /
+ (double) (pBrightnessWidget->nMaxVal -
+ pBrightnessWidget->nMinVal));
+
+ if (!edje_object_part_drag_value_set
+ (_EDJ(pBrightnessWidget->pLayout),
+ VP_PLAY_SWALLOW_BRIGHTNESS_POPUP_DRAG_RECT, 0.0, nValueRatio)) {
+ VideoLogWarning("Drag value set fail : %lf", nValueRatio);
+ }
+
+ elm_object_part_text_set(pBrightnessWidget->pLayout,
+ VP_PLAY_SWALLOW_BRIGHTNESS_POPUP_VALUE_LABEL,
+ szPlayingTime);
+ /*update brightness icon */
+ _vp_play_brightness_update_icon(pBrightnessWidget, nValueRatio);
+}
+
+/**
+ *
+ * @param pBrightnessWidget
+ */
+static void _vp_play_brightness_create_timer(BrightnessWidget *
+ pBrightnessWidget)
+{
+ if (pBrightnessWidget == NULL) {
+ VideoLogError("pBrightnessWidgetis NULL");
+ return;
+ }
+
+ VP_EVAS_TIMER_DEL(pBrightnessWidget->pHideTimer);
+
+ pBrightnessWidget->pHideTimer =
+ ecore_timer_add(VP_BRIGHTNESS_HIDE_LAYOUT_TIMER_INTERVAL,
+ __vp_brightness_hide_timer_cb,
+ (void *) pBrightnessWidget);
+}
+
+/**
+ *
+ * @param pUserData
+ * @return
+ */
+static Eina_Bool __vp_brightness_popup_device_timer_cb(void *pUserData)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return EINA_FALSE;
+ }
+
+ BrightnessWidget *pBrightnessWidget = (BrightnessWidget *) pUserData;
+
+ if (pBrightnessWidget->pDeviceTimer) {
+ VP_EVAS_TIMER_DEL(pBrightnessWidget->pDeviceTimer);
+ }
+ if (!vp_device_set_brightness(pBrightnessWidget->nCurVal)) {
+ VideoLogError("vp_device_set_brightness");
+ }
+
+ return EINA_FALSE;
+}
+
+/**
+ *
+ * @param pBrightnessWidget
+ * @param nValue
+ */
+static void _vp_play_brightness_set_value(BrightnessWidget *
+ pBrightnessWidget, int nValue)
+{
+ if (pBrightnessWidget == NULL) {
+ VideoLogError("pBrightnessWidget is NULL");
+ return;
+ }
+
+ pBrightnessWidget->nCurVal = nValue;
+
+ _vp_play_brightness_update_value(pBrightnessWidget);
+
+ evas_object_show(pBrightnessWidget->pLayout);
+
+ if (pBrightnessWidget->pDeviceTimer == NULL) {
+ pBrightnessWidget->pDeviceTimer = ecore_timer_add(0.1,
+ __vp_brightness_popup_device_timer_cb,
+ (void *)
+ pBrightnessWidget);
+ }
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+static Evas_Object *_vp_play_brightness_create_layout(Evas_Object *
+ pParent)
+{
+ if (!pParent) {
+ VideoLogError("Parent is NULL");
+ return NULL;
+ }
+
+ Evas_Object *pObj = NULL;
+ Eina_Bool bRet = EINA_FALSE;
+
+ pObj = elm_layout_add(pParent);
+ if (pObj == NULL) {
+ VideoLogError("elm_layout_add object is NULL");
+ return NULL;
+ }
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VP_PLAY_BRIGHTNESS_POPUP_EDJ_PATH);
+ free(path);
+ bRet =
+ elm_layout_file_set(pObj, edj_path,
+ VP_PLAY_EDJ_GROUP_BRIGHTNESS_POPUP);
+ if (bRet != EINA_TRUE) {
+ VideoLogError("elm_layout_file_set fail");
+ return NULL;
+ }
+
+ evas_object_show(pObj);
+
+ return pObj;
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+static Evas_Object *_vp_play_brightness_create_icon(Evas_Object * pParent)
+{
+ if (!pParent) {
+ VideoLogError("Parent is NULL");
+ return NULL;
+ }
+
+ Evas_Object *pIcon = elm_image_add(pParent);
+ evas_object_size_hint_weight_set(pIcon, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(pIcon, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ elm_object_part_content_set(pParent,
+ VP_PLAY_SWALLOW_BRIGHTNESS_POPUP_ICON,
+ pIcon);
+ evas_object_show(pIcon);
+
+ return pIcon;
+}
+
+/**
+ *
+ * @param pBrightnessWidget
+ * @return
+ */
+static bool _vp_play_brightness_init_layout(BrightnessWidget *
+ pBrightnessWidget)
+{
+ if (pBrightnessWidget == NULL) {
+ VideoLogError("pBrightnessWidget is NULL");
+ return FALSE;
+ }
+
+ Evas_Object *pParent = pBrightnessWidget->pParent;
+
+ pBrightnessWidget->pLayout =
+ _vp_play_brightness_create_layout(pParent);
+ if (pBrightnessWidget->pLayout == NULL) {
+ VideoLogError("_vp_play_brightness_create_layout is fail");
+ return FALSE;
+ }
+
+ pBrightnessWidget->pIcon =
+ _vp_play_brightness_create_icon(pBrightnessWidget->pLayout);
+ if (pBrightnessWidget->pIcon == NULL) {
+ VideoLogError("_vp_play_brightness_create_icon is fail");
+ return FALSE;
+ }
+
+ evas_object_event_callback_add(pBrightnessWidget->pLayout,
+ EVAS_CALLBACK_MOUSE_DOWN,
+ __vp_brightness_mouse_down_cb,
+ (void *) pBrightnessWidget);
+
+ evas_object_event_callback_add(pBrightnessWidget->pLayout,
+ EVAS_CALLBACK_MOUSE_UP,
+ __vp_brightness_mouse_up_cb,
+ (void *) pBrightnessWidget);
+
+ evas_object_event_callback_add(pBrightnessWidget->pLayout,
+ EVAS_CALLBACK_MOUSE_MOVE,
+ __vp_brightness_mouse_move_cb,
+ (void *) pBrightnessWidget);
+
+ return TRUE;
+}
+
+/* external functions */
+/**
+ *
+ * @param pParent
+ * @return
+ */
+brightness_handle vp_play_brightness_create(Evas_Object * pParent)
+{
+ if (pParent == NULL) {
+ VideoLogError("pParent is NULL");
+ return NULL;
+ }
+
+ BrightnessWidget *pBrightnessWidget = NULL;
+
+ pBrightnessWidget = calloc(1, sizeof(BrightnessWidget));
+
+ if (pBrightnessWidget == NULL) {
+ VideoLogError("pBrightnessWidget alloc fail");
+ return NULL;
+ }
+
+ pBrightnessWidget->pParent = pParent;
+ pBrightnessWidget->bLandscape = FALSE;
+
+ if (!_vp_play_brightness_init_layout(pBrightnessWidget)) {
+ VideoLogError("_vp_play_brightness_init_layout is fail");
+ _vp_play_brightness_destory_handle(pBrightnessWidget);
+ return NULL;
+ }
+
+ if (!vp_device_get_max_brightness(&(pBrightnessWidget->nMaxVal))) {
+ VideoLogError("vp_device_get_max_brightness fail");
+ _vp_play_brightness_destory_handle(pBrightnessWidget);
+ return NULL;
+ }
+
+ if (!vp_device_get_min_brightness(&(pBrightnessWidget->nMinVal))) {
+ VideoLogError("vp_device_get_min_brightness fail");
+ _vp_play_brightness_destory_handle(pBrightnessWidget);
+ return NULL;
+ }
+
+ pBrightnessWidget->nBrightnessUnit =
+ pBrightnessWidget->nMaxVal / VP_BRIGHTNESS_BRIGHTNESS_UNIT;
+
+ if (!vp_device_get_brightness(&(pBrightnessWidget->nCurVal))) {
+ VideoLogError("vp_device_get_brightness fail");
+ _vp_play_brightness_destory_handle(pBrightnessWidget);
+ return NULL;
+ }
+
+ _vp_play_brightness_update_value(pBrightnessWidget);
+
+ return (brightness_handle) pBrightnessWidget;
+}
+
+/**
+ *
+ * @param pBrightnessHandle
+ */
+void vp_play_brightness_destroy(brightness_handle pBrightnessHandle)
+{
+ if (pBrightnessHandle == NULL) {
+ VideoLogError("pBrightnessHandle is NULL");
+ return;
+ }
+
+ BrightnessWidget *pBrightnessWidget =
+ (BrightnessWidget *) pBrightnessHandle;
+
+ _vp_play_brightness_destory_handle(pBrightnessWidget);
+}
+
+/**
+ *
+ * @param pBrightnessHandle
+ * @return
+ */
+bool vp_play_brightness_realize(brightness_handle pBrightnessHandle)
+{
+ if (pBrightnessHandle == NULL) {
+ VideoLogError("pBrightnessHandle is NULL");
+ return FALSE;
+ }
+
+ BrightnessWidget *pBrightnessWidget =
+ (BrightnessWidget *) pBrightnessHandle;
+
+ pBrightnessWidget->bIsRealize = TRUE;
+
+ _vp_play_brightness_set_widget_position(pBrightnessWidget);
+
+ _vp_play_brightness_set_value(pBrightnessWidget,
+ pBrightnessWidget->nCurVal);
+
+ evas_object_show(pBrightnessWidget->pLayout);
+
+ _vp_play_brightness_create_timer(pBrightnessWidget);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pBrightnessHandle
+ * @return
+ */
+bool vp_play_brightness_unrealize(brightness_handle pBrightnessHandle)
+{
+ if (pBrightnessHandle == NULL) {
+ VideoLogError("pBrightnessHandle is NULL");
+ return FALSE;
+ }
+
+ BrightnessWidget *pBrightnessWidget =
+ (BrightnessWidget *) pBrightnessHandle;
+
+ pBrightnessWidget->bIsRealize = FALSE;
+
+ evas_object_hide(pBrightnessWidget->pLayout);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pBrightnessHandle
+ * @param bLandscape
+ * @return
+ */
+bool vp_play_brightness_set_landscape_mode(brightness_handle
+ pBrightnessHandle,
+ bool bLandscape)
+{
+ if (pBrightnessHandle == NULL) {
+ VideoLogError("pBrightnessHandle is NULL");
+ return FALSE;
+ }
+
+ BrightnessWidget *pBrightnessWidget =
+ (BrightnessWidget *) pBrightnessHandle;
+
+ pBrightnessWidget->bLandscape = bLandscape;
+
+ _vp_play_brightness_set_widget_position(pBrightnessWidget);
+
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pBrightnessHandle
+ * @param bIsRealize
+ * @return
+ */
+bool vp_play_brightness_is_realize(brightness_handle pBrightnessHandle,
+ bool * bIsRealize)
+{
+ if (pBrightnessHandle == NULL) {
+ VideoLogError("pBrightnessHandle is NULL");
+ return FALSE;
+ }
+
+ BrightnessWidget *pBrightnessWidget =
+ (BrightnessWidget *) pBrightnessHandle;
+
+ *bIsRealize = pBrightnessWidget->bIsRealize;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pBrightnessHandle
+ * @param nCurVal
+ * @return
+ */
+bool vp_play_brightness_set_value(brightness_handle pBrightnessHandle,
+ int nCurVal)
+{
+ if (pBrightnessHandle == NULL) {
+ VideoLogError("pBrightnessHandle is NULL");
+ return FALSE;
+ }
+
+ BrightnessWidget *pBrightnessWidget =
+ (BrightnessWidget *) pBrightnessHandle;
+
+ _vp_play_brightness_create_timer(pBrightnessWidget);
+
+ pBrightnessWidget->nCurVal = nCurVal;
+
+ if (pBrightnessWidget->nCurVal < pBrightnessWidget->nMinVal) {
+ pBrightnessWidget->nCurVal = pBrightnessWidget->nMinVal;
+ return TRUE;
+ }
+
+ if (pBrightnessWidget->nCurVal > pBrightnessWidget->nMaxVal) {
+ pBrightnessWidget->nCurVal = pBrightnessWidget->nMaxVal;
+ return TRUE;
+ }
+
+ _vp_play_brightness_set_value(pBrightnessWidget,
+ pBrightnessWidget->nCurVal);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param nCurVal
+ * @return
+ */
+bool vp_play_brightness_get_value(int *nCurVal)
+{
+
+ int nVal = 0;
+
+ if (!vp_device_get_brightness(&nVal)) {
+ VideoLogError("vp_device_get_brightness fail");
+ return FALSE;
+ }
+
+ *nCurVal = nVal;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param nMaxVal
+ * @return
+ */
+bool vp_play_brightness_get_max_value(int *nMaxVal)
+{
+ int nVal = 0;
+
+ if (!vp_device_get_max_brightness(&(nVal))) {
+ VideoLogError("vp_device_get_brightness fail");
+ return FALSE;
+ }
+
+ *nMaxVal = nVal;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param nMinVal
+ * @return
+ */
+bool vp_play_brightness_get_min_value(int *nMinVal)
+{
+ int nVal = 0;
+
+ if (!vp_device_get_min_brightness(&(nVal))) {
+ VideoLogError("vp_device_get_min_brightness fail");
+ return FALSE;
+ }
+
+ *nMinVal = nVal;
+
+ return TRUE;
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "vp-play-button.h"
+
+/* check temp */
+#include "vp-play-log.h"
+
+/**
+ *
+ * @param pParent
+ * @param pStyle
+ * @param pTxt
+ * @param pClickFunc
+ * @param pPressFunc
+ * @param pUnpressFunc
+ * @param pUserData
+ * @return
+ */
+Evas_Object *vp_button_create(Evas_Object * pParent, const char *pStyle,
+ const char *pTxt, Evas_Smart_Cb pClickFunc,
+ Evas_Smart_Cb pPressFunc,
+ Evas_Smart_Cb pUnpressFunc, void *pUserData)
+{
+ if (!pParent) {
+ VideoLogError("pParent is NULL");
+ return NULL;
+ }
+ Evas_Object *pObj = NULL;
+
+ pObj = elm_button_add(pParent);
+
+ if (!pObj) {
+ VideoLogError("pObj is NULL");
+ return NULL;
+ }
+
+ if (pStyle) {
+ elm_object_style_set(pObj, pStyle);
+ }
+
+ if (pTxt) {
+ elm_object_text_set(pObj, pTxt);
+ }
+
+ evas_object_size_hint_weight_set(pObj, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(pObj, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+ evas_object_smart_callback_add(pObj, "clicked", pClickFunc, pUserData);
+ evas_object_smart_callback_add(pObj, "pressed", pPressFunc, pUserData);
+ evas_object_smart_callback_add(pObj, "unpressed", pUnpressFunc,
+ pUserData);
+
+ return pObj;
+}
+
+/**
+ *
+ * @param pParent
+ * @param pEdjPath
+ * @param pGroupName
+ * @return
+ */
+Evas_Object *vp_button_create_icon(Evas_Object * pParent,
+ const char *pEdjPath,
+ const char *pGroupName)
+{
+ if (!pParent) {
+ VideoLogError("pParent is NULL");
+ return NULL;
+ }
+ Evas_Object *pObj = NULL;
+
+ pObj = elm_icon_add(pParent);
+ if (!elm_image_file_set(pObj, pEdjPath, pGroupName)) {
+ VideoLogError("elm_image_file_set is fail");
+ return NULL;
+ }
+ evas_object_size_hint_weight_set(pObj, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(pObj, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+ return pObj;
+}
+
+
+/**
+ *
+ * @param pParent
+ * @param pEdjPath
+ * @param pGroupName
+ * @return
+ */
+Evas_Object *vp_button_create_image(Evas_Object * pParent,
+ const char *pEdjPath,
+ const char *pGroupName)
+{
+ if (!pParent) {
+ VideoLogError("pParent is NULL");
+ return NULL;
+ }
+ Evas_Object *pObj = NULL;
+
+ pObj = elm_image_add(pParent);
+ if (!elm_image_file_set(pObj, pEdjPath, pGroupName)) {
+ VideoLogError("elm_image_file_set is fail");
+ return NULL;
+ }
+
+ return pObj;
+}
+
+/**
+ *
+ * @param pParent
+ * @param pStyle
+ * @param pEdjPath
+ * @param pGroupName
+ * @param pClickFunc
+ * @param pUserData
+ * @return
+ */
+Evas_Object *vp_navirame_button_create(Evas_Object * pParent,
+ const char *pStyle,
+ const char *pEdjPath,
+ const char *pGroupName,
+ Evas_Smart_Cb pClickFunc,
+ void *pUserData)
+{
+ if (!pParent) {
+ VideoLogError("pParent is NULL");
+ return NULL;
+ }
+
+ Evas_Object *pImage = NULL;
+ Evas_Object *btn = elm_button_add(pParent);
+ if (!btn) {
+ return NULL;
+ }
+
+ if (pStyle) {
+ elm_object_style_set(btn, pStyle);
+ } else {
+ elm_object_style_set(btn, "naviframe/title_icon");
+ }
+
+ pImage = elm_image_add(pParent);
+ elm_image_file_set(pImage, pEdjPath, pGroupName);
+ evas_object_size_hint_aspect_set(pImage, EVAS_ASPECT_CONTROL_BOTH, 1,
+ 1);
+ elm_image_resizable_set(pImage, EINA_TRUE, EINA_TRUE);
+ elm_object_part_content_set(btn, "icon", pImage);
+
+ evas_object_smart_callback_add(btn, "clicked", pClickFunc, pUserData);
+ evas_object_show(btn);
+ return btn;
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "vp-play-macro-define.h"
+
+#include "vp-play-loading-ani.h"
+
+/* check temp */
+#include "vp-play-log.h"
+
+
+/**
+ *
+ * @param pParent
+ * @param nSize
+ * @return
+ */
+Evas_Object *vp_play_loading_ani_create(Evas_Object * pParent,
+ video_loading_size_t nSize)
+{
+ if (pParent == NULL) {
+ VideoLogError("pParent is NULL");
+ return NULL;
+ }
+
+ Evas_Object *progressbar = NULL;
+ progressbar = elm_progressbar_add(pParent);
+ if (nSize == VIDEO_LOADING_SIZE_SMALL) {
+ elm_object_style_set(progressbar, "process_small");
+ } else if (nSize == VIDEO_LOADING_SIZE_MIDUM) {
+ elm_object_style_set(progressbar, "process_medium");
+ } else if (nSize == VIDEO_LOADING_SIZE_LARGE) {
+ elm_object_style_set(progressbar, "process_large");
+ } else {
+ elm_object_style_set(progressbar, "process_Xlarge");
+ }
+ evas_object_size_hint_align_set(progressbar, EVAS_HINT_FILL, 0.5);
+ evas_object_size_hint_weight_set(progressbar, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_show(progressbar);
+ elm_progressbar_pulse(progressbar, EINA_TRUE);
+
+ return progressbar;
+
+}
+
+/**
+ *
+ * @param pProgress
+ */
+void vp_play_loading_ani_destroy(Evas_Object * pProgress)
+{
+ if (pProgress == NULL) {
+ VideoLogError("pProgress is NULL");
+ return;
+ }
+
+ VP_EVAS_DEL(pProgress);
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <sys/time.h>
+#include <minicontrol-provider.h>
+#include <minicontrol-type.h>
+#include <device/display.h>
+#include <system_settings.h>
+
+
+#include "vp-play-string-define.h"
+#include "vp-play-macro-define.h"
+
+#include "vp-play-lockscreenmc.h"
+#include "vp-play-view-priv.h"
+#include "vp-play-normal-view.h"
+#include "vp-mm-player.h"
+#include "vp-play-util.h"
+#include "vp-media-contents.h"
+/* check temp */
+#include "vp-play-log.h"
+#include "Ecore.h"
+
+int LOCKSCREEN_MINI_CONTROLLER_WIDTH;
+#define LOCKSCREEN_MINI_CONTROLLER_HEIGHT (93)
+
+static time_t press_time;
+static time_t release_time;
+static Evas_Object *_load_edj(Evas_Object * parent, const char *file,
+ const char *group);
+static void _load_lockscreenmini(PlayView * pPlayView);
+static void _vp_lockscreenmini_update_layout(PlayView * pPlayView,
+ bool landscape);
+static Eina_Bool _vp_lockscreenmini_hide_video_mini_controller(void
+ *pUserData);
+
+
+/**
+ *
+ * @param parent
+ * @param file
+ * @param group
+ * @return
+ */
+static Evas_Object *_load_edj(Evas_Object * parent, const char *file,
+ const char *group)
+{
+ Evas_Object *eo;
+ int r;
+
+ eo = elm_layout_add(parent);
+ if (eo) {
+ char edje_path[1024] = { 0 };
+ char *path = app_get_resource_path();
+
+ if (path == NULL) {
+ VideoLogError("path is null");
+ return NULL;
+ }
+ snprintf(edje_path, 1024, "%s%s/%s", path, "edje", file);
+
+ r = elm_layout_file_set(eo, edje_path, group);
+ free(path);
+
+ if (!r) {
+ evas_object_del(eo);
+ return NULL;
+ }
+ evas_object_size_hint_weight_set(eo, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ elm_win_resize_object_add(parent, eo);
+ evas_object_show(eo);
+ }
+
+ return eo;
+}
+
+/**
+ *
+ * @param event_type
+ * @param event_arg
+ */
+static void _lockscreen_cb(minicontrol_viewer_event_e event_type,
+ bundle * event_arg)
+{
+ /*Need to handle events */
+}
+
+/**
+ *
+ * @param pPlayView
+ */
+static void _load_lockscreenmini(PlayView * pPlayView)
+{
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return;
+ }
+ Evas_Object *win = NULL;
+
+ win =
+ minicontrol_create_window("video-minicontrol.LOCKSCREEN",
+ MINICONTROL_TARGET_VIEWER_STOCK_LOCK_SCREEN,
+ _lockscreen_cb);
+
+ if (!win) {
+ return;
+ }
+ elm_win_alpha_set(win, EINA_TRUE);
+
+ pPlayView->win_lockmini = win;
+
+ /* load edje */
+ _vp_lockscreenmini_update_layout(pPlayView, false);
+
+
+ return;
+}
+
+
+/**
+ *
+ * @param pPlayView
+ */
+void vp_lockscreenmini_update_winmini_size(PlayView * pPlayView)
+{
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return;
+ }
+
+ double scale = elm_config_scale_get();
+ VideoLogDebug("scale: %f", scale);
+
+ if ((scale - 1.7) < 0.0001) {
+ LOCKSCREEN_MINI_CONTROLLER_WIDTH = 318;
+ } else if ((scale - 1.8) < 0.0001) {
+ LOCKSCREEN_MINI_CONTROLLER_WIDTH = 267;
+ } else if ((scale - 2.4) < 0.0001) {
+ LOCKSCREEN_MINI_CONTROLLER_WIDTH = 300;
+ } else if ((scale - 2.6) < 0.0001) {
+ LOCKSCREEN_MINI_CONTROLLER_WIDTH = 300;
+ } else if ((scale - 2.8) < 0.0001) {
+ LOCKSCREEN_MINI_CONTROLLER_WIDTH = 300;
+ }
+
+ evas_object_resize(pPlayView->win_lockmini,
+ LOCKSCREEN_MINI_CONTROLLER_WIDTH * scale,
+ LOCKSCREEN_MINI_CONTROLLER_HEIGHT * scale);
+
+ return;
+}
+
+/**
+ *
+ * @param pPlayView
+ * @return
+ */
+int vp_lockscreenmini_create(PlayView * pPlayView)
+{
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return -1;
+ }
+ if (!(pPlayView->lockmini_layout && pPlayView->win_lockmini)) {
+ _load_lockscreenmini(pPlayView);
+ if (pPlayView->lockmini_layout == NULL) {
+ VideoLogError("layout not made");
+ return -1;
+ }
+ }
+
+ vp_lockscreenmini_update_winmini_size(pPlayView);
+
+ vp_lockscreenmini_show(pPlayView);
+ return 0;
+}
+
+
+/**
+ *
+ * @param pPlayView
+ * @return
+ */
+int vp_lockscreenmini_show(PlayView * pPlayView)
+{
+ VideoLogDebug("minicontroller view show!!");
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return -1;
+ }
+ if (!pPlayView->win_lockmini) {
+ VideoLogError("pPlayView->win_lockmini is NULL");
+ return -1;
+ }
+
+ pPlayView->b_lockmini_show = TRUE;
+ vp_lockscreenmini_update(pPlayView);
+
+ evas_object_show(pPlayView->win_lockmini);
+ return 0;
+}
+
+/**
+ *
+ * @param pPlayView
+ */
+static void _vp_lockscreenmini_update_btn(PlayView * pPlayView)
+{
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return;
+ }
+ if (!pPlayView->win_lockmini) {
+ VideoLogError("pPlayView->win_lockmini is NULL");
+ return;
+ }
+
+ vp_mm_player_state_t nState =
+ vp_play_normal_view_get_player_state(pPlayView);
+
+ VideoLogInfo("nState:%d", nState);
+ if (nState == VP_MM_PLAYER_STATE_PLAYING) {
+ edje_object_signal_emit(elm_layout_edje_get
+ (pPlayView->lockmini_layout),
+ "play_btn_visible", "play_btn");
+ edje_object_signal_emit(elm_layout_edje_get
+ (pPlayView->lockmini_layout),
+ "pause_btn_invisible", "pause_btn");
+ } else {
+ edje_object_signal_emit(elm_layout_edje_get
+ (pPlayView->lockmini_layout),
+ "play_btn_invisible", "play_btn");
+ edje_object_signal_emit(elm_layout_edje_get
+ (pPlayView->lockmini_layout),
+ "pause_btn_visible", "pause_btn");
+ }
+}
+
+/**
+ *
+ * @param data
+ * @return
+ */
+static Eina_Bool _vp_lockscreenmini_btn_update_timer(void *data)
+{
+ PlayView *pPlayView = (PlayView *) data;
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ }
+
+ _vp_lockscreenmini_update_btn(pPlayView);
+
+ if (pPlayView)
+ pPlayView->lockmini_button_timer = NULL;
+ return EINA_FALSE;
+}
+
+/**
+ *
+ * @param pPlayView
+ */
+static void _vp_lockscreenmini_update_playpause_btn(PlayView * pPlayView)
+{
+ VP_EVAS_TIMER_DEL(pPlayView->lockmini_button_timer);
+
+ vp_mm_player_state_t nState =
+ vp_play_normal_view_get_player_state(pPlayView);
+
+ VideoLogInfo("nState:%d", nState);
+ if (nState == VP_MM_PLAYER_STATE_PLAYING
+ || nState == VP_MM_PLAYER_STATE_PAUSED) {
+ _vp_lockscreenmini_update_btn(pPlayView);
+ } else {
+ pPlayView->lockmini_button_timer =
+ ecore_timer_add(1.0, _vp_lockscreenmini_btn_update_timer,
+ (void *) pPlayView);
+ }
+}
+
+/**
+ *
+ * @param pPlayView
+ */
+void vp_lockscreenmini_update_control(PlayView * pPlayView)
+{
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return;
+ }
+ if (!pPlayView->win_lockmini) {
+ VideoLogError("pPlayView->win_lockmini is NULL");
+ return;
+ }
+
+ _vp_lockscreenmini_update_playpause_btn(pPlayView);
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void _vp_lockscreenmini_play_pause_btn_clicked_cb(void *data,
+ Evas_Object * obj,
+ void *event_info)
+{
+ VideoLogDebug("play/pause button clicked");
+
+ PlayView *pPlayView = (PlayView *) data;
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return;
+ }
+ int lock_state = SYSTEM_SETTINGS_LOCK_STATE_UNLOCK;
+ system_settings_get_value_int(SYSTEM_SETTINGS_KEY_LOCK_STATE,
+ &lock_state);
+
+ vp_mm_player_state_t nState =
+ vp_play_normal_view_get_player_state(pPlayView);
+ VideoLogInfo("nState:%d", nState);
+ if (nState == VP_MM_PLAYER_STATE_PLAYING) {
+ /*if playing state then on click it should pause and set button for play */
+ edje_object_signal_emit(elm_layout_edje_get
+ (pPlayView->lockmini_layout),
+ "play_btn_invisible", "play_btn");
+ edje_object_signal_emit(elm_layout_edje_get
+ (pPlayView->lockmini_layout),
+ "pause_btn_visible", "pause_btn");
+ vp_play_normal_view_on_controller_button_press(pPlayView->
+ pNormalView,
+ LC_CONTROLLER_PAUSE_BUTTON);
+
+ system_settings_get_value_int(SYSTEM_SETTINGS_KEY_LOCK_STATE,
+ &lock_state);
+ if (lock_state == SYSTEM_SETTINGS_LOCK_STATE_LOCK) {
+ VP_EVAS_TIMER_DEL(pPlayView->lockmini_idle_timer);
+ pPlayView->lockmini_idle_timer =
+ ecore_timer_add((2 * 60),
+ _vp_lockscreenmini_hide_video_mini_controller,
+ pPlayView);
+ }
+
+ } else {
+ edje_object_signal_emit(elm_layout_edje_get
+ (pPlayView->lockmini_layout),
+ "play_btn_visible", "play_btn");
+ edje_object_signal_emit(elm_layout_edje_get
+ (pPlayView->lockmini_layout),
+ "pause_btn_invisible", "pause_btn");
+ vp_play_normal_view_on_controller_button_press(pPlayView->
+ pNormalView,
+ LC_CONTROLLER_PLAY_BUTTON);
+ VP_EVAS_TIMER_DEL(pPlayView->lockmini_idle_timer);
+ }
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void _vp_lockscreenmini_ff_btn_pressed_cb(void *data,
+ Evas_Object * obj,
+ void *event_info)
+{
+ VideoLogDebug("ff button pressed");
+ time(&press_time);
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void _vp_lockscreenmini_ff_btn_unpressed_cb(void *data,
+ Evas_Object * obj,
+ void *event_info)
+{
+ VideoLogDebug("ff button unpressed");
+ time(&release_time);
+
+ PlayView *pPlayView = (PlayView *) data;
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return;
+ }
+ if (!pPlayView->lockmini_layout) {
+ VideoLogError("pPlayView->lockmini_layout is NULL");
+ return;
+ }
+
+ elm_object_signal_emit(pPlayView->lockmini_layout,
+ "signal.button.unpressed", "ff_btn");
+}
+
+/**
+ * .
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void _vp_lockscreenmini_ff_btn_clicked_cb(void *data,
+ Evas_Object * obj,
+ void *event_info)
+{
+ VideoLogDebug("ff button clicked");
+ PlayView *pPlayView = (PlayView *) data;
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return;
+ }
+ vp_play_normal_view_on_controller_button_press(pPlayView->pNormalView,
+ LC_CONTROLLER_FF_BUTTON);
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void _vp_lockscreenmini_rew_btn_pressed_cb(void *data,
+ Evas_Object * obj,
+ void *event_info)
+{
+ VideoLogDebug("rew button pressed");
+ time(&press_time);
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void _vp_lockscreenmini_rew_btn_unpressed_cb(void *data,
+ Evas_Object * obj,
+ void *event_info)
+{
+ VideoLogDebug("rew button unpressed");
+ time(&release_time);
+
+ PlayView *pPlayView = (PlayView *) data;
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return;
+ }
+ if (!pPlayView->lockmini_layout) {
+ VideoLogError("pPlayView->lockmini_layout is NULL");
+ return;
+ }
+
+ elm_object_signal_emit(pPlayView->lockmini_layout,
+ "signal.button.unpressed", "rew_btn");
+
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void _vp_lockscreenmini_rew_btn_clicked_cb(void *data,
+ Evas_Object * obj,
+ void *event_info)
+{
+ VideoLogDebug("rew button clicked");
+ PlayView *pPlayView = (PlayView *) data;
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return;
+ }
+ vp_play_normal_view_on_controller_button_press(pPlayView->pNormalView,
+ LC_CONTROLLER_REW_BUTTON);
+}
+
+/*end of focused UI callbacks*/
+
+/**
+ *
+ * @param pPlayView
+ * @param landscape
+ */
+static void
+_vp_lockscreenmini_update_layout(PlayView * pPlayView, bool landscape)
+{
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return;
+ }
+
+ bool isLiveStreaming = pPlayView->isLiveStreaming;
+
+ VP_EVAS_TIMER_DEL(pPlayView->lockmini_button_timer);
+
+ if (pPlayView->lockmini_layout) {
+ evas_object_del(pPlayView->lockmini_layout);
+ }
+
+ if (isLiveStreaming) {
+ pPlayView->lockmini_layout =
+ _load_edj(pPlayView->win_lockmini, LOCKSCREENMINI_EDJ_NAME,
+ "video-lockscreenmini-live-streaming");
+ } else {
+ pPlayView->lockmini_layout =
+ _load_edj(pPlayView->win_lockmini, LOCKSCREENMINI_EDJ_NAME,
+ "video-lockscreenmini");
+ }
+
+ if (!pPlayView->lockmini_layout) {
+ VideoLogError("layout making failed");
+ return;
+ }
+
+ elm_win_resize_object_add(pPlayView->win_lockmini,
+ pPlayView->lockmini_layout);
+
+ /*add focused UI related */
+ pPlayView->lsicon_icon = elm_image_add(pPlayView->lockmini_layout);
+ evas_object_size_hint_align_set(pPlayView->lsicon_icon, EVAS_HINT_FILL,
+ EVAS_HINT_FILL);
+ evas_object_size_hint_weight_set(pPlayView->lsicon_icon,
+ EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ elm_image_fill_outside_set(pPlayView->lsicon_icon, true);
+ elm_object_part_content_set(pPlayView->lockmini_layout,
+ "albumart_image", pPlayView->lsicon_icon);
+ elm_object_focus_custom_chain_append(pPlayView->lockmini_layout,
+ pPlayView->lsicon_icon, NULL);
+ elm_object_focus_allow_set(pPlayView->lsicon_icon, EINA_TRUE);
+
+ /*-------> REW button ------->*/
+ if (!isLiveStreaming) {
+ Evas_Object *rew_focus_btn =
+ elm_button_add(pPlayView->lockmini_layout);
+ elm_object_style_set(rew_focus_btn, "focus");
+ elm_object_part_content_set(pPlayView->lockmini_layout, "rew_focus",
+ rew_focus_btn);
+ elm_object_focus_custom_chain_append(pPlayView->lockmini_layout,
+ rew_focus_btn, NULL);
+ evas_object_smart_callback_add(rew_focus_btn, "clicked",
+ _vp_lockscreenmini_rew_btn_clicked_cb,
+ pPlayView);
+ evas_object_smart_callback_add(rew_focus_btn, "pressed",
+ _vp_lockscreenmini_rew_btn_pressed_cb,
+ pPlayView);
+ evas_object_smart_callback_add(rew_focus_btn, "unpressed",
+ _vp_lockscreenmini_rew_btn_unpressed_cb,
+ pPlayView);
+ }
+
+ /*-------> play/pause button ------->*/
+ Evas_Object *play_pause_focus_btn =
+ elm_button_add(pPlayView->lockmini_layout);
+ elm_object_style_set(play_pause_focus_btn, "focus");
+ elm_object_part_content_set(pPlayView->lockmini_layout,
+ "play_pause_focus", play_pause_focus_btn);
+ elm_object_focus_custom_chain_append(pPlayView->lockmini_layout,
+ play_pause_focus_btn, NULL);
+ evas_object_smart_callback_add(play_pause_focus_btn, "clicked",
+ _vp_lockscreenmini_play_pause_btn_clicked_cb,
+ pPlayView);
+
+ /*------->FF button ------->*/
+ if (!isLiveStreaming) {
+ Evas_Object *ff_focus_btn = elm_button_add(pPlayView->lockmini_layout);
+ elm_object_style_set(ff_focus_btn, "focus");
+ elm_object_part_content_set(pPlayView->lockmini_layout, "ff_focus",
+ ff_focus_btn);
+ elm_object_focus_custom_chain_append(pPlayView->lockmini_layout,
+ ff_focus_btn, NULL);
+ evas_object_smart_callback_add(ff_focus_btn, "clicked",
+ _vp_lockscreenmini_ff_btn_clicked_cb,
+ pPlayView);
+ evas_object_smart_callback_add(ff_focus_btn, "pressed",
+ _vp_lockscreenmini_ff_btn_pressed_cb,
+ pPlayView);
+ evas_object_smart_callback_add(ff_focus_btn, "unpressed",
+ _vp_lockscreenmini_ff_btn_unpressed_cb,
+ pPlayView);
+ }
+ _vp_lockscreenmini_update_btn(pPlayView);
+}
+
+/**
+ *
+ * @param pPlayView
+ */
+static void _vp_lockscreenmini_title_set(PlayView * pPlayView)
+{
+ VideoLogDebug("title set");
+
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return;
+ }
+ Evas_Object *label =
+ elm_object_part_content_get(pPlayView->lockmini_layout,
+ "elm.text");
+
+ char *markup_title =
+ elm_entry_utf8_to_markup(vp_play_util_get_title_from_path
+ (pPlayView->szMediaURL));
+
+ char *title_shadow =
+ g_strdup_printf("far_shadow,bottom shadow_color=#00000080");
+ char *title_format =
+ "<align=center><style=%s><font_size=%d><color=#%s><color_class=%s>%s</font></color_class></font_size></style></align>";
+ char *title = NULL;
+ char *title_format_left =
+ "<align=left><style=%s><font_size=%d><color=#%s><color_class=%s>%s%s</font></color_class></font_size></style></align>";
+
+ if (markup_title) {
+ if (strlen(markup_title) + 3 <= 35) {
+ title =
+ g_strdup_printf(title_format, title_shadow, 30, "FFFFFFFF",
+ "ATO003", markup_title);
+ } else {
+ title =
+ g_strdup_printf(title_format_left, title_shadow, 30,
+ "FFFFFFFF", "ATO003", markup_title,
+ " ");
+ }
+ }
+
+ edje_object_part_text_set(_EDJ(pPlayView->lockmini_layout), "elm.text",
+ markup_title);
+ if (!label) {
+ label = elm_label_add(pPlayView->lockmini_layout);
+ elm_object_style_set(label, "slide_roll");
+
+ // set the label for the title slide mode
+ elm_label_slide_mode_set(label, ELM_LABEL_SLIDE_MODE_AUTO);
+ elm_label_wrap_width_set(label, 1);
+ // set the label text
+ elm_object_text_set(label, title);
+ evas_object_show(label);
+ elm_object_part_content_set(pPlayView->lockmini_layout, "elm.text",
+ label);
+ } else {
+ elm_object_text_set(label, title);
+ }
+
+ elm_label_slide_mode_set(label, ELM_LABEL_SLIDE_MODE_ALWAYS);
+ elm_label_slide_go(label);
+
+ VP_FREE(title);
+ VP_FREE(markup_title);
+ VP_FREE(title_shadow);
+ evas_object_show(label);
+}
+
+/**
+ *
+ * @param pUserData
+ * @return
+ */
+static Eina_Bool _vp_lockscreenmini_hide_video_mini_controller(void
+ *pUserData)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return EINA_FALSE;
+ }
+
+ PlayView *pPlayView = (PlayView *) pUserData;
+ vp_lockscreenmini_hide(pPlayView);
+ pPlayView->lockmini_idle_timer = NULL;
+ return EINA_FALSE;
+}
+
+/**
+ *
+ * @param pPlayView
+ */
+void vp_lockscreenmini_update(PlayView * pPlayView)
+{
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return;
+ }
+ if (!pPlayView->win_lockmini) {
+ VideoLogError("pPlayView->win_lockmini is NULL");
+ return;
+ }
+
+ /*thumbnail set */
+ char *thumbnail_path = NULL;
+ vp_media_contents_get_video_thumbnail_path(pPlayView->szMediaURL,
+ &thumbnail_path);
+ VideoLogInfo("thumbnail = %s:%s", pPlayView->szMediaURL,
+ thumbnail_path);
+ elm_image_file_set(pPlayView->lsicon_icon, thumbnail_path, NULL);
+
+ vp_lockscreenmini_update_control(pPlayView);
+ _vp_lockscreenmini_title_set(pPlayView);
+ evas_object_show(pPlayView->lockmini_layout);
+
+}
+
+/**
+ *
+ * @param pPlayView
+ * @return
+ */
+int vp_lockscreenmini_hide(PlayView * pPlayView)
+{
+ if (!pPlayView || !pPlayView->win_lockmini)
+ return -1;
+
+ evas_object_hide(pPlayView->win_lockmini);
+ pPlayView->b_lockmini_show = FALSE;
+
+ VP_EVAS_TIMER_DEL(pPlayView->lockmini_button_timer);
+
+ return 0;
+}
+
+/**
+ *
+ * @param pPlayView
+ * @return
+ */
+int vp_lockscreenmini_destroy(PlayView * pPlayView)
+{
+ VideoLogDebug("lockscreenmini view destroy!!");
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return -1;
+ }
+
+ VP_EVAS_TIMER_DEL(pPlayView->lockmini_button_timer);
+ VP_EVAS_TIMER_DEL(pPlayView->lockmini_idle_timer);
+ pPlayView->lockmini_visible = false;
+
+ if (pPlayView->lockmini_layout != NULL) {
+ evas_object_hide(pPlayView->lockmini_layout);
+ evas_object_del(pPlayView->lockmini_layout);
+ pPlayView->lockmini_layout = NULL;
+ pPlayView->b_lockmini_show = FALSE;
+ }
+ if (pPlayView->win_lockmini != NULL) {
+ evas_object_hide(pPlayView->win_lockmini);
+ evas_object_del(pPlayView->win_lockmini);
+ pPlayView->win_lockmini = NULL;
+ }
+
+ return 0;
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <sound_manager.h>
+#include <sys/time.h>
+#include <minicontrol-provider.h>
+#include <minicontrol-type.h>
+
+#include "mp-video-value-define.h"
+#include "vp-play-string-define.h"
+#include "vp-play-macro-define.h"
+
+#include "vp-play-minicontroller.h"
+#include "vp-play-view-priv.h"
+#include "vp-play-normal-view.h"
+#include "vp-mm-player.h"
+#include "vp-play-util.h"
+#include "vp-media-contents.h"
+#include "vp-play-lockscreenmc.h"
+
+/* check temp */
+#include "vp-play-log.h"
+
+#define MINI_CONTROLLER_HEIGHT (93)
+#define WL_INDI_H 27 //Window Layout Indicator Height
+#define PAUSE_TIME_OUT 120.
+
+static time_t press_time;
+static time_t release_time;
+int MINI_CONTROLLER_WIDTH;
+int MINI_CONTROLLER_WIDTH_LANDSCAPE;
+
+static void _minicontroller_action_cb(void *data, Evas_Object * obj,
+ const char *emission,
+ const char *source);
+static Evas_Object *_load_edj(Evas_Object * parent, const char *file,
+ const char *group);
+static void _load_minicontroller(PlayView * pPlayView);
+static void _vp_minicontroller_update_layout(PlayView * pPlayView,
+ bool landscape);
+static void _vp_minicontroller_title_set(PlayView * pPlayView);
+
+PlayView *app_data;
+
+/**
+ *
+ * @param pPlayView
+ * @param angle
+ * @return
+ */
+static bool
+_vp_minicontroller_landscape_is(PlayView * pPlayView, int angle)
+{
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return false;
+ }
+ if (!pPlayView->win_minicon) {
+ VideoLogError("pPlayView->win_minicon is NULL");
+ return false;
+ }
+
+ bool landscape = false;
+ if (angle == 90 || angle == 270) {
+ landscape = true;
+ } else {
+ landscape = false;
+ }
+ return landscape;
+}
+
+/**
+ *
+ * @param pPlayView
+ */
+static void
+_vp_minicontroller_action_show_player_view(PlayView * pPlayView)
+{
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ } else {
+ VideoLogDebug("Showing controller.");
+ minicontrol_send_event(pPlayView->win_minicon,
+ MINICONTROL_EVENT_REQUEST_HIDE, NULL);
+ }
+ vp_play_util_app_resume();
+
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param emission
+ * @param source
+ */
+static void
+_minicontroller_action_cb(void *data, Evas_Object * obj,
+ const char *emission, const char *source)
+{
+ PlayView *pPlayView = (PlayView *) data;
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ }
+ if (emission) {
+ if (!g_strcmp0(emission, "close_btn_clicked")) {
+ VideoLogDebug("close button clicked!!");
+ elm_exit();
+ } else if (!g_strcmp0(emission, "albumart_clicked")) {
+ VideoLogDebug("albumart clicked!!");
+ _vp_minicontroller_action_show_player_view(pPlayView);
+ return;
+ }
+ }
+
+}
+
+/**
+ *
+ * @param parent
+ * @param file
+ * @param group
+ * @return
+ */
+static Evas_Object *_load_edj(Evas_Object * parent, const char *file,
+ const char *group)
+{
+ Evas_Object *eo;
+ int r;
+
+ eo = elm_layout_add(parent);
+ if (eo) {
+ char edje_path[1024] = { 0 };
+ char *path = app_get_resource_path();
+
+ if (path == NULL) {
+ VideoLogError("path is null");
+ return NULL;
+ }
+ snprintf(edje_path, 1024, "%s%s/%s", path, "edje", file);
+
+ r = elm_layout_file_set(eo, edje_path, group);
+ free(path);
+ if (!r) {
+ evas_object_del(eo);
+ return NULL;
+ }
+ evas_object_size_hint_weight_set(eo, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ elm_win_resize_object_add(parent, eo);
+ evas_object_show(eo);
+ }
+
+ return eo;
+}
+
+/**
+ *
+ * @param event_type
+ * @param event_arg
+ */
+static void _quick_panel_cb(minicontrol_viewer_event_e event_type,
+ bundle * event_arg)
+{
+ VideoLogDebug("Handling events for Minicontroller!!");
+ if (event_type ==
+ (minicontrol_viewer_event_e) MINICONTROL_EVENT_REQUEST_HIDE) {
+ VideoLogDebug("Request to close Video Player");
+ }
+ if (event_type ==
+ (minicontrol_viewer_event_e) MINICONTROL_VIEWER_EVENT_REPORT_ANGLE) {
+ char *value = NULL;
+ int angle = 0;
+ bundle_get_str(event_arg, "angle", &value);
+ if (value && strlen(value) > 0) {
+ angle = atoi(value);
+ VideoLogDebug("Angle is : %d", angle);
+ }
+ vp_minicontroller_rotate(app_data, angle);
+ } else if (event_type == MINICONTROL_EVENT_REQUEST_HIDE) {
+ VideoLogDebug("Closing.");
+ elm_exit();
+ }
+}
+
+/**
+ *
+ * @param pPlayView
+ */
+static void _load_minicontroller(PlayView * pPlayView)
+{
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return;
+ }
+ app_data = pPlayView;
+ Evas_Object *win = NULL;
+ win =
+ minicontrol_create_window("videoplayer-mini",
+ MINICONTROL_TARGET_VIEWER_QUICK_PANEL,
+ _quick_panel_cb);
+
+ if (!win) {
+ VideoLogError("window is NULL");
+ return;
+ }
+
+ elm_win_alpha_set(win, EINA_TRUE);
+
+ pPlayView->win_minicon = win;
+
+ /*check initial rotation */
+ int nAngle = elm_win_rotation_get((Evas_Object *) pPlayView->pWin);
+ bool landscape = _vp_minicontroller_landscape_is(pPlayView, nAngle);
+ VideoLogDebug("Current Orientation Landscape: %d", landscape);
+ _vp_minicontroller_update_layout(pPlayView, landscape);
+
+
+ return;
+}
+
+/**
+ *
+ * @param pPlayView
+ */
+void vp_minicontroller_update_winmini_size(PlayView * pPlayView)
+{
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return;
+ }
+ int angle = elm_win_rotation_get((Evas_Object *) pPlayView->pWin);
+
+ VideoLogError("angle======================%d", angle);
+ int w = 0;
+ if ((elm_config_scale_get() - 1.7) < 0.0001) {
+ MINI_CONTROLLER_WIDTH = 318;
+ MINI_CONTROLLER_WIDTH_LANDSCAPE = 564;
+ } else if ((elm_config_scale_get() - 1.8) < 0.0001) {
+ MINI_CONTROLLER_WIDTH = 267;
+ MINI_CONTROLLER_WIDTH_LANDSCAPE = 444;
+ } else if ((elm_config_scale_get() - 2.4) < 0.0001) {
+ MINI_CONTROLLER_WIDTH = 300;
+ MINI_CONTROLLER_WIDTH_LANDSCAPE = 533;
+ } else if ((elm_config_scale_get() - 2.6) < 0.0001) {
+ MINI_CONTROLLER_WIDTH = 277;
+ MINI_CONTROLLER_WIDTH_LANDSCAPE = 492;
+ } else if ((elm_config_scale_get() - 2.8) < 0.0001) {
+ MINI_CONTROLLER_WIDTH = 257;
+ MINI_CONTROLLER_WIDTH_LANDSCAPE = 457;
+ }
+
+ if (angle == 90 || angle == 270) {
+ w = MINI_CONTROLLER_WIDTH_LANDSCAPE;
+ } else {
+ w = MINI_CONTROLLER_WIDTH;
+ }
+
+ double scale = elm_config_scale_get();
+ VideoLogDebug("scale: %f and width: %d and height: %d", scale, w,
+ MINI_CONTROLLER_HEIGHT);
+ evas_object_resize(pPlayView->win_minicon, w * scale,
+ MINI_CONTROLLER_HEIGHT * scale);
+
+ return;
+}
+
+/**
+ *
+ * @param pPlayView
+ * @return
+ */
+int vp_minicontroller_create(PlayView * pPlayView)
+{
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return -1;
+ }
+
+ if (!(pPlayView->minicontroller_layout && pPlayView->win_minicon)) {
+
+ _load_minicontroller(pPlayView);
+ if (pPlayView->minicontroller_layout == NULL) {
+ VideoLogError("ERROR");
+ return -1;
+ }
+
+ }
+
+ vp_minicontroller_update_winmini_size(pPlayView);
+
+ vp_minicontroller_show(pPlayView);
+ _vp_minicontroller_title_set(pPlayView);
+
+ return 0;
+}
+
+/**
+ *
+ * @param pPlayView
+ * @return
+ */
+int vp_minicontroller_show(PlayView * pPlayView)
+{
+ VideoLogDebug("Showing controller!");
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return -1;
+ }
+ if (!pPlayView->win_minicon) {
+ VideoLogError("pPlayView->win_minicon is NULL");
+ return -1;
+ }
+
+ pPlayView->b_minicontroller_show = TRUE;
+ vp_minicontroller_update(pPlayView, true);
+ evas_object_show(pPlayView->win_minicon);
+ return 0;
+
+}
+
+/**
+ *
+ * @param pPlayView
+ */
+static void _vp_minicontroller_update_btn(PlayView * pPlayView)
+{
+ VideoLogError("Updating play/pause button!!!!!!!!!!!");
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return;
+ }
+ if (!pPlayView->win_minicon) {
+ VideoLogError("pPlayView->win_minicon is NULL");
+ return;
+ }
+
+ vp_mm_player_state_t nState =
+ vp_play_normal_view_get_player_state(pPlayView);
+
+ VideoLogInfo("nState:%d", nState);
+ if (nState == VP_MM_PLAYER_STATE_PLAYING) {
+ elm_object_signal_emit(pPlayView->minicontroller_layout,
+ "set_pause", "c_source");
+ } else {
+ elm_object_signal_emit(pPlayView->minicontroller_layout,
+ "set_play", "c_source");
+ }
+
+}
+
+/**
+ *
+ * @param data
+ * @return
+ */
+static Eina_Bool _vp_minicontroller_btn_update_timer(void *data)
+{
+ PlayView *pPlayView = (PlayView *) data;
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ }
+
+ _vp_minicontroller_update_btn(pPlayView);
+
+ if (pPlayView)
+ pPlayView->minicon_button_timer = NULL;
+ return EINA_FALSE;
+}
+
+/**
+ *
+ * @param pPlayView
+ */
+static void _vp_minicontroller_update_playpause_btn(PlayView * pPlayView)
+{
+ VP_EVAS_TIMER_DEL(pPlayView->minicon_button_timer);
+
+ vp_mm_player_state_t nState =
+ vp_play_normal_view_get_player_state(pPlayView);
+ VideoLogInfo("nState:%d", nState);
+
+ if (nState == VP_MM_PLAYER_STATE_PLAYING
+ || nState == VP_MM_PLAYER_STATE_PAUSED) {
+ _vp_minicontroller_update_btn(pPlayView);
+ } else {
+ pPlayView->minicon_button_timer =
+ ecore_timer_add(1.0, _vp_minicontroller_btn_update_timer,
+ pPlayView);
+ }
+}
+
+/**
+ *
+ * @param pPlayView
+ */
+void vp_minicontroller_update_control(PlayView * pPlayView)
+{
+ VideoLogDebug("Updating controller!!!!");
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return;
+ }
+ if (!pPlayView->win_minicon) {
+ VideoLogError("pPlayView->win_minicon is NULL");
+ return;
+ }
+
+ _vp_minicontroller_update_playpause_btn(pPlayView);
+}
+
+/**
+ *
+ * @return
+ */
+int _vp_is_current_focus_available()
+{
+ sound_stream_focus_change_reason_e changed_by =
+ SOUND_STREAM_FOCUS_CHANGED_BY_MEDIA;
+ int ret = 0;
+ int rec_flag = 0;
+ int playback_flag = 0;
+ char *additional_info = NULL;
+
+ ret =
+ sound_manager_get_current_recording_focus(&changed_by, &rec_flag,
+ &additional_info);
+ if (ret != SOUND_MANAGER_ERROR_NONE) {
+ VideoLogError("Cannot determine current recording focus");
+ }
+
+ if (!g_strcmp0(additional_info, "video_recorder")) {
+ VideoLogError
+ ("Video Recorder Timer is active. Cannot resume Video Player");
+ return -1;
+ }
+
+ VideoLogInfo("Recorder state changed by : %d", changed_by);
+ if (changed_by == SOUND_STREAM_FOCUS_CHANGED_BY_VOICE_RECOGNITION) {
+ VideoLogError("Cannot resume Video Player. Speak Mode is on");
+ vp_play_util_status_noti_show(VP_PLAY_STRING_UNABLE_TO_PLAY);
+ return -1;
+ }
+
+ if (additional_info) {
+ free(additional_info);
+ additional_info = NULL;
+ }
+
+ changed_by = SOUND_STREAM_FOCUS_CHANGED_BY_MEDIA;
+ ret =
+ sound_manager_get_current_playback_focus(&changed_by,
+ &playback_flag,
+ &additional_info);
+ if (ret != SOUND_MANAGER_ERROR_NONE) {
+ VideoLogError("Cannot determine current playback focus");
+ }
+
+ VideoLogInfo("Playback state changed by : %d", changed_by);
+ if (changed_by == SOUND_STREAM_FOCUS_CHANGED_BY_CALL
+ || changed_by == SOUND_STREAM_FOCUS_CHANGED_BY_RINGTONE
+ || changed_by == SOUND_STREAM_FOCUS_CHANGED_BY_VOIP) {
+ VideoLogError("Cannot resume Video Player due to call");
+ return -1;
+ }
+
+ return 0;
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void _vp_minicontroller_play_pause_btn_clicked_cb(void *data,
+ Evas_Object * obj,
+ void *event_info)
+{
+ VideoLogDebug("play/pause button clicked");
+
+ PlayView *pPlayView = (PlayView *) data;
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return;
+ }
+
+ vp_mm_player_state_t nState =
+ vp_play_normal_view_get_player_state(pPlayView);
+ VideoLogInfo("nState:%d", nState);
+ if (nState == VP_MM_PLAYER_STATE_PLAYING) {
+ /*if playing state then on click it should pause and set button for play */
+ elm_object_signal_emit(pPlayView->minicontroller_layout,
+ "set_play", "c_source");
+ vp_play_normal_view_on_controller_button_press(pPlayView->
+ pNormalView,
+ CONTROLLER_PAUSE_BUTTON);
+ } else {
+ if (_vp_is_current_focus_available() != 0) {
+ VideoLogError
+ ("Some other application has the focus currently... Returning...");
+ vp_play_util_status_noti_show(VP_PLAY_STRING_UNABLE_TO_PLAY);
+ return;
+ }
+
+ elm_object_signal_emit(pPlayView->minicontroller_layout,
+ "set_pause", "c_source");
+ vp_play_normal_view_on_controller_button_press(pPlayView->
+ pNormalView,
+ CONTROLLER_PLAY_BUTTON);
+ }
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void _vp_minicontroller_ff_btn_pressed_cb(void *data,
+ Evas_Object * obj,
+ void *event_info)
+{
+ VideoLogDebug("ff button pressed");
+ time(&press_time);
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void _vp_minicontroller_ff_btn_unpressed_cb(void *data,
+ Evas_Object * obj,
+ void *event_info)
+{
+ VideoLogDebug("ff button unpressed");
+ time(&release_time);
+
+ PlayView *pPlayView = (PlayView *) data;
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return;
+ }
+ if (!pPlayView->minicontroller_layout) {
+ VideoLogError("pPlayView->minicontroller_layout is NULL");
+ return;
+ }
+
+ elm_object_signal_emit(pPlayView->minicontroller_layout,
+ "ff_btn_unpressed", "c_source");
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void _vp_minicontroller_ff_btn_clicked_cb(void *data,
+ Evas_Object * obj,
+ void *event_info)
+{
+ VideoLogDebug("ff button clicked");
+ PlayView *pPlayView = (PlayView *) data;
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return;
+ }
+
+ if (_vp_is_current_focus_available() != 0) {
+ VideoLogError
+ ("Some other application has the focus currently... Changing to paused state...");
+ stay_pause = true;
+ }
+
+ vp_play_normal_view_on_controller_button_press(pPlayView->pNormalView,
+ CONTROLLER_FF_BUTTON);
+}
+
+/**
+ *
+ * @param data
+ * @param e
+ * @param obj
+ * @param event_info
+ */
+static void
+_vp_minicontroller_ff_btn_del_cb(void *data, Evas * e, Evas_Object * obj,
+ void *event_info)
+{
+ /* Forward button remove cb */
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void _vp_minicontroller_rew_btn_pressed_cb(void *data,
+ Evas_Object * obj,
+ void *event_info)
+{
+ VideoLogDebug("rew button pressed");
+ time(&press_time);
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void _vp_minicontroller_rew_btn_unpressed_cb(void *data,
+ Evas_Object * obj,
+ void *event_info)
+{
+ VideoLogDebug("rew button unpressed");
+ time(&release_time);
+
+ PlayView *pPlayView = (PlayView *) data;
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return;
+ }
+ if (!pPlayView->minicontroller_layout) {
+ VideoLogError("pPlayView->minicontroller_layout is NULL");
+ return;
+ }
+
+ elm_object_signal_emit(pPlayView->minicontroller_layout,
+ "rew_btn_unpressed", "c_source");
+
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void _vp_minicontroller_rew_btn_clicked_cb(void *data,
+ Evas_Object * obj,
+ void *event_info)
+{
+ VideoLogDebug("rew button clicked");
+ PlayView *pPlayView = (PlayView *) data;
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return;
+ }
+
+ if (_vp_is_current_focus_available() != 0) {
+ VideoLogError
+ ("Some other application has the focus currently... Changing to paused state...");
+ stay_pause = true;
+ }
+
+ vp_play_normal_view_on_controller_button_press(pPlayView->pNormalView,
+ CONTROLLER_REW_BUTTON);
+}
+
+/**
+ *
+ * @param data
+ * @param e
+ * @param obj
+ * @param event_info
+ */
+static void
+_vp_minicontroller_rew_btn_del_cb(void *data, Evas * e, Evas_Object * obj,
+ void *event_info)
+{
+ /* Rewind button remove cb */
+}
+
+/*end of focused UI callbacks*/
+
+/**
+ *
+ * @param pPlayView
+ * @param landscape
+ */
+static void
+_vp_minicontroller_update_layout(PlayView * pPlayView, bool landscape)
+{
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return;
+ }
+ bool isLiveStreaming = pPlayView->isLiveStreaming;
+ VideoLogDebug("isLiveStreaming is %d", isLiveStreaming);
+
+ VP_EVAS_TIMER_DEL(pPlayView->minicon_button_timer);
+
+ if (pPlayView->minicontroller_layout) {
+ evas_object_del(pPlayView->minicontroller_layout);
+ pPlayView->minicontroller_layout = NULL;
+ }
+
+ if (isLiveStreaming) {
+ if (landscape) {
+ VideoLogDebug("angle: 90 or 270");
+ pPlayView->minicontroller_layout =
+ _load_edj(pPlayView->win_minicon, MINICON_EDJ_NAME,
+ "video-minicontroller-live-streaming-ld");
+ } else {
+ VideoLogDebug("angle: 0");
+ pPlayView->minicontroller_layout =
+ _load_edj(pPlayView->win_minicon, MINICON_EDJ_NAME,
+ "video-minicontroller-live-streaming");
+ }
+ } else {
+ if (landscape) {
+ VideoLogDebug("angle: 90 or 270");
+ pPlayView->minicontroller_layout =
+ _load_edj(pPlayView->win_minicon, MINICON_EDJ_NAME,
+ "video-minicontroller-ld");
+ } else {
+ VideoLogDebug("angle: 0");
+ pPlayView->minicontroller_layout =
+ _load_edj(pPlayView->win_minicon, MINICON_EDJ_NAME,
+ "video-minicontroller");
+ }
+ }
+
+ if (!pPlayView->minicontroller_layout) {
+ return;
+ }
+
+ elm_win_resize_object_add(pPlayView->win_minicon,
+ pPlayView->minicontroller_layout);
+
+ /*add focused UI related */
+ pPlayView->minicon_icon =
+ elm_image_add(pPlayView->minicontroller_layout);
+ evas_object_size_hint_align_set(pPlayView->minicon_icon,
+ EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_size_hint_weight_set(pPlayView->minicon_icon,
+ EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ elm_image_fill_outside_set(pPlayView->minicon_icon, true);
+ elm_object_part_content_set(pPlayView->minicontroller_layout,
+ "albumart_image", pPlayView->minicon_icon);
+ elm_object_focus_custom_chain_append(pPlayView->minicontroller_layout,
+ pPlayView->minicon_icon, NULL);
+ elm_object_focus_allow_set(pPlayView->minicon_icon, EINA_TRUE);
+
+ /*-------> REW button ------->*/
+ if (!isLiveStreaming) {
+ Evas_Object *rew_focus_btn =
+ elm_button_add(pPlayView->minicontroller_layout);
+ elm_object_style_set(rew_focus_btn, "focus");
+ elm_object_part_content_set(pPlayView->minicontroller_layout,
+ "rew_btn_focus", rew_focus_btn);
+
+ elm_object_focus_custom_chain_append(pPlayView->minicontroller_layout,
+ rew_focus_btn, NULL);
+ evas_object_smart_callback_add(rew_focus_btn, "clicked",
+ _vp_minicontroller_rew_btn_clicked_cb,
+ pPlayView);
+ evas_object_smart_callback_add(rew_focus_btn, "pressed",
+ _vp_minicontroller_rew_btn_pressed_cb,
+ pPlayView);
+ evas_object_smart_callback_add(rew_focus_btn, "unpressed",
+ _vp_minicontroller_rew_btn_unpressed_cb,
+ pPlayView);
+ evas_object_event_callback_add(rew_focus_btn, EVAS_CALLBACK_DEL,
+ _vp_minicontroller_rew_btn_del_cb,
+ NULL);
+ }
+
+ /*-------> play/pause button ------->*/
+ Evas_Object *play_pause_focus_btn =
+ elm_button_add(pPlayView->minicontroller_layout);
+ elm_object_style_set(play_pause_focus_btn, "focus");
+ elm_object_part_content_set(pPlayView->minicontroller_layout,
+ "play_pause_focus", play_pause_focus_btn);
+ elm_object_focus_custom_chain_append(pPlayView->minicontroller_layout,
+ play_pause_focus_btn, NULL);
+ evas_object_smart_callback_add(play_pause_focus_btn, "clicked",
+ _vp_minicontroller_play_pause_btn_clicked_cb,
+ pPlayView);
+
+ /*------->FF button ------->*/
+ if (!isLiveStreaming) {
+ Evas_Object *ff_focus_btn =
+ elm_button_add(pPlayView->minicontroller_layout);
+ elm_object_style_set(ff_focus_btn, "focus");
+ elm_object_part_content_set(pPlayView->minicontroller_layout,
+ "ff_btn_focus", ff_focus_btn);
+
+ elm_object_focus_custom_chain_append(pPlayView->minicontroller_layout,
+ ff_focus_btn, NULL);
+ evas_object_smart_callback_add(ff_focus_btn, "clicked",
+ _vp_minicontroller_ff_btn_clicked_cb,
+ pPlayView);
+ evas_object_smart_callback_add(ff_focus_btn, "pressed",
+ _vp_minicontroller_ff_btn_pressed_cb,
+ pPlayView);
+ evas_object_smart_callback_add(ff_focus_btn, "unpressed",
+ _vp_minicontroller_ff_btn_unpressed_cb,
+ pPlayView);
+ evas_object_event_callback_add(ff_focus_btn, EVAS_CALLBACK_DEL,
+ _vp_minicontroller_ff_btn_del_cb, NULL);
+
+ /*-------> close button ------->*/
+ edje_object_signal_callback_add(_EDJ(pPlayView->minicontroller_layout),
+ "*", "*", _minicontroller_action_cb,
+ pPlayView);
+ }
+ _vp_minicontroller_update_btn(pPlayView);
+
+}
+
+/**
+ *
+ * @param pPlayView
+ */
+static void _vp_minicontroller_title_set(PlayView * pPlayView)
+{
+ if (!pPlayView) {
+ VideoLogError("pPlayView is null");
+ return;
+ }
+ if (!pPlayView->minicontroller_layout) {
+ VideoLogError("pPlayView->minicontroller_layout is null");
+ return;
+ }
+ Evas_Object *label =
+ elm_object_part_content_get(pPlayView->minicontroller_layout,
+ "elm.text");
+
+ int r = 0;
+ int g = 0;
+ int b = 0;
+ int a = 255;
+
+ char *markup_title =
+ elm_entry_utf8_to_markup(vp_play_util_get_title_from_path
+ (pPlayView->szMediaURL));
+ char *title_format =
+ "<align=left><font_size=%d><color=#%02x%02x%02x%02x>%s</color></font_size></align>";
+ char *title = NULL;
+ if ((markup_title == NULL || strlen(markup_title) == 0)) {
+ title = NULL;
+ } else {
+ title =
+ g_strdup_printf(title_format, 24, r, g, b, a, markup_title);
+ }
+
+ if (!label) {
+ label = elm_label_add(pPlayView->minicontroller_layout);
+ elm_object_style_set(label, "slide_roll");
+
+ // set the label for the title slide mode
+ elm_label_slide_mode_set(label, ELM_LABEL_SLIDE_MODE_AUTO);
+ elm_label_wrap_width_set(label, 1);
+ // set the label text
+ elm_object_text_set(label, title);
+ evas_object_show(label);
+ elm_object_part_content_set(pPlayView->minicontroller_layout,
+ "elm.text", label);
+ } else {
+ elm_object_text_set(label, title);
+ }
+
+ elm_label_slide_mode_set(label, ELM_LABEL_SLIDE_MODE_AUTO);
+ elm_label_slide_go(label);
+
+ VP_FREE(title);
+ VP_FREE(markup_title);
+ evas_object_show(label);
+
+}
+
+/**
+ *
+ * @param pPlayView
+ * @param with_title
+ */
+void vp_minicontroller_update(PlayView * pPlayView, bool with_title)
+{
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return;
+ }
+ if (!pPlayView->win_minicon) {
+ VideoLogError("pPlayView->win_minicon is NULL");
+ return;
+ }
+ //_vp_minicontroller_update_btn(pPlayView);
+ VideoLogDebug("Updating thumbnail!!!!!!!!!!!!!!");
+ char *thumbnail_path = NULL;
+ vp_media_contents_get_video_thumbnail_path(pPlayView->szMediaURL,
+ &thumbnail_path);
+
+ if (thumbnail_path == NULL) {
+ VideoLogInfo
+ ("Cannot generate thumbnail for video file. Switching to default path.");
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VIDEO_PLAYER_IMAGE_NAME_EDJ);
+ free(path);
+ elm_image_file_set(pPlayView->minicon_icon, edj_path,
+ VP_PLAY_NORMAL_AUDIO_ONLY_IMG);
+ evas_object_color_set(pPlayView->minicon_icon, 0, 0, 0, 255);
+ } else {
+ VideoLogInfo("thumbnail = %s:%s", pPlayView->szMediaURL,
+ thumbnail_path);
+ elm_image_file_set(pPlayView->minicon_icon, thumbnail_path, NULL);
+ }
+ evas_object_show(pPlayView->minicon_icon);
+
+ if (with_title) {
+ VideoLogDebug("Updating title!!!!!!!!!!!!!!");
+ _vp_minicontroller_title_set(pPlayView);
+ }
+
+ evas_object_show(pPlayView->minicontroller_layout);
+}
+
+/**
+ *
+ * @param pPlayView
+ * @return
+ */
+int vp_minicontroller_destroy(PlayView * pPlayView)
+{
+ VideoLogDebug("minicontroller view destroy!!");
+
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return -1;
+ }
+ if (!pPlayView->win_minicon) {
+ VideoLogError("pPlayView->win_minicon is NULL");
+ return -1;
+ }
+ /*stop playing before destroy */
+ vp_mm_player_state_t nState =
+ vp_play_normal_view_get_player_state(pPlayView);
+ if (nState == VP_MM_PLAYER_STATE_PLAYING) {
+ /*if playing state then on click it should pause and set button for play */
+ elm_object_signal_emit(pPlayView->minicontroller_layout,
+ "set_pause", "c_source");
+ }
+
+ if (pPlayView->win_lockmini) {
+ vp_lockscreenmini_destroy(pPlayView);
+ }
+
+ if (pPlayView->minicontroller_layout != NULL) {
+ evas_object_hide(pPlayView->minicontroller_layout);
+ evas_object_del(pPlayView->minicontroller_layout);
+ pPlayView->minicontroller_layout = NULL;
+ pPlayView->b_minicontroller_show = FALSE;
+ }
+ if (pPlayView->win_minicon) {
+ evas_object_hide(pPlayView->win_minicon);
+ evas_object_del(pPlayView->win_minicon);
+ pPlayView->win_minicon = NULL;
+ }
+
+ VP_EVAS_TIMER_DEL(pPlayView->minicon_button_timer);
+
+ pPlayView->minicon_visible = false;
+
+ return 0;
+}
+
+/**
+ *
+ * @param pPlayView
+ * @param angle
+ */
+void vp_minicontroller_rotate(PlayView * pPlayView, int angle)
+{
+ if (!pPlayView) {
+ VideoLogError("pPlayView is NULL");
+ return;
+ }
+ if (!pPlayView->win_minicon) {
+ VideoLogError("pPlayView->win_minicon is NULL");
+ return;
+ }
+ if (!pPlayView->minicontroller_layout) {
+ VideoLogError("pPlayView->minicontroller_layout is NULL");
+ return;
+ }
+
+ int w = 0;
+ const char *signal = NULL;
+ bool landscape = _vp_minicontroller_landscape_is(pPlayView, angle);
+ if (landscape) {
+ VideoLogDebug("Landscape mode enabled");
+ signal = "sig_set_landscape_mode";
+ w = MINI_CONTROLLER_WIDTH_LANDSCAPE;
+ landscape = true;
+ } else {
+ VideoLogDebug("Portrait mode enabled");
+ signal = "sig_set_portrait_mode";
+ w = MINI_CONTROLLER_WIDTH;
+ landscape = false;
+ }
+
+ elm_object_signal_emit(pPlayView->minicontroller_layout, signal,
+ "c_source");
+
+ double scale = elm_config_scale_get();
+ evas_object_resize(pPlayView->win_minicon, w * scale,
+ MINI_CONTROLLER_HEIGHT * scale);
+ _vp_minicontroller_update_layout(pPlayView, landscape);
+ vp_minicontroller_update(pPlayView, true);
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "vp-play-value-define.h"
+
+#include "vp-play-popup.h"
+#include "vp-play-macro-define.h"
+
+/* check temp */
+#include "vp-play-log.h"
+
+/**
+ *
+ * @param pParent
+ * @param nStyle
+ * @param szTitle
+ * @param szContent
+ * @param dTimeOut
+ * @param pTimeoutFunc
+ * @param pCancelKeyCb
+ * @param pCancelMouseCb
+ * @param pUserData
+ * @return
+ */
+Evas_Object *vp_popup_create(Evas_Object * pParent,
+ video_popup_style_t nStyle, char *szTitle,
+ char *szContent, double dTimeOut,
+ Evas_Smart_Cb pTimeoutFunc,
+ Eext_Event_Cb pCancelKeyCb,
+ Evas_Object_Event_Cb pCancelMouseCb,
+ void *pUserData)
+{
+ if (pParent == NULL) {
+ VideoLogError("pParent is NULL");
+ return NULL;
+ }
+ Evas_Object *pObj = NULL;
+
+ pObj = elm_popup_add(pParent);
+
+ if (pObj == NULL) {
+ VideoLogError("elm_popup_add is fail");
+ return NULL;
+ }
+
+
+ if (nStyle == POPUP_STYLE_FULLSCREEN_NO_CANCEL_BTN) {
+ elm_layout_theme_set(pObj, "popup", "fullsrceen", "default");
+ }
+
+ if (nStyle == POPUP_STYLE_FULLSCREEN_NO_TITLE_NO_CANCEL_BTN) {
+ elm_layout_theme_set(pObj, "popup", "fullsrceen/notitle",
+ "default");
+ }
+
+ evas_object_size_hint_weight_set(pObj, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+
+ if (szTitle) {
+ elm_object_part_text_set(pObj, "title,text", szTitle);
+ }
+
+ if (szContent) {
+ elm_object_text_set(pObj, szContent);
+ }
+
+ if (dTimeOut > 0.0) {
+ elm_popup_timeout_set(pObj, dTimeOut);
+ if (pTimeoutFunc) {
+ evas_object_smart_callback_add(pObj, "timeout", pTimeoutFunc,
+ (void *) pUserData);
+ }
+ }
+
+ if (pCancelKeyCb) {
+ eext_object_event_callback_add(pObj, EEXT_CALLBACK_BACK,
+ pCancelKeyCb, (void *) pUserData);
+ }
+
+ if (nStyle == POPUP_STYLE_DEFAULT_NO_CANCEL_BTN
+ || nStyle == POPUP_STYLE_MENU_LIST_NO_CANCEL_BTN
+ || nStyle == POPUP_STYLE_EXPAND_NO_CANCEL_BTN
+ || nStyle == POPUP_STYLE_PROGRESS_WITH_NO_CANCEL_BTN)
+ evas_object_smart_callback_add(pObj, "block,clicked",
+ pCancelKeyCb, (void *) pUserData);
+
+ if (pCancelMouseCb) {
+ evas_object_event_callback_add(pObj, EVAS_CALLBACK_MOUSE_UP,
+ pCancelMouseCb, (void *) pUserData);
+ }
+
+ return pObj;
+}
+
+/**
+ *
+ * @param pParent
+ * @param szTitle
+ * @param szContent
+ * @param pLeftButtonText
+ * @param leftButtonCb
+ * @param pRightButtonText
+ * @param rightButtonCb
+ * @param pUserData
+ * @return
+ */
+Evas_Object *vp_two_button_popup_create(Evas_Object * pParent,
+ char *szTitle,
+ char *szContent,
+ char *pLeftButtonText,
+ Evas_Smart_Cb leftButtonCb,
+ char *pRightButtonText,
+ Evas_Smart_Cb rightButtonCb,
+ const void *pUserData)
+{
+ Evas_Object *pPopup = NULL;
+ Evas_Object *pBtn1 = NULL;
+ Evas_Object *pBtn2 = NULL;
+
+ if (pParent == NULL) {
+ VideoLogError("pParent is NULL");
+ return NULL;
+ }
+
+ pPopup = elm_popup_add(pParent);
+
+ if (pPopup == NULL) {
+ VideoLogError("elm_popup_add is fail");
+ return NULL;
+ }
+
+ if (szTitle) {
+ elm_object_part_text_set(pPopup, "title,text", szTitle);
+ }
+
+ evas_object_size_hint_weight_set(pPopup, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ if (szContent) {
+ elm_object_part_text_set(pPopup, "default", szContent);
+ }
+
+ pBtn1 = elm_button_add(pPopup);
+ elm_object_style_set(pBtn1, "popup");
+ elm_object_text_set(pBtn1, pLeftButtonText);
+ elm_object_part_content_set(pPopup, "button1", pBtn1);
+ if (leftButtonCb)
+ evas_object_smart_callback_add(pBtn1, "clicked", leftButtonCb,
+ (const void *) pUserData);
+
+ pBtn2 = elm_button_add(pPopup);
+ elm_object_style_set(pBtn2, "popup");
+ elm_object_text_set(pBtn2, pRightButtonText);
+ elm_object_part_content_set(pPopup, "button2", pBtn2);
+
+ if (rightButtonCb)
+ evas_object_smart_callback_add(pBtn2, "clicked", rightButtonCb,
+ (const void *) pUserData);
+
+ evas_object_show(pPopup);
+
+ return pPopup;
+}
+
+#ifdef _SUBTITLE_MULTI_LANGUAGE
+/**
+ *
+ * @param pParent
+ * @param szTitle
+ * @param szContent
+ * @param pLeftButtonText
+ * @param leftButtonCb
+ * @param pRightButtonText
+ * @param rightButtonCb
+ * @param pUserData
+ * @return
+ */
+Evas_Object *vp_title_two_button_popup_create(Evas_Object * pParent,
+ char *szTitle,
+ char *szContent,
+ char *pLeftButtonText,
+ Evas_Smart_Cb leftButtonCb,
+ char *pRightButtonText,
+ Evas_Smart_Cb rightButtonCb,
+ const void *pUserData)
+{
+ Evas_Object *pPopup = NULL;
+ pPopup =
+ vp_two_button_popup_create(pParent, NULL, szContent,
+ pLeftButtonText, leftButtonCb,
+ pRightButtonText, rightButtonCb,
+ pUserData);
+ if (szTitle && pPopup) {
+ elm_object_part_text_set(pPopup, "title,text", szTitle);
+ }
+
+ return pPopup;
+}
+#endif
+/**
+ *
+ * @param pWin
+ * @return
+ */
+bool vp_popup_check_landspace_by_win(Evas_Object * pWin)
+{
+ if (!pWin) {
+ VideoLogError("win is NULL.");
+ return FALSE;
+ }
+ bool bLandSpace = FALSE;
+ int bROtation = elm_win_rotation_get(pWin);
+ if (bROtation == 90 || bROtation == 270) {
+ bLandSpace = TRUE;
+ }
+ return bLandSpace;
+}
+
+/**
+ *
+ * @param pWin
+ * @param pBox
+ * @param nListCount
+ * @param eStyle
+ */
+void vp_popup_set_popup_min_size(Evas_Object * pWin, Evas_Object * pBox,
+ int nListCount,
+ video_list_popup_style_t eStyle)
+{
+ if (!pWin) {
+ VideoLogError("win is NULL.");
+ return;
+ }
+ if (pBox) {
+ int nMinHeight = 0;
+ switch (eStyle) {
+ case VIDEO_POPUP_DEFAULT:
+ if (vp_popup_check_landspace_by_win(pWin)) {
+ nMinHeight = VP_POPUP_LIST_HEIGHT_L(nListCount);
+ } else {
+ nMinHeight = VP_POPUP_LIST_HEIGHT(nListCount);
+ }
+ break;
+ case VIDEO_POPUP_2_TEXT:
+ if (vp_popup_check_landspace_by_win(pWin)) {
+ nMinHeight = VP_POPUP_LIST_2_TEXT_HEIGHT_L(nListCount);
+ } else {
+ nMinHeight = VP_POPUP_LIST_2_TEXT_HEIGHT(nListCount);
+ }
+ break;
+ case VIDEO_POPUP_2_TEXT_1_ICON:
+ if (vp_popup_check_landspace_by_win(pWin)) {
+ nMinHeight =
+ VP_POPUP_LIST_2_TEXT_1_ICON_HEIGHT_L(nListCount);
+ } else {
+ nMinHeight =
+ VP_POPUP_LIST_2_TEXT_1_ICON_HEIGHT(nListCount);
+ }
+ break;
+ case VIDEO_POPUP_LOADING_LIST:
+ if (vp_popup_check_landspace_by_win(pWin)) {
+ nMinHeight = VP_POPUP_LOADING_LIST_HEIGHT_L(nListCount);
+ } else {
+ nMinHeight = VP_POPUP_LOADING_LIST_HEIGHT(nListCount);
+ }
+ break;
+
+ default:
+ VideoLogError("invalid style =%d.", eStyle);
+ break;
+ }
+
+ evas_object_size_hint_min_set(pBox,
+ VP_POPUP_LIST_WIDTH * VP_SCALE,
+ nMinHeight * VP_SCALE);
+ }
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "vp-play-string-define.h"
+#include "vp-play-value-define.h"
+#include "vp-play-macro-define.h"
+#include "vp-play-button.h"
+
+#include "vp-play-progressbar.h"
+
+
+/* check temp */
+#include "vp-play-log.h"
+
+
+typedef struct _ProgressWidget {
+ Evas_Object *pParent;
+ Evas_Object *pLayout;
+
+ Evas_Object *pFocusPoint;
+
+ Evas_Object *pStartLabel;
+ Evas_Object *pTotalLabel;
+
+ video_progressbar_type_t nType;
+
+ bool bEnableAdjustment;
+ bool bRealized;
+
+ int nDuration;
+ int nCurrentPos;
+ int nBufferingPos;
+} ProgressWidget;
+
+
+static void _vp_play_progressbar_destory_handle(ProgressWidget *
+ pProgressWidget);
+
+
+
+/* callback functions */
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_play_progressbar_key_focus_cb(void *pUserData,
+ Evas_Object * pObj,
+ void *pEventInfo)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ ProgressWidget *pProgressWidget = (ProgressWidget *) pUserData;
+ if (pProgressWidget->pLayout == NULL) {
+ VideoLogError("pProgressWidget->pLayout is NULL");
+ return;
+ }
+
+
+ elm_object_signal_emit(pProgressWidget->pLayout,
+ VP_NORMAL_SIGNAL_PROGRESS_PRESS, "*");
+
+ VideoLogInfo("progress focus in");
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_play_progressbar_key_unfocus_cb(void *pUserData,
+ Evas_Object * pObj,
+ void *pEventInfo)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ ProgressWidget *pProgressWidget = (ProgressWidget *) pUserData;
+ if (pProgressWidget->pLayout == NULL) {
+ VideoLogError("pProgressWidget->pLayout is NULL");
+ return;
+ }
+
+ elm_object_signal_emit(pProgressWidget->pLayout,
+ VP_NORMAL_SIGNAL_PROGRESS_UNPRESS, "*");
+
+ VideoLogInfo("progress focus out");
+}
+
+/* internal functions */
+/**
+ *
+ * @param pProgressWidget
+ */
+static void _vp_play_progressbar_value_update(ProgressWidget *
+ pProgressWidget)
+{
+ if (pProgressWidget == NULL) {
+ VideoLogError("pProgressWidget is NULL");
+ return;
+ }
+ if (pProgressWidget->pLayout == NULL) {
+ VideoLogError("pProgressWidget->pLayout is NULL");
+ return;
+ }
+
+ double dPlayedRatio = 0.0;
+ double dBufferingRatio = 0.0;
+
+ char szPlayingTime[PROGRESSBAR_TIME_LENGTH] = { 0, };
+
+ snprintf(szPlayingTime, PROGRESSBAR_TIME_LENGTH,
+ "%" PROGRESSBAR_TIME_FORMAT,
+ PROGRESSBAR_TIME_ARGS(pProgressWidget->nCurrentPos / 1000));
+
+ dPlayedRatio =
+ ((double) pProgressWidget->nCurrentPos /
+ (double) pProgressWidget->nDuration);
+ dBufferingRatio =
+ ((double) pProgressWidget->nBufferingPos / (double) 100);
+
+ edje_object_part_drag_value_set(_EDJ(pProgressWidget->pLayout),
+ VP_PLAY_SWALLOW_PROGRESS_DRAG_RECT,
+ dPlayedRatio, 0.0);
+ edje_object_part_drag_value_set(_EDJ(pProgressWidget->pLayout),
+ "pv.progress.buffering",
+ dBufferingRatio, 0.0);
+
+ elm_object_part_text_set(pProgressWidget->pLayout,
+ VP_PLAY_SWALLOW_PROGRESS_PLAYING_LABEL,
+ szPlayingTime);
+
+}
+
+/**
+ *
+ * @param pProgressWidget
+ */
+static void _vp_play_progressbar_destory_handle(ProgressWidget *
+ pProgressWidget)
+{
+ if (pProgressWidget == NULL) {
+ VideoLogError("pProgressWidget is NULL");
+ return;
+ }
+
+ vp_play_progressbar_unrealize((progressbar_handle) pProgressWidget);
+ if (pProgressWidget->pFocusPoint) {
+ evas_object_smart_callback_del(pProgressWidget->pFocusPoint,
+ "focused",
+ __vp_play_progressbar_key_focus_cb);
+ evas_object_smart_callback_del(pProgressWidget->pFocusPoint,
+ "unfocused",
+ __vp_play_progressbar_key_unfocus_cb);
+ VP_EVAS_DEL(pProgressWidget->pFocusPoint);
+ }
+
+ VP_EVAS_DEL(pProgressWidget->pStartLabel);
+ VP_EVAS_DEL(pProgressWidget->pTotalLabel);
+
+ VP_EVAS_DEL(pProgressWidget->pLayout);
+
+ VP_FREE(pProgressWidget);
+}
+
+/**
+ *
+ * @param pParent
+ * @param nType
+ * @return
+ */
+static Evas_Object *_vp_play_progressbar_create_layout(Evas_Object *
+ pParent,
+ video_progressbar_type_t
+ nType)
+{
+ if (!pParent) {
+ VideoLogError("Parent is NULL");
+ return NULL;
+ }
+
+ Evas_Object *pObj = NULL;
+ Eina_Bool bRet = EINA_FALSE;
+
+ pObj = elm_layout_add(pParent);
+ if (pObj == NULL) {
+ VideoLogError("elm_layout_add object is NULL");
+ return NULL;
+ }
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VP_PLAY_PROGRESSBAR_EDJ_PATH);
+ free(path);
+ if (nType == VIDEO_PROGRESSBAR_TYPE_NORMAL) {
+ bRet =
+ elm_layout_file_set(pObj, edj_path,
+ VP_PLAY_EDJ_GROUP_PROGRESSBAR);
+ if (bRet != EINA_TRUE) {
+ VideoLogError("elm_layout_file_set fail");
+ return NULL;
+ }
+ } else if (nType == VIDEO_PROGRESSBAR_TYPE_TRIM) {
+ }
+
+ evas_object_show(pObj);
+
+ return pObj;
+
+}
+
+/**
+ *
+ * @param pUserData
+ * @param e
+ * @param pObject
+ * @param pEventInfo
+ */
+static void _vp_play_progressbar_layout_del_cb(void *pUserData, Evas * e,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pProgressWidget is NULL");
+ return;
+ }
+
+ ProgressWidget *pProgressWidget = (ProgressWidget *) pUserData;
+
+ pProgressWidget->pLayout = NULL;
+ pProgressWidget->pFocusPoint = NULL;
+
+}
+
+/**
+ *
+ * @param pProgressWidget
+ * @return
+ */
+static bool _vp_play_progressbar_init_layout(ProgressWidget *
+ pProgressWidget)
+{
+ if (pProgressWidget == NULL) {
+ VideoLogError("pProgressWidget is NULL");
+ return FALSE;
+ }
+
+ Evas_Object *pParent = pProgressWidget->pParent;
+
+ pProgressWidget->pLayout =
+ _vp_play_progressbar_create_layout(pParent,
+ pProgressWidget->nType);
+ if (pProgressWidget->pLayout == NULL) {
+ VideoLogError("_vp_play_progressbar_create_layout is fail");
+ return FALSE;
+ }
+
+ evas_object_event_callback_add(pProgressWidget->pLayout,
+ EVAS_CALLBACK_DEL,
+ _vp_play_progressbar_layout_del_cb,
+ (void *) pProgressWidget);
+
+
+ pProgressWidget->pFocusPoint =
+ vp_button_create(pProgressWidget->pLayout, "focus", NULL, NULL,
+ NULL, NULL, (void *) pProgressWidget);
+ if (!pProgressWidget->pFocusPoint) {
+ VideoLogError("elm_button_add is fail");
+ return FALSE;
+ }
+
+ elm_object_focus_next_object_set(pProgressWidget->pFocusPoint,
+ pProgressWidget->pFocusPoint,
+ ELM_FOCUS_RIGHT);
+ elm_object_focus_next_object_set(pProgressWidget->pFocusPoint,
+ pProgressWidget->pFocusPoint,
+ ELM_FOCUS_LEFT);
+
+ evas_object_smart_callback_add(pProgressWidget->pFocusPoint,
+ "focused",
+ __vp_play_progressbar_key_focus_cb,
+ pProgressWidget);
+ evas_object_smart_callback_add(pProgressWidget->pFocusPoint,
+ "unfocused",
+ __vp_play_progressbar_key_unfocus_cb,
+ pProgressWidget);
+
+ elm_object_part_content_set(pProgressWidget->pLayout,
+ "pv.progress.point.focus",
+ pProgressWidget->pFocusPoint);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pParent
+ * @param nType
+ * @return
+ */
+progressbar_handle vp_play_progressbar_create(Evas_Object * pParent,
+ video_progressbar_type_t
+ nType)
+{
+ if (pParent == NULL) {
+ VideoLogError("pParent is NULL");
+ return NULL;
+ }
+
+ ProgressWidget *pProgressWidget = NULL;
+
+ pProgressWidget = calloc(1, sizeof(ProgressWidget));
+
+ if (pProgressWidget == NULL) {
+ VideoLogError("pProgressbar alloc fail");
+ return NULL;
+ }
+
+ pProgressWidget->pParent = pParent;
+ pProgressWidget->nType = nType;
+ pProgressWidget->bRealized = FALSE;
+
+ if (!_vp_play_progressbar_init_layout(pProgressWidget)) {
+ VideoLogError("_vp_play_progressbar_init_layout is fail");
+ VP_FREE(pProgressWidget);
+ return NULL;
+ }
+
+
+
+ return (progressbar_handle) pProgressWidget;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ */
+void vp_play_progressbar_destroy(progressbar_handle pWidgetHandle)
+{
+ if (pWidgetHandle == NULL) {
+ VideoLogError("pWidgetHandle is NULL");
+ return;
+ }
+ ProgressWidget *pProgressWidget = (ProgressWidget *) pWidgetHandle;
+
+ _vp_play_progressbar_destory_handle(pProgressWidget);
+
+ return;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @return
+ */
+bool vp_play_progressbar_realize(progressbar_handle pWidgetHandle)
+{
+ if (pWidgetHandle == NULL) {
+ VideoLogError("pWidgetHandle is NULL");
+ return FALSE;
+ }
+
+ ProgressWidget *pProgressWidget = (ProgressWidget *) pWidgetHandle;
+ pProgressWidget->bRealized = TRUE;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @return
+ */
+bool vp_play_progressbar_unrealize(progressbar_handle pWidgetHandle)
+{
+ if (pWidgetHandle == NULL) {
+ VideoLogError("pWidgetHandle is NULL");
+ return FALSE;
+ }
+
+ ProgressWidget *pProgressWidget = (ProgressWidget *) pWidgetHandle;
+ pProgressWidget->bRealized = FALSE;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @return
+ */
+Evas_Object *vp_play_progressbar_get_object(progressbar_handle
+ pWidgetHandle)
+{
+ if (pWidgetHandle == NULL) {
+ VideoLogError("pWidgetHandle is NULL");
+ return NULL;
+ }
+ ProgressWidget *pProgressWidget = (ProgressWidget *) pWidgetHandle;
+
+ return pProgressWidget->pLayout;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @return
+ */
+Evas_Object *vp_play_progressbar_get_focus_object(progressbar_handle
+ pWidgetHandle)
+{
+ if (pWidgetHandle == NULL) {
+ VideoLogError("pWidgetHandle is NULL");
+ return NULL;
+ }
+ ProgressWidget *pProgressWidget = (ProgressWidget *) pWidgetHandle;
+
+ return pProgressWidget->pFocusPoint;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param nDuration
+ * @return
+ */
+bool vp_play_progressbar_set_duration(progressbar_handle pWidgetHandle,
+ int nDuration)
+{
+ if (pWidgetHandle == NULL) {
+ VideoLogError("pWidgetHandle is NULL");
+ return FALSE;
+ }
+
+ ProgressWidget *pProgressWidget = (ProgressWidget *) pWidgetHandle;
+ if (pProgressWidget->pLayout == NULL) {
+ VideoLogError("pProgressWidget->pLayout is NULL");
+ return FALSE;
+ }
+
+ char szDurationTime[PROGRESSBAR_TIME_LENGTH] = { 0, };
+
+ pProgressWidget->nDuration = nDuration;
+
+ snprintf(szDurationTime, PROGRESSBAR_TIME_LENGTH,
+ "%" PROGRESSBAR_TIME_FORMAT,
+ PROGRESSBAR_TIME_ARGS(pProgressWidget->nDuration / 1000));
+
+ elm_object_part_text_set(pProgressWidget->pLayout,
+ VP_PLAY_SWALLOW_PROGRESS_DURATION_LABEL,
+ szDurationTime);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param nPosition
+ * @return
+ */
+bool vp_play_progressbar_set_position(progressbar_handle pWidgetHandle,
+ int nPosition)
+{
+ if (pWidgetHandle == NULL) {
+ VideoLogError("pWidgetHandle is NULL");
+ return FALSE;
+ }
+
+ ProgressWidget *pProgressWidget = (ProgressWidget *) pWidgetHandle;
+
+ pProgressWidget->nCurrentPos = nPosition;
+
+ _vp_play_progressbar_value_update(pProgressWidget);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param nBufferinPosition
+ * @return
+ */
+bool vp_play_progressbar_set_buffering_position(progressbar_handle
+ pWidgetHandle,
+ int nBufferinPosition)
+{
+ if (pWidgetHandle == NULL) {
+ VideoLogError("pWidgetHandle is NULL");
+ return FALSE;
+ }
+
+ ProgressWidget *pProgressWidget = (ProgressWidget *) pWidgetHandle;
+
+ pProgressWidget->nBufferingPos = nBufferinPosition;
+
+ _vp_play_progressbar_value_update(pProgressWidget);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param bLandscape
+ * @return
+ */
+bool vp_play_progressbar_set_landscape_mode(progressbar_handle
+ pWidgetHandle, bool bLandscape)
+{
+ if (pWidgetHandle == NULL) {
+ VideoLogError("pWidgetHandle is NULL");
+ return FALSE;
+ }
+
+ ProgressWidget *pProgressWidget = (ProgressWidget *) pWidgetHandle;
+ if (pProgressWidget->pLayout == NULL) {
+ VideoLogError("pProgressWidget->pLayout is NULL");
+ return FALSE;
+ }
+
+ if (bLandscape) {
+ elm_object_signal_emit(pProgressWidget->pLayout,
+ VP_NORMAL_SIGNAL_PROGRESS_LANDSCAPE_MODE,
+ "*");
+ } else {
+ elm_object_signal_emit(pProgressWidget->pLayout,
+ VP_NORMAL_SIGNAL_PROGRESS_PORTRAIT_MODE,
+ "*");
+ }
+
+ return TRUE;
+
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param bOpacity
+ * @return
+ */
+bool vp_play_progressbar_set_opacity(progressbar_handle pWidgetHandle,
+ bool bOpacity)
+{
+ if (pWidgetHandle == NULL) {
+ VideoLogError("pWidgetHandle is NULL");
+ return FALSE;
+ }
+
+ ProgressWidget *pProgressWidget = (ProgressWidget *) pWidgetHandle;
+
+ if (pProgressWidget->pLayout == NULL) {
+ VideoLogError("pProgressWidget->pLayout is NULL");
+ return FALSE;
+ }
+
+ if (bOpacity) {
+ elm_object_signal_emit(pProgressWidget->pLayout,
+ VP_NORMAL_SIGNAL_PROGRESS_OPACITY_60, "*");
+ } else {
+ elm_object_signal_emit(pProgressWidget->pLayout,
+ VP_NORMAL_SIGNAL_PROGRESS_OPACITY_DEFAULT,
+ "*");
+ }
+
+ return TRUE;
+
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <glib.h>
+
+#include "vp-play-string-define.h"
+#include "vp-play-value-define.h"
+#include "vp-play-macro-define.h"
+
+#include "vp-play-preference.h"
+#include "vp-play-subtitle.h"
+#include "vp-play-util.h"
+
+/* check temp */
+#include "vp-play-log.h"
+
+#ifdef SUBTITLE_K_FEATURE
+#define VP_SUBTITLE_STRING_TXT_FORMAT "<font_size= %d><style=%s><font='%s' font_weight='%s' color=%s backing_color=%s backing=%s align=%s>%s</font></style></font_size>"
+#else
+#define VP_SUBTITLE_STRING_TXT_FORMAT "<font_size= %d><style=%s><font='%s' font_weight=%s color=%s backing_color=%s backing=%s>%s</font></style></font_size>"
+#endif
+
+#define VP_SUBTITLE_SET_CAPTION_WINDOW_COLOR_ID 3
+#define VP_SUBTITLE_PROTRAIT_W 720
+#define VP_SUBTITLE_PROTRAIT_H 990
+#define VP_SUBTITLE_LANDSCAPE_W 1280
+#define VP_SUBTITLE_LANDSCAPE_H 530
+
+#define VP_NORMAL_SUTITLE_TEXT_STYLE \
+ "DEFAULT='font=Tizen:style=Roman align=center valign=bottom wrap=word'"\
+ "br='\n'" \
+ "ps='ps'" \
+ "hilight='+ font=Tizen:style=Roman'" \
+ "b='+ font=Tizen:style=Roman'" \
+ "tab='\t'"
+
+void _vp_play_subtitle_destroy_handle(Subtitle * pSubtitle);
+/* callback functions */
+
+/* internal functions */
+/**
+ *
+ * @param pSubtitle
+ */
+void _vp_play_subtitle_destroy_handle(Subtitle * pSubtitle)
+{
+ if (pSubtitle == NULL) {
+ VideoLogError("pSubtitle is NULL");
+ return;
+ }
+
+ VP_EVAS_DEL(pSubtitle->pLayout);
+ VP_FREE(pSubtitle->szFontName);
+ VP_FREE(pSubtitle->szText);
+ VP_EVAS_DEL(pSubtitle->pTextBlock);
+#ifdef SUBTITLE_K_FEATURE
+ VP_FREE(pSubtitle->pFontColorHex);
+ VP_FREE(pSubtitle->pBGColorHex);
+ VP_FREE(pSubtitle->pCaptionWinColorHex);
+#endif
+ VP_FREE(pSubtitle);
+}
+
+/**
+ *
+ * @param pParent
+ * @param nType
+ * @return
+ */
+static Evas_Object *_vp_play_subtitle_create_layout(Evas_Object * pParent,
+ vp_subtitle_type_t
+ nType)
+{
+ if (!pParent) {
+ VideoLogError("Parent is NULL");
+ return NULL;
+ }
+
+ Evas_Object *pObj = NULL;
+ Eina_Bool bRet = EINA_FALSE;
+
+ pObj = elm_layout_add(pParent);
+ if (pObj == NULL) {
+ VideoLogError("elm_layout_add object is NULL");
+ return NULL;
+ }
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VP_PLAY_SUBTITLE_EDJ_PATH);
+ free(path);
+ if (nType == VP_SUBTITLE_TYPE_NORMAL) {
+ bRet =
+ elm_layout_file_set(pObj, edj_path,
+ VP_PLAY_EDJ_GROUP_SUBTITLE_MULTI);
+ } else if (nType == VP_SUBTITLE_TYPE_MULTI) {
+ bRet =
+ elm_layout_file_set(pObj, edj_path,
+ VP_PLAY_EDJ_GROUP_SUBTITLE_MULTI);
+ }
+
+ if (bRet != EINA_TRUE) {
+ VideoLogError("elm_layout_file_set fail");
+ return NULL;
+ }
+
+ return pObj;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param e
+ * @param pObject
+ * @param pEventInfo
+ */
+static void _vp_play_subtitle_layout_del_cb(void *pUserData, Evas * e,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ if (!pUserData) {
+ VideoLogError("pSubtitle is NULL");
+ return;
+ }
+ Subtitle *pSubtitle = (Subtitle *) pUserData;
+ pSubtitle->pLayout = NULL;
+
+}
+
+/**
+ *
+ * @param pSubtitle
+ * @param nType
+ * @return
+ */
+static bool _vp_play_subtitle_init_layout(Subtitle * pSubtitle,
+ vp_subtitle_type_t nType)
+{
+ if (pSubtitle == NULL) {
+ VideoLogError("pSubtitle is NULL");
+ return FALSE;
+ }
+
+ Evas_Object *pParent = pSubtitle->pParent;
+
+ pSubtitle->pLayout = _vp_play_subtitle_create_layout(pParent, nType);
+ if (pSubtitle->pLayout == NULL) {
+ VideoLogError("_vp_play_subtitle_create_layout is fail");
+ return FALSE;
+ }
+ pSubtitle->pTextBlock = NULL;
+
+ evas_object_event_callback_add(pSubtitle->pLayout, EVAS_CALLBACK_DEL,
+ _vp_play_subtitle_layout_del_cb,
+ (void *) pSubtitle);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pSubtitle
+ * @param szTxt
+ */
+void vp_play_subtitle_text_update(Subtitle * pSubtitle, const char *szTxt)
+{
+ if (!pSubtitle || !pSubtitle->pLayout) {
+ VideoLogError("pSubtitle is NULL");
+ return;
+ }
+
+ if (!szTxt || strlen(szTxt) == 0) {
+ VideoLogWarning
+ ("Text is null or empty, need hide caption window.");
+ vp_play_subtitle_set_caption_win_color(pSubtitle, FALSE);
+ } else if (!pSubtitle->bShowCaptionWin) {
+ VideoLogWarning("Caption window is hidden, need show it again!");
+ vp_play_subtitle_set_caption_win_color(pSubtitle, TRUE);
+ }
+
+ char *szMarkup = elm_entry_markup_to_utf8(szTxt);
+ char *szOutput = elm_entry_utf8_to_markup(szMarkup);
+ char *szTxtFormat = NULL;
+ char *szColor = NULL;
+ char *szBGColor = NULL;
+ char *szBGColorOn = NULL;
+#ifdef SUBTITLE_K_FEATURE
+ char *szAlignment = NULL;
+#endif
+ char *szFontEdge = NULL;
+ char *szFontWeight = NULL;
+
+ int nSize = 0;
+ vp_play_preference_get_subtitle_size_key(&nSize);
+
+ if (nSize == VP_SUBTITLE_SMALL) {
+ nSize = VP_SUBTITLE_SIZE_SMALL_VALUE * pSubtitle->fZoom;
+ } else if (nSize == VP_SUBTITLE_LARGE) {
+ nSize = VP_SUBTITLE_SIZE_LARGE_VALUE * pSubtitle->fZoom;
+ } else {
+ nSize = VP_SUBTITLE_SIZE_MEDIUM_VALUE * pSubtitle->fZoom;
+ }
+
+ if (nSize < VP_SUBTITLE_SIZE_SMALL_VALUE) {
+ nSize = VP_SUBTITLE_SIZE_SMALL_VALUE;
+ }
+
+ if (nSize > VP_SUBTITLE_SIZE_LARGE_VALUE) {
+ nSize = VP_SUBTITLE_SIZE_LARGE_VALUE;
+ }
+#ifndef SUBTITLE_K_FEATURE
+ if (pSubtitle->nFontColor == VP_SUBTITLE_COLOR_BLACK) {
+ szColor = g_strdup_printf("#000000");
+ } else if (pSubtitle->nFontColor == VP_SUBTITLE_COLOR_BLUE) {
+ szColor = g_strdup_printf("#0000FF");
+ } else if (pSubtitle->nFontColor == VP_SUBTITLE_COLOR_GREEN) {
+ szColor = g_strdup_printf("#00FF00");
+ } else if (pSubtitle->nFontColor == VP_SUBTITLE_COLOR_WHITE) {
+ szColor = g_strdup_printf("#FFFFFF");
+ }
+
+ if (pSubtitle->nBGColor == VP_SUBTITLE_COLOR_NONE) {
+ szBGColorOn = g_strdup_printf("off");
+ szBGColor = g_strdup_printf("#000000");
+ } else if (pSubtitle->nBGColor == VP_SUBTITLE_COLOR_BLACK) {
+ szBGColorOn = g_strdup_printf("on");
+ szBGColor = g_strdup_printf("#000000");
+ } else if (pSubtitle->nBGColor == VP_SUBTITLE_COLOR_WHITE) {
+ szBGColorOn = g_strdup_printf("on");
+ szBGColor = g_strdup_printf("#FFFFFF");
+ }
+#else
+
+ VP_FREE(pSubtitle->pFontColorHex);
+ vp_play_preference_get_subtitle_font_color_hex_key(&
+ (pSubtitle->
+ pFontColorHex));
+
+ VideoLogInfo
+ ("pSubtitle->pFontColorHex %s, pSubtitle->pBGColorHex is %s",
+ pSubtitle->pFontColorHex, pSubtitle->pBGColorHex);
+ if (pSubtitle->pFontColorHex) {
+ szColor = strdup(pSubtitle->pFontColorHex);
+ } else {
+ szColor = g_strdup_printf("#ffffffff");
+ }
+
+ if (pSubtitle->pBGColorHex) {
+ szBGColorOn = g_strdup_printf("on");
+ szBGColor = strdup(pSubtitle->pBGColorHex);
+ } else {
+ szBGColorOn = g_strdup_printf("off");
+ szBGColor = g_strdup_printf("#00000000");
+ }
+
+ int nAlignment = 0;
+ vp_play_preference_get_subtitle_alignment_key(&nAlignment);
+ if (nAlignment == VP_SUBTITLE_ALIGNMENT_LEFT) {
+ szAlignment = g_strdup_printf("left");
+ } else if (nAlignment == VP_SUBTITLE_ALIGNMENT_CENTER) {
+ szAlignment = g_strdup_printf("center");
+ } else if (nAlignment == VP_SUBTITLE_ALIGNMENT_RIGHT) {
+ szAlignment = g_strdup_printf("right");
+ }
+#endif
+
+#ifdef SUBTITLE_K_FEATURE
+ szTxtFormat =
+ g_strdup_printf(VP_SUBTITLE_STRING_TXT_FORMAT, nSize, szFontEdge,
+ pSubtitle->szFontName, szFontWeight, szColor,
+ szBGColor, szBGColorOn, szAlignment, szOutput);
+#else
+ szTxtFormat =
+ g_strdup_printf(VP_SUBTITLE_STRING_TXT_FORMAT, nSize, szFontEdge,
+ pSubtitle->szFontName, szFontWeight, szColor,
+ szBGColor, szBGColorOn, szOutput);
+#endif
+
+ if (pSubtitle->pTextBlock) {
+ evas_object_textblock_text_markup_set(pSubtitle->pTextBlock,
+ szTxtFormat);
+ } else {
+ elm_object_part_text_set(pSubtitle->pLayout,
+ VP_PLAY_PART_SUBTITLE_TEXT, szTxtFormat);
+ }
+
+ VP_FREE(szFontEdge);
+ VP_FREE(szFontWeight);
+
+ VP_FREE(szBGColor);
+ VP_FREE(szBGColorOn);
+ VP_FREE(szColor);
+ VP_FREE(szTxtFormat);
+ VP_FREE(szOutput);
+ VP_FREE(szMarkup);
+#ifdef SUBTITLE_K_FEATURE
+ VP_FREE(szAlignment);
+#endif
+}
+
+/* external functions */
+/**
+ *
+ * @param pParent
+ * @param nType
+ * @return
+ */
+subtitle_handle vp_play_subtitle_create(Evas_Object * pParent,
+ vp_subtitle_type_t nType)
+{
+ if (pParent == NULL) {
+ VideoLogError("pParent is NULL");
+ return NULL;
+ }
+
+ Subtitle *pSubtitle = NULL;
+
+ pSubtitle = calloc(1, sizeof(Subtitle));
+ if (pSubtitle == NULL) {
+ VideoLogError("pSubtitle alloc fail");
+ return NULL;
+ }
+
+ pSubtitle->pParent = pParent;
+ pSubtitle->fZoom = 1.0;
+ pSubtitle->szFontName = strdup("Tizen");
+
+ if (!_vp_play_subtitle_init_layout(pSubtitle, nType)) {
+ VideoLogError("_vp_play_subtitle_init_layout is fail");
+ _vp_play_subtitle_destroy_handle(pSubtitle);
+ return NULL;
+ }
+
+ return pSubtitle;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ */
+void vp_play_subtitle_destroy(subtitle_handle pWidgetHandle)
+{
+ if (pWidgetHandle == NULL) {
+ VideoLogError("pWidgetHandle is NULL");
+ return;
+ }
+
+ Subtitle *pSubtitle = (Subtitle *) pWidgetHandle;
+
+ vp_play_subtitle_unrealize((subtitle_handle) pSubtitle);
+
+ _vp_play_subtitle_destroy_handle(pSubtitle);
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @return
+ */
+bool vp_play_subtitle_realize(subtitle_handle pWidgetHandle)
+{
+ if (pWidgetHandle == NULL) {
+ VideoLogError("pWidgetHandle is NULL");
+ return FALSE;
+ }
+
+ Subtitle *pSubtitle = (Subtitle *) pWidgetHandle;
+
+ pSubtitle->bIsRealize = TRUE;
+
+ if (pSubtitle->pLayout) {
+ evas_object_show(pSubtitle->pLayout);
+ }
+
+ vp_play_subtitle_text_update(pSubtitle, pSubtitle->szText);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @return
+ */
+bool vp_play_subtitle_unrealize(subtitle_handle pWidgetHandle)
+{
+ if (pWidgetHandle == NULL) {
+ VideoLogError("pWidgetHandle is NULL");
+ return FALSE;
+ }
+
+ Subtitle *pSubtitle = (Subtitle *) pWidgetHandle;
+
+ pSubtitle->bIsRealize = FALSE;
+
+ if (pSubtitle->pLayout) {
+ evas_object_hide(pSubtitle->pLayout);
+ }
+
+ vp_play_subtitle_text_update(pSubtitle, NULL);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param bIsRealize
+ * @return
+ */
+bool vp_play_subtitle_is_realize(subtitle_handle pWidgetHandle,
+ bool * bIsRealize)
+{
+ if (pWidgetHandle == NULL) {
+ VideoLogError("pWidgetHandle is NULL");
+ return FALSE;
+ }
+
+ Subtitle *pSubtitle = (Subtitle *) pWidgetHandle;
+
+ *bIsRealize = pSubtitle->bIsRealize;
+
+ return TRUE;
+
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @return
+ */
+Evas_Object *vp_play_subtitle_get_object(subtitle_handle pWidgetHandle)
+{
+ if (pWidgetHandle == NULL) {
+ VideoLogError("pWidgetHandle is NULL");
+ return NULL;
+ }
+
+ Subtitle *pSubtitle = (Subtitle *) pWidgetHandle;
+
+ return pSubtitle->pLayout;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param szFontName
+ * @return
+ */
+bool vp_play_subtitle_set_font(subtitle_handle pWidgetHandle,
+ char *szFontName)
+{
+ if (pWidgetHandle == NULL) {
+ VideoLogError("pWidgetHandle is NULL");
+ return FALSE;
+ }
+
+ if (szFontName == NULL) {
+ VideoLogError("szFontName is NULL");
+ return FALSE;
+ }
+
+ Subtitle *pSubtitle = (Subtitle *) pWidgetHandle;
+
+ VP_FREE(pSubtitle->szFontName);
+ VP_STRDUP(pSubtitle->szFontName, szFontName);
+
+ if (pSubtitle->bIsRealize) {
+ vp_play_subtitle_text_update(pSubtitle, pSubtitle->szText);
+ }
+
+ return TRUE;
+
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param szFontName
+ * @return
+ */
+bool vp_play_subtitle_get_font(subtitle_handle pWidgetHandle,
+ char **szFontName)
+{
+ if (pWidgetHandle == NULL) {
+ VideoLogError("pWidgetHandle is NULL");
+ return FALSE;
+ }
+
+ Subtitle *pSubtitle = (Subtitle *) pWidgetHandle;
+
+ if (pSubtitle->szFontName == NULL) {
+ VideoLogError("szFontName is NULL");
+ return FALSE;
+ }
+
+ VP_STRDUP(*szFontName, pSubtitle->szFontName);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param nEdge
+ * @return
+ */
+bool vp_play_subtitle_set_edge(subtitle_handle pWidgetHandle, int nEdge)
+{
+ if (pWidgetHandle == NULL) {
+ VideoLogError("pWidgetHandle is NULL");
+ return FALSE;
+ }
+
+ Subtitle *pSubtitle = (Subtitle *) pWidgetHandle;
+
+ pSubtitle->nEdge = nEdge;
+
+ if (pSubtitle->bIsRealize) {
+ vp_play_subtitle_text_update(pSubtitle, pSubtitle->szText);
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param nEdge
+ * @return
+ */
+bool vp_play_subtitle_get_edge(subtitle_handle pWidgetHandle, int *nEdge)
+{
+ if (pWidgetHandle == NULL) {
+ VideoLogError("pWidgetHandle is NULL");
+ return FALSE;
+ }
+
+ Subtitle *pSubtitle = (Subtitle *) pWidgetHandle;
+
+ *nEdge = pSubtitle->nEdge;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param nSize
+ * @return
+ */
+bool vp_play_subtitle_set_size(subtitle_handle pWidgetHandle,
+ video_subtitle_size_t nSize)
+{
+ if (pWidgetHandle == NULL) {
+ VideoLogError("pWidgetHandle is NULL");
+ return FALSE;
+ }
+
+ Subtitle *pSubtitle = (Subtitle *) pWidgetHandle;
+
+ pSubtitle->nSize = nSize;
+
+ if (pSubtitle->bIsRealize) {
+ vp_play_subtitle_text_update(pSubtitle, pSubtitle->szText);
+ vp_play_subtitle_set_caption_win_color(pSubtitle, TRUE);
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param nSize
+ * @return
+ */
+bool vp_play_subtitle_get_size(subtitle_handle pWidgetHandle,
+ video_subtitle_size_t * nSize)
+{
+ if (pWidgetHandle == NULL) {
+ VideoLogError("pWidgetHandle is NULL");
+ return FALSE;
+ }
+
+ Subtitle *pSubtitle = (Subtitle *) pWidgetHandle;
+
+ *nSize = pSubtitle->nSize;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param fZoom
+ * @return
+ */
+bool vp_play_subtitle_set_size_zoom(subtitle_handle pWidgetHandle,
+ float fZoom)
+{
+ if (pWidgetHandle == NULL) {
+ VideoLogError("pWidgetHandle is NULL");
+ return FALSE;
+ }
+
+ Subtitle *pSubtitle = (Subtitle *) pWidgetHandle;
+
+ if (fZoom > 1.0) {
+ fZoom = 1.0;
+ }
+ pSubtitle->fZoom = fZoom;
+
+ if (pSubtitle->bIsRealize) {
+ vp_play_subtitle_text_update(pSubtitle, pSubtitle->szText);
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param fZoom
+ * @return
+ */
+bool vp_play_subtitle_get_size_zoom(subtitle_handle pWidgetHandle,
+ float *fZoom)
+{
+ if (pWidgetHandle == NULL) {
+ VideoLogError("pWidgetHandle is NULL");
+ return FALSE;
+ }
+
+ Subtitle *pSubtitle = (Subtitle *) pWidgetHandle;
+
+ *fZoom = pSubtitle->fZoom;
+
+ return TRUE;
+}
+
+#ifndef SUBTITLE_K_FEATURE
+/**
+ *
+ * @param pWidgetHandle
+ * @param nColor
+ * @return
+ */
+bool vp_play_subtitle_set_color(subtitle_handle pWidgetHandle,
+ video_subtitle_color_t nColor)
+{
+ if (pWidgetHandle == NULL) {
+ VideoLogError("pWidgetHandle is NULL");
+ return FALSE;
+ }
+
+ Subtitle *pSubtitle = (Subtitle *) pWidgetHandle;
+
+ pSubtitle->nFontColor = nColor;
+
+ if (pSubtitle->bIsRealize) {
+ vp_play_subtitle_text_update(pSubtitle, pSubtitle->szText);
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param nColor
+ * @return
+ */
+bool vp_play_subtitle_get_color(subtitle_handle pWidgetHandle,
+ video_subtitle_color_t * nColor)
+{
+ if (pWidgetHandle == NULL) {
+ VideoLogError("pWidgetHandle is NULL");
+ return FALSE;
+ }
+
+ Subtitle *pSubtitle = (Subtitle *) pWidgetHandle;
+
+ *nColor = pSubtitle->nFontColor;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param nColor
+ * @return
+ */
+bool vp_play_subtitle_set_bg_color(subtitle_handle pWidgetHandle,
+ video_subtitle_color_t nColor)
+{
+ if (pWidgetHandle == NULL) {
+ VideoLogError("pWidgetHandle is NULL");
+ return FALSE;
+ }
+
+ Subtitle *pSubtitle = (Subtitle *) pWidgetHandle;
+
+ pSubtitle->nBGColor = nColor;
+
+ if (pSubtitle->bIsRealize) {
+ vp_play_subtitle_text_update(pSubtitle, pSubtitle->szText);
+ }
+
+ return TRUE;
+
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param nColor
+ * @return
+ */
+bool vp_play_subtitle_get_bg_color(subtitle_handle pWidgetHandle,
+ video_subtitle_color_t * nColor)
+{
+ if (pWidgetHandle == NULL) {
+ VideoLogError("pWidgetHandle is NULL");
+ return FALSE;
+ }
+
+ Subtitle *pSubtitle = (Subtitle *) pWidgetHandle;
+
+ *nColor = pSubtitle->nBGColor;
+
+ return TRUE;
+}
+#else
+/**
+ *
+ * @param pWidgetHandle
+ * @param pColorHex
+ * @return
+ */
+bool vp_play_subtitle_get_color(subtitle_handle pWidgetHandle,
+ char **pColorHex)
+{
+ if (pWidgetHandle == NULL) {
+ VideoLogError("pWidgetHandle is NULL");
+ return FALSE;
+ }
+
+ Subtitle *pSubtitle = (Subtitle *) pWidgetHandle;
+
+ if (pSubtitle->pFontColorHex == NULL) {
+ VideoLogError("pFontColorHex is NULL");
+ return FALSE;
+ }
+
+ VP_STRDUP(*pColorHex, pSubtitle->pFontColorHex);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param pColorHex
+ * @return
+ */
+bool vp_play_subtitle_set_color(subtitle_handle pWidgetHandle,
+ char *pColorHex)
+{
+ if (pWidgetHandle == NULL) {
+ VideoLogError("pWidgetHandle is NULL");
+ return FALSE;
+ }
+
+ Subtitle *pSubtitle = (Subtitle *) pWidgetHandle;
+
+ VP_FREE(pSubtitle->pFontColorHex);
+ pSubtitle->pFontColorHex = g_strdup(pColorHex);
+
+ if (pSubtitle->bIsRealize) {
+ vp_play_subtitle_text_update(pSubtitle, pSubtitle->szText);
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param pColorHex
+ * @return
+ */
+bool vp_play_subtitle_get_bg_color(subtitle_handle pWidgetHandle,
+ char **pColorHex)
+{
+ if (pWidgetHandle == NULL) {
+ VideoLogError("pWidgetHandle is NULL");
+ return FALSE;
+ }
+
+ Subtitle *pSubtitle = (Subtitle *) pWidgetHandle;
+
+ if (pSubtitle->pBGColorHex == NULL) {
+ VideoLogError("pBGColorHex is NULL");
+ return FALSE;
+ }
+
+ VP_STRDUP(*pColorHex, pSubtitle->pBGColorHex);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param pColorHex
+ * @return
+ */
+bool vp_play_subtitle_set_bg_color(subtitle_handle pWidgetHandle,
+ char *pColorHex)
+{
+ if (pWidgetHandle == NULL) {
+ VideoLogError("pWidgetHandle is NULL");
+ return FALSE;
+ }
+
+ Subtitle *pSubtitle = (Subtitle *) pWidgetHandle;
+
+ VP_FREE(pSubtitle->pBGColorHex);
+ pSubtitle->pBGColorHex = g_strdup(pColorHex);
+
+ if (pSubtitle->bIsRealize) {
+ vp_play_subtitle_text_update(pSubtitle, pSubtitle->szText);
+ }
+
+ return TRUE;
+}
+#endif
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param szText
+ * @return
+ */
+bool vp_play_subtitle_set_text(subtitle_handle pWidgetHandle,
+ const char *szText)
+{
+ if (pWidgetHandle == NULL) {
+ VideoLogError("pWidgetHandle is NULL");
+ return FALSE;
+ }
+
+ Subtitle *pSubtitle = (Subtitle *) pWidgetHandle;
+
+ VP_FREE(pSubtitle->szText);
+ VP_STRDUP(pSubtitle->szText, szText);
+
+ if (pSubtitle->bIsRealize) {
+ vp_play_subtitle_text_update(pSubtitle, pSubtitle->szText);
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param szText
+ * @return
+ */
+bool vp_play_subtitle_get_text(subtitle_handle pWidgetHandle,
+ char **szText)
+{
+ if (pWidgetHandle == NULL) {
+ VideoLogError("pWidgetHandle is NULL");
+ return FALSE;
+ }
+
+ Subtitle *pSubtitle = (Subtitle *) pWidgetHandle;
+ VP_STRDUP(*szText, pSubtitle->szText);
+
+ return TRUE;
+}
+
+#ifdef SUBTITLE_K_FEATURE
+/**
+ *
+ * @param pWidgetHandle
+ * @param nAlignment
+ * @return
+ */
+bool vp_play_subtitle_set_alignment(subtitle_handle pWidgetHandle,
+ vp_subtitle_alignment_t nAlignment)
+{
+ if (pWidgetHandle == NULL) {
+ VideoLogError("pWidgetHandle is NULL");
+ return FALSE;
+ }
+
+ Subtitle *pSubtitle = (Subtitle *) pWidgetHandle;
+
+ pSubtitle->nAlignment = nAlignment;
+
+ if (pSubtitle->bIsRealize) {
+ vp_play_subtitle_text_update(pSubtitle, pSubtitle->szText);
+ vp_play_subtitle_set_caption_win_color(pSubtitle, TRUE);
+ }
+
+ return TRUE;
+
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param nAlignment
+ * @return
+ */
+bool vp_play_subtitle_get_alignment(subtitle_handle pWidgetHandle,
+ vp_subtitle_alignment_t * nAlignment)
+{
+ if (pWidgetHandle == NULL) {
+ VideoLogError("pWidgetHandle is NULL");
+ return FALSE;
+ }
+
+ Subtitle *pSubtitle = (Subtitle *) pWidgetHandle;
+
+ *nAlignment = pSubtitle->nAlignment;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param bShowCaption
+ * @return
+ */
+bool vp_play_subtitle_set_caption_win_color(subtitle_handle pWidgetHandle,
+ bool bShowCaption)
+{
+ if (pWidgetHandle == NULL) {
+ VideoLogError("pWidgetHandle is NULL");
+ return FALSE;
+ }
+
+ Subtitle *pSubtitle = (Subtitle *) pWidgetHandle;
+ pSubtitle->bShowCaptionWin = bShowCaption;
+ if (!bShowCaption) {
+ VideoLogWarning("Hide caption window!");
+ vp_play_util_set_object_color(_EDJ(pSubtitle->pLayout), 0, 0, 0,
+ 0,
+ VP_SUBTITLE_SET_CAPTION_WINDOW_COLOR_ID);
+ return TRUE;
+ }
+
+ char *pText = NULL;
+ vp_play_subtitle_get_text(pSubtitle, &pText);
+
+ if (pText == NULL || strlen(pText) == 0) {
+ VideoLogWarning
+ ("pText is NULL or length is zero, need hide caption window!");
+ pSubtitle->bShowCaptionWin = FALSE;
+ vp_play_util_set_object_color(_EDJ(pSubtitle->pLayout), 0, 0, 0,
+ 0,
+ VP_SUBTITLE_SET_CAPTION_WINDOW_COLOR_ID);
+ if (pText) {
+ VP_FREE(pText);
+ }
+ return FALSE;
+ }
+
+ char *pCaptionWinColorHex = NULL;
+ if (!vp_play_preference_get_subtitle_caption_win_color_hex_key
+ (&pCaptionWinColorHex)) {
+ VideoLogWarning
+ ("vp_play_preference_get_subtitle_caption_win_color_hex_key failed");
+ }
+
+ int nAlignment = 0;
+ vp_play_preference_get_subtitle_alignment_key(&nAlignment);
+ if (pCaptionWinColorHex) {
+ int r = 0;
+ int g = 0;
+ int b = 0;
+ int a = 0;
+ vp_play_util_convert_hex_to_rgba(pCaptionWinColorHex, &r, &g, &b,
+ &a);
+ vp_play_util_set_object_color(elm_layout_edje_get
+ (pSubtitle->pLayout), r, g, b, a,
+ VP_SUBTITLE_SET_CAPTION_WINDOW_COLOR_ID);
+ }
+ VP_FREE(pText);
+ return TRUE;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param bLandscape
+ * @param x
+ * @param y
+ * @param w
+ * @param h
+ * @return
+ */
+bool vp_play_subtitle_get_geometry(subtitle_handle pWidgetHandle,
+ bool bLandscape, Evas_Coord * x,
+ Evas_Coord * y, Evas_Coord * w,
+ Evas_Coord * h)
+{
+ if (pWidgetHandle == NULL) {
+ VideoLogError("pWidgetHandle is NULL");
+ return FALSE;
+ }
+
+ Subtitle *pSubtitle = (Subtitle *) pWidgetHandle;
+ if (pSubtitle->pLayout == NULL) {
+ VideoLogError("pLayout is NULL");
+ return FALSE;
+ }
+
+ evas_object_geometry_get(pSubtitle->pLayout, x, y, w, h);
+ VideoLogInfo("%d, %d, %d, %d", x, y, w, h);
+ int ww = VP_SUBTITLE_PROTRAIT_W;
+ int hh = VP_SUBTITLE_PROTRAIT_H;
+ if (bLandscape) {
+ ww = VP_SUBTITLE_LANDSCAPE_W;
+ hh = VP_SUBTITLE_LANDSCAPE_H;
+ }
+ *x = *x - ww / 2;
+ *w = ww;
+ *y = *y - hh / 2;
+ *h = hh;
+
+ return TRUE;
+}
+#endif
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param ww
+ * @param hh
+ * @return
+ */
+bool vp_play_subtitle_get_size_formatted(subtitle_handle pWidgetHandle,
+ Evas_Coord * ww, Evas_Coord * hh)
+{
+ if (pWidgetHandle == NULL) {
+ VideoLogError("pWidgetHandle is NULL");
+ return FALSE;
+ }
+
+ Subtitle *pSubtitle = (Subtitle *) pWidgetHandle;
+ if (pSubtitle->pTextBlock == NULL) {
+ VideoLogError("pTextBlock is NULL");
+ return FALSE;
+ }
+
+ evas_object_textblock_size_formatted_get(pSubtitle->pTextBlock, ww,
+ hh);
+
+ return TRUE;
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#include "vp-play-string-define.h"
+#include "vp-play-macro-define.h"
+
+#include "vp-play-volume-popup.h"
+
+#include "vp-sound.h"
+
+/* check temp */
+#include "vp-play-log.h"
+
+
+#define VP_VOLUME_POPUP_HIDE_LAYOUT_TIMER_INTERVAL 5.0
+
+#define VP_VOLUME_POPUP_PORTRAIT_POS_X 220
+#define VP_VOLUME_POPUP_PORTRAIT_POS_Y 150
+#define VP_VOLUME_POPUP_PORTRAIT_HEIGHT 572
+
+#define VP_VOLUME_POPUP_LANDSCAPE_POS_X 400
+#define VP_VOLUME_POPUP_LANDSCAPE_POS_Y 60
+#define VP_VOLUME_POPUP_LANDSCAPE_HEIGHT 440
+
+#define VP_VOLUME_POPUP_TEXT_MAX_LEN 3
+
+
+
+typedef struct _VolumePopupWidget {
+ Evas_Object *pParent;
+ Evas_Object *pLayout;
+ Ecore_Timer *pHideTimer;
+ Ecore_Timer *pDeviceTimer;
+
+ bool bLandscape;
+ bool bIsRealize;
+ bool bMouseDown;
+
+ int nMaxVal;
+ int nCurVal;
+} VolumePopupWidget;
+
+static void _vp_play_volume_popup_destory_handle(VolumePopupWidget *
+ pVolumeWidget);
+static double _vp_play_volume_popup_get_mouse_pos_ratio(Evas_Object *
+ pObj,
+ bool bLandscape,
+ int nCurY);
+static void _vp_play_volume_popup_set_value(VolumePopupWidget *
+ pVolumeWidget, int nValue);
+static void _vp_play_volume_popup_create_timer(VolumePopupWidget *
+ pVolumeWidget);
+
+/* callback functions */
+/**
+ *
+ * @param pUserData
+ * @param e
+ * @param pObj
+ * @param pEvent
+ */
+static void __vp_volume_popup_mouse_down_cb(void *pUserData, Evas * e,
+ Evas_Object * pObj,
+ void *pEvent)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+ VolumePopupWidget *pVolumeWidget = (VolumePopupWidget *) pUserData;
+
+ if (pVolumeWidget->bIsRealize == FALSE) {
+ return;
+ }
+
+ Evas_Event_Mouse_Down *pMouseDownEvent =
+ (Evas_Event_Mouse_Down *) pEvent;
+
+ double dRatio =
+ _vp_play_volume_popup_get_mouse_pos_ratio(pVolumeWidget->pLayout,
+ pVolumeWidget->bLandscape,
+ pMouseDownEvent->
+ canvas.y);
+
+ int nCurVal =
+ pVolumeWidget->nMaxVal - (dRatio * pVolumeWidget->nMaxVal);
+
+ _vp_play_volume_popup_set_value(pVolumeWidget, nCurVal);
+
+ VP_EVAS_TIMER_DEL(pVolumeWidget->pHideTimer);
+
+ pVolumeWidget->bMouseDown = TRUE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param e
+ * @param pObj
+ * @param pEvent
+ */
+static void __vp_volume_popup_mouse_up_cb(void *pUserData, Evas * e,
+ Evas_Object * pObj, void *pEvent)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+ VolumePopupWidget *pVolumeWidget = (VolumePopupWidget *) pUserData;
+
+ Evas_Event_Mouse_Up *pMouseUpEvent = (Evas_Event_Mouse_Up *) pEvent;
+
+ if (pVolumeWidget->bIsRealize == FALSE) {
+ return;
+ }
+
+ double dRatio =
+ _vp_play_volume_popup_get_mouse_pos_ratio(pVolumeWidget->pLayout,
+ pVolumeWidget->bLandscape,
+ pMouseUpEvent->canvas.y);
+
+ int nCurVal =
+ pVolumeWidget->nMaxVal - (dRatio * pVolumeWidget->nMaxVal);
+
+ _vp_play_volume_popup_set_value(pVolumeWidget, nCurVal);
+ _vp_play_volume_popup_create_timer(pVolumeWidget);
+
+ pVolumeWidget->bMouseDown = FALSE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param e
+ * @param pObj
+ * @param pEvent
+ */
+static void __vp_volume_popup_mouse_move_cb(void *pUserData, Evas * e,
+ Evas_Object * pObj,
+ void *pEvent)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ VolumePopupWidget *pVolumeWidget = (VolumePopupWidget *) pUserData;
+
+ Evas_Event_Mouse_Move *pMouseMoveEvent =
+ (Evas_Event_Mouse_Move *) pEvent;
+
+ if (pVolumeWidget->bIsRealize == FALSE
+ || pVolumeWidget->bMouseDown == FALSE) {
+ return;
+ }
+
+ double dRatio =
+ _vp_play_volume_popup_get_mouse_pos_ratio(pVolumeWidget->pLayout,
+ pVolumeWidget->bLandscape,
+ pMouseMoveEvent->
+ cur.canvas.y);
+
+ int nCurVal =
+ pVolumeWidget->nMaxVal - (dRatio * pVolumeWidget->nMaxVal);
+
+ if (nCurVal != pVolumeWidget->nCurVal) {
+ _vp_play_volume_popup_set_value(pVolumeWidget, nCurVal);
+ }
+
+}
+
+/**
+ *
+ * @param pUserData
+ * @return
+ */
+static Eina_Bool __vp_volume_popup_hide_timer_cb(void *pUserData)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return EINA_FALSE;
+ }
+
+ VolumePopupWidget *pVolumeWidget = (VolumePopupWidget *) pUserData;
+
+ VP_EVAS_TIMER_DEL(pVolumeWidget->pHideTimer);
+
+ if (!vp_play_volume_popup_unrealize
+ ((volume_popup_handle) pVolumeWidget)) {
+ VideoLogWarning("vp_play_volume_popup_unrealize is fail");
+ }
+
+ return EINA_FALSE;
+}
+
+/* internal functions */
+/**
+ *
+ * @param pVolumeWidget
+ */
+static void _vp_play_volume_popup_destory_handle(VolumePopupWidget *
+ pVolumeWidget)
+{
+ if (pVolumeWidget == NULL) {
+ VideoLogError("pVolumeWidget is NULL");
+ return;
+ }
+
+ VP_EVAS_TIMER_DEL(pVolumeWidget->pHideTimer);
+ VP_EVAS_TIMER_DEL(pVolumeWidget->pDeviceTimer);
+
+ VP_EVAS_DEL(pVolumeWidget->pLayout);
+ VP_FREE(pVolumeWidget);
+}
+
+/**
+ *
+ * @param pObj
+ * @param bLandscape
+ * @param nCurY
+ * @return
+ */
+static double _vp_play_volume_popup_get_mouse_pos_ratio(Evas_Object *
+ pObj,
+ bool bLandscape,
+ int nCurY)
+{
+ if (pObj == NULL) {
+ VideoLogError("pObj is NULL");
+ return 0.0;
+ }
+
+ int nHeight = 0;
+ int nCurrent = 0;
+ double dRatio = 0.0;
+
+ evas_object_geometry_get(pObj, NULL, NULL, NULL, &nHeight);
+
+ if (bLandscape) {
+ nHeight = VP_VOLUME_POPUP_LANDSCAPE_HEIGHT;
+ nCurrent = nCurY - VP_VOLUME_POPUP_LANDSCAPE_POS_Y;
+ } else {
+ nHeight = VP_VOLUME_POPUP_PORTRAIT_HEIGHT;
+ nCurrent = nCurY - VP_VOLUME_POPUP_PORTRAIT_POS_Y;
+ }
+
+ if (nCurrent < 0) {
+ nCurrent = 0;
+ } else if (nCurrent > nHeight) {
+ nCurrent = nHeight;
+ }
+
+ dRatio = (double) nCurrent / nHeight;
+
+ return dRatio;
+}
+
+/**
+ *
+ * @param pVolumeWidget
+ */
+static void _vp_play_volume_popup_set_widget_position(VolumePopupWidget *
+ pVolumeWidget)
+{
+ if (pVolumeWidget == NULL) {
+ VideoLogError("pVolumeWidget is NULL");
+ return;
+ }
+
+ bool bLandscape = pVolumeWidget->bLandscape;
+
+ if (bLandscape) {
+ evas_object_move(pVolumeWidget->pLayout,
+ VP_VOLUME_POPUP_LANDSCAPE_POS_X * VP_SCALE,
+ VP_VOLUME_POPUP_LANDSCAPE_POS_Y * VP_SCALE);
+ } else {
+ evas_object_move(pVolumeWidget->pLayout,
+ VP_VOLUME_POPUP_PORTRAIT_POS_X * VP_SCALE,
+ VP_VOLUME_POPUP_PORTRAIT_POS_Y * VP_SCALE);
+ }
+}
+
+/**
+ *
+ * @param pVolumeWidget
+ */
+static void _vp_play_volume_popup_update_value(VolumePopupWidget *
+ pVolumeWidget)
+{
+ if (pVolumeWidget == NULL) {
+ VideoLogError("pVolumeWidget is NULL");
+ return;
+ }
+
+ double nVolumeRatio = 0.0;
+ char szPlayingTime[VP_VOLUME_POPUP_TEXT_MAX_LEN] = { 0, };
+
+ snprintf(szPlayingTime, VP_VOLUME_POPUP_TEXT_MAX_LEN, "%d",
+ pVolumeWidget->nCurVal);
+
+ nVolumeRatio =
+ ((double) pVolumeWidget->nCurVal /
+ (double) pVolumeWidget->nMaxVal);
+
+ if (!edje_object_part_drag_value_set
+ (_EDJ(pVolumeWidget->pLayout),
+ VP_PLAY_SWALLOW_VOLUME_POPUP_DRAG_RECT, 0.0, nVolumeRatio)) {
+ VideoLogWarning("Drag value set fail : %lf", nVolumeRatio);
+ }
+
+ elm_object_part_text_set(pVolumeWidget->pLayout,
+ VP_PLAY_SWALLOW_VOLUME_POPUP_VALUE_LABEL,
+ szPlayingTime);
+
+ if (pVolumeWidget->nCurVal == 0) {
+ edje_object_signal_emit(_EDJ(pVolumeWidget->pLayout), "set,mute",
+ "volume.popup.icon");
+ } else {
+ edje_object_signal_emit(_EDJ(pVolumeWidget->pLayout),
+ "set,volume", "volume.popup.icon");
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @return
+ */
+static Eina_Bool __vp_volume_popup_device_timer_cb(void *pUserData)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return EINA_FALSE;
+ }
+
+ VolumePopupWidget *pVolumeWidget = (VolumePopupWidget *) pUserData;
+
+ if (pVolumeWidget->pDeviceTimer) {
+ VP_EVAS_TIMER_DEL(pVolumeWidget->pDeviceTimer);
+ }
+ if (!vp_sound_set_volume(pVolumeWidget->nCurVal)) {
+ VideoLogError("vp_sound_set_volume");
+ return EINA_FALSE;
+ }
+
+ return EINA_FALSE;
+}
+
+/**
+ *
+ * @param pVolumeWidget
+ * @param nValue
+ */
+static void _vp_play_volume_popup_set_value(VolumePopupWidget *
+ pVolumeWidget, int nValue)
+{
+ if (pVolumeWidget == NULL) {
+ VideoLogError("pParent is NULL");
+ return;
+ }
+
+ pVolumeWidget->nCurVal = nValue;
+
+ _vp_play_volume_popup_update_value(pVolumeWidget);
+
+ if (pVolumeWidget->pDeviceTimer == NULL) {
+ pVolumeWidget->pDeviceTimer = ecore_timer_add(0.1,
+ __vp_volume_popup_device_timer_cb,
+ (void *)
+ pVolumeWidget);
+ }
+}
+
+/**
+ *
+ * @param pVolumeWidget
+ */
+static void _vp_play_volume_popup_create_timer(VolumePopupWidget *
+ pVolumeWidget)
+{
+ if (pVolumeWidget == NULL) {
+ VideoLogError("pParent is NULL");
+ return;
+ }
+
+ VP_EVAS_TIMER_DEL(pVolumeWidget->pHideTimer);
+
+ pVolumeWidget->pHideTimer =
+ ecore_timer_add(VP_VOLUME_POPUP_HIDE_LAYOUT_TIMER_INTERVAL,
+ __vp_volume_popup_hide_timer_cb,
+ (void *) pVolumeWidget);
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+static Evas_Object *_vp_play_volume_popup_create_layout(Evas_Object *
+ pParent)
+{
+ if (!pParent) {
+ VideoLogError("Parent is NULL");
+ return NULL;
+ }
+
+ Evas_Object *pObj = NULL;
+ Eina_Bool bRet = EINA_FALSE;
+
+ pObj = elm_layout_add(pParent);
+ if (pObj == NULL) {
+ VideoLogError("elm_layout_add object is NULL");
+ return NULL;
+ }
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VP_PLAY_VOLUME_POPUP_EDJ_PATH);
+ free(path);
+ bRet =
+ elm_layout_file_set(pObj, edj_path,
+ VP_PLAY_EDJ_GROUP_VOLUME_POPUP);
+ if (bRet != EINA_TRUE) {
+ VideoLogError("elm_layout_file_set fail");
+ return NULL;
+ }
+
+ evas_object_show(pObj);
+
+ return pObj;
+}
+
+/**
+ *
+ * @param pVolumeWidget
+ * @return
+ */
+static bool _vp_play_volume_popup_init_layout(VolumePopupWidget *
+ pVolumeWidget)
+{
+ if (pVolumeWidget == NULL) {
+ VideoLogError("pVolumeWidget is NULL");
+ return FALSE;
+ }
+
+ Evas_Object *pParent = pVolumeWidget->pParent;
+
+ pVolumeWidget->pLayout = _vp_play_volume_popup_create_layout(pParent);
+ if (pVolumeWidget->pLayout == NULL) {
+ VideoLogError("_vp_play_volume_create_layout is fail");
+ return FALSE;
+ }
+ evas_object_event_callback_add(pVolumeWidget->pLayout,
+ EVAS_CALLBACK_MOUSE_DOWN,
+ __vp_volume_popup_mouse_down_cb,
+ (void *) pVolumeWidget);
+
+ evas_object_event_callback_add(pVolumeWidget->pLayout,
+ EVAS_CALLBACK_MOUSE_UP,
+ __vp_volume_popup_mouse_up_cb,
+ (void *) pVolumeWidget);
+
+ evas_object_event_callback_add(pVolumeWidget->pLayout,
+ EVAS_CALLBACK_MOUSE_MOVE,
+ __vp_volume_popup_mouse_move_cb,
+ (void *) pVolumeWidget);
+
+ return TRUE;
+}
+
+/* external functions */
+/**
+ *
+ * @param pParent
+ * @return
+ */
+volume_popup_handle vp_play_volume_popup_create(Evas_Object * pParent)
+{
+ if (pParent == NULL) {
+ VideoLogError("pParent is NULL");
+ return NULL;
+ }
+
+ VolumePopupWidget *pVolumeWidget = NULL;
+
+ pVolumeWidget = calloc(1, sizeof(VolumePopupWidget));
+
+ if (pVolumeWidget == NULL) {
+ VideoLogError("pVolumeWidget alloc fail");
+ return NULL;
+ }
+
+ pVolumeWidget->pParent = pParent;
+ pVolumeWidget->bLandscape = FALSE;
+
+ if (!_vp_play_volume_popup_init_layout(pVolumeWidget)) {
+ VideoLogError("_vp_play_volume_init_layout is fail");
+ _vp_play_volume_popup_destory_handle(pVolumeWidget);
+ return NULL;
+ }
+
+ if (!vp_sound_get_max_volume(&(pVolumeWidget->nMaxVal))) {
+ VideoLogError("vp_sound_get_max_volume fail");
+ _vp_play_volume_popup_destory_handle(pVolumeWidget);
+ return NULL;
+ }
+
+ if (!vp_sound_get_volume(&(pVolumeWidget->nCurVal))) {
+ VideoLogError("vp_sound_get_volume fail");
+ _vp_play_volume_popup_destory_handle(pVolumeWidget);
+ return NULL;
+ }
+
+ _vp_play_volume_popup_update_value(pVolumeWidget);
+
+ return (volume_popup_handle) pVolumeWidget;
+}
+
+/**
+ *
+ * @param pVolumeHandle
+ */
+void vp_play_volume_popup_destroy(volume_popup_handle pVolumeHandle)
+{
+ if (pVolumeHandle == NULL) {
+ VideoLogError("pParent is NULL");
+ return;
+ }
+
+ VolumePopupWidget *pVolumeWidget = (VolumePopupWidget *) pVolumeHandle;
+
+ _vp_play_volume_popup_destory_handle(pVolumeWidget);
+}
+
+/**
+ *
+ * @param pVolumeHandle
+ * @return
+ */
+bool vp_play_volume_popup_realize(volume_popup_handle pVolumeHandle)
+{
+ if (pVolumeHandle == NULL) {
+ VideoLogError("pParent is NULL");
+ return FALSE;
+ }
+
+ VolumePopupWidget *pVolumeWidget = (VolumePopupWidget *) pVolumeHandle;
+
+ pVolumeWidget->bIsRealize = TRUE;
+
+ _vp_play_volume_popup_set_widget_position(pVolumeWidget);
+
+ _vp_play_volume_popup_set_value(pVolumeWidget, pVolumeWidget->nCurVal);
+
+ evas_object_show(pVolumeWidget->pLayout);
+ _vp_play_volume_popup_create_timer(pVolumeWidget);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pVolumeHandle
+ * @return
+ */
+bool vp_play_volume_popup_unrealize(volume_popup_handle pVolumeHandle)
+{
+ if (pVolumeHandle == NULL) {
+ VideoLogError("pParent is NULL");
+ return FALSE;
+ }
+
+ VolumePopupWidget *pVolumeWidget = (VolumePopupWidget *) pVolumeHandle;
+
+ pVolumeWidget->bIsRealize = FALSE;
+
+ evas_object_hide(pVolumeWidget->pLayout);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pVolumeHandle
+ * @param bLandscape
+ * @return
+ */
+bool vp_play_volume_popup_set_landscape_mode(volume_popup_handle
+ pVolumeHandle,
+ bool bLandscape)
+{
+ if (pVolumeHandle == NULL) {
+ VideoLogError("pParent is NULL");
+ return FALSE;
+ }
+
+ VolumePopupWidget *pVolumeWidget = (VolumePopupWidget *) pVolumeHandle;
+
+ pVolumeWidget->bLandscape = bLandscape;
+
+ _vp_play_volume_popup_set_widget_position(pVolumeWidget);
+
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pVolumeHandle
+ * @param bIsRealize
+ * @return
+ */
+bool vp_play_volume_popup_is_realize(volume_popup_handle pVolumeHandle,
+ bool * bIsRealize)
+{
+ if (pVolumeHandle == NULL) {
+ VideoLogError("pParent is NULL");
+ return FALSE;
+ }
+
+ VolumePopupWidget *pVolumeWidget = (VolumePopupWidget *) pVolumeHandle;
+
+ *bIsRealize = pVolumeWidget->bIsRealize;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pVolumeHandle
+ * @param nCurVal
+ * @return
+ */
+bool vp_play_volume_popup_set_value(volume_popup_handle pVolumeHandle,
+ int nCurVal)
+{
+ if (pVolumeHandle == NULL) {
+ VideoLogError("pParent is NULL");
+ return FALSE;
+ }
+
+ VolumePopupWidget *pVolumeWidget = (VolumePopupWidget *) pVolumeHandle;
+
+ _vp_play_volume_popup_create_timer(pVolumeWidget);
+
+ pVolumeWidget->nCurVal = nCurVal;
+
+ if (pVolumeWidget->nCurVal < 0) {
+ pVolumeWidget->nCurVal = 0;
+ return TRUE;
+ }
+
+ if (pVolumeWidget->nCurVal > pVolumeWidget->nMaxVal) {
+ pVolumeWidget->nCurVal = pVolumeWidget->nMaxVal;
+ return TRUE;
+ }
+
+ _vp_play_volume_popup_set_value(pVolumeWidget, pVolumeWidget->nCurVal);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param nCurVal
+ * @return
+ */
+bool vp_play_volume_popup_get_value(int *nCurVal)
+{
+
+ int nVal = 0;
+
+ if (!vp_sound_get_volume(&nVal)) {
+ VideoLogError("vp_sound_get_volume fail");
+ return FALSE;
+ }
+
+ *nCurVal = nVal;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param nMaxVal
+ * @return
+ */
+bool vp_play_volume_popup_get_max_value(int *nMaxVal)
+{
+ int nVal = 0;
+
+ if (!vp_sound_get_max_volume(&nVal)) {
+ VideoLogError("vp_sound_get_max_volume fail");
+ return FALSE;
+ }
+
+ *nMaxVal = nVal;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pVolumeHandle
+ * @param bIsMute
+ * @return
+ */
+bool vp_play_volume_popup_is_mute(volume_popup_handle pVolumeHandle,
+ bool * bIsMute)
+{
+ if (pVolumeHandle == NULL) {
+ VideoLogError("pParent is NULL");
+ return FALSE;
+ }
+
+ VolumePopupWidget *pVolumeWidget = (VolumePopupWidget *) pVolumeHandle;
+
+ if (pVolumeWidget->nCurVal == 0) {
+ *bIsMute = TRUE;
+ } else {
+ *bIsMute = FALSE;
+ }
+
+ return TRUE;
+
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "vp-play-string-define.h"
+#include "vp-play-macro-define.h"
+
+#include "vp-play-volume.h"
+#include "vp-play-button.h"
+
+#include "vp-sound.h"
+
+/* check temp */
+#include "vp-play-log.h"
+
+#define VP_VOLUME_HIDE_LAYOUT_TIMER_INTERVAL 5.0
+
+#define VP_VOLUME_PORTRAIT_POS_X 15
+#define VP_VOLUME_PORTRAIT_POS_Y 60
+#define VP_VOLUME_PORTRAIT_HEIGHT 241
+
+#define VP_VOLUME_LANDSCAPE_POS_X 19
+#define VP_VOLUME_LANDSCAPE_POS_Y 27
+#define VP_VOLUME_LANDSCAPE_HEIGHT 170
+
+#define VP_VOLUME_TOP_PADDING_H 87
+
+#define VP_VOLUME_TEXT_MAX_LEN 4
+
+
+
+typedef struct _VolumeWidget {
+ Evas_Object *pParent;
+ Evas_Object *pWin;
+ Evas_Object *pLayout;
+ Evas_Object *pFocusPoint;
+ Ecore_Timer *pHideTimer;
+ Ecore_Timer *pDeviceTimer;
+
+ bool bLandscape;
+ bool bIsRealize;
+ bool bMouseDown;
+
+ int nMaxVal;
+ int nCurVal;
+ int nTmpVal;
+ int nMuteVal;
+
+ void *pUserData;
+ void *pPlayerHandle;
+
+ NormalVolumeChangeCbFunc pChangeVolFunc;
+} VolumeWidget;
+
+static void _vp_play_volume_destory_handle(VolumeWidget * pVolumeWidget);
+static double _vp_play_volume_get_mouse_pos_ratio(Evas_Object * pObj,
+ bool bLandscape,
+ int nCurY,
+ Evas_Object * pWin);
+static bool _vp_play_volume_set_value(VolumeWidget * pVolumeWidget,
+ int nValue);
+static void _vp_play_volume_create_timer(VolumeWidget * pVolumeWidget);
+
+/* callback functions */
+/**
+ *
+ * @param pUserData
+ * @param e
+ * @param pObj
+ * @param pEvent
+ */
+static void __vp_volume_focus_key_down_cb(void *pUserData, Evas * e,
+ Evas_Object * pObj, void *pEvent)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ VolumeWidget *pVolumeWidget = (VolumeWidget *) pUserData;
+
+ Evas_Event_Key_Down *ev = pEvent;
+
+ if (!ev) {
+ return;
+ }
+ if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) {
+ return;
+ }
+
+ VideoLogInfo("KEY: %s", ev->keyname);
+
+ if (!strcmp(ev->keyname, "Up")) {
+ vp_play_volume_increase_value(pVolumeWidget);
+ } else if (!strcmp(ev->keyname, "Down")) {
+ vp_play_volume_decrease_value(pVolumeWidget);
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param e
+ * @param pObj
+ * @param pEvent
+ */
+static void __vp_volume_mouse_down_cb(void *pUserData, Evas * e,
+ Evas_Object * pObj, void *pEvent)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+ VolumeWidget *pVolumeWidget = (VolumeWidget *) pUserData;
+
+ if (pVolumeWidget->bIsRealize == FALSE) {
+ return;
+ }
+
+ Evas_Event_Mouse_Down *pMouseDownEvent =
+ (Evas_Event_Mouse_Down *) pEvent;
+
+ double dRatio =
+ _vp_play_volume_get_mouse_pos_ratio(pVolumeWidget->pLayout,
+ pVolumeWidget->bLandscape,
+ pMouseDownEvent->canvas.y,
+ pVolumeWidget->pWin);
+
+ int nCurVal =
+ pVolumeWidget->nMaxVal - (dRatio * pVolumeWidget->nMaxVal);
+
+ _vp_play_volume_set_value(pVolumeWidget, nCurVal);
+
+ VP_EVAS_TIMER_DEL(pVolumeWidget->pHideTimer);
+
+ pVolumeWidget->bMouseDown = TRUE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param e
+ * @param pObj
+ * @param pEvent
+ */
+static void __vp_volume_mouse_up_cb(void *pUserData, Evas * e,
+ Evas_Object * pObj, void *pEvent)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+ VolumeWidget *pVolumeWidget = (VolumeWidget *) pUserData;
+
+ Evas_Event_Mouse_Up *pMouseUpEvent = (Evas_Event_Mouse_Up *) pEvent;
+
+ if (pVolumeWidget->bIsRealize == FALSE) {
+ return;
+ }
+
+ double dRatio =
+ _vp_play_volume_get_mouse_pos_ratio(pVolumeWidget->pLayout,
+ pVolumeWidget->bLandscape,
+ pMouseUpEvent->canvas.y,
+ pVolumeWidget->pWin);
+
+ int nCurVal =
+ pVolumeWidget->nMaxVal - (dRatio * pVolumeWidget->nMaxVal);
+
+ _vp_play_volume_set_value(pVolumeWidget, nCurVal);
+ _vp_play_volume_create_timer(pVolumeWidget);
+
+ pVolumeWidget->bMouseDown = FALSE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param e
+ * @param pObj
+ * @param pEvent
+ */
+static void __vp_volume_mouse_move_cb(void *pUserData, Evas * e,
+ Evas_Object * pObj, void *pEvent)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ VolumeWidget *pVolumeWidget = (VolumeWidget *) pUserData;
+
+ Evas_Event_Mouse_Move *pMouseMoveEvent =
+ (Evas_Event_Mouse_Move *) pEvent;
+
+ if (pVolumeWidget->bIsRealize == FALSE
+ || pVolumeWidget->bMouseDown == FALSE) {
+ return;
+ }
+
+ double dRatio =
+ _vp_play_volume_get_mouse_pos_ratio(pVolumeWidget->pLayout,
+ pVolumeWidget->bLandscape,
+ pMouseMoveEvent->cur.canvas.y,
+ pVolumeWidget->pWin);
+
+ int nCurVal =
+ pVolumeWidget->nMaxVal - (dRatio * pVolumeWidget->nMaxVal);
+
+ if (nCurVal != pVolumeWidget->nCurVal) {
+ _vp_play_volume_set_value(pVolumeWidget, nCurVal);
+ }
+
+}
+
+/**
+ *
+ * @param pUserData
+ * @return
+ */
+static Eina_Bool __vp_volume_hide_timer_cb(void *pUserData)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return EINA_FALSE;
+ }
+
+ VolumeWidget *pVolumeWidget = (VolumeWidget *) pUserData;
+
+ VP_EVAS_TIMER_DEL(pVolumeWidget->pHideTimer);
+
+ if (!vp_play_volume_unrealize((volume_handle) pVolumeWidget)) {
+ VideoLogWarning("vp_play_volume_unrealize is fail");
+ }
+
+ return EINA_FALSE;
+}
+
+/* internal functions */
+/**
+ *
+ * @param pVolumeWidget
+ */
+static void _vp_play_volume_destory_handle(VolumeWidget * pVolumeWidget)
+{
+ if (pVolumeWidget == NULL) {
+ VideoLogError("pVolumeWidget is NULL");
+ return;
+ }
+
+ pVolumeWidget->pChangeVolFunc = NULL;
+
+ VP_EVAS_TIMER_DEL(pVolumeWidget->pHideTimer);
+ VP_EVAS_TIMER_DEL(pVolumeWidget->pDeviceTimer);
+
+ VP_EVAS_DEL(pVolumeWidget->pFocusPoint);
+ VP_EVAS_DEL(pVolumeWidget->pLayout);
+ VP_FREE(pVolumeWidget);
+}
+
+/**
+ *
+ * @param pObj
+ * @param bLandscape
+ * @param nCurY
+ * @param pWin
+ * @return
+ */
+static double _vp_play_volume_get_mouse_pos_ratio(Evas_Object * pObj,
+ bool bLandscape,
+ int nCurY,
+ Evas_Object * pWin)
+{
+ if (pObj == NULL) {
+ VideoLogError("pObj is NULL");
+ return 0.0;
+ }
+
+ int nHeight = 0;
+ int nCurrent = 0;
+ double dRatio = 0.0;
+ int w = 0;
+ int h = 0;
+ elm_win_screen_size_get(pWin, NULL, NULL, &w, &h);
+
+ if ((elm_config_scale_get() - 2.6) == 0.0) {
+ if (bLandscape) {
+ nHeight = VP_VOLUME_LANDSCAPE_HEIGHT;
+ nCurrent =
+ nCurY - VP_VOLUME_LANDSCAPE_POS_Y -
+ VP_VOLUME_TOP_PADDING_H + 10;
+ } else {
+ nHeight = 350;
+ nCurrent =
+ nCurY - VP_VOLUME_PORTRAIT_POS_Y -
+ VP_VOLUME_TOP_PADDING_H - 310;
+ }
+ } else if ((elm_config_scale_get() - 1.8) == 0.0) {
+ if (bLandscape) {
+ nHeight = 125;
+ nCurrent =
+ nCurY - VP_VOLUME_LANDSCAPE_POS_Y -
+ VP_VOLUME_TOP_PADDING_H + 70;
+ } else {
+ nHeight = 255;
+ nCurrent =
+ nCurY - VP_VOLUME_PORTRAIT_POS_Y -
+ VP_VOLUME_TOP_PADDING_H - 42;
+ }
+ } else {
+ if (bLandscape) {
+ nHeight = VP_VOLUME_LANDSCAPE_HEIGHT;
+ nCurrent =
+ nCurY - VP_VOLUME_LANDSCAPE_POS_Y -
+ VP_VOLUME_TOP_PADDING_H + 10;
+ } else {
+ nHeight = 390;
+ nCurrent =
+ nCurY - VP_VOLUME_PORTRAIT_POS_Y -
+ VP_VOLUME_TOP_PADDING_H - 150;
+ }
+ }
+
+ if (nCurrent < 0) {
+ nCurrent = 0;
+ } else if (nCurrent > nHeight) {
+ nCurrent = nHeight;
+ }
+ if (nHeight > 0.0) {
+ dRatio = (double) nCurrent / nHeight;
+ }
+
+ return dRatio;
+}
+
+/**
+ *
+ * @param pVolumeWidget
+ * @param pWin
+ */
+static void _vp_play_volume_set_widget_position(VolumeWidget *
+ pVolumeWidget,
+ Evas_Object * pWin)
+{
+ if (pVolumeWidget == NULL) {
+ VideoLogError("pVolumeWidget is NULL");
+ return;
+ }
+ int w = 0;
+ int h = 0;
+ elm_win_screen_size_get(pWin, NULL, NULL, &w, &h);
+ pVolumeWidget->pWin = pWin;
+ bool bLandscape = pVolumeWidget->bLandscape;
+
+ if ((elm_config_scale_get() - 2.6) == 0.0) {
+ if (bLandscape) {
+ elm_object_signal_emit(pVolumeWidget->pLayout,
+ VP_NORMAL_SIGNAL_VOLUME_LANDSCAPE_MODE,
+ "*");
+ evas_object_move(pVolumeWidget->pLayout, h - 80, w / 10);
+ } else {
+ elm_object_signal_emit(pVolumeWidget->pLayout,
+ VP_NORMAL_SIGNAL_VOLUME_PORTRAIT_MODE,
+ "*");
+ evas_object_move(pVolumeWidget->pLayout, w - w / 9,
+ (5 * h) / 16);
+ }
+ } else if ((elm_config_scale_get() - 1.8) == 0.0) {
+ if (bLandscape) {
+ elm_object_signal_emit(pVolumeWidget->pLayout,
+ VP_NORMAL_SIGNAL_VOLUME_LANDSCAPE_MODE,
+ "*");
+ evas_object_move(pVolumeWidget->pLayout, h - h / 16, w / 16);
+ } else {
+ elm_object_signal_emit(pVolumeWidget->pLayout,
+ VP_NORMAL_SIGNAL_VOLUME_PORTRAIT_MODE,
+ "*");
+ evas_object_move(pVolumeWidget->pLayout, w - w / 10, h / 5);
+ }
+ } else {
+ if (bLandscape) {
+ elm_object_signal_emit(pVolumeWidget->pLayout,
+ VP_NORMAL_SIGNAL_VOLUME_LANDSCAPE_MODE,
+ "*");
+ evas_object_move(pVolumeWidget->pLayout, h - h / 16, w / 16);
+ } else {
+ elm_object_signal_emit(pVolumeWidget->pLayout,
+ VP_NORMAL_SIGNAL_VOLUME_PORTRAIT_MODE,
+ "*");
+ evas_object_move(pVolumeWidget->pLayout, w - w / 10, h / 5);
+ }
+ }
+}
+
+/**
+ *
+ * @param pVolumeWidget
+ */
+static void _vp_play_volume_update_value(VolumeWidget * pVolumeWidget)
+{
+ if (pVolumeWidget == NULL) {
+ VideoLogError("pVolumeWidget is NULL");
+ return;
+ }
+
+ double nVolumeRatio = 0.0;
+ char szPlayingTime[VP_VOLUME_TEXT_MAX_LEN] = { 0, };
+
+ snprintf(szPlayingTime, VP_VOLUME_TEXT_MAX_LEN, "%d",
+ pVolumeWidget->nCurVal);
+
+ nVolumeRatio =
+ ((double) pVolumeWidget->nCurVal /
+ (double) pVolumeWidget->nMaxVal);
+
+ if (!edje_object_part_drag_value_set
+ (_EDJ(pVolumeWidget->pLayout), VP_PLAY_SWALLOW_VOLUME_DRAG_RECT,
+ 0.0, nVolumeRatio)) {
+ VideoLogWarning("Drag value set fail : %lf", nVolumeRatio);
+ }
+
+ elm_object_part_text_set(pVolumeWidget->pLayout,
+ VP_PLAY_SWALLOW_VOLUME_VALUE_LABEL,
+ szPlayingTime);
+}
+
+/**
+ *
+ * @param pUserData
+ * @return
+ */
+static Eina_Bool __vp_volume_device_timer_cb(void *pUserData)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return EINA_FALSE;
+ }
+
+ VolumeWidget *pVolumeWidget = (VolumeWidget *) pUserData;
+
+ int maxVolume = 0;
+ if (!vp_sound_get_max_volume(&maxVolume)) {
+ VideoLogError("vp_sound_get_max_volume failed");
+ }
+
+ if (pVolumeWidget->pDeviceTimer) {
+ VP_EVAS_TIMER_DEL(pVolumeWidget->pDeviceTimer);
+ }
+ if (!vp_sound_set_volume(pVolumeWidget->nTmpVal)) {
+ VideoLogError("vp_sound_set_volume failed");
+ } else {
+ pVolumeWidget->nCurVal = pVolumeWidget->nTmpVal;
+ _vp_play_volume_update_value(pVolumeWidget);
+ if (pVolumeWidget->pChangeVolFunc) {
+ pVolumeWidget->pChangeVolFunc(pVolumeWidget->nCurVal,
+ pVolumeWidget->pUserData);
+ }
+
+ VideoLogWarning
+ ("vp_sound_set_volume successed, need update volume bar! = %d",
+ pVolumeWidget->nCurVal);
+ }
+
+ return EINA_FALSE;
+}
+
+/**
+ *
+ * @param pVolumeWidget
+ * @param nValue
+ * @return
+ */
+static bool _vp_play_volume_set_value(VolumeWidget * pVolumeWidget,
+ int nValue)
+{
+ if (pVolumeWidget == NULL) {
+ VideoLogError("pParent is NULL");
+ return FALSE;
+ }
+
+ pVolumeWidget->nTmpVal = pVolumeWidget->nCurVal;
+ if (nValue > 0) {
+ pVolumeWidget->nMuteVal = 0;
+ }
+
+ int nMaxValue = 0;
+ if (vp_sound_get_max_volume(&nMaxValue) && nValue <= nMaxValue) {
+ pVolumeWidget->nTmpVal = nValue;
+ }
+
+ if (pVolumeWidget->pDeviceTimer == NULL) {
+ pVolumeWidget->pDeviceTimer = ecore_timer_add(0.1,
+ __vp_volume_device_timer_cb,
+ (void *)
+ pVolumeWidget);
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pVolumeWidget
+ */
+static void _vp_play_volume_create_timer(VolumeWidget * pVolumeWidget)
+{
+ if (pVolumeWidget == NULL) {
+ VideoLogError("pParent is NULL");
+ return;
+ }
+
+ VP_EVAS_TIMER_DEL(pVolumeWidget->pHideTimer);
+
+ pVolumeWidget->pHideTimer =
+ ecore_timer_add(VP_VOLUME_HIDE_LAYOUT_TIMER_INTERVAL,
+ __vp_volume_hide_timer_cb, (void *) pVolumeWidget);
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+static Evas_Object *_vp_play_volume_create_layout(Evas_Object * pParent)
+{
+ if (!pParent) {
+ VideoLogError("Parent is NULL");
+ return NULL;
+ }
+
+ Evas_Object *pObj = NULL;
+ Eina_Bool bRet = EINA_FALSE;
+
+ pObj = elm_layout_add(pParent);
+ if (pObj == NULL) {
+ VideoLogError("elm_layout_add object is NULL");
+ return NULL;
+ }
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VP_PLAY_VOLUME_EDJ_PATH);
+ free(path);
+ bRet = elm_layout_file_set(pObj, edj_path, VP_PLAY_EDJ_GROUP_VOLUME);
+ if (bRet != EINA_TRUE) {
+ VideoLogError("elm_layout_file_set fail");
+ return NULL;
+ }
+
+ evas_object_show(pObj);
+
+ return pObj;
+}
+
+/**
+ *
+ * @param pVolumeWidget
+ * @return
+ */
+static bool _vp_play_volume_init_layout(VolumeWidget * pVolumeWidget)
+{
+ if (pVolumeWidget == NULL) {
+ VideoLogError("pVolumeWidget is NULL");
+ return FALSE;
+ }
+
+ Evas_Object *pParent = pVolumeWidget->pParent;
+
+ pVolumeWidget->pLayout = _vp_play_volume_create_layout(pParent);
+ if (pVolumeWidget->pLayout == NULL) {
+ VideoLogError("_vp_play_volume_create_layout is fail");
+ return FALSE;
+ }
+ pVolumeWidget->pFocusPoint =
+ vp_button_create(pVolumeWidget->pLayout, "focus", NULL, NULL,
+ NULL, NULL, (void *) pVolumeWidget);
+ if (!pVolumeWidget->pFocusPoint) {
+ VideoLogError("elm_button_add is fail");
+ return FALSE;
+ }
+
+ elm_object_focus_allow_set(pVolumeWidget->pFocusPoint, EINA_FALSE);
+ elm_object_part_content_set(pVolumeWidget->pLayout,
+ "pv.volume.point.focus",
+ pVolumeWidget->pFocusPoint);
+
+ return TRUE;
+}
+
+/* external functions */
+/**
+ *
+ * @param pParent
+ * @param pPlayerHandle
+ * @param pFunc
+ * @return
+ */
+volume_handle vp_play_volume_create(Evas_Object * pParent,
+ void *pPlayerHandle,
+ NormalVolumeChangeCbFunc pFunc)
+{
+ if (pParent == NULL) {
+ VideoLogError("pParent is NULL");
+ return NULL;
+ }
+
+ VolumeWidget *pVolumeWidget = NULL;
+
+ pVolumeWidget = calloc(1, sizeof(VolumeWidget));
+
+ if (pVolumeWidget == NULL) {
+ VideoLogError("pVolumeWidget alloc fail");
+ return NULL;
+ }
+
+ pVolumeWidget->pChangeVolFunc = pFunc;
+ pVolumeWidget->pParent = pParent;
+ pVolumeWidget->bLandscape = FALSE;
+ pVolumeWidget->pPlayerHandle = pPlayerHandle;
+
+ if (!_vp_play_volume_init_layout(pVolumeWidget)) {
+ VideoLogError("_vp_play_volume_init_layout is fail");
+ _vp_play_volume_destory_handle(pVolumeWidget);
+ return NULL;
+ }
+
+ if (!vp_sound_get_max_volume(&(pVolumeWidget->nMaxVal))) {
+ VideoLogError("vp_sound_get_max_volume fail");
+ _vp_play_volume_destory_handle(pVolumeWidget);
+ return NULL;
+ }
+
+ if (!vp_sound_get_volume(&(pVolumeWidget->nCurVal))) {
+ VideoLogError("vp_sound_get_volume fail");
+ _vp_play_volume_destory_handle(pVolumeWidget);
+ return NULL;
+ }
+
+ bool flag = vp_play_volume_unrealize(pVolumeWidget);
+ if (!flag) {
+ VideoLogError("vp_play_volume_unrealize return FALSE");
+ }
+
+ _vp_play_volume_update_value(pVolumeWidget);
+
+ return (volume_handle) pVolumeWidget;
+}
+
+/**
+ *
+ * @param pVolumeHandle
+ */
+void vp_play_volume_destroy(volume_handle pVolumeHandle)
+{
+ if (pVolumeHandle == NULL) {
+ VideoLogError("pVolumeHandle is NULL");
+ return;
+ }
+
+ VolumeWidget *pVolumeWidget = (VolumeWidget *) pVolumeHandle;
+
+ vp_play_volume_unset_mouse_callbacks(pVolumeWidget,
+ pVolumeWidget->pWin);
+ _vp_play_volume_destory_handle(pVolumeWidget);
+}
+
+/**
+ *
+ * @param pVolumeHandle
+ * @param pWin
+ * @return
+ */
+bool vp_play_volume_realize(volume_handle pVolumeHandle,
+ Evas_Object * pWin)
+{
+ VideoLogInfo("");
+ if (pVolumeHandle == NULL) {
+ VideoLogError("pVolumeHandle is NULL");
+ return FALSE;
+ }
+
+ VolumeWidget *pVolumeWidget = (VolumeWidget *) pVolumeHandle;
+
+ pVolumeWidget->bIsRealize = TRUE;
+
+ _vp_play_volume_set_widget_position(pVolumeWidget, pWin);
+
+ _vp_play_volume_set_value(pVolumeWidget, pVolumeWidget->nCurVal);
+
+ evas_object_show(pVolumeWidget->pLayout);
+ _vp_play_volume_create_timer(pVolumeWidget);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pVolumeHandle
+ * @return
+ */
+bool vp_play_volume_unrealize(volume_handle pVolumeHandle)
+{
+ VideoLogInfo("");
+ if (pVolumeHandle == NULL) {
+ VideoLogError("pVolumeHandle is NULL");
+ return FALSE;
+ }
+
+ VolumeWidget *pVolumeWidget = (VolumeWidget *) pVolumeHandle;
+
+ pVolumeWidget->bIsRealize = FALSE;
+
+ elm_object_focus_allow_set(pVolumeWidget->pFocusPoint, EINA_FALSE);
+ evas_object_hide(pVolumeWidget->pFocusPoint);
+ evas_object_hide(pVolumeWidget->pLayout);
+ return TRUE;
+}
+
+/**
+ *
+ * @param pVolumeHandle
+ * @param bLandscape
+ * @param pWin
+ * @return
+ */
+bool vp_play_volume_set_landscape_mode(volume_handle pVolumeHandle,
+ bool bLandscape, Evas_Object * pWin)
+{
+ if (pVolumeHandle == NULL) {
+ VideoLogError("pVolumeHandle is NULL");
+ return FALSE;
+ }
+
+ VolumeWidget *pVolumeWidget = (VolumeWidget *) pVolumeHandle;
+
+ pVolumeWidget->bLandscape = bLandscape;
+
+ _vp_play_volume_set_widget_position(pVolumeWidget, pWin);
+
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pVolumeHandle
+ * @param pUserData
+ * @return
+ */
+bool vp_play_volume_set_user_data(volume_handle pVolumeHandle,
+ void *pUserData)
+{
+ if (pVolumeHandle == NULL) {
+ VideoLogError("pVolumeHandle is NULL");
+ return FALSE;
+ }
+
+ VolumeWidget *pVolumeWidget = (VolumeWidget *) pVolumeHandle;
+
+ pVolumeWidget->pUserData = pUserData;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pVolumeHandle
+ * @param bIsRealize
+ * @return
+ */
+bool vp_play_volume_is_realize(volume_handle pVolumeHandle,
+ bool * bIsRealize)
+{
+ if (pVolumeHandle == NULL) {
+ VideoLogError("pVolumeHandle is NULL");
+ return FALSE;
+ }
+
+ VolumeWidget *pVolumeWidget = (VolumeWidget *) pVolumeHandle;
+
+ *bIsRealize = pVolumeWidget->bIsRealize;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pVolumeHandle
+ * @return
+ */
+bool vp_play_volume_increase_value(volume_handle pVolumeHandle)
+{
+ if (pVolumeHandle == NULL) {
+ VideoLogError("pVolumeHandle is NULL");
+ return FALSE;
+ }
+
+ VolumeWidget *pVolumeWidget = (VolumeWidget *) pVolumeHandle;
+ int nVal = 0;
+
+ if (pVolumeWidget->pDeviceTimer) {
+ nVal = pVolumeWidget->nCurVal + 1;
+ } else {
+ if (!vp_sound_get_volume(&nVal)) {
+ VideoLogError("vp_sound_get_volume fail");
+ return FALSE;
+ }
+
+ nVal++;
+ }
+
+ _vp_play_volume_create_timer(pVolumeWidget);
+
+ if (nVal > pVolumeWidget->nMaxVal) {
+ pVolumeWidget->nCurVal = pVolumeWidget->nMaxVal;
+ return TRUE;
+ }
+
+ _vp_play_volume_set_value(pVolumeWidget, nVal);
+
+ return TRUE;
+
+}
+
+/**
+ *
+ * @param pVolumeHandle
+ * @return
+ */
+bool vp_play_volume_decrease_value(volume_handle pVolumeHandle)
+{
+ if (pVolumeHandle == NULL) {
+ VideoLogError("pVolumeHandle is NULL");
+ return FALSE;
+ }
+
+ VolumeWidget *pVolumeWidget = (VolumeWidget *) pVolumeHandle;
+ int nVal = 0;
+
+ if (pVolumeWidget->pDeviceTimer) {
+ nVal = pVolumeWidget->nCurVal - 1;
+ } else {
+ if (!vp_sound_get_volume(&nVal)) {
+ VideoLogError("vp_sound_get_volume fail");
+ return FALSE;
+ }
+
+ nVal--;
+ }
+
+ _vp_play_volume_create_timer(pVolumeWidget);
+
+ if (nVal < 0) {
+ pVolumeWidget->nCurVal = 0;
+ return TRUE;
+ }
+
+ _vp_play_volume_set_value(pVolumeWidget, nVal);
+
+ return TRUE;
+
+}
+
+/**
+ *
+ * @param pVolumeHandle
+ * @return
+ */
+bool vp_play_volume_update_value(volume_handle pVolumeHandle)
+{
+ if (pVolumeHandle == NULL) {
+ VideoLogError("pVolumeHandle is NULL");
+ return FALSE;
+ }
+
+ VolumeWidget *pVolumeWidget = (VolumeWidget *) pVolumeHandle;
+ int nVal = 0;
+
+ if (pVolumeWidget->pDeviceTimer) {
+ return TRUE;
+ }
+
+ if (!vp_sound_get_volume(&nVal)) {
+ VideoLogError("vp_sound_get_volume fail");
+ return FALSE;
+ }
+
+ if (pVolumeWidget->nCurVal != nVal) {
+ pVolumeWidget->nCurVal = nVal;
+ if (pVolumeWidget->bIsRealize) {
+ _vp_play_volume_update_value(pVolumeWidget);
+ }
+ }
+
+ return TRUE;
+}
+
+
+/**
+ *
+ * @param pVolumeHandle
+ * @param bIsMute
+ * @return
+ */
+bool vp_play_volume_is_mute(volume_handle pVolumeHandle, bool * bIsMute)
+{
+ if (pVolumeHandle == NULL) {
+ VideoLogError("pVolumeHandle is NULL");
+ return FALSE;
+ }
+
+ VolumeWidget *pVolumeWidget = (VolumeWidget *) pVolumeHandle;
+
+ if (pVolumeWidget->nCurVal == 0) {
+ *bIsMute = TRUE;
+ } else {
+ *bIsMute = FALSE;
+ }
+
+ return TRUE;
+
+}
+
+/**
+ *
+ * @param pVolumeHandle
+ * @return
+ */
+int vp_play_volume_get_max_value(volume_handle pVolumeHandle)
+{
+ if (NULL == pVolumeHandle) {
+ VideoLogError("pVolumeHandle is NULL");
+ return FALSE;
+ }
+
+ VolumeWidget *pVolumeWidget = (VolumeWidget *) pVolumeHandle;
+
+ return pVolumeWidget->nMaxVal;
+}
+
+/**
+ *
+ * @param pVolumeHandle
+ * @return
+ */
+int vp_play_volume_get_value(volume_handle pVolumeHandle)
+{
+ if (NULL == pVolumeHandle) {
+ VideoLogError("pVolumeHandle is NULL");
+ return 0;
+ }
+
+ VolumeWidget *pVolumeWidget = (VolumeWidget *) pVolumeHandle;
+
+ return pVolumeWidget->nCurVal;
+}
+
+/**
+ *
+ * @param pVolumeHandle
+ * @param nVolumeVal
+ * @return
+ */
+bool vp_play_volume_set_value(volume_handle pVolumeHandle, int nVolumeVal)
+{
+ if (pVolumeHandle == NULL) {
+ VideoLogError("pVolumeHandle is NULL");
+ return FALSE;
+ }
+
+ VolumeWidget *pVolumeWidget = (VolumeWidget *) pVolumeHandle;
+
+ _vp_play_volume_create_timer(pVolumeWidget);
+
+ pVolumeWidget->nCurVal = nVolumeVal;
+
+ if (pVolumeWidget->nCurVal < 0) {
+ pVolumeWidget->nCurVal = 0;
+ }
+
+ if (pVolumeWidget->nCurVal > pVolumeWidget->nMaxVal) {
+ pVolumeWidget->nCurVal = pVolumeWidget->nMaxVal;
+ }
+
+ _vp_play_volume_set_value(pVolumeWidget, pVolumeWidget->nCurVal);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pVolumeHandle
+ * @return
+ */
+int vp_play_volume_get_mute_value(volume_handle pVolumeHandle)
+{
+ if (NULL == pVolumeHandle) {
+ VideoLogError("pVolumeHandle is NULL");
+ return 0;
+ }
+
+ VolumeWidget *pVolumeWidget = (VolumeWidget *) pVolumeHandle;
+
+ return pVolumeWidget->nMuteVal;
+}
+
+/**
+ *
+ * @param pVolumeHandle
+ * @return
+ */
+bool vp_play_volume_set_mute_value(volume_handle pVolumeHandle)
+{
+ if (pVolumeHandle == NULL) {
+ VideoLogError("pVolumeHandle is NULL");
+ return FALSE;
+ }
+
+ VolumeWidget *pVolumeWidget = (VolumeWidget *) pVolumeHandle;
+
+ if (pVolumeWidget->nMuteVal == 0) {
+ pVolumeWidget->nMuteVal = pVolumeWidget->nCurVal;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pVolumeHandle
+ * @return
+ */
+bool vp_play_volume_set_focus_in(volume_handle pVolumeHandle)
+{
+ if (pVolumeHandle == NULL) {
+ VideoLogError("pVolumeHandle is NULL");
+ return FALSE;
+ }
+
+ VolumeWidget *pVolumeWidget = (VolumeWidget *) pVolumeHandle;
+
+ evas_object_show(pVolumeWidget->pFocusPoint);
+ elm_object_focus_allow_set(pVolumeWidget->pFocusPoint, EINA_TRUE);
+ elm_object_focus_set(pVolumeWidget->pFocusPoint, EINA_TRUE);
+
+ elm_object_focus_next_object_set(pVolumeWidget->pFocusPoint,
+ pVolumeWidget->pFocusPoint,
+ ELM_FOCUS_UP);
+ elm_object_focus_next_object_set(pVolumeWidget->pFocusPoint,
+ pVolumeWidget->pFocusPoint,
+ ELM_FOCUS_DOWN);
+
+ evas_object_event_callback_del(pVolumeWidget->pFocusPoint,
+ EVAS_CALLBACK_KEY_DOWN,
+ __vp_volume_focus_key_down_cb);
+ evas_object_event_callback_add(pVolumeWidget->pFocusPoint,
+ EVAS_CALLBACK_KEY_DOWN,
+ __vp_volume_focus_key_down_cb,
+ (void *) pVolumeWidget);
+ return TRUE;
+}
+
+/**
+ *
+ * @param pVolumeHandle
+ * @param pWin
+ * @return
+ */
+bool vp_play_volume_set_mouse_callbacks(volume_handle pVolumeHandle,
+ Evas_Object * pWin)
+{
+ if (pVolumeHandle == NULL) {
+ VideoLogError("pVolumeHandle is NULL");
+ return FALSE;
+ }
+
+ VolumeWidget *pVolumeWidget = (VolumeWidget *) pVolumeHandle;
+ pVolumeWidget->pWin = pWin;
+
+ evas_object_event_callback_add(pVolumeWidget->pLayout,
+ EVAS_CALLBACK_MOUSE_DOWN,
+ __vp_volume_mouse_down_cb,
+ (void *) pVolumeWidget);
+
+ evas_object_event_callback_add(pVolumeWidget->pLayout,
+ EVAS_CALLBACK_MOUSE_UP,
+ __vp_volume_mouse_up_cb,
+ (void *) pVolumeWidget);
+
+ evas_object_event_callback_add(pVolumeWidget->pLayout,
+ EVAS_CALLBACK_MOUSE_MOVE,
+ __vp_volume_mouse_move_cb,
+ (void *) pVolumeWidget);
+ return TRUE;
+}
+
+/**
+ *
+ * @param pVolumeHandle
+ * @param pWin
+ * @return
+ */
+bool vp_play_volume_unset_mouse_callbacks(volume_handle pVolumeHandle,
+ Evas_Object * pWin)
+{
+ if (pVolumeHandle == NULL) {
+ VideoLogError("pVolumeHandle is NULL");
+ return FALSE;
+ }
+
+ VolumeWidget *pVolumeWidget = (VolumeWidget *) pVolumeHandle;
+ pVolumeWidget->pWin = pWin;
+
+ evas_object_event_callback_del(pVolumeWidget->pLayout,
+ EVAS_CALLBACK_MOUSE_DOWN,
+ __vp_volume_mouse_down_cb);
+
+ evas_object_event_callback_del(pVolumeWidget->pLayout,
+ EVAS_CALLBACK_MOUSE_UP,
+ __vp_volume_mouse_up_cb);
+
+ evas_object_event_callback_del(pVolumeWidget->pLayout,
+ EVAS_CALLBACK_MOUSE_MOVE,
+ __vp_volume_mouse_move_cb);
+ return TRUE;
+}
--- /dev/null
+
+# Project Name
+APPNAME = videos
+
+# Project Type
+type = app
+
+# Project Profile
+profile = mobile-3.0
+
+# C Sources
+USER_SRCS = playview/src/widget/vp-play-more.c playview/src/core/vp-avrcp.c playview/src/widget/vp-play-button.c src/common/mp-rotate-ctrl.c src/feature/mp-util-move.c src/common/mp-util-preference.c playview/src/feature/vp-subtitle-size.c src/view/mp-video-list-view-normal.c src/common/mp-video-info-ctrl.c src/viewMgr/videos-view-mgr.c playview/src/feature/vp-subtitle-color.c playview/src/core/vp-hollic.c src/view/mp-video-list-view-thumbnail.c src/view/mp-video-list-folder-share-via-view.c common/src/vp-chapter-db.c playview/src/core/vp-image-util.c playview/src/core/vp-multi-path.c playview/src/feature/vp-subtitle-edge.c src/view/mp-video-list-view-folder.c playview/src/widget/vp-play-volume-popup.c src/common/mp-util-media-service.c playview/src/core/vp-media-contents.c playview/src/feature/vp-play-speed.c src/widget/mp-video-list-sort-ctrl.c src/widget/mp-external-ug.c src/widget/mp-footer-toolbar.c playview/src/feature/vp-repeat.c playview/src/feature/vp-subtitle-bg-color.c common/src/vp-preview-db.c playview/src/core/vp-sensor.c src/widget/mp-video-view-popup-ctrl.c src/view/mp-video-list-view-main.c playview/src/core/vp-device.c src/feature/mp-launching-video-displayer.c playview/src/feature/vp-audio-track.c src/view/mp-video-list-view-item-of-folder.c playview/src/feature/vp-subtitle.c playview/src/feature/vp-share.c common/src/vp-thumb-db.c playview/src/feature/vp-detail.c src/view/mp-video-list-personal-view.c playview/src/feature/vp-capture.c playview/src/core/vp-media-key.c src/common/mp-util.c playview/src/widget/vp-play-loading-ani.c src/common/mp-drm-ctrl.c playview/src/widget/vp-play-progressbar.c src/video-player.c src/view/mp-video-list-share-via-view.c src/common/mp-util-config.c playview/src/view/vp-play-normal-view.c src/view/mp-video-list-remove-view.c src/widget/mp-util-widget-ctrl.c playview/src/widget/vp-play-subtitle.c common/src/vp-util.c src/view/mp-video-list-view-select.c playview/src/feature/vp-setting.c core/src/vp-drm.c video-downloader/src/VppDownload.c src/view/mp-video-list-personal-ctrl.c src/widget/mp-video-list-option-ctrl.c playview/src/common/vp-play-util.c playview/src/widget/vp-play-popup.c playview/src/common/vp-play-ug.c playview/src/vp-play-view.c common/src/vp-file-util.c playview/src/feature/vp-sound-path.c playview/src/common/vp-play-preference.c common/src/vp-pinch-zoom.c src/view/mp-video-list-remove-ctrl.c src/view/mp-library-view-mgr.c common/src/vp-media-content-util.c common/src/vp-db-util.c playview/src/widget/vp-play-bookmark.c playview/src/feature/vp-subtitle-select.c playview/src/widget/vp-play-volume.c src/view/mp-video-detail-view.c playview/src/feature/vp-zoom-guide.c src/view/mp-video-search-view.c playview/src/feature/vp-subtitle-font.c src/common/mp-video-util-db-controller.c playview/src/core/vp-mm-player.c playview/src/feature/vp-subtitle-track.c src/widget/mp-video-rename-ctrl.c playview/src/core/vp-device-language.c playview/src/core/vp-sound.c playview/src/feature/vp-subtitle-alignment.c src/widget/mp-video-list-view-as-ctrl.c playview/src/widget/vp-play-brightness-popup.c playview/src/feature/vp-sound-alive.c playview/src/common/vp-play-config.c src/view/mp-video-list-view-common.c playview/src/feature/vp-subtitle-sync.c src/widget/mp-video-nocontent-layout.c src/widget/mp-video-list-auto-play-ctrl.c playview/src/widget/vp-play-minicontroller.c playview/src/widget/vp-play-lockscreenmc.c
+
+# EDC Sources
+USER_EDCS =
+
+# PO Sources
+USER_POS = res/po/pt_BR.po res/po/el_GR.po res/po/sr.po res/po/sl.po res/po/mk.po res/po/en.po res/po/da.po res/po/zh_HK.po res/po/fr_CA.po res/po/es_ES.po res/po/et.po res/po/cs.po res/po/ga.po res/po/de.po res/po/ja_JP.po res/po/uk.po res/po/sv.po res/po/nl.po res/po/fr.po res/po/ca.po res/po/nb.po res/po/zh_TW.po res/po/pt_PT.po res/po/hu.po res/po/hi.po res/po/es_US.po res/po/ka.po res/po/is.po res/po/ru_RU.po res/po/en_US.po res/po/hy.po res/po/zh_CN.po res/po/sk.po res/po/tr_TR.po res/po/ar.po res/po/gl.po res/po/az.po res/po/kk.po res/po/eu.po res/po/ko_KR.po res/po/it_IT.po res/po/en_PH.po res/po/pl.po res/po/lv.po res/po/fi.po res/po/bg.po res/po/ro.po res/po/uz.po res/po/lt.po res/po/hr.po
+
+# User Defines
+USER_DEFS = VS_FEATURE_THUMBNAIL_VIEW VS_FEATURE_FOLDER_VIEW SUBTITLE_K_FEATURE ENABLE_LANDSCAPE USE_SWITCH ENABLE_PERSONAL ENABLE_SUBTITLE ENABLE_NOTICE_POPUP ENABLE_VOLUME_BRIGHTNESS_POPUP _USE_OPENGL_BACKEND ENABLE_EMBEDED_PROGRESS ENABLE_S_BEAM VS_FEATURE_THUMBNAIL_VIEW VS_FEATURE_FOLDER_VIEW
+USER_CPP_DEFS =
+
+# User Undefines
+USER_UNDEFS =
+USER_CPP_UNDEFS =
+
+# User Libraries
+USER_LIBS =
+
+# User Objects
+USER_OBJS =
+USER_OBJS_ABS =
+
+# User Includes
+## C Compiler
+USER_INC_DIRS = include vp-main/include playview/src/common/include common/include include/feature include/widget include/view core/include common/src/include playview/include video-downloader/include vp-main/include/serviceParser playview/src/widget/include playview/src/view/include playview/src/feature/include playview/src/core/include include/viewMgr playview/src/include include/common playview/src/widget/include
+USER_INC_DIRS_ABS =
+USER_INC_FILES =
+USER_INC_FILES_ABS =
+## C++ Compiler
+USER_CPP_INC_DIRS =
+USER_CPP_INC_DIRS_ABS =
+USER_CPP_INC_FILES =
+USER_CPP_INC_FILES_ABS =
+
+# User Library Path
+USER_LIB_DIRS =
+USER_LIB_DIRS_ABS =
+
+# EDC Resource Path
+USER_EDCS_IMAGE_DIRS = edje/images playview/res/edje/images res/images
+USER_EDCS_IMAGE_DIRS_ABS =
+USER_EDCS_SOUND_DIRS = edje/sounds res/edje
+USER_EDCS_SOUND_DIRS_ABS =
+USER_EDCS_FONT_DIRS = edje/fonts
+USER_EDCS_FONT_DIRS_ABS =
+
+# EDC Flags
+USER_EXT_EDC_KEYS = EDC0
+
+USER_EXT_EDC0_EDCS = res/edje/vp-custom-winset-style.edc playview/res/edje/pv-brightness-popup.edc playview/res/edje/pv-normal-top-control.edc res/edje/vp-main-listview-internal.edc playview/res/edje/pv-speed-popup.edc res/edje/vp-remove-list-internal.edc res/edje/vp-ctxpopup-option.edc res/edje/vp-device-list-internal.edc res/edje/vp-search-view-internal.edc playview/res/edje/pv-chapter-main-new.edc res/edje/vp-thumbnail-view.edc playview/res/edje/pv-trim-control.edc playview/res/edje/pv-volume.edc playview/res/edje/pv-progressbar.edc res/edje/vp-images.edc playview/res/edje/pv-normal-control.edc playview/res/edje/pv-tag-buddy.edc playview/res/edje/pv-gesture.edc playview/res/edje/pv-volume-popup.edc playview/res/edje/pv-multi-main.edc playview/res/edje/pv-minicontroller.edc playview/res/edje/pv-zoom-guide.edc res/edje/landscape_thumbnail.edc playview/res/edje/pv-subtitle-color-popup.edc playview/res/edje/pv-popup.edc res/shared/res/video.edc res/edje/panel.edc playview/res/edje/pv-sensor-popup.edc playview/res/edje/pv-bookmark-item.edc res/edje/vp-main-layout.edc playview/res/edje/pv-subtitle.edc res/edje/vp-motion-popup.edc res/edje/popup_progressbar.edc playview/res/edje/pv-custom-winset.edc res/edje/vp-main-listview-preview.edc res/edje/vp-naviframe.edc playview/res/edje/pv-resource.edc playview/res/edje/pv-bookmark.edc playview/res/edje/pv-trim-item.edc playview/res/edje/pv-normal-function.edc res/edje/vp-speedbox-popup.edc playview/res/edje/pv-trim-top-control.edc playview/res/edje/pv-normal-main.edc playview/res/edje/pv-tag-preview.edc playview/res/edje/pv-trim-main.edc res/edje/vp-genlist-no-item.edc playview/res/edje/pv-colorselector.edc playview/res/edje/pv-lockscreenmini.edc
+USER_EXT_EDC0_EDCS_IMAGE_DIRS = edje/images playview/res/edje/images res/images
+USER_EXT_EDC0_EDCS_IMAGE_DIRS_ABS =
+USER_EXT_EDC0_EDCS_SOUND_DIRS = edje/sounds res/edje
+USER_EXT_EDC0_EDCS_SOUND_DIRS_ABS =
+USER_EXT_EDC0_EDCS_FONT_DIRS = edje/fonts
+USER_EXT_EDC0_EDCS_FONT_DIRS_ABS =
+
+# Resource Filter
+USER_RES_INCLUDE =
+USER_RES_EXCLUDE = res/**/*.edc res/images vp-main/res/edje/images
+
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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; \
+ } \
+ } \
+ } \
+ }
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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;
+}
+
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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 */
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES 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
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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";
+ }
+ }
+ }
+}
+
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#define BUTTON_BG_NORMAL "white/common/00_button_01.png"
+#define BUTTON_BG_PRESS "white/common/00_button_01_press.png"
+#define NO_ITEM_BUTTON_WIDTH 688
+#define NO_ITEM_BUTTON_HEIGHT 80
+
+#define BUTTON_BG_BACK_NORMAL "T01_icon_soft_back.png"
+#define BUTTON_BG_CLEAR_NORMAL "T01-2_icon_toolbar_cancel.png"
+
+//////////////////////////////////////////////////////////////
+
+#define VP_BUTTON_STYLE(__name,__bg_normal,__bg_pressed,__width,__height) \
+group { name: "elm/button/base/video/"__name; \
+ images { \
+ image: __bg_normal COMP; \
+ image: __bg_pressed COMP; \
+ } \
+ parts { \
+ part { \
+ name: __name"_bg"; \
+ mouse_events: 0; \
+ type: RECT; \
+ scale: 1; \
+ description { \
+ state: "default" 0.0; \
+ align: 0.0 0.0; \
+ visible: 0; \
+ min: __width __height; \
+ max: __width __height; \
+ fixed: 1 1; \
+ rel1 { \
+ relative: 0.0 0.0; \
+ } \
+ rel2 { \
+ relative: 1.0 1.0; \
+ } \
+ color: 0 0 0 0; \
+ } \
+ description { state: "invisible" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 0; \
+ } \
+ } \
+ part{ \
+ name : __name"_press_bg"; \
+ type: IMAGE; \
+ mouse_events:1; \
+ scale : 1; \
+ description { \
+ state: "default" 0.0; \
+ align: 0 0; \
+ visible:1; \
+ image { \
+ normal: __bg_normal; \
+ border: 13 13 15 15; \
+ border_scale: 1; \
+ } \
+ rel1 { \
+ relative: 0 0; \
+ to: __name"_bg"; \
+ } \
+ rel2 { \
+ relative: 1 1; \
+ to: __name"_bg"; \
+ } \
+ } \
+ description { \
+ state: "press" 0.0; \
+ inherit: "default" 0.0; \
+ image { normal: __bg_pressed; } \
+ } \
+ description { state: "invisible" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 0; \
+ } \
+ } \
+ part { \
+ name: "elm.text"; \
+ type: TEXT; \
+ mouse_events: 1; \
+ scale: 1; \
+ description { \
+ state: "default" 0.0; \
+ align: 0.5 0.5; \
+ visible:1; \
+ rel1 { \
+ relative: 0 0; \
+ to: __name"_bg"; \
+ } \
+ rel2 { \
+ relative: 1 1; \
+ to: __name"_bg"; \
+ } \
+ color: 50 50 50 255; \
+ text { \
+ font: "Tizen:style=Medium"; \
+ size: 36; \
+ min: 0 0; \
+ max: 1 0; \
+ align: 0.5 0.5; \
+ } \
+ } \
+ description { \
+ state: "press" 0.0; \
+ inherit: "default" 0.0; \
+ color: 248 246 239 255; \
+ } \
+ description { state: "invisible" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 0; \
+ } \
+ } \
+ } \
+ programs{ \
+ program{\
+ name: __name"_after_down"; \
+ source: "elm.text"; \
+ signal: "mouse,down,1"; \
+ action: STATE_SET "press" 0.0; \
+ target: __name"_bg"; \
+ target: __name"_press_bg"; \
+ target: "elm.text"; \
+ } \
+ program { \
+ name: __name"_down"; \
+ source: "*"; \
+ signal: "mouse,down,1"; \
+ action: PLAY_SAMPLE "button-pressed" 1.0; \
+ after: __name"_after_down"; \
+ } \
+ program { \
+ name: __name"_up"; \
+ source: "*"; \
+ signal: "mouse,up,1"; \
+ action: STATE_SET "default" 0.0; \
+ target: __name"_bg"; \
+ target: __name"_press_bg"; \
+ target: "elm.text"; \
+ } \
+ } \
+}
+
+VP_BUTTON_STYLE("sign_in", BUTTON_BG_NORMAL, BUTTON_BG_PRESS, NO_ITEM_BUTTON_WIDTH, NO_ITEM_BUTTON_HEIGHT)
+
+group {
+ name: "elm/button/base/text";
+ parts {
+ part {
+ name: "bg";
+ type: RECT;
+ mouse_events: 1;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ min: 200 100;
+ }
+ }
+ part {
+ name: "text_part_left";
+ type: TEXT;
+ mouse_events: 1;
+ description {
+ state: "default" 0.0;
+ align: 0.5 0.5;
+ color: 255 255 255 255;
+ rel1 {
+ relative: 0.1 0;
+ to: "bg";
+ }
+ rel2 {
+ relative: 1 1;
+ to: "bg";
+ }
+ text {
+ size: 30;
+ min: 0 0;
+ max: 1 0;
+ }
+ }
+ }
+ part {
+ name: "text_part_right";
+ type: TEXT;
+ mouse_events: 1;
+ description {
+ state: "default" 0.0;
+ align: 0.5 0.5;
+ color: 255 255 255 255;
+ rel1 {
+ relative: 0.0 0;
+ to: "bg";
+ }
+ rel2 {
+ relative: 0.9 1;
+ to: "bg";
+ }
+ text {
+ size: 30;
+ min: 0 0;
+ max: 1 0;
+ }
+ }
+ }
+ } /*parts*/
+ programs {
+ program {
+ name: "buttonclicked";
+ signal: "mouse,clicked,1";
+ source: "bg";
+ action: SIGNAL_EMIT "elm,action,click" "";
+ }
+ program {
+ name: "buttonlefttextclicked";
+ signal: "mouse,clicked,1";
+ source: "text_part_left";
+ action: SIGNAL_EMIT "elm,action,click" "";
+ }
+ program {
+ name: "buttonrighttextclicked";
+ signal: "mouse,clicked,1";
+ source: "text_part_right";
+ action: SIGNAL_EMIT "elm,action,click" "";
+ }
+ }
+
+}
+group {
+ name: "elm/button/base/back";
+ images
+ {
+ image: BUTTON_BG_BACK_NORMAL COMP;
+ }
+ parts {
+ part {
+ name: "bg";
+ type: RECT;
+ mouse_events: 1;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ min: 50 80;
+ max: 50 80;
+ }
+ }
+ part {
+ name: "icon";
+ type: IMAGE;
+ mouse_events: 1;
+ description {
+ state: "default" 0.0;
+ rel1 {
+ relative: 0 0;
+ to: "bg";
+ }
+ rel2 {
+ relative: 1 1;
+ to: "bg";
+ }
+ image {
+ normal: BUTTON_BG_BACK_NORMAL;
+ }
+ }
+ }
+ } /*parts*/
+ programs {
+ program {
+ name: "buttonclicked";
+ signal: "mouse,clicked,1";
+ source: "bg";
+ action: SIGNAL_EMIT "elm,action,click" "";
+ }
+ program {
+ name: "buttontextclicked";
+ signal: "mouse,clicked,1";
+ source: "icon";
+ action: SIGNAL_EMIT "elm,action,click" "";
+ }
+ }
+
+}
+group {
+ name: "elm/button/base/clear";
+ images
+ {
+ image: BUTTON_BG_CLEAR_NORMAL COMP;
+ }
+ parts {
+ part {
+ name: "bg";
+ type: RECT;
+ mouse_events: 1;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ min: 50 50;
+ max: 50 50;
+ }
+ }
+ part {
+ name: "icon";
+ type: IMAGE;
+ mouse_events: 1;
+ description {
+ state: "default" 0.0;
+ rel1 {
+ relative: 0 0;
+ to: "bg";
+ }
+ rel2 {
+ relative: 1 1;
+ to: "bg";
+ }
+ image {
+ normal: BUTTON_BG_CLEAR_NORMAL;
+ }
+ min: 30 30;
+ max: 30 30;
+ color: 0 0 0 255;
+ }
+ }
+ } /*parts*/
+ programs {
+ program {
+ name: "buttonclicked";
+ signal: "mouse,clicked,1";
+ source: "bg";
+ action: SIGNAL_EMIT "elm,action,click" "";
+ }
+ program {
+ name: "buttontextclicked";
+ signal: "mouse,clicked,1";
+ source: "icon";
+ action: SIGNAL_EMIT "elm,action,click" "";
+ }
+ }
+
+}
+group {
+ name: "elm/button/base/clear_dim";
+ images
+ {
+ image: BUTTON_BG_CLEAR_NORMAL COMP;
+ }
+ parts {
+ part {
+ name: "bg";
+ type: RECT;
+ mouse_events: 1;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ min: 30 30;
+ max: 30 30;
+ }
+ }
+ part {
+ name: "icon";
+ type: IMAGE;
+ description {
+ state: "default" 0.0;
+ rel1 {
+ relative: 0 0;
+ to: "bg";
+ }
+ rel2 {
+ relative: 1 1;
+ to: "bg";
+ }
+ image {
+ normal: BUTTON_BG_CLEAR_NORMAL;
+ }
+ color: 100 100 100 255;
+ }
+ }
+ } /*parts*/
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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";
+ }
+ }
+ }
+
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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; }
+ }
+ }
+ }
+}
+
+}
+
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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);
+ }
+ }
+ }
+ }
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#define GENLIST_HEIGHT_MULTILINE_SUB 38
+#define GENLIST_HEIGHT_2LINE_SUB 42
+#define GENLIST_LIST_SUB_TEXT_SIZE 32
+#define GENLIST_TREESIZE_DEFAULT 26
+#define GENLIST_PART_LIST_LINE_HEIGHT 1
+#define GENLIST_HEIGHT_2LINE_MAIN_MULTI 57
+#define GENLIST_PADDING_SIZE_DEFAULT 16
+#define GENLIST_PADDING_SIZE_LEFT_MULTI 62
+#define GENLIST_PADDING_SIZE_RIGHT_MULTI GENLIST_PADDING_SIZE_LEFT_MULTI
+#define GENLIST_PADDING_SIZE_TOP_2LINE_MULTI 19
+#define GENLIST_PADDING_SIZE_BOTTOM_2LINE_MULTI 19
+#define GENLIST_HEIGHT_1LINE_MULTI 104 // (114 - top/bottom padding)
+#define GENLIST_PADDING_SIZE_TOP 5
+#define GENLIST_PADDING_SIZE_BOTTOM 5
+#define GENLIST_ICON_MEDIUM_SIZE 81
+#define GENLIST_BTN_01_HEIGHT 74
+
+
+//popup
+#define POPUP_ITEM_BG_PRESSED_BORDER_INC 8 8 8 8
+#define POPUP_ITEM_BG_LEFT_TOP_PAD_MIN_INC 4 4
+#define POPUP_ITEM_BG_RIGHT_BOTTOM_PAD_MIN_INC 4 6
+
+
+#define GENLIST_LIST_SUB_TEXT_DEFAULT_COLOR_STYLE_M "#4F4F4FFF"
+#define GENLIST_LIST_SUB_TEXT_DEFAULT_DIM_COLOR_STYLE_M "#A3A99FFF"
+#define GENLIST_LIST_TEXT_FOCUS_COLOR_STYLE "#FFFFFFFF"
+#define GENLIST_PART_MATCH_TAG_COLOR_M "+ color=#1382FF"
+#define GENLIST_LIST_BG_COLOR_M 248 246 239 0
+#define GENLIST_LIST_PRESS_COLOR 87 135 194 255
+#define GENLIST_LIST_DIM_COLOR_M 248 246 239 255
+#define GENLIST_LIST_LINE2_COLOR_M 204 203 199 255
+#define GENLIST_LIST_LINE1_COLOR_M 250 250 250 255
+#define GENLIST_LIST_MAIN_TEXT_UNREAD_COLOR 0 0 0 255
+
+
+// Genlist Text
+#define GENLIST_LIST_MAIN_TEXT_SIZE 44
+#define GENLIST_LIST_MAIN_TEXT_UNREAD_COLOR_STYLE "#000000FF"
+#define GENLIST_LIST_MAIN_TEXT_UNREAD_DIM_COLOR_M 124 123 119 255
+#define GENLIST_LIST_MAIN_TEXT_UNREAD_DIM_COLOR_STYLE_M "#7C7B77FF"
+#define GENLIST_LIST_MAIN_TEXT_READ_COLOR 128 128 128 255
+#define GENLIST_LIST_MAIN_TEXT_READ_DIM_COLOR_M 188 187 183 255
+#define GENLIST_LIST_TEXT_FOCUS_COLOR 255 255 255 255
+#define GENLIST_LIST_TEXT_FOCUS_COLOR_STYLE "#FFFFFFFF"
+
+
+
+//popup
+#define GENLIST_LIST_BG_POPUP_COLOR 0 0 0 0
+#define GENLIST_LIST_BG_POPUP_PRESS_COLOR 255 255 255 255
+#define GENLIST_LIST_LINE1_POPUP_COLOR 211 209 203 255
+#define GENLIST_LIST_LINE2_POPUP_COLOR 250 250 250 255
+
+
+#define GENLIST_PARAM_ICON_MEDIUM \
+ min: GENLIST_ICON_MEDIUM_SIZE GENLIST_ICON_MEDIUM_SIZE; \
+ max: GENLIST_ICON_MEDIUM_SIZE GENLIST_ICON_MEDIUM_SIZE;
+
+#define GENLIST_PARAM_ICON_BTN_01 \
+ min: 0 GENLIST_BTN_01_HEIGHT; \
+ max: -1 GENLIST_BTN_01_HEIGHT;
+
+sounds {
+ sample {
+ name: "touch_sound" RAW;
+ source: "button-pressed.wav";
+ }
+}
+
+#define STYLE_TAG_M \
+ tag: "br" "\n";\
+ tag: "ps" "ps";\
+ tag: "tab" "\t";\
+ tag: "b" "+ font_weight=Bold";
+
+#define STYLE_TAG_MATCH_M \
+ tag: "match" GENLIST_PART_MATCH_TAG_COLOR_M;
+
+
+styles {
+ style { name: "genlist_style_list_sub_text_default_wrap";
+ base: "font=Tizen:style=Bold font_size="GENLIST_LIST_SUB_TEXT_SIZE" color=#FFFFFF wrap=mixed";
+ STYLE_TAG_M
+ STYLE_TAG_MATCH_M
+ }
+ style { name: "genlist_style_list_sub_text_default_dim_wrap";
+ base: "font=Tizen:style=Bold font_size="GENLIST_LIST_SUB_TEXT_SIZE" color=#FFFFFF wrap=mixed";
+ STYLE_TAG_M
+ STYLE_TAG_MATCH_M
+ }
+ style { name: "genlist_style_list_sub_text_focus_wrap";
+ base: "font=Tizen:style=Bold font_size="GENLIST_LIST_SUB_TEXT_SIZE" color=#FFFFFF wrap=mixed";
+ STYLE_TAG_M
+ STYLE_TAG_MATCH_M
+ }
+
+ style { name: "genlist_style_list_main_text_default_wrap";
+ base: "font=Tizen:style=Bold font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color=#FFFFFF wrap=mixed";
+ STYLE_TAG_M
+ STYLE_TAG_MATCH_M
+ }
+ style { name: "genlist_style_list_main_text_default_dim_wrap";
+ base: "font=Tizen:style=Bold font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color=#FFFFFF wrap=mixed";
+ STYLE_TAG_M
+ STYLE_TAG_MATCH_M
+ }
+ style { name: "genlist_style_list_main_text_focus_wrap";
+ base: "font=Tizen:style=Bold font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color=#FFFFFF wrap=mixed";
+ STYLE_TAG_M
+ STYLE_TAG_MATCH_M
+ }
+}
+
+
+#define GENLIST_NAME(NAME) \
+ name: "elm/genlist/item/"NAME; \
+ alias: "elm/genlist/item_compress/"NAME; \
+ alias: "elm/genlist/tree/"NAME; \
+ alias: "elm/genlist/tree_compress/"NAME;
+
+ // | PART == HERE |
+ // ------------------
+ #define GENLIST_DESCRIPTION_ENVELOP( PART, PARAM ) \
+ description { state: "default" 0.0;\
+ rel1 { \
+ relative: 0 0; \
+ to: PART; \
+ }\
+ rel2 {\
+ relative: 1 1;\
+ to: PART; \
+ }\
+ PARAM\
+ }
+
+
+ // | top |
+ // ---------------------
+ // left | HERE | right
+ // ---------------------
+ // | bottom |
+#define GENLIST_DESCRIPTION( left, right, top, bottom, param ) \
+ description { state: "default" 0.0;\
+ rel1 { \
+ relative: 1 1; \
+ to_x: left; \
+ to_y: top; \
+ }\
+ rel2 {\
+ relative: 0 0;\
+ to_x: right;\
+ to_y: bottom;\
+ }\
+ param\
+ }
+
+
+// | top |
+// ---------------------
+// left | HERE | right
+#define GENLIST_DESCRIPTION_LRT( left, right, top, param ) \
+ description { state: "default" 0.0;\
+ align: 0.5 0;\
+ rel1 { \
+ relative: 1 1; \
+ to_x: left; \
+ to_y: top; \
+ }\
+ rel2 {\
+ relative: 0 1;\
+ to_x: right;\
+ to_y: top;\
+ }\
+ param\
+ }
+
+// ---------------------
+// left |--> HERE
+// ---------------------
+#define GENLIST_DESCRIPTION_L( left, param ) \
+ description { state: "default" 0.0;\
+ align: 0 0.5; \
+ fixed: 1 0; \
+ rel1 { \
+ relative: 1 0; \
+ to_x: left; \
+ to_y: "base"; \
+ }\
+ rel2 { \
+ relative: 1 1;\
+ to_x: left; \
+ to_y: "base"; \
+ }\
+ param\
+ }
+
+// | top |
+// -----------------
+// | HERE <--| right
+// -----------------
+// | bottom |
+#define GENLIST_DESCRIPTION_RTB( right, top, bottom, param ) \
+ description { state: "default" 0.0;\
+ align: 1 0.5;\
+ rel1 { \
+ relative: 0 1; \
+ to_x: right; \
+ to_y: top; \
+ }\
+ rel2 {\
+ relative: 0 0;\
+ to_x: right;\
+ to_y: bottom;\
+ }\
+ param\
+ }
+
+// --------------------------
+// left |--> HERE <--| right
+// --------------------------
+#define GENLIST_DESCRIPTION_LR( left, right, param ) \
+ description { state: "default" 0.0;\
+ rel1 { \
+ relative: 1 0; \
+ to_x: left; \
+ to_y: "base"; \
+ }\
+ rel2 {\
+ relative: 0 1;\
+ to_x: right;\
+ to_y: "base"; \
+ }\
+ param\
+ }
+
+// | top |
+// ---------------------
+// left |--> HERE |
+// ---------------------
+// | bottom |
+#define GENLIST_DESCRIPTION_LTB( left, top, bottom, param ) \
+ description { state: "default" 0.0;\
+ align: 0 0.5;\
+ rel1 { \
+ relative: 1 1; \
+ to_x: left; \
+ to_y: top; \
+ }\
+ rel2 {\
+ relative: 1 0;\
+ to_x: left;\
+ to_y: bottom;\
+ }\
+ param\
+ }
+
+
+#define GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS_TB_WRAP \
+ description { state: "disabled" 0.0; \
+ inherit: "default" 0.0; \
+ text.style: "genlist_style_list_sub_text_default_dim_wrap"; \
+ } \
+ description { state: "selected" 0.0; \
+ inherit: "default" 0.0; \
+ text.style: "genlist_style_list_sub_text_focus_wrap"; \
+ }
+
+#define GENLIST_PARAM_SUBITEM_DEFAULT_TB_WRAP \
+ text { \
+ min: 0 1; \
+ style: "genlist_style_list_sub_text_default_wrap"; \
+ }
+
+#define GENLIST_PARAM_MAINITEM_DEFAULT_TB_WRAP \
+ text { \
+ min: 0 1; \
+ style: "genlist_style_list_main_text_default_wrap"; \
+ }
+
+#define GENLIST_DESCRIPTION_MAINITEM_DEFAULT_OTHERS_TB_WRAP \
+ description { state: "disabled" 0.0; \
+ inherit: "default" 0.0; \
+ text.style: "genlist_style_list_main_text_default_dim_wrap"; \
+ } \
+ description { state: "selected" 0.0; \
+ inherit: "default" 0.0; \
+ text.style: "genlist_style_list_main_text_focus_wrap"; \
+ }
+
+#define GENLIST_PART_TEXTBLOCK_M(NAME, DESCRIPION) \
+ part { name: NAME; \
+ scale: 1; \
+ type: TEXTBLOCK; \
+ repeat_events: 1; \
+ DESCRIPION \
+ }
+
+#define GENLIST_PART_TEXT_M(NAME, DESCRIPION) \
+ part { name: NAME; \
+ scale: 1; \
+ type: TEXT; \
+ repeat_events: 1; \
+ DESCRIPION \
+ }
+
+#define GENLIST_PART_SPACER_M(NAME, DESCRIPION) \
+ part { name: NAME; \
+ scale: 1; \
+ mouse_events: 0; \
+ type: SPACER; \
+ DESCRIPION \
+ }
+
+#define GENLIST_PART_RECT_M(NAME, DESCRIPION) \
+ part { name: NAME; \
+ scale: 1; \
+ type: RECT; \
+ DESCRIPION \
+ }
+
+#define GENLIST_PART_IMAGE(NAME, DESCRIPION) \
+ part { name: NAME; \
+ scale: 1; \
+ type: IMAGE; \
+ DESCRIPION \
+ }
+
+#define GENLIST_PART_ICON_M(NAME, DESCRIPION) \
+ part { name: NAME; \
+ scale: 1; \
+ type: SWALLOW; \
+ DESCRIPION \
+ }
+
+#define GENLIST_PART_ICON_MEDIUM_L(NAME, LEFT) \
+ GENLIST_PART_ICON_M(NAME, \
+ GENLIST_DESCRIPTION_LTB(LEFT, "elm.padding.top", "elm.padding.bottom", \
+ GENLIST_PARAM_ICON_MEDIUM \
+ fixed: 1 1; \
+ ) \
+ )
+
+
+// list main text
+#define GENLIST_PARAM_LISTITEM \
+ color: 8 8 8 255; \
+ text { \
+ align: 0 0.5; \
+ min: 0 1; \
+ font: "Tizen:style=Regular"; \
+ size: GENLIST_LIST_MAIN_TEXT_SIZE; \
+ }
+
+// list main text
+#define GENLIST_DESCRIPTION_LISTITEM_OTHERS_M \
+ description { state: "disabled" 0.0; \
+ inherit: "default" 0.0; \
+ color: GENLIST_LIST_MAIN_TEXT_UNREAD_DIM_COLOR_M; \
+ } \
+ description { state: "read" 0.0; \
+ inherit: "default" 0.0; \
+ color: GENLIST_LIST_MAIN_TEXT_READ_COLOR; \
+ } \
+ description { state: "read,disabled" 0.0; \
+ inherit: "default" 0.0; \
+ color: GENLIST_LIST_MAIN_TEXT_READ_DIM_COLOR_M; \
+ } \
+ description { state: "selected" 0.0; \
+ inherit: "default" 0.0; \
+ color: GENLIST_LIST_TEXT_FOCUS_COLOR; \
+ }
+
+#define GENLIST_PART_PADDING_T_SIZE( NAME, TOP, SIZE ) \
+ GENLIST_PART_SPACER_M(NAME, \
+ description { state: "default" 0.0; \
+ min: 0 SIZE; \
+ max: -1 SIZE; \
+ fixed: 0 1; \
+ align: 0.5 0; \
+ rel1 { \
+ relative: 0 1; \
+ to: TOP; \
+ } \
+ rel2 { \
+ relative: 1 1; \
+ to: TOP; \
+ } \
+ } \
+ )
+
+#define GENLIST_PART_EXPANDED_PAD \
+ part { name: "elm.swallow.pad"; \
+ type: SWALLOW; \
+ scale: 1; \
+ mouse_events: 0; \
+ description { state: "default" 0.0; \
+ visible: 0; \
+ min: 0 0; \
+ fixed: 1 0; \
+ align: 0.0 0.5; \
+ rel1.to: "base"; \
+ rel2.to: "base"; \
+ rel2.relative: 0.0 1.0; \
+ } \
+ } \
+
+#define GENLIST_PROLOG \
+ data.item: "selectraise" "on"; \
+ data.item: "treesize" 0;
+
+
+#define GENLIST_PROLOG_NORMAL \
+ GENLIST_PROLOG \
+ data.item: "treesize" GENLIST_TREESIZE_DEFAULT; \
+ data.item: "flips" "elm.flip.icon elm.flip.content"; \
+ images { \
+ image : "00_list_group_bg.png" COMP; \
+ image : "00_list_group_bg_press.png" COMP; \
+ }
+
+#define GENLIST_PART_BASE_SIZE(HEIGHT) \
+ part { name: "base"; \
+ type: RECT; \
+ mouse_events: 0; \
+ scale: 1; \
+ description { state: "default" 0.0; \
+ color: 0 0 0 0; \
+ min: 0 HEIGHT; \
+ } \
+ } \
+ part { name: "state"; \
+ type: RECT; \
+ mouse_events: 0; \
+ scale: 1; \
+ description { state: "default" 0.0; \
+ color: 0 0 0 0; \
+ } \
+ description { state: "decorate" 0.0; \
+ inherit: "default"; \
+ } \
+ description { state: "reorder" 0.0; \
+ inherit: "default"; \
+ } \
+ description { state: "decorate_reorder" 0.0; \
+ inherit: "default"; \
+ } \
+ }
+
+#define GENLIST_PART_BASE_M \
+ GENLIST_PART_BASE_SIZE(0)
+
+#define GENLIST_DESCRIPTION_DECORATE_PADDING \
+ description { state: "decorate" 0.0; \
+ inherit: "default" 0.0; \
+ min: 0 0; \
+ max: 0 0; \
+ }
+
+#define GENLIST_DESCRIPTION_DECORATE_REORDER_PADDING \
+ description { state: "decorate_reorder" 0.0; \
+ inherit: "default" 0.0; \
+ min: 0 0; \
+ max: 0 0; \
+ }
+
+#define GENLIST_DESCRIPTION_REORDER_PADDING \
+ description { state: "reorder" 0.0; \
+ inherit: "default" 0.0; \
+ min: 32 0; \
+ max: 32 -1; \
+ }
+
+
+#define GENLIST_PART_PADDING_LEFT_M \
+ GENLIST_PART_EXPANDED_PAD \
+ GENLIST_PART_SPACER_M("elm.padding.left", \
+ GENLIST_DESCRIPTION_L("elm.swallow.pad", \
+ min: GENLIST_PADDING_SIZE_LEFT_MULTI 0; \
+ max: GENLIST_PADDING_SIZE_LEFT_MULTI -1; \
+ fixed: 1 0; \
+ ) \
+ GENLIST_DESCRIPTION_DECORATE_PADDING \
+ GENLIST_DESCRIPTION_REORDER_PADDING \
+ GENLIST_DESCRIPTION_DECORATE_REORDER_PADDING \
+ )
+
+#define GENLIST_PART_PADDING_RIGHT_M \
+ GENLIST_PART_SPACER_M("elm.padding.right", \
+ description { state: "default" 0.0; \
+ min: GENLIST_PADDING_SIZE_RIGHT_MULTI 0; \
+ max: GENLIST_PADDING_SIZE_RIGHT_MULTI -1; \
+ fixed: 1 0; \
+ align: 1.0 0.5; \
+ rel1.to: "base"; \
+ rel2.to: "base"; \
+ rel1.relative: 1 0; \
+ } \
+ GENLIST_DESCRIPTION_DECORATE_PADDING \
+ GENLIST_DESCRIPTION_REORDER_PADDING \
+ GENLIST_DESCRIPTION_DECORATE_REORDER_PADDING \
+ )
+
+
+#define GENLIST_PART_PADDING_R_M( NAME, RIGHT ) \
+ GENLIST_PART_SPACER_M(NAME, \
+ description { state: "default" 0.0; \
+ fixed: 1 0; \
+ min: GENLIST_PADDING_SIZE_DEFAULT 0; \
+ max: GENLIST_PADDING_SIZE_DEFAULT -1; \
+ align: 1 0.5; \
+ rel1 { \
+ relative: 0 0; \
+ to_x: RIGHT; \
+ } \
+ rel2 { \
+ relative: 0 1; \
+ to_x: RIGHT; \
+ } \
+ } \
+ )
+
+#define GENLIST_PART_ICON_BTN_01_RTB(NAME, RIGHT, TOP, BOTTOM) \
+ GENLIST_PART_ICON_M(NAME, \
+ GENLIST_DESCRIPTION_RTB(RIGHT, TOP, BOTTOM,\
+ GENLIST_PARAM_ICON_BTN_01 \
+ fixed: 1 1; \
+ ) \
+ )
+
+#define GENLIST_PART_BG_NORMAL \
+ GENLIST_PART_RECT_M("bg_clip", \
+ mouse_events: 0; \
+ description { state: "default" 0.0; \
+ visible: 1; \
+ color: 255 255 255 255; \
+ } \
+ description { state: "decorate" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 0; \
+ } \
+ description { state: "reorder" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 0; \
+ } \
+ description { state: "decorate_reorder" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 0; \
+ } \
+ ) \
+ GENLIST_PART_RECT_M("bg_reorder_clip", \
+ mouse_events: 0; \
+ description { state: "default" 0.0; \
+ visible: 0; \
+ } \
+ description { state: "reorder" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 1; \
+ color: 255 255 255 255; \
+ } \
+ description { state: "decorate_reorder" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 0; \
+ } \
+ description { state: "decorate" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 0; \
+ } \
+ description { state: "reorder_flip" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 0; \
+ } \
+ ) \
+ GENLIST_PART_RECT_M("bg", \
+ clip_to: "bg_clip"; \
+ description { state: "default" 0.0; \
+ color: GENLIST_LIST_BG_COLOR_M; \
+ } \
+ description { state: "selected" 0.0; \
+ inherit: "default" 0.0; \
+ color: GENLIST_LIST_PRESS_COLOR; \
+ } \
+ description { state: "disabled" 0.0; \
+ inherit: "default" 0.0; \
+ color: GENLIST_LIST_DIM_COLOR_M; \
+ } \
+ ) \
+ GENLIST_PART_SPACER_M("bg_reorder_left", \
+ description { state: "default" 0.0; \
+ min: 16 0; \
+ max: 16 -1; \
+ fixed: 1 0; \
+ align: 0 0.5; \
+ rel2.relative: 0 1; \
+ } \
+ ) \
+ GENLIST_PART_SPACER_M("bg_reorder_right", \
+ description { state: "default" 0.0; \
+ min: 16 0; \
+ max: 16 -1; \
+ fixed: 1 0; \
+ align: 1.0 0.5; \
+ rel1.relative: 1 0; \
+ } \
+ ) \
+ GENLIST_PART_SPACER_M("bg_reorder_top", \
+ description { state: "default" 0.0; \
+ min: 0 2; \
+ max: -1 2; \
+ fixed: 0 1; \
+ align: 0.5 0; \
+ rel2.relative: 1 0; \
+ } \
+ ) \
+ GENLIST_PART_SPACER_M("bg_reorder_bottom", \
+ description { state: "default" 0.0; \
+ min: 0 2; \
+ max: -1 2; \
+ fixed: 0 1; \
+ align: 0.5 1.0; \
+ rel1.relative: 0 1; \
+ } \
+ ) \
+ GENLIST_PART_IMAGE("bg_reorder", \
+ clip_to: "bg_reorder_clip"; \
+ description { state: "default" 0.0; \
+ rel1 { \
+ relative: 1 1; \
+ to_x: "bg_reorder_left"; \
+ to_y: "bg_reorder_top"; \
+ } \
+ rel2 { \
+ relative: 0 0; \
+ to_x: "bg_reorder_right"; \
+ to_y: "bg_reorder_bottom"; \
+ } \
+ image { \
+ normal: "00_list_group_bg.png"; \
+ border: 17 17 8 8; \
+ border_scale: 1; \
+ } \
+ } \
+ description { state: "selected" 0.0; \
+ inherit: "default"; \
+ image { \
+ normal: "00_list_group_bg_press.png"; \
+ border: 17 17 8 8; \
+ border_scale: 1; \
+ } \
+ } \
+ description { state: "flipped" 0.0; \
+ inherit: "default"; \
+ visible: 0; \
+ } \
+ ) \
+ GENLIST_PART_RECT_M("sound", \
+ repeat_events: 1; /*for play_sound to check selected state*/ \
+ description { state: "default" 0.0; \
+ color: 0 0 0 0; \
+ } \
+ ) \
+
+
+#define GENLIST_PART_BOTTOM_LINE_M \
+ GENLIST_PART_RECT_M("bottom_line_clip", \
+ description { state: "default" 0.0; \
+ color: 255 255 255 255; \
+ } \
+ description { state: "decorate" 0.0; \
+ inherit: "default" 0.0; \
+ color: 0 0 0 0; \
+ } \
+ description { state: "reorder" 0.0; \
+ inherit: "default" 0.0; \
+ color: 0 0 0 0; \
+ } \
+ description { state: "decorate_reorder" 0.0; \
+ inherit: "default" 0.0; \
+ color: 0 0 0 0; \
+ } \
+ ) \
+ GENLIST_PART_RECT_M("bottom_line", \
+ mouse_events: 0; \
+ clip_to: "bottom_line_clip"; \
+ description { state: "default" 0.0; \
+ min: 0 GENLIST_PART_LIST_LINE_HEIGHT; \
+ max: -1 GENLIST_PART_LIST_LINE_HEIGHT; \
+ fixed: 0 1; \
+ align: 0.5 1; \
+ color: GENLIST_LIST_LINE1_COLOR_M; \
+ rel1.to: "bottom_line2"; \
+ rel2.to: "bottom_line2"; \
+ rel2.relative: 1 0; \
+ rel1.offset: -1 -1; \
+ } \
+ description { state: "flipped" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 0; \
+ } \
+ ) \
+ GENLIST_PART_RECT_M("bottom_line2", \
+ mouse_events: 0; \
+ clip_to: "bottom_line_clip"; \
+ description { state: "default" 0.0; \
+ min: 0 GENLIST_PART_LIST_LINE_HEIGHT; \
+ max: -1 GENLIST_PART_LIST_LINE_HEIGHT; \
+ fixed: 0 1; \
+ align: 0.5 1; \
+ color: GENLIST_LIST_LINE2_COLOR_M; \
+ rel1.to_x: "base"; \
+ rel1.relative: 0 0; \
+ rel2.to_x: "base"; \
+ rel2.relative: 1 1; \
+ rel1.offset: -1 -1; \
+ } \
+ description { state: "flipped" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 0; \
+ } \
+ )
+
+#define GENLIST_PART_PADDING_TOP_2LINE_M \
+ GENLIST_PART_SPACER_M("elm.padding.top", \
+ description { \
+ state: "default" 0.0; \
+ min: 0 GENLIST_PADDING_SIZE_TOP_2LINE_MULTI; \
+ max: -1 GENLIST_PADDING_SIZE_TOP_2LINE_MULTI; \
+ fixed: 0 1; \
+ rel1.to: "base"; \
+ rel2.to: "base"; \
+ rel2.relative: 1.0 0.0; \
+ align: 0.5 0.0; \
+ } \
+ description { state: "reorder" 0.0; \
+ inherit: "default" 0.0; \
+ min: 0 (GENLIST_PADDING_SIZE_TOP_2LINE_MULTI+2); \
+ max: -1 (GENLIST_PADDING_SIZE_TOP_2LINE_MULTI+2); \
+ } \
+ )
+
+#define GENLIST_PART_PADDING_BOTTOM_2LINE_M \
+ GENLIST_PART_SPACER_M("elm.padding.bottom", \
+ description { state: "default" 0.0; \
+ min: 0 GENLIST_PADDING_SIZE_BOTTOM_2LINE_MULTI; \
+ max: -1 GENLIST_PADDING_SIZE_BOTTOM_2LINE_MULTI; \
+ fixed: 0 1; \
+ rel1.to: "base"; \
+ rel2.to: "base"; \
+ rel1.relative: 0.0 1.0; \
+ align: 0.5 1.0; \
+ } \
+ description { state: "reorder" 0.0; \
+ inherit: "default" 0.0; \
+ min: 0 (GENLIST_PADDING_SIZE_BOTTOM_2LINE_MULTI+2); \
+ max: -1 (GENLIST_PADDING_SIZE_BOTTOM_2LINE_MULTI+2); \
+ } \
+ )
+
+#define GENLIST_PART_PADDING_TOP \
+ GENLIST_PART_SPACER_M("elm.padding.top", \
+ description { \
+ state: "default" 0.0; \
+ min: 0 GENLIST_PADDING_SIZE_TOP; \
+ max: -1 GENLIST_PADDING_SIZE_TOP; \
+ fixed: 0 1; \
+ rel1.to: "base"; \
+ rel2.to: "base"; \
+ rel2.relative: 1.0 0.0; \
+ align: 0.5 0.0; \
+ } \
+ description { state: "reorder" 0.0; \
+ inherit: "default" 0.0; \
+ min: 0 (GENLIST_PADDING_SIZE_TOP+2); \
+ max: -1 (GENLIST_PADDING_SIZE_TOP+2); \
+ } \
+ )
+
+#define GENLIST_PART_PADDING_BOTTOM \
+ GENLIST_PART_SPACER_M("elm.padding.bottom", \
+ description { state: "default" 0.0; \
+ min: 0 GENLIST_PADDING_SIZE_BOTTOM; \
+ max: -1 GENLIST_PADDING_SIZE_BOTTOM; \
+ fixed: 0 1; \
+ rel1.to: "base"; \
+ rel2.to: "base"; \
+ rel1.relative: 0.0 1.0; \
+ align: 0.5 1.0; \
+ } \
+ description { state: "reorder" 0.0; \
+ inherit: "default" 0.0; \
+ min: 0 (GENLIST_PADDING_SIZE_BOTTOM+2); \
+ max: -1 (GENLIST_PADDING_SIZE_BOTTOM+2); \
+ } \
+ )
+
+
+#define GENLIST_PART_FLIP_M \
+ GENLIST_PART_RECT_M("elm.flip.bg", \
+ mouse_events: 0; \
+ description { state: "default" 0.0;\
+ color: 0 0 0 0;\
+ } \
+ description { state: "flipped" 0.0; \
+ inherit: "default" 0.0; \
+ rel2.offset: 0 -3; \
+ color: GENLIST_LIST_BG_COLOR_M;\
+ }\
+ ) \
+ GENLIST_PART_SPACER_M("elm.flip.padding.right", \
+ description { state: "default" 0.0; \
+ min: 26 0; \
+ max: 26 -1; \
+ fixed: 1 0; \
+ align: 1 0.5; \
+ rel1.relative: 1 0; \
+ } \
+ ) \
+ GENLIST_PART_ICON_M("elm.flip.content", \
+ GENLIST_DESCRIPTION("elm.padding.left", "elm.flip.padding.icon.left", \
+ "elm.padding.top", "elm.padding.bottom", \
+ visible: 0; \
+ aspect: 1 1; \
+ min: 0 96; \
+ ) \
+ description { state: "flipped" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 1; \
+ } \
+ ) \
+ GENLIST_PART_PADDING_R_M("elm.flip.padding.icon.left", "elm.flip.icon") \
+ GENLIST_PART_ICON_M( "elm.flip.icon", \
+ GENLIST_DESCRIPTION_RTB("elm.flip.padding.right", \
+ "elm.padding.top", "elm.padding.bottom", \
+ visible: 0; \
+ aspect: 1 1; \
+ align: 1 0.5; \
+ max: 158 74; \
+ ) \
+ description { state: "flipped" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 1; \
+ } \
+ )
+
+#define GENLIST_PART_FOCUS_M \
+ GENLIST_PART_IMAGE("focus_part", \
+ mouse_events: 0; \
+ description { state: "default" 0.0; \
+ visible: 0; \
+ image { \
+ normal: "00_focus.png"; \
+ border: 6 6 6 6; \
+ border_scale: 1; \
+ } \
+ } \
+ description { state: "focused" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 1; \
+ } \
+ ) \
+ GENLIST_PART_ICON_M("elm.icon.focus", \
+ repeat_events: 1; \
+ GENLIST_DESCRIPTION_ENVELOP("focus_part", \
+ fixed: 1 1; \
+ ) \
+ )
+
+#define GENLIST_PART_FOCUS_REORDER \
+ GENLIST_PART_IMAGE("focus_part_reorder", \
+ mouse_events: 0; \
+ description { state: "default" 0.0; \
+ rel1 { \
+ relative: 1 1; \
+ to_x: "bg_reorder_left"; \
+ to_y: "bg_reorder_top"; \
+ } \
+ rel2 { \
+ relative: 0 0; \
+ to_x: "bg_reorder_right"; \
+ to_y: "bg_reorder_bottom"; \
+ } \
+ visible: 0; \
+ image { \
+ normal: "00_focus.png"; \
+ border: 6 6 6 6; \
+ border_scale: 1; \
+ } \
+ } \
+ description { state: "focused" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 1; \
+ } \
+ )
+
+#define GENLIST_PART_PADDING_L_M( NAME, LEFT ) \
+ GENLIST_PART_SPACER_M(NAME, \
+ description { state: "default" 0.0; \
+ fixed: 1 0; \
+ min: GENLIST_PADDING_SIZE_DEFAULT 0; \
+ max: GENLIST_PADDING_SIZE_DEFAULT -1; \
+ align: 0 0.5; \
+ rel1 { \
+ relative: 1 0; \
+ to_x: LEFT; \
+ } \
+ rel2 { \
+ relative: 1 1; \
+ to_x: LEFT; \
+ } \
+ } \
+ )
+
+
+#define GENLIST_PART_FOCUS_NORMAL \
+ GENLIST_PART_FOCUS_M \
+ GENLIST_PART_FOCUS_REORDER
+
+
+#define GENLIST_PROGRAM_DEFAULT( TARGET ) \
+ program { name: "default"; \
+ signal: "elm,state,default"; \
+ source: "elm"; \
+ action: STATE_SET "default" 0.0; \
+ TARGET \
+ } \
+
+#define GENLIST_PROGRAM_DISABLED( TARGET ) \
+ program { name: "enabled"; \
+ signal: "elm,state,enabled"; \
+ source: "elm"; \
+ action: STATE_SET "default" 0.0; \
+ TARGET \
+ } \
+ program { name: "disabled"; \
+ signal: "elm,state,disabled"; \
+ source: "elm"; \
+ action: STATE_SET "disabled" 0.0; \
+ TARGET \
+ }
+
+#define GENLIST_PROGRAM_FOCUS_ITEM \
+ program { name: "focused"; \
+ signal: "elm,state,focused"; \
+ source: "elm"; \
+ action: STATE_SET "focused" 0.0; \
+ target: "focus_part"; \
+ } \
+ program { name: "unfocused"; \
+ signal: "elm,state,unfocused"; \
+ source: "elm"; \
+ action: STATE_SET "default" 0.0; \
+ target: "focus_part"; \
+ }
+
+#define GENLIST_PROGRAM_FOCUS_NORMAL \
+ program { name: "focused"; \
+ signal: "elm,state,focused"; \
+ source: "elm"; \
+ script { \
+ new st[31]; \
+ new Float:vl; \
+ get_state(PART:"bg_reorder_clip", st, 30, vl); \
+ if (!strcmp(st, "reorder") || !strcmp(st, "decorate_reorder")) \
+ set_state(PART:"focus_part_reorder", "focused", 0.0); \
+ else \
+ set_state(PART:"focus_part", "focused", 0.0); \
+ } \
+ } \
+ program { name: "unfocused"; \
+ signal: "elm,state,unfocused"; \
+ source: "elm"; \
+ action: STATE_SET "default" 0.0; \
+ target: "focus_part_reorder"; \
+ target: "focus_part"; \
+ }
+
+#define GENLIST_PROGRAM_FOCUS_DIALOGUE \
+ program { name: "focused"; \
+ signal: "elm,state,focused"; \
+ source: "elm"; \
+ script { \
+ new st[31]; \
+ new Float:vl; \
+ get_state(PART:"bg_dialogue", st, 30, vl); \
+ if (!strcmp(st, "top") || !strcmp(st, "top_selected") || !strcmp(st, "2depth_top")) \
+ set_state(PART:"focus_part_dialogue", "top_focused", 0.0); \
+ else if (!strcmp(st, "center") || !strcmp(st, "center_selected") || !strcmp(st, "2depth_center")) \
+ set_state(PART:"focus_part_dialogue", "center_focused", 0.0); \
+ else if (!strcmp(st, "bottom") || !strcmp(st, "bottom_selected") || !strcmp(st, "2depth_bottom")) \
+ set_state(PART:"focus_part_dialogue", "bottom_focused", 0.0); \
+ else if (!strcmp(st, "default") || !strcmp(st, "selected") || !strcmp(st, "2depth")) \
+ set_state(PART:"focus_part_dialogue", "focused", 0.0); \
+ } \
+ } \
+ program { name: "unfocused"; \
+ signal: "elm,state,unfocused"; \
+ source: "elm"; \
+ action: STATE_SET "default" 0.0; \
+ target: "focus_part_dialogue"; \
+ }
+
+#define GENLIST_PROGRAM_SOUND( SRC ) \
+ program { name: "play_sound"SRC; \
+ signal: "mouse,clicked,1"; \
+ source: SRC; \
+ script { \
+ new st[31]; \
+ new Float:vl; \
+ get_state(PART:SRC, st, 30, vl); \
+ if (!strcmp(st, "selected") || \
+ !strcmp(st, "top_selected") || \
+ !strcmp(st, "center_selected") || \
+ !strcmp(st, "bottom_selected")) \
+ play_sample("touch_sound", 1.0); \
+ } \
+ }
+
+#define GENLIST_PROGRAM_SELECT( TARGET ) \
+ program { name: "selected"; \
+ signal: "elm,state,selected"; \
+ source: "elm"; \
+ action: STATE_SET "selected" 0.0; \
+ TARGET \
+ } \
+ program { name: "unselected"; \
+ signal: "elm,state,unselected"; \
+ source: "elm"; \
+ action: STATE_SET "default" 0.0; \
+ TARGET \
+ }
+
+#define GENLIST_PROGRAM_DECORATE_REORDER( NAME, TARGET ) \
+ program { name: "reorder_enabled"NAME; \
+ signal: "elm,state,reorder,mode_set"; \
+ source: "elm"; \
+ script { \
+ new st[31]; \
+ new Float:vl; \
+ get_state(PART:"state", st, 30, vl); \
+ if (!strcmp(st, "decorate") || !strcmp(st, "decorate_reorder")) { \
+ run_program(PROGRAM:"decorate_reorder_set"NAME); \
+ } else { \
+ run_program(PROGRAM:"reorder_set"NAME); \
+ } \
+ } \
+ } \
+ program { name: "reorder_disabled"NAME; \
+ signal: "elm,state,reorder,mode_unset"; \
+ source: "elm"; \
+ script { \
+ new st[31]; \
+ new Float:vl; \
+ get_state(PART:"state", st, 30, vl); \
+ if (!strcmp(st, "decorate") || !strcmp(st, "decorate_reorder")) { \
+ run_program(PROGRAM:"decorate_set"NAME); \
+ } else { \
+ run_program(PROGRAM:"default_set"NAME); \
+ } \
+ } \
+ } \
+ program { name: "decorate_enabled_effect"NAME; \
+ signal: "elm,state,decorate,enabled,effect";\
+ source: "elm";\
+ script { \
+ new st[31]; \
+ new Float:vl; \
+ get_state(PART:"state", st, 30, vl); \
+ if (!strcmp(st, "reorder") || !strcmp(st, "decorate_reorder")) { \
+ run_program(PROGRAM:"decorate_reorder_set"NAME); \
+ } else { \
+ run_program(PROGRAM:"decorate_set"NAME); \
+ } \
+ } \
+ }\
+ program { name: "decorate_disabled_effect"NAME;\
+ signal: "elm,state,decorate,disabled,effect";\
+ source: "elm";\
+ script { \
+ new st[31]; \
+ new Float:vl; \
+ get_state(PART:"state", st, 30, vl); \
+ if (!strcmp(st, "reorder") || !strcmp(st, "decorate_reorder")) { \
+ run_program(PROGRAM:"reorder_set"NAME); \
+ } else { \
+ run_program(PROGRAM:"default_set"NAME); \
+ } \
+ } \
+ }\
+ program { name: "decorate_enabled"NAME;\
+ signal: "elm,state,decorate,enabled";\
+ source: "elm";\
+ script { \
+ new st[31]; \
+ new Float:vl; \
+ get_state(PART:"state", st, 30, vl); \
+ if (!strcmp(st, "reorder") || !strcmp(st, "decorate_reorder")) { \
+ run_program(PROGRAM:"decorate_reorder_set"NAME); \
+ } else { \
+ run_program(PROGRAM:"decorate_set"NAME); \
+ } \
+ } \
+ }\
+ program { name: "decorate_disabled"NAME;\
+ signal: "elm,state,decorate,disabled";\
+ source: "elm";\
+ script { \
+ new st[31]; \
+ new Float:vl; \
+ get_state(PART:"state", st, 30, vl); \
+ if (!strcmp(st, "reorder") || !strcmp(st, "decorate_reorder")) { \
+ run_program(PROGRAM:"reorder_set"NAME); \
+ } else { \
+ run_program(PROGRAM:"default_set"NAME); \
+ } \
+ } \
+ } \
+ program { name: "default_set"NAME; \
+ action: STATE_SET "default" 0.0;\
+ target: "state"; \
+ TARGET \
+ } \
+ program { name: "decorate_set"NAME; \
+ action: STATE_SET "decorate" 0.0;\
+ target: "state"; \
+ TARGET \
+ } \
+ program { name: "reorder_set"NAME; \
+ action: STATE_SET "reorder" 0.0;\
+ target: "state"; \
+ TARGET \
+ } \
+ program { name: "decorate_reorder_set"NAME; \
+ action: STATE_SET "decorate_reorder" 0.0;\
+ target: "state"; \
+ TARGET \
+ }
+
+#define GENLIST_PROGRAM_FLIP_M \
+ program { name: "flip_enabled"; \
+ signal: "elm,state,flip,enabled"; \
+ source: "elm"; \
+ transition: DECELERATE 0.5; \
+ action: STATE_SET "flipped" 0.0; \
+ target: "elm.flip.content"; \
+ target: "elm.flip.icon"; \
+ } \
+ program { name: "flip_disabled"; \
+ signal: "elm,state,flip,disabled"; \
+ source: "elm"; \
+ transition: DECELERATE 0.5; \
+ action: STATE_SET "default" 0.0; \
+ target: "elm.flip.content"; \
+ target: "elm.flip.icon"; \
+ } \
+ program { name: "flip_enabled_bg"; \
+ signal: "elm,state,flip,enabled"; \
+ source: "elm"; \
+ action: STATE_SET "flipped" 0.0; \
+ target: "elm.flip.bg"; \
+ } \
+ program { name: "flip_disabled_bg"; \
+ signal: "elm,state,flip,disabled"; \
+ source: "elm"; \
+ action: STATE_SET "default" 0.0; \
+ target: "elm.flip.bg"; \
+ }
+
+
+#define GENLIST_PROGRAMS_NORMAL_M( TARGET ) \
+ programs { \
+ GENLIST_PROGRAM_DEFAULT( TARGET \
+ target: "bg"; \
+ target: "bg_clip"; \
+ target: "bottom_line"; \
+ target: "bottom_line2"; \
+ target: "bottom_line_clip"; \
+ target: "bg_reorder"; \
+ target: "elm.padding.left"; \
+ target: "elm.padding.right"; \
+ target: "elm.padding.top"; \
+ target: "elm.padding.bottom"; \
+ ) \
+ GENLIST_PROGRAM_DISABLED( TARGET \
+ target: "bg"; \
+ target: "bg_reorder"; \
+ ) \
+ GENLIST_PROGRAM_FOCUS_NORMAL \
+ GENLIST_PROGRAM_SELECT( TARGET \
+ target: "bg"; \
+ target: "bg_reorder"; \
+ ) \
+ GENLIST_PROGRAM_SOUND("bg") \
+ GENLIST_PROGRAM_SOUND("bg_reorder") \
+ GENLIST_PROGRAM_DECORATE_REORDER("normal", TARGET \
+ target: "bg_clip"; \
+ target: "bg_reorder_clip"; \
+ target: "bottom_line_clip"; \
+ target: "elm.padding.left"; \
+ target: "elm.padding.right"; \
+ target: "elm.padding.top"; \
+ target: "elm.padding.bottom"; \
+ ) \
+ GENLIST_PROGRAM_FLIP_M \
+ }
+
+ group { GENLIST_NAME("video.multiline/2text/default")
+ GENLIST_PROLOG_NORMAL
+ data.item: "texts" "elm.text.1 elm.text.2";
+
+ parts {
+ GENLIST_PART_BASE_M
+ GENLIST_PART_BG_NORMAL
+ GENLIST_PART_BOTTOM_LINE_M
+ GENLIST_PART_PADDING_LEFT_M
+ GENLIST_PART_PADDING_RIGHT_M
+ GENLIST_PART_PADDING_TOP_2LINE_M
+ GENLIST_PART_PADDING_BOTTOM_2LINE_M
+
+ GENLIST_PART_TEXT_M("elm.text.1",
+ GENLIST_DESCRIPTION_LRT("elm.padding.left", "elm.padding.right", "elm.padding.top",
+ GENLIST_PARAM_LISTITEM
+ min: 0 GENLIST_HEIGHT_2LINE_MAIN_MULTI;
+ fixed: 0 1;
+ )
+ GENLIST_DESCRIPTION_LISTITEM_OTHERS_M
+ )
+ //GENLIST_PART_PADDING_T_SIZE("elm.padding.text1.bottom", "elm.text.1", 0)
+ GENLIST_PART_TEXTBLOCK_M("elm.text.2",
+ GENLIST_DESCRIPTION("elm.padding.left", "elm.padding.right", "elm.text.1", "elm.padding.bottom",
+ GENLIST_PARAM_SUBITEM_DEFAULT_TB_WRAP
+ min: 0 GENLIST_HEIGHT_MULTILINE_SUB;
+ )
+ GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS_TB_WRAP
+ )
+ GENLIST_PART_FLIP_M
+ GENLIST_PART_FOCUS_NORMAL
+ }
+ GENLIST_PROGRAMS_NORMAL_M( target: "elm.text.1"; target: "elm.text.2"; )
+ }
+
+ group { GENLIST_NAME("video.multiline/1text.2icon/default")
+ GENLIST_PROLOG_NORMAL
+ data.item: "texts" "elm.text";
+ data.item: "contents" "elm.icon.1 elm.icon.2";
+
+ parts {
+ GENLIST_PART_BASE_M
+ GENLIST_PART_BG_NORMAL
+ GENLIST_PART_BOTTOM_LINE_M
+ GENLIST_PART_PADDING_LEFT_M
+ GENLIST_PART_PADDING_RIGHT_M
+ GENLIST_PART_PADDING_TOP
+ GENLIST_PART_PADDING_BOTTOM
+
+ GENLIST_PART_ICON_MEDIUM_L( "elm.icon.1", "elm.padding.left")
+ GENLIST_PART_PADDING_L_M("elm.padding.icon1.right", "elm.icon.1")
+ GENLIST_PART_TEXTBLOCK_M("elm.text",
+ GENLIST_DESCRIPTION_LR("elm.padding.icon1.right", "elm.padding.icon2.left",
+ GENLIST_PARAM_MAINITEM_DEFAULT_TB_WRAP
+ min: 0 GENLIST_HEIGHT_1LINE_MULTI;
+ )
+ GENLIST_DESCRIPTION_MAINITEM_DEFAULT_OTHERS_TB_WRAP
+ )
+ GENLIST_PART_PADDING_R_M("elm.padding.icon2.left", "elm.icon.2")
+ GENLIST_PART_ICON_BTN_01_RTB("elm.icon.2", "elm.padding.right", "elm.padding.top", "elm.padding.bottom")
+ GENLIST_PART_FLIP_M
+ GENLIST_PART_FOCUS_NORMAL
+ }
+ GENLIST_PROGRAMS_NORMAL_M( target: "elm.text"; target: "elm.icon.1"; target: "elm.icon.2"; )
+ }
+
+
+ group {
+ name: "elm/genlist/item/custom.subtitle/default";
+ alias: "elm/genlist/item_compress/custom.subtitle/default";
+ alias: "elm/genlist/tree/custom.subtitle/default";
+ alias: "elm/genlist/tree_compress/custom.subtitle/default";
+ data.item: "stacking" "above";
+ data.item: "selectraise" "on";
+ data.item: "texts" "elm.text";
+ data.item: "contents" "elm.icon";
+ parts {
+ part {
+ name: "base";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 0;
+ min: 0 52;
+ }
+ }
+ part {
+ name: "elm.text";
+ scale: 1;
+ type: TEXT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ align: 0.0 0.0;
+ rel1 {
+ relative: 0.05 0.0; to: "base";
+ }
+ rel2 {
+ relative: 0.88 1.0; to: "base";
+ }
+ text {
+ align: 0.0 0.5;
+ min: 0 1;
+ font: "Tizen:style=Regular";
+ size: 30;
+ }
+ color: 0 0 0 255;
+ }
+ }
+ part {
+ name: "elm.icon";
+ scale: 1;
+ type: SWALLOW;
+ description {
+ state: "default" 0.0;
+ align: 1.0 0.0;
+ rel1 {
+ relative: 0.88 0.0; to: "base";
+ }
+ rel2 {
+ relative: 0.95 1.0; to: "base";
+ }
+ min: 32 32;
+ }
+ }
+ }
+}/* group */
+
+
+#define GENLIST_POPUP_STYLE(NAME) \
+ group { GENLIST_NAME(NAME"/popup/default") \
+ inherit: "elm/genlist/item/"NAME"/default"; \
+ images { \
+ image: "00_popup_list_press.png" COMP; \
+ } \
+ parts { \
+ GENLIST_PART_SPACER_M("bg_left_top_padding", \
+ description { state: "default" 0.0; \
+ min: POPUP_ITEM_BG_LEFT_TOP_PAD_MIN_INC; \
+ fixed: 1 1; \
+ align: 0 0; \
+ rel2.relative: 0 0; \
+ } \
+ ) \
+ GENLIST_PART_SPACER_M("bg_right_bottom_padding", \
+ description { state: "default" 0.0; \
+ min: POPUP_ITEM_BG_RIGHT_BOTTOM_PAD_MIN_INC; \
+ fixed: 1 1; \
+ align: 1 1; \
+ rel1.relative: 1 1; \
+ } \
+ ) \
+ GENLIST_PART_IMAGE("bg", \
+ description { state: "default" 0.0; \
+ image { \
+ normal: "00_popup_list_press.png"; \
+ border: POPUP_ITEM_BG_PRESSED_BORDER_INC; \
+ border_scale: 1; \
+ } \
+ rel1 { \
+ relative: 1 1; \
+ to_x: "bg_left_top_padding"; \
+ to_y: "bg_left_top_padding"; \
+ } \
+ rel2 { \
+ relative: 0 0; \
+ to_x: "bg_right_bottom_padding"; \
+ to_y: "bg_right_bottom_padding"; \
+ } \
+ color: GENLIST_LIST_BG_POPUP_COLOR; \
+ } \
+ description { state: "disabled" 0.0; \
+ inherit: "default" 0.0; \
+ color: GENLIST_LIST_BG_POPUP_COLOR; \
+ } \
+ description { state: "selected" 0.0; \
+ inherit: "default" 0.0; \
+ color: GENLIST_LIST_BG_POPUP_PRESS_COLOR; \
+ } \
+ ) \
+ GENLIST_PART_RECT_M("bottom_line", \
+ description { state: "default" 0.0; \
+ color: GENLIST_LIST_LINE1_POPUP_COLOR; \
+ rel1.to: "bottom_line2"; \
+ rel2.to: "bottom_line2"; \
+ rel2.relative: 1 0; \
+ } \
+ description { state: "disabled" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 0; \
+ } \
+ ) \
+ GENLIST_PART_RECT_M("bottom_line2", \
+ description { state: "default" 0.0; \
+ color: GENLIST_LIST_LINE2_POPUP_COLOR; \
+ rel1.to_x: "bg"; \
+ rel2.to_x: "bg"; \
+ rel1.offset: 1 0; \
+ rel2.offset: -2 -1; \
+ } \
+ description { state: "disabled" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 0; \
+ } \
+ ) \
+ } \
+ programs { \
+ program { name : "hide_bottomline"; \
+ signal: "elm,state,bottomline,hide"; \
+ source: ""; \
+ action: STATE_SET "disabled" 0.0; \
+ target: "bottom_line"; \
+ target: "bottom_line2"; \
+ } \
+ program { name : "show_bottomline"; \
+ signal: "elm,state,bottomline,show"; \
+ source: ""; \
+ action: STATE_SET "default" 0.0; \
+ target: "bottom_line"; \
+ target: "bottom_line2"; \
+ } \
+ } \
+ }
+
+
+//popup
+GENLIST_POPUP_STYLE("video.multiline/2text")
+GENLIST_POPUP_STYLE("video.multiline/1text.2icon")
+
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES 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"
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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;
+ }
+ }
+ }
+ }
+}
+
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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 */
+
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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 */
+
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*PD*/
+#define GENGRID_PD_TEXT_LEFT_TOP_PAD_INC 0 0
+#define GENGRID_PD_TEXT_RIGHT_BOTTOM_PAD_INC 31 46
+#define GENGRID_PD_TEXT_CENTER_HEIGHT 0
+#define GENGRID_PD_TEXT_TITLE_HEIGHT 46
+#define GENGRID_PD_ITEM_REAL_BG_RIGHT_PADDING_INC 1 1
+
+
+#define GENGRID_GRID_TEXT_LEFT_TOP_PAD_INC 7 4
+#define GENGRID_GRID_TEXT_RIGHT_BOTTOM_PAD_INC 3 70
+
+#define GENGRID_R_TEXT_LEFT_TOP_PAD_INC 3 4
+#define GENGRID_R_TEXT_RIGHT_BOTTOM_PAD_INC 7 70
+
+#define GENGRID_GRID_TEXT_TITLE_HEIGHT 30
+#define GENGRID_GRID_TEXT_SUB_TITLE_HEIGHT 23
+#define GENGRID_GRID_TEXT_CENTER_HEIGHT 4
+#define GENGRID_GRID_TEXT_BOTTOM_HEIGHT 6
+#define GENGRID_GRID_MAIN_TEXT_SIZE 15
+#define GENGIID_LIST_SUB_TEXT_SIZE 10
+
+#define GENGRID_ICON_CUSTOM_WIDTH 70
+#define GENGRID_ICON_CUSTOM_HEIGHT 45
+#define GENGRID_ICON_CUSTOM_VIDEO_PROGRESSBAR_H 5
+#define GENGRID_PROGRESSBAR_L 12
+#define GENGRID_PROGRESSBAR_R 338
+#define GENGRID_PROGRESSBAR_T 182
+#define GENGRID_PROGRESSBAR_B 193
+
+
+//Copy from tizen-hd-inc.edc
+#define GENGRID_PART_BACKGROUND_COLOR_INC 0 0 0 0
+#define GENGRID_DEFAULT_LEFT_TOP_PADDING_INC 2 2
+#define GENGRID_DEFAULT_RIGHT_BOTTOM_PADDING_INC 2 2
+#define GENGRID_DEFAULT_ITEM_BG_LEFT_TOP_PADDING_INC 1 1
+#define GENGRID_DEFAULT_ITEM_BG_RIGHT_BOTTOM_PADDING_INC 1 1
+#define GENGRID_DEFAULT_ITEM_REAL_BG_RIGHT_PADDING_INC 0 0
+#define GENGRID_DEFAULT_LEFT_TOP_FOCUS_PADDING_INC 2 2
+#define GENGRID_PART_REORDER_DEFAULT_BG_COLOR_INC 0 0 0 77
+#define GENGRID_DEFAULT_RIGHT_BOTTOM_FOCUS_PADDING_INC 2 2
+
+
+#define GRID_ICON_CUSTOM_LOCK_WIDTH 45
+#define GRID_ICON_CUSTOM_LOCK_HEIGHT 45
+#define GRID_ICON_CUSTOM_DROPBOX_WIDTH 40
+#define GRID_ICON_CUSTOM_DROPBOX_LOCK_HEIGHT 40
+
+
+#define GENGIID_PART_MATCH_TIME_TAG_COLOR "+ color=#0E68AD"
+#define GENGIID_LIST_SUB_TIME_DEFAULT_COLOR_STYLE "#4F4F4FFF"
+#define GENGRID_LIST_MAIN_TEXT_UNREAD_COLOR_STYLE "#000000FF"
+#define GENGRID_PART_MATCH_TAG_COLOR "+ color=#FE5400"
+
+#define STYLE_TAG \
+ tag: "br" "\n";\
+ tag: "ps" "ps";\
+ tag: "tab" "\t";\
+ tag: "b" "+ font=Tizen:style=Bold";\
+
+#define GRID_STYLE_TIME_TAG_MATCH \
+ tag: "match" GENGIID_PART_MATCH_TIME_TAG_COLOR; \
+
+#define GRID_STYLE_TAG_MATCH \
+ tag: "match" GENGRID_PART_MATCH_TAG_COLOR; \
+
+
+
+styles {
+ style { name: "gengrid_style_list_time_text_unread";
+ base: "font=Tizen:style=Bold align=left valign=middle font_size="GENGIID_LIST_SUB_TEXT_SIZE" color="GENGIID_LIST_SUB_TIME_DEFAULT_COLOR_STYLE" ellipsis=1.0";
+ STYLE_TAG
+ GRID_STYLE_TIME_TAG_MATCH
+ }
+
+ style { name: "gengrid_style_list_main_text_unread";
+ base: "font=Tizen:style=Regular font_size="GENGRID_GRID_MAIN_TEXT_SIZE" color="GENGRID_LIST_MAIN_TEXT_UNREAD_COLOR_STYLE" ellipsis=1.0";
+ STYLE_TAG
+ GRID_STYLE_TAG_MATCH
+ }
+}
+
+externals {
+ external: "elm";
+ external: "feedback";
+ }
+
+#define GENGRID_PART_PROGRESS_BAR_ICON( NAME, REL1_TO, REL2_TO ) \
+part { name: NAME; \
+ scale: 1; \
+ repeat_events: 1; \
+ type: SWALLOW; \
+ description { state: "default" 0.0; \
+ min: 0 GENGRID_ICON_CUSTOM_VIDEO_PROGRESSBAR_H; \
+ fixed: 0 1; \
+ align: 0.5 1.0; \
+ rel1 { \
+ relative: GENGRID_PROGRESSBAR_L/GENGRID_ICON_CUSTOM_WIDTH GENGRID_PROGRESSBAR_T/GENGRID_ICON_CUSTOM_HEIGHT; \
+ to: REL1_TO; \
+ } \
+ rel2 { \
+ relative: GENGRID_PROGRESSBAR_R/GENGRID_ICON_CUSTOM_WIDTH GENGRID_PROGRESSBAR_B/GENGRID_ICON_CUSTOM_HEIGHT; \
+ to: REL2_TO; \
+ } \
+ GENGRID_ITEM_SELECT_VI_EFFECT \
+ } \
+ }
+
+#define GENGRID_TAP_SOUND \
+ program { name: "touch_snd"; \
+ signal: "mouse,clicked,1"; \
+ source: "reorder_bg"; \
+ action: PLAY_SAMPLE "button-pressed" 1.0; \
+ }
+
+
+#define GRID_PARAM_ICON_RT_CUSTOM_LOCK \
+ min: GRID_ICON_CUSTOM_LOCK_WIDTH GRID_ICON_CUSTOM_LOCK_HEIGHT;\
+ max: GRID_ICON_CUSTOM_LOCK_WIDTH GRID_ICON_CUSTOM_LOCK_HEIGHT;
+
+#define GRID_PARAM_ICON_RT_CUSTOM_DROPBOX \
+ min: GRID_ICON_CUSTOM_DROPBOX_WIDTH GRID_ICON_CUSTOM_DROPBOX_LOCK_HEIGHT;\
+ max: GRID_ICON_CUSTOM_DROPBOX_WIDTH GRID_ICON_CUSTOM_DROPBOX_LOCK_HEIGHT;
+
+
+#define GRID_PART_ICON_RT_CUSTOM_LOCK(NAME, REL_TO) \
+ part { name: NAME; \
+ scale: 1; \
+ repeat_events: 0; \
+ type: SWALLOW; \
+ description { state: "default" 0.0; \
+ GRID_PARAM_ICON_RT_CUSTOM_LOCK \
+ fixed: 1 1; \
+ align: 1.0 0.0; \
+ rel1 { \
+ relative: 1.0 0.0;\
+ to: REL_TO; offset:0 4;\
+ } \
+ rel2 { \
+ to: REL_TO; offset:-4 0;\
+ } \
+ GENGRID_ITEM_SELECT_VI_EFFECT \
+ } \
+ }
+
+#define GRID_PART_ICON_RT_CUSTOM_DROPBOX(NAME, REL_TO) \
+ part { name: NAME; \
+ scale: 1; \
+ repeat_events: 0; \
+ type: SWALLOW; \
+ description { state: "default" 0.0; \
+ GRID_PARAM_ICON_RT_CUSTOM_DROPBOX \
+ fixed: 1 1; \
+ align: 0.0 1.0; \
+ rel1 { \
+ relative: 0.0 1.0;\
+ to: REL_TO; offset:10 0;\
+ } \
+ rel2 { \
+ to: REL_TO; offset:0 -20;\
+ } \
+ GENGRID_ITEM_SELECT_VI_EFFECT \
+ } \
+ }
+
+#define GENLIST_PROGRAM_FOCUS_IMAGE \
+ program { name: "action_focus"; \
+ signal: "elm,action,focus_highlight,show"; \
+ source: "elm"; \
+ action: STATE_SET "enabled" 0.0; \
+ target: "focus_bg"; \
+ } \
+ program { name: "action_unfocus"; \
+ signal: "elm,action,focus_highlight,hide"; \
+ source: "elm"; \
+ action: STATE_SET "default" 0.0; \
+ target: "focus_bg"; \
+ }
+
+#define GENGRID_ITEM_SELECT_VI_EFFECT \
+} \
+description { state: "pressed" 0.0; \
+ inherit: "default" 0.0; \
+ map { \
+ on: 1; \
+ perspective: "persp1"; \
+ smooth: 0; \
+ } \
+} \
+description { state: "selected" 0.0; \
+ inherit: "default" 0.0; \
+ map { \
+ on: 1; \
+ perspective: "persp"; \
+ smooth: 1; \
+ }
+
+#define GENGRID_PROGRAM_ITEM_SELECT_VI_EFFECT( TARGET ) \
+ program { name: "vi_pressed"; \
+ action: STATE_SET "pressed" 0.0; \
+ TARGET \
+ after: "vi_zoom_in"; \
+ } \
+ program { name: "vi_zoom_in"; \
+ action: STATE_SET "selected" 0.0; \
+ TARGET \
+ transition: SIN_FAC 0.167 1.1; \
+ } \
+ program { name: "vi_zoom_out"; \
+ action: STATE_SET "pressed" 0.0; \
+ TARGET \
+ transition: SIN_FAC 0.167 1.1; \
+ after: "vi_default"; \
+ } \
+ program { name: "vi_default"; \
+ action: STATE_SET "default" 0.0; \
+ TARGET \
+ }
+
+
+group { name: "elm/gengrid/item/video/default_grid/default";
+ data.item: "contents" "elm.swallow.icon elm.swallow.end";
+ images {
+ image : "00_thumbs_line_bg.png" COMP;
+ image : "00_thumbs_bg_focus.png" COMP;
+ image : "00_thumbs_loading_bg.png" COMP;
+ image : "player_library_list_thumbnail_default.png" COMP;
+ }
+ script {
+ public selected = 0;
+ }
+ parts {
+ part { name: "bg";
+ type: RECT;
+ description { state: "default" 0.0;
+ color: GENGRID_PART_BACKGROUND_COLOR_INC;
+ //GENGRID_ITEM_SELECT_VI_EFFECT
+ }
+ }
+
+ part { name: "persp";
+ type: RECT;
+ description { state: "default" 0.0;
+ min: 32 32;
+ max: 32 32;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ color: 0 0 0 0;
+ visible: 1;
+ perspective {
+ zplane: -70;
+ focal: 1000;
+ }
+ }
+ }
+ part { name: "persp1";
+ type: RECT;
+ description { state: "default" 0.0;
+ min: 32 32;
+ max: 32 32;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ color: 0 0 0 0;
+ visible: 1;
+ perspective {
+ zplane: 0;
+ focal: 1000;
+ }
+ }
+ }
+
+ part { name: "left_top_padding";
+ type: RECT;
+ scale : 1;
+ description { state: "default" 0.0;
+ min: GENGRID_DEFAULT_LEFT_TOP_PADDING_INC;
+ align: 0.0 0.0;
+ visible: 0;
+ fixed: 1 1;
+ rel1.to: "bg";
+ rel2 {
+ relative: 0.0 0.0;
+ to: "bg";
+ }
+ }
+ }
+ part { name: "right_bottom_padding";
+ type: RECT;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: GENGRID_DEFAULT_RIGHT_BOTTOM_PADDING_INC;
+ align: 1.0 1.0;
+ visible: 0;
+ fixed: 1 1;
+ rel1 {
+ relative: 1.0 1.0;
+ to: "bg";
+ }
+ rel2.to: "bg";
+ }
+ }
+
+ part { name: "item_bg";
+ type: RECT;
+ description { state: "default" 0.0;
+ rel1 {
+ relative: 1.0 1.0;
+ to: "left_top_padding";
+ }
+ rel2 {
+ relative: 0.0 0.0;
+ to: "right_bottom_padding";
+ }
+ }
+ }
+
+ part{
+ name: "elm.swallow.icon.bg";
+ type: IMAGE;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 0.0 0.0; to: "item_bg";}
+ rel2 { relative: 1.0 0.7; to: "item_bg";}
+ image.normal: "player_library_list_thumbnail_default.png";
+ GENGRID_ITEM_SELECT_VI_EFFECT
+ }
+ }
+
+ part { name: "item_bg_left_top_padding";
+ type: RECT;
+ scale : 1;
+ description { state: "default" 0.0;
+ min: GENGRID_DEFAULT_ITEM_BG_LEFT_TOP_PADDING_INC;
+ align: 0.0 0.0;
+ visible: 0;
+ fixed: 1 1;
+ rel1.to: "item_bg";
+ rel2 {
+ relative: 0.0 0.0;
+ to: "item_bg";
+ }
+ }
+ }
+ part { name: "item_bg_right_bottom_padding";
+ type: RECT;
+ scale : 1;
+ description { state: "default" 0.0;
+ min: GENGRID_DEFAULT_ITEM_BG_RIGHT_BOTTOM_PADDING_INC;
+ align: 1.0 1.0;
+ visible: 0;
+ fixed: 1 1;
+ rel1 {
+ relative: 1.0 1.0;
+ to: "item_bg";
+ }
+ rel2.to: "item_bg";
+ }
+ }
+ part { name: "item_real_bg";
+ description { state: "default" 0.0;
+ visible: 0;
+ rel1 {
+ relative: 1.0 1.0;
+ to: "item_bg_left_top_padding";
+ }
+ rel2 {
+ relative: 0.0 0.0;
+ to: "item_bg_right_bottom_padding";
+ }
+ image.normal: "00_thumbs_loading_bg.png";
+ }
+ }
+ part { name: "item_real_bg_left_top_padding";
+ type: RECT;
+ scale : 1;
+ description { state: "default" 0.0;
+ min: GENGRID_DEFAULT_ITEM_REAL_BG_RIGHT_PADDING_INC;
+ align: 0.0 0.0;
+ visible: 0;
+ fixed: 1 1;
+ rel1.to: "item_real_bg";
+ rel2 {
+ relative: 0.0 0.0;
+ to: "item_real_bg";
+ }
+ }
+ }
+ part { name: "item_real_bg_right_bottom_padding";
+ type: RECT;
+ scale : 1;
+ description { state: "default" 0.0;
+ min: GENGRID_DEFAULT_ITEM_REAL_BG_RIGHT_PADDING_INC;
+ align: 1.0 1.0;
+ fixed: 1 1;
+ visible: 0;
+ rel1 {
+ relative: 1.0 0.7;
+ to: "item_real_bg";
+ }
+ rel2.to: "item_real_bg";
+ }
+ }
+ part { name: "elm.swallow.icon";
+ type: SWALLOW;
+ description { state: "default" 0.0;
+ rel1 {
+ relative: 1.0 1.0;
+ to: "item_real_bg_left_top_padding";
+ }
+ rel2 {
+ relative: 0.0 0.0;
+ to: "item_real_bg_right_bottom_padding";
+ }
+ GENGRID_ITEM_SELECT_VI_EFFECT
+ }
+ }
+ part { name: "elm.swallow.icon_rect";
+ type: RECT;
+ description { state: "default" 0.0;
+ rel1 {
+ relative: 1.0 1.0;
+ to: "item_real_bg_left_top_padding";
+ }
+ rel2 {
+ relative: 0.0 0.0;
+ to: "item_real_bg_right_bottom_padding";
+ }
+ color : 0 0 0 0;
+ }
+ }
+ part { name: "elm.swallow.end";
+ type: SWALLOW;
+ repeat_events: 1;
+ description { state: "default" 0.0;
+ rel1
+ {
+ relative: 0.8 0.1;
+ to: "elm.swallow.icon_rect";
+ }
+ rel2
+ {
+ relative: 0.9 0.2;
+ to: "elm.swallow.icon_rect";
+ }
+ GENGRID_ITEM_SELECT_VI_EFFECT
+ }
+ }
+ part { name: "reorder_bg";
+ type: RECT;
+ repeat_events: 1;
+ description { state: "default" 0.0;
+ color: GENGRID_PART_BG_COLOR_INC;
+ rel1.to: "item_bg";
+ rel2.to: "item_bg";
+ }
+ description { state: "enabled" 0.0;
+ inherit: "default" 0.0;
+ color: GENGRID_PART_REORDER_DEFAULT_BG_COLOR_INC;
+ }
+ }
+ part { name: "focus_bg_left_top_padding";
+ type: RECT;
+ scale : 1;
+ description { state: "default" 0.0;
+ min: GENGRID_DEFAULT_LEFT_TOP_FOCUS_PADDING_INC;
+ align: 0.0 0.0;
+ visible: 0;
+ fixed: 1 1;
+ rel1.to: "bg";
+ rel2 {
+ relative: 0.0 0.0;
+ to: "bg";
+ }
+ }
+ }
+ part { name: "focus_bg_right_bottom_padding";
+ type: RECT;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: GENGRID_DEFAULT_RIGHT_BOTTOM_FOCUS_PADDING_INC;
+ align: 1.0 1.0;
+ visible: 0;
+ fixed: 1 1;
+ rel1 {
+ relative: 1.0 1.0;
+ to: "bg";
+ }
+ rel2.to: "bg";
+ }
+ }
+ part { name: "focus_bg";
+ type: IMAGE;
+ description { state: "default" 0.0;
+ visible: 0;
+ rel1 {
+ relative: 1.0 1.0;
+ to: "focus_bg_left_top_padding";
+ }
+ rel2 {
+ relative: 0.0 0.0;
+ to: "focus_bg_right_bottom_padding";
+ }
+ image.normal: "00_thumbs_bg_focus.png";
+ image.border: 6 6 6 6;
+ }
+ description { state: "enabled" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ }
+
+ programs {
+ /*GENGRID_PROGRAM_ITEM_SELECT_VI_EFFECT(
+ target: "bg";
+ //target: "item_bg";
+ target: "elm.swallow.icon.bg";
+ target: "elm.swallow.icon";
+ target: "elm.swallow.end";
+ )*/
+ program { name: "go_mouse_down";
+ signal: "mouse,down,1";
+ source: "reorder_bg";
+ after:"go_down";
+ transition: ACCELERATE 0.2;
+ }
+ program { name: "go_mouse_up";
+ signal: "mouse,up,1";
+ source: "reorder_bg";
+ action: STATE_SET "default" 0.0;
+ script {
+ if (get_int(selected)) {
+ set_int(selected, 0);
+ //run_program(PROGRAM:"vi_zoom_out");
+ }
+ }
+ transition: DECELERATE 0.2;
+ }
+ program { name: "go_reorder_disabled";
+ signal: "elm,state,reorder,disabled";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "reorder_bg";
+ target: "focus_bg";
+ transition: ACCELERATE 0.3;
+ }
+ program { name: "go_reorder_enabled";
+ signal: "elm,state,reorder,enabled";
+ source: "elm";
+ action: STATE_SET "enabled" 0.0;
+ target: "reorder_bg";
+ target: "focus_bg";
+ transition: DECELERATE 0.3;
+ }
+ program { name:"go_down";
+ signal: "mouse,down,1";
+ source: "reorder_bg";
+ action: STATE_SET "enabled" 0.0;
+ script {
+ if (!get_int(selected)) {
+ set_int(selected, 1);
+ //run_program(PROGRAM:"vi_pressed");
+ }
+ }
+ transition: ACCELERATE 0.2;
+ }
+ }
+ }
+
+
+group { name: "elm/gengrid/item/video/album_grid/default";
+ inherit: "elm/gengrid/item/video/default_grid/default";
+ data.item: "texts" "elm.text elm.text.2";
+ data.item: "contents" "elm.swallow.icon elm.swallow.end elm.progressbar.icon elm.lock.icon elm.dropbox.icon";
+
+ parts {
+ part { name: "elm.progressbar.icon";
+ scale: 1;
+ repeat_events: 1;
+ type: SWALLOW;
+ description { state: "default" 0.0;
+ min: 0 GENGRID_ICON_CUSTOM_VIDEO_PROGRESSBAR_H;
+ fixed: 0 1;
+ rel1 {
+ relative: 0.0 0.96;
+ to: "elm.swallow.icon";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ to: "elm.swallow.icon";
+ }
+ GENGRID_ITEM_SELECT_VI_EFFECT
+ }
+ }
+ part { name: "main_text_area";
+ type: SPACER;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0.05 1.0; to: "elm.swallow.icon"; }
+ rel2 { relative: 0.9 0.82; to: "item_bg"; }
+ min: 0 GENGRID_GRID_TEXT_TITLE_HEIGHT;
+ fixed: 0 1;
+ align: 0.0 0.0;
+ }
+ }
+
+ part { name: "sub_text_area";
+ type: SPACER;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0.05 0.84; to: "item_bg"; }
+ rel2 { relative: 0.9 0.99; to: "item_bg"; }
+ min: 0 GENGRID_GRID_TEXT_SUB_TITLE_HEIGHT;
+ fixed: 0 1;
+ align: 0.0 0.0;
+ }
+ }
+
+ part { name: "bottom_space_area";
+ type: SPACER;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0.0 1.0; to: "sub_text_area"; }
+ rel2 { relative: 1.0 1.0; to: "sub_text_area"; }
+ min: 0 GENGRID_GRID_TEXT_BOTTOM_HEIGHT;
+ fixed: 0 1;
+ align: 0.0 0.0;
+ }
+ }
+
+ part { name: "elm.text";
+ type: TEXTBLOCK;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1.to: "main_text_area";
+ rel2.to: "main_text_area";
+ text {
+ min: 0 1;
+ style: "gengrid_style_list_main_text_unread";
+ }
+ }
+ }
+
+ part { name: "elm.text.2";
+ type: TEXTBLOCK;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1.to: "sub_text_area";
+ rel2.to: "sub_text_area";
+ text {
+ min: 0 1;
+ style: "gengrid_style_list_time_text_unread";
+ }
+ //color: 59 115 182 255;
+ }
+ }
+ //GENGRID_PART_PROGRESS_BAR_ICON("elm.progressbar.icon", "elm.swallow.icon", "elm.swallow.icon")
+ GRID_PART_ICON_RT_CUSTOM_LOCK("elm.lock.icon", "elm.swallow.icon")
+ GRID_PART_ICON_RT_CUSTOM_DROPBOX("elm.dropbox.icon", "elm.swallow.icon")
+ part { name: "focus_bg";
+ description { state: "default" 0.0;
+ rel1 { relative: 0.0 0.0; to: "elm.swallow.icon"; }
+ rel2 { relative: 1.0 1.0; to: "elm.swallow.icon"; }
+ }
+ description { state: "enabled" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ }
+ programs {
+ GENGRID_TAP_SOUND
+ GENLIST_PROGRAM_FOCUS_IMAGE
+ /*GENGRID_PROGRAM_ITEM_SELECT_VI_EFFECT(
+ target: "bg";
+ target: "item_bg";
+ target: "elm.swallow.icon.bg";
+ target: "elm.swallow.icon";
+ target: "elm.swallow.end";
+ target: "elm.progressbar.icon";
+ target: "elm.lock.icon";
+ target: "elm.dropbox.icon";
+ )*/
+ }
+ program{
+ name: "touch_snd0";
+ signal: "mouse,clicked,1";
+ source: "elm.swallow.icon";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ program{
+ name: "touch_snd1";
+ signal: "mouse,clicked,1";
+ source: "elm.swallow.icon.bg";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ program{
+ name: "touch_snd2";
+ signal: "mouse,clicked,1";
+ source: "item_bg";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ program{
+ name: "touch_snd3";
+ signal: "mouse,clicked,1";
+ source: "elm.swallow.end";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ }
+
+group { name: "elm/gengrid/item/video/folder_grid/default";
+ inherit: "elm/gengrid/item/video/default_grid/default";
+ data.item: "texts" "elm.text elm.text.2 elm.text.number";
+ data.item: "contents" "elm.swallow.icon elm.swallow.end elm.progressbar.icon elm.lock.icon elm.dropbox.icon elm.sdcard.icon";
+
+ parts {
+ part { name: "elm.progressbar.icon";
+ scale: 1;
+ repeat_events: 1;
+ type: SWALLOW;
+ description { state: "default" 0.0;
+ min: 0 GENGRID_ICON_CUSTOM_VIDEO_PROGRESSBAR_H;
+ fixed: 0 1;
+ rel1 {
+ relative: 0.0 0.96;
+ to: "elm.swallow.icon";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ to: "elm.swallow.icon";
+ }
+ GENGRID_ITEM_SELECT_VI_EFFECT
+ }
+ }
+ part { name: "main_text_area";
+ type: SPACER;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0.05 1.0; to: "elm.swallow.icon"; }
+ rel2 { relative: 0.9 0.82; to: "item_bg"; }
+ min: 0 GENGRID_GRID_TEXT_TITLE_HEIGHT;
+ fixed: 0 1;
+ align: 0.0 0.0;
+ }
+ }
+
+ part { name: "sub_text_area";
+ type: SPACER;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0.05 0.84; to: "item_bg"; }
+ rel2 { relative: 0.9 0.99; to: "item_bg"; }
+ min: 0 GENGRID_GRID_TEXT_SUB_TITLE_HEIGHT;
+ fixed: 0 1;
+ align: 0.0 0.0;
+ }
+ }
+
+ part { name: "bottom_space_area";
+ type: SPACER;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0.0 1.0; to: "sub_text_area"; }
+ rel2 { relative: 1.0 1.0; to: "sub_text_area"; }
+ min: 0 GENGRID_GRID_TEXT_BOTTOM_HEIGHT;
+ fixed: 0 1;
+ align: 0.0 0.0;
+ }
+ }
+
+ part { name: "elm.text";
+ type: TEXTBLOCK;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0.0 0.5; to: "main_text_area"; }
+ rel2 { relative: 0.7 0.5; to: "main_text_area"; }
+ text {
+ min: 0 1;
+ style: "gengrid_style_list_main_text_unread";
+ }
+ }
+ }
+
+ part { name: "elm.text.number";
+ type: TEXTBLOCK;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0.7 0.5; to: "main_text_area"; }
+ rel2 { relative: 1.0 0.5; to: "main_text_area"; }
+ text {
+ min: 0 1;
+ style: "gengrid_style_list_main_text_unread";
+ }
+ }
+ }
+
+ part { name: "elm.text.2";
+ type: TEXTBLOCK;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1.to: "sub_text_area";
+ rel2.to: "sub_text_area";
+ text {
+ min: 0 1;
+ style: "gengrid_style_list_time_text_unread";
+ }
+ //color: 59 115 182 255;
+ }
+ }
+ part {
+ name: "elm.sdcard.icon";
+ type: SWALLOW;
+ description {
+ state: "default" 0.0;
+ rel1 {
+ relative: 0.80 0.48;
+ to: item_bg;
+ }
+ rel2 {
+ relative: 0.98 0.65;
+ to: item_bg;
+ }
+ color: 255 0 0 255;
+ }
+ }
+ //GENGRID_PART_PROGRESS_BAR_ICON("elm.progressbar.icon", "elm.swallow.icon", "elm.swallow.icon")
+ GRID_PART_ICON_RT_CUSTOM_LOCK("elm.lock.icon", "elm.swallow.icon")
+ GRID_PART_ICON_RT_CUSTOM_DROPBOX("elm.dropbox.icon", "elm.swallow.icon")
+ part { name: "focus_bg";
+ description { state: "default" 0.0;
+ rel1 { relative: 0.0 0.0; to: "elm.swallow.icon"; }
+ rel2 { relative: 1.0 1.0; to: "elm.swallow.icon"; }
+ }
+ description { state: "enabled" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ }
+ programs {
+ GENGRID_TAP_SOUND
+ GENLIST_PROGRAM_FOCUS_IMAGE
+ /*GENGRID_PROGRAM_ITEM_SELECT_VI_EFFECT(
+ target: "bg";
+ target: "item_bg";
+ target: "elm.swallow.icon.bg";
+ target: "elm.swallow.icon";
+ target: "elm.swallow.end";
+ target: "elm.progressbar.icon";
+ target: "elm.lock.icon";
+ target: "elm.dropbox.icon";
+ )*/
+ }
+ program{
+ name: "touch_snd4";
+ signal: "mouse,clicked,1";
+ source: "elm.swallow.icon";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ program{
+ name: "touch_snd5";
+ signal: "mouse,clicked,1";
+ source: "elm.swallow.icon.bg";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ program{
+ name: "touch_snd6";
+ signal: "mouse,clicked,1";
+ source: "item_bg";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ program{
+ name: "touch_snd7";
+ signal: "mouse,clicked,1";
+ source: "elm.swallow.end";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ }
+
+ group { name: "elm/gengrid/item/video/album_grid_r/default";
+ inherit: "elm/gengrid/item/video/album_grid/default";
+ data.item: "texts" "elm.text elm.text.2";
+ data.item: "contents" "elm.swallow.icon elm.swallow.end elm.progressbar.icon elm.lock.icon elm.dropbox.icon";
+ parts {
+ part { name: "left_top_padding";
+ description { state: "default" 0.0;
+ min: GENGRID_R_TEXT_LEFT_TOP_PAD_INC;
+ }
+ }
+ part { name: "right_bottom_padding";
+ description { state: "default" 0.0;
+ min: GENGRID_R_TEXT_RIGHT_BOTTOM_PAD_INC;
+ }
+ }
+ }
+ }
+
+/*
+ group {
+ name: "elm/gengrid/item/livebox/pd_grid/default";
+ inherit: "elm/gengrid/item/video/default_grid/default";
+ data.item: "texts" "elm.text";
+ data.item: "contents" "elm.swallow.icon";
+ parts {
+
+ part { name: "item_real_bg_left_top_padding";
+ type: RECT;
+ scale : 1;
+ description { state: "default" 0.0;
+ min: GENGRID_PD_ITEM_REAL_BG_RIGHT_PADDING_INC;
+ align: 0.0 0.0;
+ visible: 1;
+ fixed: 1 1;
+ color: 155 155 155 255;
+ rel1.to: "item_real_bg";
+ rel2 {
+ relative: 0.0 0.0;
+ to: "item_real_bg";
+ }
+ }
+ }
+ part { name: "item_real_bg_right_bottom_padding";
+ type: RECT;
+ scale : 1;
+ description { state: "default" 0.0;
+ min: GENGRID_PD_ITEM_REAL_BG_RIGHT_PADDING_INC;
+ align: 1.0 1.0;
+ fixed: 1 1;
+ visible: 1;
+ color: 155 155 155 255;
+ rel1 {
+ relative: 1.0 1.0;
+ to: "item_real_bg";
+ }
+ rel2.to: "item_real_bg";
+ }
+ }
+
+ part { name: "left_top_padding";
+ description { state: "default" 0.0;
+ min: GENGRID_PD_TEXT_LEFT_TOP_PAD_INC;
+ }
+ }
+ part { name: "right_bottom_padding";
+ description { state: "default" 0.0;
+ min: GENGRID_PD_TEXT_RIGHT_BOTTOM_PAD_INC;
+ }
+ }
+ part { name: "padding_center";
+ type: SPACER;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0.0 0.0; to_x: "elm.swallow.icon"; to_y: "right_bottom_padding"; }
+ rel2 { relative: 1.0 0.0; to_x: "elm.swallow.icon"; to_y: "right_bottom_padding"; }
+ min: 0 GENGRID_PD_TEXT_CENTER_HEIGHT;
+ fixed: 0 1;
+ align: 0.0 0.0;
+ }
+ }
+
+ part { name: "main_text_area";
+ type: SPACER;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0.0 1.0; to: "padding_center"; }
+ rel2 { relative: 1.0 1.0; to: "padding_center"; }
+ min: 0 GENGRID_PD_TEXT_TITLE_HEIGHT;
+ fixed: 0 1;
+ align: 0.0 0.0;
+ }
+ }
+
+ part { name: "elm.text";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1.to: "main_text_area";
+ rel2.to: "main_text_area";
+ text {
+ text: "Tizen:style=Medium";
+ size: 24;
+ align: 0.0 0.5;
+ }
+ color: 255 255 255 255;
+ }
+ }
+ part { name: "item_bg_left_top_padding";
+ description { state: "default" 0.0;
+ min: 0 0;
+ }
+ }
+ part { name: "item_bg_right_bottom_padding";
+ description { state: "default" 0.0;
+ min: 0 0;
+ }
+ }
+*/ /*part { name: "item_real_bg_left_top_padding";
+ description { state: "default" 0.0;
+ min: 0 0;
+ }
+ }
+ part { name: "item_real_bg_right_bottom_padding";
+ description { state: "default" 0.0;
+ min: 0 0;
+ }
+ }*/
+/* part { name: "focus_bg";
+ description { state: "default" 0.0;
+ rel1 { relative: 0.0 0.0; to: "elm.swallow.icon"; }
+ rel2 { relative: 1.0 1.0; to: "elm.swallow.icon"; }
+ }
+ description { state: "enabled" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ }
+ programs {
+ GENGRID_TAP_SOUND
+ }
+ }
+*/
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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;
+ }
+ }
+ }
+ }
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * vim:ts=3
+*/
+
+/* genlist multisense sample/tone listing */
+ sounds {
+ sample {
+ name: "button-pressed" RAW;
+ source: "button-pressed.wav";
+ }
+ }
+
+#ifndef USE_VIDEO_DOWNLOAD
+#define USE_VIDEO_DOWNLOAD
+#endif
+
+//////////////////////////////
+// tizen-hd-inc.edc
+// List bg color
+#define GENLIST_LIST_BG_COLOR 248 246 239 0
+#define GENLIST_DIALOGUE_BG_COLOR 248 246 239 255
+#define GENLIST_LIST_PRESS_COLOR 87 135 194 255
+#define GENLIST_LIST_DIM_COLOR 219 217 212 255
+#define GENLIST_LIST_LINE1_COLOR 211 209 203 255
+#define GENLIST_LIST_LINE2_COLOR 255 255 255 255
+#define GENLIST_LIST_DIVIDER1_COLOR 185 184 178 255
+#define GENLIST_LIST_DIVIDER2_COLOR 255 255 255 255
+#define GENLIST_LIST_CENTERLINE1_COLOR 206 205 202 255
+#define GENLIST_SELECT_ALL_BG_COLOR 220 218 211 255
+
+// Genlist Text
+#define GENLIST_LIST_RECENT_TEXT_SIZE 38
+#define GENLIST_LIST_MAIN_TEXT_SIZE 44
+#define GENLIST_LIST_SUBITEM_TITLE_TEXT_SIZE 35
+#define GENLIST_LIST_MAIN_TEXT_UNREAD_COLOR 0 0 0 255
+#define GENLIST_LIST_MAIN_TEXT_UNREAD_COLOR_STYLE "#000000FF"
+#define GENLIST_LIST_MAIN_TEXT_UNREAD_DIM_COLOR 0 0 0 102
+#define GENLIST_LIST_MAIN_TEXT_UNREAD_DIM_COLOR_STYLE "#00000066"
+#define GENLIST_LIST_MAIN_TEXT_READ_COLOR 128 128 128 255
+#define GENLIST_LIST_MAIN_TEXT_READ_DIM_COLOR 128 128 128 204
+#define GENLIST_LIST_MAIN_TEXT_FOCUS_COLOR 255 255 255 255
+#define GENLIST_LIST_MAIN_TEXT_FOCUS_COLOR_STYLE "#FFFFFFFF"
+//#define GENLIST_PART_MATCH_TAG_COLOR "+ color=#3F8DAD"
+#define GENLIST_PART_MATCH_TAG_COLOR "+ color=#FE5400"
+#define GENLIST_PART_MATCH_TIME_TAG_COLOR "+ color=#0E68AD"
+
+
+
+#define GENLIST_LIST_SUB_TEXT_SIZE 32
+#define GENLIST_LIST_SUB_TEXT_DEFAULT_COLOR 128 128 128 255
+#define GENLIST_LIST_SUB_TEXT_DEFAULT_COLOR_STYLE "#808080FF"
+#define GENLIST_LIST_SUB_TEXT_DEFAULT_DIM_COLOR 128 128 128 204
+#define GENLIST_LIST_SUB_TEXT_DEFAULT_DIM_COLOR_STYLE "#808080CC"
+#define GENLIST_LIST_SUB_TEXT_SETTINGS_COLOR 59 115 182 255
+#define GENLIST_LIST_SUB_TEXT_SETTINGS_COLOR_STYLE "#3B73B6FF"
+#define GENLIST_LIST_SUB_TEXT_SETTINGS_DIM_COLOR 59 115 182 76
+#define GENLIST_LIST_SUB_TEXT_SETTINGS_DIM_COLOR_STYLE "#3B73B64C"
+#define GENLIST_LIST_SUB_TEXT_FOCUS_COLOR 255 255 255 255
+#define GENLIST_LIST_SUB_TEXT_FOCUS_COLOR_STYLE "#FFFFFFFF"
+
+#define GENLIST_LIST_SUB_TIME_FOCUS_COLOR 248 236 239 255
+#define GENLIST_LIST_SUB_TIME_DEFAULT_COLOR 79 79 79 255
+#define GENLIST_LIST_SUB_TIME_DEFAULT_COLOR_STYLE "#4F4F4FFF"
+#define GENLIST_LIST_SUB_TIME_DEFAULT_DIM_COLOR 79 79 79 204
+
+#define GENLIST_CONTENTS_TEXT_SIZE 28
+#define GENLIST_CONTENTS_TEXT_COLOR 128 128 128 255
+#define GENLIST_CONTENTS_TEXT_COLOR_STYLE "#808080FF"
+
+#define GENLIST_LIST_BUBBLE_TEXT_SIZE 32
+#define GENLIST_LIST_BUBBLE_TEXT_COLOR 249 249 249 255
+
+#define GENLIST_LIST_THUMBNAIL_BG 0 0 0 255
+
+#define GENLIST_LIST_ITEM_FOCUS_BG "00_focus.png"
+
+
+//////////////////////////////
+// genlist_textblock_style.edc
+
+#define STYLE_TAG \
+ tag: "br" "\n";\
+ tag: "ps" "ps";\
+ tag: "tab" "\t";\
+ tag: "b" "+ font=Tizen:style=Bold";\
+
+#define STYLE_TAG_MATCH \
+ tag: "match" GENLIST_PART_MATCH_TAG_COLOR; \
+
+#define STYLE_TIME_TAG_MATCH \
+ tag: "match" GENLIST_PART_MATCH_TIME_TAG_COLOR; \
+
+// FIXME: Why this is needed? just don't use match color, right? damn textblock bug...
+#define STYLE_TAG_MATCH_FOCUS \
+ tag: "match" GENLIST_LIST_MAIN_TEXT_FOCUS_COLOR_STYLE; \
+
+
+styles {
+ // ********************** list main text
+ style { name: "genlist_style_list_main_text_unread";
+ base: "font=Tizen:style=Regular font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color="GENLIST_LIST_MAIN_TEXT_UNREAD_COLOR_STYLE" ellipsis=1.0";
+ STYLE_TAG
+ STYLE_TAG_MATCH
+ }
+ style { name: "genlist_style_list_main_text_unread_dim";
+ base: "font=Tizen:style=Regular font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color="GENLIST_LIST_MAIN_TEXT_UNREAD_DIM_COLOR_STYLE" ellipsis=1.0";
+ STYLE_TAG
+ STYLE_TAG_MATCH
+ }
+ style { name: "genlist_style_list_main_text_read";
+ base: "font=Tizen:style=Regular font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color="GENLIST_LIST_MAIN_TEXT_READ_COLOR_STYLE" ellipsis=1.0";
+ STYLE_TAG
+ STYLE_TAG_MATCH
+ }
+ style { name: "genlist_style_list_main_text_read_dim";
+ base: "font=Tizen:style=Regular font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color="GENLIST_LIST_MAIN_TEXT_READ_DIM_COLOR_STYLE" ellipsis=1.0";
+ STYLE_TAG
+ STYLE_TAG_MATCH
+ }
+ style { name: "genlist_style_list_main_text_focus";
+ base: "font=Tizen:style=Regular font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color="GENLIST_LIST_MAIN_TEXT_FOCUS_COLOR_STYLE" ellipsis=1.0";
+ STYLE_TAG
+ STYLE_TAG_MATCH_FOCUS
+ }
+
+ //********************** subitem title text
+ style { name: "genlist_style_list_subitem_title_text_unread";
+ base: "font=Tizen:style=Bold font_size="GENLIST_LIST_SUBITEM_TITLE_TEXT_SIZE" color="GENLIST_LIST_MAIN_TEXT_UNREAD_COLOR_STYLE" ellipsis=1.0";
+ STYLE_TAG
+ STYLE_TAG_MATCH
+ }
+ style { name: "genlist_style_list_subitem_title_text_unread_dim";
+ base: "font=Tizen:style=Regular font_size="GENLIST_LIST_SUBITEM_TITLE_TEXT_SIZE" color="GENLIST_LIST_MAIN_TEXT_UNREAD_DIM_COLOR_STYLE" ellipsis=1.0";
+ STYLE_TAG
+ STYLE_TAG_MATCH
+ }
+ style { name: "genlist_style_list_subitem_title_text_read";
+ base: "font=Tizen:style=Regular font_size="GENLIST_LIST_SUBITEM_TITLE_TEXT_SIZE" color="GENLIST_LIST_MAIN_TEXT_READ_COLOR_STYLE" ellipsis=1.0";
+ STYLE_TAG
+ STYLE_TAG_MATCH
+ }
+ style { name: "genlist_style_list_subitem_title_text_read_dim";
+ base: "font=Tizen:style=Regular font_size="GENLIST_LIST_SUBITEM_TITLE_TEXT_SIZE" color="GENLIST_LIST_MAIN_TEXT_READ_DIM_COLOR_STYLE" ellipsis=1.0";
+ STYLE_TAG
+ STYLE_TAG_MATCH
+ }
+ style { name: "genlist_style_list_subitem_title_text_focus";
+ base: "font=Tizen:style=Regular font_size="GENLIST_LIST_SUBITEM_TITLE_TEXT_SIZE" color="GENLIST_LIST_MAIN_TEXT_FOCUS_COLOR_STYLE" ellipsis=1.0";
+ STYLE_TAG
+ STYLE_TAG_MATCH_FOCUS
+ }
+
+ // ********************** list time text
+ style { name: "genlist_style_list_time_text_unread";
+ base: "font=Tizen:style=Bold font_size="GENLIST_LIST_SUB_TEXT_SIZE" color=#FFFFFF ellipsis=1.0";
+ STYLE_TAG
+ STYLE_TIME_TAG_MATCH
+ }
+ style { name: "genlist_style_list_time_text_unread_dim";
+ base: "font=Tizen:style=Bold font_size="GENLIST_LIST_SUB_TEXT_SIZE" color=#FFFFFF ellipsis=1.0";
+ STYLE_TAG
+ STYLE_TAG_MATCH
+ }
+ style { name: "genlist_style_list_time_text_read";
+ base: "font=Tizen:style=Bold font_size="GENLIST_LIST_SUB_TEXT_SIZE" color=#FFFFFF ellipsis=1.0";
+ STYLE_TAG
+ STYLE_TAG_MATCH
+ }
+ style { name: "genlist_style_list_time_text_read_dim";
+ base: "font=Tizen:style=Bold font_size="GENLIST_LIST_SUB_TEXT_SIZE" color=#FFFFFF ellipsis=1.0";
+ STYLE_TAG
+ STYLE_TAG_MATCH
+ }
+ style { name: "genlist_style_list_time_text_focus";
+ base: "font=Tizen:style=Bold font_size="GENLIST_LIST_SUB_TEXT_SIZE" color=#FFFFFF ellipsis=1.0";
+ STYLE_TAG
+ STYLE_TAG_MATCH_FOCUS
+ }
+}
+
+
+//////////////////////////////
+// genlist_macro.edc
+#define GENLIST_HEIGHT_MIN_1LINE 50
+#define GENLIST_HEIGHT_1LINE 75
+#define GENLIST_HEIGHT_2LINE_MAIN 54
+#define GENLIST_HEIGHT_2LINE_SUB 42
+#define GENLIST_HEIGHT_3LINE_MAIN 54
+#define GENLIST_HEIGHT_3LINE_SUB1 42
+#define GENLIST_HEIGHT_3LINE_SUB2 38
+#define GENLIST_HEIGHT_MULTILINE_SUB 38
+#define GENLIST_PART_LIST_LINE_HEIGHT 1
+#define GENLIST_HEIGHT_GROUPTITLE 46
+#define GENLIST_HEIGHT_1LINE_RECENT 66
+
+#define GENLIST_ICON_BIG_SIZE 74
+#define GENLIST_ICON_CHECK_RADIO_SIZE 63
+#define GENLIST_BTN_02_SIZE 74
+
+#define GENLIST_ICON_CUSTOM_THUMBNAIL_WIDTH 202
+#define GENLIST_ICON_CUSTOM_THUMBNAIL_HEIGHT 120
+
+#define GENLIST_ICON_CUSTOM_LOCK_WIDTH 45
+#define GENLIST_ICON_CUSTOM_LOCK_HEIGHT 45
+
+#define GENLIST_ICON_CUSTOM_DROPBOX_WIDTH 40
+#define GENLIST_ICON_CUSTOM_DROPBOX_HEIGHT 40
+
+
+#define GENLIST_ICON_CUSTOM_FOLDER_ICON_WIDTH 72
+#define GENLIST_ICON_CUSTOM_FOLDER_ICON_HEIGHT 72
+
+#define GENLIST_PADDING_CUSTOM_SIZE_LEFT_EDIT 26
+#define GENLIST_PADDING_SIZE_DEFAULT 16
+#define GENLIST_PADDING_SIZE_LEFT 16
+#define GENLIST_PADDING_CUSTOM_SIZE_LEFT 16
+#define GENLIST_PADDING_CUSTOM_1ICON_SIZE_LEFT 0
+#define GENLIST_PADDING_SIZE_RIGHT 26
+#define GENLIST_PADDING_CUSTOM_1ICON_SIZE_RIGHT 0
+#define GENLIST_PADDING_SIZE_PLAY_ICON_L 22
+#define GENLIST_PADDING_SIZE_TOP_2LINE 22
+#define GENLIST_PADDING_SIZE_BOTTOM_2LINE 22
+#define GENLIST_PADDING_CUSTOM_SIZE_TOP_2LINE 22
+#define GENLIST_PADDING_CUSTOM_SIZE_BOTTOM_2LINE 22
+#define GENLIST_PADDING_SIZE_TOP_3LINE 17
+#define GENLIST_PADDING_SIZE_BOTTOM_3LINE 17
+#define GENLIST_PADDING_SIZE_NDEPTH 26
+#define GENLIST_PADDING_CUSTOM_1TEXT_LEFT 18
+#define GENLIST_PADDING_CUSTOM_1TEXT_RIGHT 0
+#define GENLIST_PADDING_CUSTOM_1TEXT_TOP 0
+#define GENLIST_PADDING_CUSTOM_1TEXT_BOTTOM 0
+
+#define GENLIST_ICON_CUSTOM_VIDEO_PROGRESSBAR_H 11
+#define GENLIST_PROGRESSBAR_L 10
+#define GENLIST_PROGRESSBAR_R (GENLIST_ICON_CUSTOM_THUMBNAIL_WIDTH-GENLIST_PROGRESSBAR_L)
+#define GENLIST_PROGRESSBAR_T 102
+#define GENLIST_PROGRESSBAR_B 113
+
+#define GENLIST_HEIGHT_MIN_1LINE_THUMBNAIL 150
+#define GENLIST_HEIGHT_MIN_1LINE_THUMBNAIL_LANDSCAPE 150
+#define GENLIST_HEIGHT_MAX_1LINE_THUMBNAIL 225
+
+#define GENLIST_TREESIZE_DEFAULT 26
+
+#define GENLIST_ICON_CUSTOM_FOLDER_WIDTH 30
+#define GENLIST_ICON_CUSTOM_FOLDER_HEIGHT 30
+
+#define GENLIST_PARAM_ICON_BIG \
+ min: GENLIST_ICON_BIG_SIZE GENLIST_ICON_BIG_SIZE; \
+ max: GENLIST_ICON_BIG_SIZE GENLIST_ICON_BIG_SIZE;
+
+#define GENLIST_PARAM_ICON_BIG_CUSTOM_THUMBNAIL \
+ min: GENLIST_ICON_CUSTOM_THUMBNAIL_WIDTH GENLIST_ICON_CUSTOM_THUMBNAIL_HEIGHT;\
+ max: GENLIST_ICON_CUSTOM_THUMBNAIL_WIDTH GENLIST_ICON_CUSTOM_THUMBNAIL_HEIGHT;
+
+#define GENLIST_PARAM_ICON_RT_CUSTOM_LOCK \
+ min: GENLIST_ICON_CUSTOM_LOCK_WIDTH GENLIST_ICON_CUSTOM_LOCK_HEIGHT;\
+ max: GENLIST_ICON_CUSTOM_LOCK_WIDTH GENLIST_ICON_CUSTOM_LOCK_HEIGHT;
+
+#define GENLIST_PARAM_ICON_RT_CUSTOM_DROPBOX \
+ min: GENLIST_ICON_CUSTOM_DROPBOX_WIDTH GENLIST_ICON_CUSTOM_DROPBOX_HEIGHT;\
+ max: GENLIST_ICON_CUSTOM_DROPBOX_WIDTH GENLIST_ICON_CUSTOM_DROPBOX_HEIGHT;
+
+
+#define GENLIST_PARAM_ICON_BIG_CUSTOM_FOLDER_ICON \
+ min: GENLIST_ICON_CUSTOM_FOLDER_ICON_WIDTH GENLIST_ICON_CUSTOM_FOLDER_ICON_HEIGHT;\
+ max: GENLIST_ICON_CUSTOM_FOLDER_ICON_WIDTH GENLIST_ICON_CUSTOM_FOLDER_ICON_HEIGHT;
+
+#define GENLIST_PARAM_ICON_CHECK_RADIO \
+ min: GENLIST_ICON_CHECK_RADIO_SIZE GENLIST_ICON_CHECK_RADIO_SIZE; \
+ max: GENLIST_ICON_CHECK_RADIO_SIZE GENLIST_ICON_CHECK_RADIO_SIZE;
+
+#define GENLIST_PARAM_ICON_BTN_02 \
+ min: GENLIST_BTN_02_SIZE GENLIST_BTN_02_SIZE; \
+ max: GENLIST_BTN_02_SIZE GENLIST_BTN_02_SIZE;
+
+#define GENLIST_DATA_ITEM_NORMAL \
+ data.item: "stacking" "above"; \
+ data.item: "selectraise" "on"; \
+ data.item: "flips" "elm.flip.icon elm.flip.content"; \
+ data.item: "treesize" GENLIST_TREESIZE_DEFAULT;
+
+#define GENLIST_DESCRIPTION_FADE_ICON \
+ description { state: "fadeout" 0.0; \
+ inherit: "default" 0.0; \
+ color: 0 0 0 10; \
+ visible: 0; \
+ } \
+ description { state: "fadein" 0.0; \
+ inherit: "default" 0.0; \
+ } \
+
+#define GENLIST_DESCRIPTION_FADE \
+ description { state: "fadeout" 0.0; \
+ inherit: "default" 0.0; \
+ color: 255 255 255 10; \
+ } \
+ description { state: "fadein" 0.0; \
+ inherit: "default" 0.0; \
+ } \
+
+#define GENLIST_PART_ICON(NAME, DESCRIPION) \
+ part { name: NAME; \
+ scale: 1; \
+ type: SWALLOW; \
+ DESCRIPION \
+ GENLIST_DESCRIPTION_FADE_ICON \
+ }
+
+#define GENLIST_PART_ICON_REPEAT(NAME, DESCRIPION) \
+ part { name: NAME; \
+ scale: 1; \
+ repeat_events: 1; \
+ type: SWALLOW; \
+ DESCRIPION \
+ GENLIST_DESCRIPTION_FADE_ICON \
+ }
+
+#define GENLIST_PART_SPACER(NAME, DESCRIPION) \
+ part { name: NAME; \
+ scale: 1; \
+ mouse_events: 0; \
+ repeat_events: 1; \
+ type: SPACER; \
+ DESCRIPION \
+ }
+
+#define GENLIST_PART_RECT(NAME, DESCRIPION) \
+ part { name: NAME; \
+ scale: 1; \
+ type: RECT; \
+ DESCRIPION \
+ GENLIST_DESCRIPTION_FADE \
+ }
+
+#define GENLIST_PART_IMAGE(NAME, DESCRIPION) \
+ part { name: NAME; \
+ scale: 1; \
+ type: IMAGE; \
+ DESCRIPION \
+ }
+
+#define GENLIST_PART_TEXT(NAME, DESCRIPION) \
+ part { name: NAME; \
+ scale: 1; \
+ repeat_events: 0; \
+ type: TEXT; \
+ DESCRIPION \
+ GENLIST_DESCRIPTION_FADE \
+ }
+
+#define GENLIST_PART_TEXTBLOCK(NAME, DESCRIPION) \
+ part { name: NAME; \
+ scale: 1; \
+ repeat_events: 0; \
+ type: TEXTBLOCK; \
+ DESCRIPION \
+ GENLIST_DESCRIPTION_FADE \
+ }
+
+#define GENLIST_PARAM_LISTITEM \
+ color: GENLIST_LIST_MAIN_TEXT_UNREAD_COLOR; \
+ text { \
+ align: 0 0.5; \
+ min: 0 1; \
+ font: "Tizen:style=Regular"; \
+ size: GENLIST_LIST_MAIN_TEXT_SIZE; \
+ }
+
+#define GENLIST_PARAM_LISTITEM_TB \
+ text { \
+ min: 0 1; \
+ style: "genlist_style_list_main_text_unread"; \
+ }
+
+#define GENLIST_PARAM_SUBTITLE_TITLE_TB \
+ text { \
+ min: 0 1; \
+ style: "genlist_style_list_subitem_title_text_unread"; \
+ }
+
+#define GENLIST_PARAM_LISTITEM_TIME_TB \
+ text { \
+ min: 0 1; \
+ style: "genlist_style_list_time_text_unread"; \
+ }
+
+
+// | top |
+// ---------------------
+// left | HERE | right
+// ---------------------
+// | bottom |
+#define GENLIST_DESCRIPTION( left, right, top, bottom, param ) \
+ description { state: "default" 0.0;\
+ rel1 { \
+ relative: 1 1; \
+ to_x: left; \
+ to_y: top; \
+ }\
+ rel2 {\
+ relative: 0 0;\
+ to_x: right;\
+ to_y: bottom;\
+ }\
+ param\
+ }
+
+// ---------------------
+// left |--> HERE
+// ---------------------
+#define GENLIST_DESCRIPTION_L( left, param ) \
+ description { state: "default" 0.0;\
+ align: 0 0.5; \
+ fixed: 1 0; \
+ rel1 { \
+ relative: 1 0; \
+ to_x: left; \
+ to_y: "base"; \
+ }\
+ rel2 { \
+ relative: 1 1;\
+ to_x: left; \
+ to_y: "base"; \
+ }\
+ param\
+ }
+
+// ---------------------
+// HERE <--| right
+// ---------------------
+#define GENLIST_DESCRIPTION_R( right, param ) \
+ description { state: "default" 0.0;\
+ align: 1 0.5; \
+ fixed: 1 0; \
+ rel1 { \
+ relative: 0 0; \
+ to_x: right; \
+ to_y: "base"; \
+ }\
+ rel2 {\
+ relative: 0 1;\
+ to_x: right; \
+ to_y: "base"; \
+ }\
+ param\
+ }
+
+// --------------------------
+// left |--> HERE <--| right
+// --------------------------
+#define GENLIST_DESCRIPTION_LR( left, right, param ) \
+ description { state: "default" 0.0;\
+ rel1 { \
+ relative: 1 0; \
+ to_x: left; \
+ to_y: "base"; \
+ }\
+ rel2 {\
+ relative: 0 1;\
+ to_x: right;\
+ to_y: "base"; \
+ }\
+ param\
+ }
+
+// | top |
+// ---------------------
+// left | HERE | right
+#define GENLIST_DESCRIPTION_LRT( left, right, top, param ) \
+ description { state: "default" 0.0;\
+ align: 0.5 0;\
+ rel1 { \
+ relative: 1 1; \
+ to_x: left; \
+ to_y: top; \
+ }\
+ rel2 {\
+ relative: 0 1;\
+ to_x: right;\
+ to_y: top;\
+ }\
+ param\
+ }
+
+
+// left | HERE | right
+// ---------------------
+// | bottom |
+#define GENLIST_DESCRIPTION_LRB( left, right, bottom, param ) \
+ description { state: "default" 0.0;\
+ align: 0.5 1;\
+ rel1 { \
+ relative: 1 0; \
+ to_x: left; \
+ to_y: bottom; \
+ }\
+ rel2 {\
+ relative: 0 0;\
+ to_x: right;\
+ to_y: bottom;\
+ }\
+ param\
+ }
+
+// left | HERE | right
+// ---------------------
+// | bottom |
+#define GENLIST_DESCRIPTION_CUSTOM_LRB_ALIGN_1( left, right, bottom, param ) \
+ description { state: "default" 0.0;\
+ align: 1 1;\
+ rel1 { \
+ relative: 1 0; \
+ to_x: left; \
+ to_y: bottom; \
+ }\
+ rel2 {\
+ relative: 0 0;\
+ to_x: right;\
+ to_y: bottom;\
+ }\
+ param\
+ }
+
+// | TOP |
+// ---------------------
+// left | HERE | right
+#define GENLIST_DESCRIPTION_CUSTOM_LRT_ALIGN_1( left, right, top, param ) \
+ description { state: "default" 0.0;\
+ align: 1 0;\
+ rel1 { \
+ relative: 1 1; \
+ to_x: left; \
+ to_y: top; \
+ }\
+ rel2 {\
+ relative: 0 1;\
+ to_x: right;\
+ to_y: top;\
+ }\
+ param\
+ }
+
+// left | HERE | right | bottom
+#define GENLIST_DESCRIPTION_LRTB( left, right, top, bottom, param ) \
+ description { state: "default" 0.0;\
+ align: 0.5 0;\
+ rel1 { \
+ relative: 1 1; \
+ to_x: left; \
+ to_y: top; \
+ }\
+ rel2 {\
+ relative: 0 0;\
+ to_x: right;\
+ to_y: bottom;\
+ }\
+ param\
+ }
+
+#define GENLIST_DESCRIPTION_LISTITEM_OTHERS \
+ description { state: "disabled" 0.0; \
+ inherit: "default" 0.0; \
+ color: GENLIST_LIST_MAIN_TEXT_UNREAD_DIM_COLOR; \
+ } \
+ description { state: "read" 0.0; \
+ inherit: "default" 0.0; \
+ color: GENLIST_LIST_MAIN_TEXT_READ_COLOR; \
+ } \
+ description { state: "read,disabled" 0.0; \
+ inherit: "default" 0.0; \
+ color: GENLIST_LIST_MAIN_TEXT_READ_DIM_COLOR; \
+ } \
+ description { state: "selected" 0.0; \
+ inherit: "default" 0.0; \
+ color: GENLIST_LIST_MAIN_TEXT_FOCUS_COLOR; \
+ }
+
+#define GENLIST_DESCRIPTION_LISTITEM_OTHERS_TB \
+ description { state: "disabled" 0.0; \
+ inherit: "default" 0.0; \
+ text.style: "genlist_style_list_main_text_unread_dim"; \
+ } \
+ description { state: "read" 0.0; \
+ inherit: "default" 0.0; \
+ text.style: "genlist_style_list_main_text_read"; \
+ } \
+ description { state: "read,disabled" 0.0; \
+ inherit: "default" 0.0; \
+ text.style: "genlist_style_list_main_text_read_dim"; \
+ } \
+ description { state: "selected" 0.0; \
+ inherit: "default" 0.0; \
+ text.style: "genlist_style_list_main_text_focus"; \
+ }
+
+#define GENLIST_DESCRIPTION_SUBITEM_TITLE_OTHERS_TB \
+ description { state: "disabled" 0.0; \
+ inherit: "default" 0.0; \
+ text.style: "genlist_style_list_subitem_title_text_unread_dim"; \
+ } \
+ description { state: "read" 0.0; \
+ inherit: "default" 0.0; \
+ text.style: "genlist_style_list_subitem_title_text_read"; \
+ } \
+ description { state: "read,disabled" 0.0; \
+ inherit: "default" 0.0; \
+ text.style: "genlist_style_list_subitem_title_text_read_dim"; \
+ } \
+ description { state: "selected" 0.0; \
+ inherit: "default" 0.0; \
+ text.style: "genlist_style_list_subitem_title_text_focus"; \
+ }
+
+#define GENLIST_DESCRIPTION_LISTITEM_TIME_OTHERS_TB \
+ description { state: "disabled" 0.0; \
+ inherit: "default" 0.0; \
+ text.style: "genlist_style_list_time_text_unread_dim"; \
+ } \
+ description { state: "read" 0.0; \
+ inherit: "default" 0.0; \
+ text.style: "genlist_style_list_time_text_read"; \
+ } \
+ description { state: "read,disabled" 0.0; \
+ inherit: "default" 0.0; \
+ text.style: "genlist_style_list_time_text_read_dim"; \
+ } \
+ description { state: "selected" 0.0; \
+ inherit: "default" 0.0; \
+ text.style: "genlist_style_list_time_text_focus"; \
+ }
+
+
+#define GENLIST_PARAM_SUBITEM_DEFAULT \
+ color: GENLIST_LIST_SUB_TEXT_DEFAULT_COLOR; \
+ text { \
+ align: 0 0.5; \
+ min: 0 1; \
+ font: "Tizen:style=Medium"; \
+ size: GENLIST_LIST_SUB_TEXT_SIZE; \
+ }
+
+#define GENLIST_PARAM_SUBITEM_TIME_DEFAULT \
+ color: GENLIST_LIST_SUB_TIME_DEFAULT_COLOR; \
+ text { \
+ align: 0 0.5; \
+ min: 0 1; \
+ font: "Tizen:style=Bold"; \
+ size: GENLIST_LIST_SUB_TEXT_SIZE; \
+ }
+
+#define GENLIST_PARAM_CUSTOM_SUBITEM_DEFAULT_ALIGN_1 \
+ color: GENLIST_LIST_SUB_TEXT_DEFAULT_COLOR; \
+ text { \
+ align: 1 0.5; \
+ min: 0 1; \
+ font: "Tizen:style=Medium"; \
+ size: GENLIST_LIST_SUB_TEXT_SIZE; \
+ }
+
+#define GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS \
+ description { state: "disabled" 0.0; \
+ inherit: "default" 0.0; \
+ color: GENLIST_LIST_SUB_TEXT_DEFAULT_DIM_COLOR; \
+ } \
+ description { state: "selected" 0.0; \
+ inherit: "default" 0.0; \
+ color: GENLIST_LIST_SUB_TEXT_FOCUS_COLOR; \
+ }
+
+#define GENLIST_DESCRIPTION_SUBITEM_TIME_DEFAULT_OTHERS \
+ description { state: "disabled" 0.0; \
+ inherit: "default" 0.0; \
+ color: GENLIST_LIST_SUB_TIME_DEFAULT_DIM_COLOR; \
+ } \
+ description { state: "selected" 0.0; \
+ inherit: "default" 0.0; \
+ color: GENLIST_LIST_SUB_TIME_FOCUS_COLOR; \
+ }
+
+#define GENLIST_PART_BG_IMAGE \
+ part { name: "bg_image_clip"; \
+ type: RECT; \
+ scale: 1; \
+ mouse_events: 0; \
+ description { state: "default" 0.0; \
+ color: 0 0 0 0; \
+ } \
+ description { state: "2depth" 0.0; \
+ color: 0 0 0 0; \
+ } \
+ } \
+ part { name: "bg_image"; \
+ type: RECT; \
+ scale: 1; \
+ mouse_events: 1; \
+ description { state: "default" 0.0; \
+ color: 21 108 148 255; \
+ } \
+ description { state: "selected" 0.0; \
+ color: 21 108 148 77; \
+ } \
+ description { state: "disabled" 0.0; \
+ color: GENLIST_LIST_DIM_COLOR; \
+ } \
+ GENLIST_DESCRIPTION_FADE \
+ }
+
+#define GENLIST_PART_PERSPECTIVE_POINT \
+ GENLIST_PART_RECT("point", \
+ description { \
+ state: "default" 0.0; \
+ color: 0 0 0 0; \
+ rel1 { relative: 0.0 0.0; } \
+ rel2 { relative: 1.0 0.0; } \
+ } \
+ )
+
+#define GENLIST_PART_BASE \
+ part { name: "base"; \
+ type: RECT; \
+ repeat_events: 1; \
+ scale: 1; \
+ description { state: "default" 0.0; \
+ align: 0.5 0.5; \
+ color: 248 248 248 255; \
+ } \
+ } \
+ GENLIST_PART_PERSPECTIVE_POINT
+
+#define GENLIST_PART_BOTTOM_LINE \
+ part { name: "bottom_line"; \
+ type: RECT; \
+ scale: 1; \
+ mouse_events: 0; \
+ description { state: "default" 0.0; \
+ min: 0 GENLIST_PART_LIST_LINE_HEIGHT; \
+ max: -1 GENLIST_PART_LIST_LINE_HEIGHT; \
+ fixed: 0 1; \
+ align: 0.5 1; \
+ color: GENLIST_LIST_LINE1_COLOR; \
+ rel1.to: "bottom_line2"; \
+ rel2.to: "bottom_line2"; \
+ rel2.relative: 1 0; \
+ } \
+ description { state: "reorder" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 0; \
+ } \
+ description { state: "selected" 0.0; \
+ inherit: "default" 0.0; \
+ color: GENLIST_LIST_PRESS_COLOR; \
+ } \
+ description { state: "disabled" 0.0; \
+ inherit: "default" 0.0; \
+ color: GENLIST_LIST_DIM_COLOR; \
+ } \
+ GENLIST_DESCRIPTION_FADE \
+ } \
+ part { name: "bottom_line2"; \
+ type: RECT; \
+ scale: 1; \
+ mouse_events: 0; \
+ description { state: "default" 0.0; \
+ min: 0 GENLIST_PART_LIST_LINE_HEIGHT; \
+ max: -1 GENLIST_PART_LIST_LINE_HEIGHT; \
+ fixed: 0 1; \
+ align: 0.5 1; \
+ color: GENLIST_LIST_LINE2_COLOR; \
+ rel1.to_x: "elm.padding.left"; \
+ rel1.relative: 1 0; \
+ rel2.to_x: "elm.padding.right"; \
+ rel2.relative: 0 1; \
+ } \
+ description { state: "selected" 0.0; \
+ inherit: "default" 0.0; \
+ color: GENLIST_LIST_PRESS_COLOR; \
+ } \
+ description { state: "reorder" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 0; \
+ } \
+ description { state: "disabled" 0.0; \
+ inherit: "default" 0.0; \
+ color: GENLIST_LIST_DIM_COLOR; \
+ } \
+ GENLIST_DESCRIPTION_FADE \
+ }
+
+#define GENLIST_PART_EXPANDED_PAD \
+ part { name: "elm.swallow.pad"; \
+ type: SWALLOW; \
+ scale: 1; \
+ mouse_events: 0; \
+ description { state: "default" 0.0; \
+ visible: 0; \
+ min: 0 0; \
+ fixed: 1 0; \
+ align: 0.0 0.5; \
+ rel1.to: "base"; \
+ rel2.to: "base"; \
+ rel2.relative: 0.0 1.0; \
+ } \
+ } \
+
+#define GENLIST_PART_PADDING_LEFT \
+ GENLIST_PART_EXPANDED_PAD \
+ GENLIST_PART_SPACER("elm.padding.left", \
+ GENLIST_DESCRIPTION_L("elm.swallow.pad", \
+ min: GENLIST_PADDING_SIZE_LEFT 0; \
+ max: GENLIST_PADDING_SIZE_LEFT -1; \
+ fixed: 1 0; \
+ ) \
+ )
+
+#define GENLIST_PART_CUSTOM_PADDING_LEFT \
+ GENLIST_PART_EXPANDED_PAD \
+ GENLIST_PART_SPACER("elm.padding.left", \
+ GENLIST_DESCRIPTION_L("elm.swallow.pad", \
+ min: GENLIST_PADDING_CUSTOM_SIZE_LEFT 0; \
+ max: GENLIST_PADDING_CUSTOM_SIZE_LEFT -1; \
+ fixed: 1 0; \
+ ) \
+ )
+
+#define GENLIST_PART_CUSTOM_PADDING_LEFT_EDIT \
+ GENLIST_PART_EXPANDED_PAD \
+ GENLIST_PART_SPACER("elm.padding.left", \
+ GENLIST_DESCRIPTION_L("elm.swallow.pad", \
+ min: GENLIST_PADDING_CUSTOM_SIZE_LEFT_EDIT 0; \
+ max: GENLIST_PADDING_CUSTOM_SIZE_LEFT_EDIT -1; \
+ fixed: 1 0; \
+ ) \
+ )
+
+
+#define GENLIST_PART_CUSTOM_1ICON_PADDING_LEFT \
+ GENLIST_PART_EXPANDED_PAD \
+ GENLIST_PART_SPACER("elm.padding.left", \
+ GENLIST_DESCRIPTION_L("elm.swallow.pad", \
+ min: GENLIST_PADDING_CUSTOM_1ICON_SIZE_LEFT 0; \
+ max: GENLIST_PADDING_CUSTOM_1ICON_SIZE_LEFT -1; \
+ fixed: 1 0; \
+ ) \
+ )
+
+#define GENLIST_PART_PADDING_RIGHT \
+ GENLIST_PART_SPACER("elm.padding.right", \
+ description { state: "default" 0.0; \
+ min: GENLIST_PADDING_SIZE_RIGHT 0; \
+ max: GENLIST_PADDING_SIZE_RIGHT -1; \
+ fixed: 1 0; \
+ align: 1.0 0.5; \
+ rel1.to: "base"; \
+ rel2.to: "base"; \
+ rel1.relative: 1 0; \
+ } \
+ )
+
+#define GENLIST_PART_CUSTOM_1ICON_PADDING_RIGHT \
+ GENLIST_PART_SPACER("elm.padding.right", \
+ description { state: "default" 0.0; \
+ min: GENLIST_PADDING_CUSTOM_1ICON_SIZE_RIGHT 0; \
+ max: GENLIST_PADDING_CUSTOM_1ICON_SIZE_RIGHT -1; \
+ fixed: 1 0; \
+ align: 1.0 0.5; \
+ rel1.to: "base"; \
+ rel2.to: "base"; \
+ rel1.relative: 1 0; \
+ } \
+ )
+
+#define GENLIST_PART_PADDING_TOP_2LINE \
+ GENLIST_PART_SPACER("elm.padding.top", \
+ description { \
+ state: "default" 0.0; \
+ min: 0 GENLIST_PADDING_SIZE_TOP_2LINE; \
+ max: -1 GENLIST_PADDING_SIZE_TOP_2LINE; \
+ fixed: 0 1; \
+ rel1.to: "base"; \
+ rel2.to: "base"; \
+ rel2.relative: 1.0 0.0; \
+ align: 0.5 0.0; \
+ } \
+ )
+
+#define GENLIST_PART_CUSTOM_PADDING_TOP_2LINE \
+ GENLIST_PART_SPACER("elm.padding.top", \
+ description { \
+ state: "default" 0.0; \
+ min: 0 GENLIST_PADDING_CUSTOM_SIZE_TOP_2LINE; \
+ max: -1 GENLIST_PADDING_CUSTOM_SIZE_TOP_2LINE; \
+ fixed: 0 1; \
+ rel1.to: "base"; \
+ rel2.to: "base"; \
+ rel2.relative: 1.0 0.0; \
+ align: 0.5 0.0; \
+ } \
+ )
+
+#define GENLIST_PART_PADDING_BOTTOM_2LINE \
+ GENLIST_PART_SPACER("elm.padding.bottom", \
+ description { state: "default" 0.0; \
+ min: 0 GENLIST_PADDING_SIZE_BOTTOM_2LINE; \
+ max: -1 GENLIST_PADDING_SIZE_BOTTOM_2LINE; \
+ fixed: 0 1; \
+ rel1.to: "base"; \
+ rel2.to: "base"; \
+ rel1.relative: 0.0 1.0; \
+ align: 0.5 1.0; \
+ } \
+ )
+
+#define GENLIST_PART_CUSTOM_PADDING_BOTTOM_2LINE \
+ GENLIST_PART_SPACER("elm.padding.bottom", \
+ description { state: "default" 0.0; \
+ min: 0 GENLIST_PADDING_CUSTOM_SIZE_BOTTOM_2LINE; \
+ max: -1 GENLIST_PADDING_CUSTOM_SIZE_BOTTOM_2LINE; \
+ fixed: 0 1; \
+ rel1.to: "base"; \
+ rel2.to: "base"; \
+ rel1.relative: 0.0 1.0; \
+ align: 0.5 1.0; \
+ } \
+ )
+
+#define GENLIST_PART_ICON_CHECK_RADIO_L(NAME, LEFT) \
+ GENLIST_PART_ICON(NAME, \
+ GENLIST_DESCRIPTION_L(LEFT, \
+ GENLIST_PARAM_ICON_CHECK_RADIO \
+ ) \
+ )
+
+
+#define GENLIST_PART_ICON_BIG_L(NAME, LEFT) \
+ GENLIST_PART_ICON(NAME, \
+ GENLIST_DESCRIPTION_L(LEFT, \
+ fixed: 1 1; \
+ GENLIST_PARAM_ICON_BIG \
+ ) \
+ )
+
+#define GENLIST_PART_ICON_BIG_L_CUSTOM_THUMBNAIL(NAME, LEFT) \
+ GENLIST_PART_ICON(NAME, \
+ GENLIST_DESCRIPTION_L(LEFT, \
+ fixed: 1 1; \
+ GENLIST_PARAM_ICON_BIG_CUSTOM_THUMBNAIL \
+ ) \
+ )
+
+#define GENLIST_PART_BG(NAME, PART , COLOR) \
+ GENLIST_PART_RECT(NAME, \
+ description { state: "default" 0.0; \
+ rel1 { \
+ relative: 0 0; \
+ to: PART; \
+ } \
+ rel2 { \
+ relative: 1 1; \
+ to: PART; \
+ } \
+ color: COLOR; \
+ } \
+ )
+
+#define GENLIST_PART_ICON_BIG_L_CUSTOM_FOLDER_ICON(NAME, LEFT) \
+ GENLIST_PART_ICON(NAME, \
+ GENLIST_DESCRIPTION_L(LEFT, \
+ fixed: 1 1; \
+ GENLIST_PARAM_ICON_BIG_CUSTOM_FOLDER_ICON \
+ ) \
+ )
+
+#define GENLIST_PART_ICON_BTN_02_R(NAME, RIGHT) \
+ GENLIST_PART_ICON(NAME, \
+ GENLIST_DESCRIPTION_R(RIGHT, \
+ GENLIST_PARAM_ICON_BTN_02 \
+ ) \
+ )
+
+#define GENLIST_PART_PADDING_L( NAME, LEFT ) \
+ GENLIST_PART_SPACER(NAME, \
+ description { state: "default" 0.0; \
+ fixed: 1 0; \
+ min: GENLIST_PADDING_SIZE_DEFAULT 0; \
+ max: GENLIST_PADDING_SIZE_DEFAULT -1; \
+ align: 0 0.5; \
+ rel1 { \
+ relative: 1 0; \
+ to_x: LEFT; \
+ } \
+ rel2 { \
+ relative: 1 1; \
+ to_x: LEFT; \
+ } \
+ } \
+ )
+
+#define GENLIST_PART_PADDING_R( NAME, RIGHT ) \
+ GENLIST_PART_SPACER(NAME, \
+ description { state: "default" 0.0; \
+ fixed: 1 0; \
+ min: GENLIST_PADDING_SIZE_DEFAULT 0; \
+ max: GENLIST_PADDING_SIZE_DEFAULT -1; \
+ align: 1 0.5; \
+ rel1 { \
+ relative: 0 0; \
+ to_x: RIGHT; \
+ } \
+ rel2 { \
+ relative: 0 1; \
+ to_x: RIGHT; \
+ } \
+ } \
+ )
+
+#define GENLIST_PART_PADDING_PLAY_ICON_L( NAME, RIGHT ) \
+ GENLIST_PART_SPACER(NAME, \
+ description { state: "default" 0.0; \
+ fixed: 1 0; \
+ min: GENLIST_PADDING_SIZE_PLAY_ICON_L 0; \
+ max: GENLIST_PADDING_SIZE_PLAY_ICON_L -1; \
+ align: 1 0.5; \
+ rel1 { \
+ relative: 0 0; \
+ to_x: RIGHT; \
+ } \
+ rel2 { \
+ relative: 0 1; \
+ to_x: RIGHT; \
+ } \
+ } \
+ )
+
+
+#define GENLIST_PART_LISTITEM_(NAME, HEIGHT, LEFT, RIGHT, TOP, BOTTOM, PARAM) \
+ GENLIST_PART_TEXT(NAME, \
+ GENLIST_DESCRIPTION(LEFT, RIGHT, TOP, BOTTOM, \
+ min: 0 HEIGHT; \
+ GENLIST_PARAM_LISTITEM \
+ PARAM \
+ ) \
+ GENLIST_DESCRIPTION_LISTITEM_OTHERS \
+ )
+
+#define GENLIST_PART_LISTITEM_TB_(NAME, HEIGHT, LEFT, RIGHT, TOP, BOTTOM, PARAM) \
+ GENLIST_PART_TEXTBLOCK(NAME, \
+ GENLIST_DESCRIPTION(LEFT, RIGHT, TOP, BOTTOM, \
+ min: 0 HEIGHT; \
+ GENLIST_PARAM_LISTITEM_TB \
+ PARAM \
+ ) \
+ GENLIST_DESCRIPTION_LISTITEM_OTHERS_TB \
+ )
+
+#define GENLIST_PART_SUBITEM_LRT(NAME, HEIGHT, LEFT, RIGHT, TOP) \
+ GENLIST_PART_SPACER(NAME, \
+ GENLIST_DESCRIPTION_LRT(LEFT, RIGHT, TOP, \
+ min: 0 HEIGHT; \
+ fixed: 1 1; \
+ ) \
+ )
+
+#define GENLIST_PART_SUBITEM_LRB(NAME, HEIGHT, LEFT, RIGHT, BOTTOM) \
+ GENLIST_PART_TEXT(NAME, \
+ GENLIST_DESCRIPTION_LRB(LEFT, RIGHT, BOTTOM, \
+ min: 0 HEIGHT; \
+ fixed: 1 1; /*FIXME: why text need this, but textblock doesn't */ \
+ GENLIST_PARAM_SUBITEM_DEFAULT \
+ ) \
+ GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS \
+ )
+
+#define GENLIST_PART_SUBITEM_TIME_LRB(NAME, HEIGHT, LEFT, RIGHT, BOTTOM) \
+ GENLIST_PART_TEXT(NAME, \
+ GENLIST_DESCRIPTION_LRB(LEFT, RIGHT, BOTTOM, \
+ min: 0 HEIGHT; \
+ fixed: 1 1; /*FIXME: why text need this, but textblock doesn't */ \
+ GENLIST_PARAM_SUBITEM_TIME_DEFAULT \
+ ) \
+ GENLIST_DESCRIPTION_SUBITEM_TIME_DEFAULT_OTHERS \
+ )
+
+#define GENLIST_PART_SUBITEM_TIME_BLOCK_LRB(NAME, HEIGHT, LEFT, RIGHT, BOTTOM) \
+ GENLIST_PART_TEXTBLOCK(NAME, \
+ GENLIST_DESCRIPTION_LRB(LEFT, RIGHT, BOTTOM, \
+ min: 0 HEIGHT; \
+ GENLIST_PARAM_LISTITEM_TIME_TB \
+ ) \
+ GENLIST_DESCRIPTION_LISTITEM_TIME_OTHERS_TB \
+ )
+
+
+#define GENLIST_PART_CUSTOM_SUBITEM_LRB_ALIGN_1(NAME, HEIGHT, LEFT, RIGHT, BOTTOM) \
+ GENLIST_PART_TEXT(NAME, \
+ GENLIST_DESCRIPTION_CUSTOM_LRB_ALIGN_1(LEFT, RIGHT, BOTTOM, \
+ min: 0 HEIGHT; \
+ fixed: 1 1; /*FIXME: why text need this, but textblock doesn't */ \
+ GENLIST_PARAM_CUSTOM_SUBITEM_DEFAULT_ALIGN_1 \
+ ) \
+ GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS \
+ )
+
+// only fot recent 1 text style
+#define GENLIST_PARAM_RECENTITEM \
+ color: GENLIST_LIST_SUB_TEXT_SETTINGS_COLOR; \
+ text { \
+ align: 0 0.5; \
+ min: 0 1; \
+ font: "Tizen:style=Bold"; \
+ size: GENLIST_LIST_RECENT_TEXT_SIZE; \
+ }
+
+#define GENLIST_PART_CUSTOM_1TEXT_PADDING_LEFT \
+ GENLIST_PART_EXPANDED_PAD \
+ GENLIST_PART_SPACER("elm.padding.left", \
+ GENLIST_DESCRIPTION_L("elm.swallow.pad", \
+ min: GENLIST_PADDING_CUSTOM_1TEXT_LEFT 0; \
+ max: GENLIST_PADDING_CUSTOM_1TEXT_LEFT -1; \
+ fixed: 1 0; \
+ ) \
+ )
+
+#define GENLIST_PART_CUSTOM_1TEXT_PADDING_RIGHT \
+ GENLIST_PART_SPACER("elm.padding.right", \
+ description { state: "default" 0.0; \
+ min: GENLIST_PADDING_CUSTOM_1TEXT_RIGHT 0; \
+ max: GENLIST_PADDING_CUSTOM_1TEXT_RIGHT -1; \
+ fixed: 1 0; \
+ align: 1.0 0.5; \
+ rel1.to: "base"; \
+ rel2.to: "base"; \
+ rel1.relative: 1 0; \
+ } \
+ )
+
+#define GENLIST_PART_CUSTOM_1TEXT_PADDING_TOP \
+ GENLIST_PART_SPACER("elm.padding.top", \
+ description { \
+ state: "default" 0.0; \
+ min: 0 GENLIST_PADDING_CUSTOM_1TEXT_TOP; \
+ max: -1 GENLIST_PADDING_CUSTOM_1TEXT_TOP; \
+ fixed: 0 1; \
+ rel1.to: "base"; \
+ rel2.to: "base"; \
+ rel2.relative: 1.0 0.0; \
+ align: 0.5 0.0; \
+ } \
+ )
+
+#define GENLIST_PART_CUSTOM_1TEXT_PADDING_BOTTOM \
+ GENLIST_PART_SPACER("elm.padding.bottom", \
+ description { state: "default" 0.0; \
+ min: 0 GENLIST_PADDING_CUSTOM_1TEXT_BOTTOM; \
+ max: -1 GENLIST_PADDING_CUSTOM_1TEXT_BOTTOM; \
+ fixed: 0 1; \
+ rel1.to: "base"; \
+ rel2.to: "base"; \
+ rel1.relative: 0.0 1.0; \
+ align: 0.5 1.0; \
+ } \
+ )
+
+#define GENLIST_PART_RECENTLY_ITEM_(NAME, HEIGHT, LEFT, RIGHT, TOP, BOTTOM, PARAM) \
+ GENLIST_PART_TEXT(NAME, \
+ GENLIST_DESCRIPTION(LEFT, RIGHT, TOP, BOTTOM, \
+ min: 0 HEIGHT; \
+ GENLIST_PARAM_RECENTITEM \
+ PARAM \
+ ) \
+ GENLIST_DESCRIPTION_LISTITEM_OTHERS \
+ )
+
+// If check is swallowed, genlist selected/unselected should be synched with check.
+
+#define GENLIST_PROGRAM_CHECK(CHECK, TARGET1, TARGET2, TARGET3) \
+ program { name: "selected"CHECK; \
+ signal: "mouse,down,1"; \
+ source: CHECK; \
+ script { \
+ new st[31]; \
+ new Float:vl; \
+ get_state(PART:CHECK, st, 30, vl); \
+ if (strcmp(st, "selected")) \
+ set_state(PART:"bg_image", "selected", 0.0); \
+ set_state(PART:TARGET1, "selected", 0.0); \
+ set_state(PART:TARGET2, "selected", 0.0); \
+ set_state(PART:TARGET3, "selected", 0.0); \
+ } \
+ } \
+ program { name: "unselected"CHECK; \
+ signal: "mouse,up,1"; \
+ source: CHECK; \
+ script { \
+ new st[31]; \
+ new Float:vl; \
+ get_state(PART:CHECK, st, 30, vl); \
+ if (strcmp(st, "disabled")) \
+ set_state(PART:"bg_image", "default", 0.0); \
+ set_state(PART:TARGET1, "default", 0.0); \
+ set_state(PART:TARGET2, "default", 0.0); \
+ set_state(PART:TARGET3, "default", 0.0); \
+ } \
+ }
+
+// 2.2.7 Genlist_Edit mode (Rename)
+// FIXME: padding is not needed when swallow content is NULL.
+// But how can edje kwno existence of swallow content?
+#define GENLIST_PART_FLIP \
+ part { name: "elm.flip.event_block";\
+ type: RECT;\
+ mouse_events: 0; \
+ repeat_events: 0;\
+ description { state: "default" 0.0;\
+ visible: 0; \
+ } \
+ description { state: "flip_enabled" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 1; \
+ color: GENLIST_LIST_BG_COLOR;\
+ }\
+ }\
+ part { name: "elm.flip.padding.left"; \
+ type: RECT; \
+ scale: 1; \
+ description { state: "default" 0.0; \
+ min: 26 0; \
+ max: 26 -1; \
+ fixed: 1 0; \
+ visible: 0; \
+ align: 0 0.5; \
+ rel1 { \
+ relative: 0 0; \
+ to: "base"; \
+ } \
+ rel2 { \
+ relative: 0 1; \
+ to: "base"; \
+ } \
+ } \
+ } \
+ part { name: "elm.flip.padding.right"; \
+ type: RECT; \
+ scale: 1; \
+ description { state: "default" 0.0; \
+ min: 26 0; \
+ max: 26 -1; \
+ fixed: 1 0; \
+ visible: 0; \
+ align: 1 0.5; \
+ rel1 { \
+ relative: 1 0; \
+ to: "base"; \
+ } \
+ rel2 { \
+ relative: 1 1; \
+ to: "base"; \
+ } \
+ } \
+ } \
+ part { name: "elm.flip.content"; \
+ type: SWALLOW; \
+ scale: 1; \
+ GENLIST_DESCRIPTION_LR("elm.flip.padding.left", "elm.flip.padding.icon.left", \
+ aspect: 1 1; visible: 0; ) \
+ description { state: "flip_enabled" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 1; \
+ } \
+ } \
+ GENLIST_PART_PADDING_R("elm.flip.padding.icon.left", "elm.flip.icon") \
+ GENLIST_PART_ICON( "elm.flip.icon", \
+ GENLIST_DESCRIPTION_R("elm.flip.padding.right", \
+ visible: 0; \
+ aspect: 1 1; \
+ align: 1 0.5; \
+ max: 154 74;) \
+ description { state: "flip_enabled" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 1; \
+ } \
+ )
+
+
+#define GENLIST_PART_PROGRESS_BAR_ICON( NAME, REL1_TO, REL2_TO ) \
+ part { name: NAME; \
+ scale: 1; \
+ repeat_events: 0; \
+ type: SWALLOW; \
+ description { state: "default" 0.0; \
+ min: 0 GENLIST_ICON_CUSTOM_VIDEO_PROGRESSBAR_H; \
+ fixed: 0 1; \
+ align: 0.5 1.0; \
+ rel1 { \
+ relative: GENLIST_PROGRESSBAR_L/GENLIST_ICON_CUSTOM_THUMBNAIL_WIDTH GENLIST_PROGRESSBAR_T/GENLIST_ICON_CUSTOM_THUMBNAIL_HEIGHT; \
+ to: REL1_TO; \
+ } \
+ rel2 { \
+ relative: GENLIST_PROGRESSBAR_R/GENLIST_ICON_CUSTOM_THUMBNAIL_WIDTH GENLIST_PROGRESSBAR_B/GENLIST_ICON_CUSTOM_THUMBNAIL_HEIGHT; \
+ to: REL2_TO; \
+ } \
+ } \
+ }
+
+#define GENLIST_PART_ICON_RT_CUSTOM_LOCK(NAME, REL_TO) \
+ part { name: NAME; \
+ scale: 1; \
+ repeat_events: 0; \
+ type: SWALLOW; \
+ description { state: "default" 0.0; \
+ GENLIST_PARAM_ICON_RT_CUSTOM_LOCK \
+ fixed: 1 1; \
+ align: 1.0 0.0; \
+ rel1 { \
+ relative: 1.0 0.0;\
+ to: REL_TO; offset:0 4;\
+ } \
+ rel2 { \
+ to: REL_TO; offset:-4 0;\
+ } \
+ } \
+ }
+
+#define GENLIST_PART_ICON_RT_CUSTOM_DROPBOX(NAME, REL_TO) \
+ part { name: NAME; \
+ scale: 1; \
+ repeat_events: 0; \
+ type: SWALLOW; \
+ description { state: "default" 0.0; \
+ GENLIST_PARAM_ICON_RT_CUSTOM_DROPBOX \
+ fixed: 1 1; \
+ align: 0.0 1.0; \
+ rel1 { \
+ relative: 0.0 1.0;\
+ to: REL_TO; offset:10 0;\
+ } \
+ rel2 { \
+ to: REL_TO; offset:0 -20;\
+ } \
+ } \
+ }
+
+#define GENLIST_PROGRAM_CLICK_SOUND( TARGET ) \
+ program { name: "play_sound"TARGET; \
+ signal: "mouse,clicked,1"; \
+ source: TARGET; \
+ script { \
+ new st[31]; \
+ new Float:vl; \
+ get_state(PART:"base", st, 30, vl); \
+ if (strcmp(st, "disabled")) \
+ run_program(PROGRAM:"play_button_press"TARGET); \
+ } \
+ } \
+ program { name: "play_button_press"TARGET; \
+ action: PLAY_SAMPLE "button-pressed" 1.0; \
+ }
+
+/*#define GENLIST_PROGRAM_CLICK_SOUND( TARGET ) \
+ program { name: "touch_click"TARGET; \
+ signal: "mouse,clicked,1"; \
+ source: TARGET; \
+ action: PLAY_SAMPLE "button-pressed" 1.0; \
+ }*/
+
+#define GENLIST_PROGRAM_DISABLED_BOTTOMLINE( TARGET ) \
+ program { name: "enabled"; \
+ signal: "elm,state,enabled"; \
+ source: "elm"; \
+ action: STATE_SET "default" 0.0; \
+ target: "bg_image"; \
+ target: "bottom_line"; \
+ target: "bottom_line2"; \
+ TARGET \
+ } \
+ program { name: "disabled"; \
+ signal: "elm,state,disabled"; \
+ source: "elm"; \
+ action: STATE_SET "disabled" 0.0; \
+ target: "bg_image"; \
+ target: "bottom_line"; \
+ target: "bottom_line2"; \
+ TARGET \
+ }
+
+#define GENLIST_PROGRAM_SELECT_BOTTOMLINE( TARGET ) \
+ program { name: "selected"; \
+ signal: "elm,state,selected"; \
+ source: "elm"; \
+ action: STATE_SET "selected" 0.0; \
+ target: "bg_image"; \
+ target: "bottom_line"; \
+ target: "bottom_line2"; \
+ TARGET \
+ } \
+ program { name: "unselected"; \
+ signal: "elm,state,unselected"; \
+ source: "elm"; \
+ action: STATE_SET "default" 0.0; \
+ target: "bg_image"; \
+ target: "bottom_line"; \
+ target: "bottom_line2"; \
+ TARGET \
+ transition: LINEAR 0.1; \
+ }
+
+#define GENLIST_PROGRAM_EXPAND_FADE( TARGET ) \
+ program { name: "bg_color_change"; \
+ signal: "bg_color_change"; \
+ action: STATE_SET "2depth" 0.0; \
+ target: "bg_image_clip"; \
+ after: "expand_start_fade"; \
+ } \
+ program { name: "expand_start_fade"; \
+ signal: "flip_item"; \
+ action: STATE_SET "fadeout" 0.0; \
+ target: "bg_image"; \
+ TARGET \
+ after: "expand_end_fade"; \
+ } \
+ program { name: "expand_end_fade"; \
+ action: STATE_SET "default" 0.0; \
+ transition: DECELERATE 0.3; \
+ target: "bg_image"; \
+ TARGET \
+ } \
+ program { name: "contract_fade"; \
+ signal: "elm,state,contract_flip"; \
+ action: STATE_SET "fadein" 0.0; \
+ target: "bg_image"; \
+ TARGET \
+ after: "contract_end_fade"; \
+ } \
+ program { name: "contract_end_fade"; \
+ action: STATE_SET "fadeout" 0.0; \
+ transition: ACCELERATE 0.3; \
+ target: "bg_image"; \
+ TARGET \
+ }
+
+#define GENLIST_PROGRAM_FLIP \
+ program { name: "flip_enabled"; \
+ signal: "elm,state,flip,enabled"; \
+ source: "elm"; \
+ action: STATE_SET "flip_enabled" 0.0; \
+ target: "elm.flip.event_block"; \
+ after: "flip_enabled_next"; \
+ } \
+ program { name: "flip_enabled_next"; \
+ action: STATE_SET "flip_enabled" 0.0; \
+ transition: DECELERATE 0.5; \
+ target: "elm.flip.content"; \
+ target: "elm.flip.icon"; \
+ } \
+ program { name: "flip_disabled"; \
+ signal: "elm,state,flip,disabled"; \
+ source: "elm"; \
+ action: STATE_SET "default" 0.0; \
+ transition: DECELERATE 0.5; \
+ target: "elm.flip.event_block"; \
+ target: "elm.flip.content"; \
+ target: "elm.flip.icon"; \
+ }
+
+#define GENLIST_PROGRAM_DEFAULT( TARGET ) \
+ program { name: "default"; \
+ signal: "elm,state,default"; \
+ source: "elm"; \
+ action: STATE_SET "default" 0.0; \
+ TARGET \
+ } \
+
+
+#define GENLIST_PROGRAMS_NORMAL( TARGET ) \
+ programs { \
+ GENLIST_PROGRAM_DEFAULT( TARGET \
+ target: "bottom_line"; \
+ target: "bottom_line2"; \
+ target: "bg_image"; \
+ target: "elm.padding.left"; \
+ target: "elm.padding.right"; \
+ ) \
+ GENLIST_PROGRAM_DISABLED_BOTTOMLINE( TARGET ) \
+ GENLIST_PROGRAM_SELECT_BOTTOMLINE( TARGET ) \
+ GENLIST_PROGRAM_CLICK_SOUND( "bg_image" ) \
+ GENLIST_PROGRAM_EXPAND_FADE( target: "bottom_line"; target: "bottom_line2"; TARGET ) \
+ GENLIST_PROGRAM_FLIP \
+ }
+
+#define GENLIST_PROGRAMS_NORMAL_NO_BG_SOUND( TARGET ) \
+ programs { \
+ GENLIST_PROGRAM_DISABLED_BOTTOMLINE( TARGET ) \
+ GENLIST_PROGRAM_SELECT_BOTTOMLINE( TARGET ) \
+ GENLIST_PROGRAM_EXPAND_FADE( target: "bottom_line"; target: "bottom_line2"; TARGET ) \
+ GENLIST_PROGRAM_FLIP \
+ }
+
+//Use for BT keybord focus start
+#define GENLIST_PROGRAM_FOCUS \
+ program { name: "focused"; \
+ signal: "elm,action,focus_highlight,show"; \
+ source: "elm"; \
+ action: STATE_SET "enabled" 0.0; \
+ target: "focus_part"; \
+ } \
+ program { name: "unfocused"; \
+ signal: "elm,action,focus_highlight,hide"; \
+ source: "elm"; \
+ action: STATE_SET "default" 0.0; \
+ target: "focus_part"; \
+ }
+
+#define GENLIST_PROGRAM_FOCUS_IMAGE \
+program { name: "action_focus"; \
+ signal: "elm,action,focus_highlight,show"; \
+ source: "elm"; \
+ action: STATE_SET "enabled" 0.0; \
+ target: "focus_bg"; \
+} \
+program { name: "action_unfocus"; \
+ signal: "elm,action,focus_highlight,hide"; \
+ source: "elm"; \
+ action: STATE_SET "default" 0.0; \
+ target: "focus_bg"; \
+}
+
+
+#define GENLIST_PART_FOCUS_IMAGE \
+ GENLIST_PART_IMAGE("focus_part", \
+ mouse_events: 0; \
+ description { state: "default" 0.0; \
+ visible: 0; \
+ image { \
+ normal: GENLIST_LIST_ITEM_FOCUS_BG; \
+ border: 7 7 7 7; \
+ } \
+ } \
+ description { state: "enabled" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 1; \
+ } \
+ )
+
+#define GENLIST_PART_FOCUS \
+ GENLIST_PART_IMAGE("focus_part", \
+ mouse_events: 0; \
+ description { state: "default" 0.0; \
+ visible: 0; \
+ image { \
+ normal: GENLIST_LIST_ITEM_FOCUS_BG; \
+ border: 7 7 7 7; \
+ } \
+ } \
+ description { state: "enabled" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 1; \
+ } \
+ )
+//Use for BT keybord focus end
+
+
+ group { name: "elm/genlist/item/video/normal_list/default";
+ alias: "elm/genlist/item_compress/video/normal_list/default";
+ alias: "elm/genlist/tree/video/normal_list/default";
+ alias: "elm/genlist/tree_compress/video/normal_list/default";
+
+ GENLIST_DATA_ITEM_NORMAL
+ data.item: "texts" "elm.text.1 elm.text.2 elm.text.3";
+ data.item: "contents" "elm.thumbnail.icon elm.progressbar.icon elm.lock.icon elm.dropbox.icon";
+
+ images {
+ image: GENLIST_LIST_ITEM_FOCUS_BG COMP;
+ }
+
+ parts {
+ GENLIST_PART_BASE
+ GENLIST_PART_BG_IMAGE
+ GENLIST_PART_BOTTOM_LINE
+ GENLIST_PART_CUSTOM_PADDING_LEFT
+ GENLIST_PART_PADDING_RIGHT
+ GENLIST_PART_CUSTOM_PADDING_TOP_2LINE
+ GENLIST_PART_CUSTOM_PADDING_BOTTOM_2LINE
+
+ GENLIST_PART_BG("elm.thumbnail.icon.bg", "elm.thumbnail.icon", GENLIST_LIST_THUMBNAIL_BG)
+ GENLIST_PART_ICON_BIG_L_CUSTOM_THUMBNAIL("elm.thumbnail.icon", "elm.padding.left")
+ GENLIST_PART_ICON_RT_CUSTOM_LOCK("elm.lock.icon", "elm.thumbnail.icon")
+ GENLIST_PART_ICON_RT_CUSTOM_DROPBOX("elm.dropbox.icon", "elm.thumbnail.icon")
+ GENLIST_PART_PADDING_L("elm.padding.icon.right", "elm.thumbnail.icon")
+ GENLIST_PART_LISTITEM_("elm.text.1", GENLIST_HEIGHT_2LINE_MAIN, "elm.padding.icon.right", "elm.padding.right", "elm.padding.top", "elm.text.2",)
+ GENLIST_PART_SUBITEM_TIME_BLOCK_LRB("elm.text.2", GENLIST_HEIGHT_2LINE_SUB, "elm.padding.icon.right", "elm.padding.right", "elm.padding.bottom")
+ GENLIST_PART_CUSTOM_SUBITEM_LRB_ALIGN_1("elm.text.3", GENLIST_HEIGHT_2LINE_SUB, "elm.padding.icon.right", "elm.padding.right", "elm.padding.bottom")
+ GENLIST_PART_PROGRESS_BAR_ICON("elm.progressbar.icon", "elm.thumbnail.icon", "elm.thumbnail.icon")
+
+ GENLIST_PART_FLIP
+ GENLIST_PART_FOCUS
+ // GENLIST_PART_FOCUS_IMAGE
+ }
+ GENLIST_PROGRAMS_NORMAL( target: "elm.text.1"; target: "elm.text.2"; target: "elm.text.3"; )
+ GENLIST_PROGRAM_FOCUS
+ GENLIST_PROGRAM_CLICK_SOUND("elm.thumbnail.icon")
+ GENLIST_PROGRAM_CLICK_SOUND("elm.progressbar.icon")
+ GENLIST_PROGRAM_CLICK_SOUND("elm.text.1")
+ GENLIST_PROGRAM_CLICK_SOUND("elm.text.2")
+ GENLIST_PROGRAM_CLICK_SOUND("elm.text.3")
+ }
+
+#ifdef USE_VIDEO_DOWNLOAD
+/*video download title item*/
+#define VD_TITLE_TEXT_COLOR 102 102 102 255
+#define VD_TITLE_TEXT_SIZE 32
+#define VD_TITLE_H 76
+#define VD_TITLE_BOTTOM_LINE_COLOR 102 102 102 255
+#define VD_TITLE_BOTTOM_LINE_H 4
+/*video download genlist item*/
+#define VD_GENLIST_ITEM_H 230
+#define VD_GENLIST_ITEM_LEFT 24
+#define VD_GENLIST_ITEM_TOP 16
+#define VD_GENLIST_TEXT1_BOTTOM 6
+#define VD_GENLIST_TEXT2_BOTTOM 2
+#define VD_GENLIST_TEXT3_BOTTOM 15
+#define VD_GENLIST_ITEM_BOTTOM 16
+#define VD_GENLIST_ITEM_THUMBNAIL_W 132
+#define VD_GENLIST_ITEM_THUMBNAIL_H 196
+#define VD_GENLIST_ITEM_DOWNLAOD_ICON_W 72
+#define VD_GENLIST_ITEM_DOWNLAOD_ICON_H 72
+#define VD_GENLIST_ITEM_DOWNLAOD_ICON_L_W 15
+#define VD_GENLIST_ITEM_TEXT1_H 54
+#define VD_GENLIST_ITEM_SPACER_CENTER_TOP_H 59
+#define VD_GENLIST_ITEM_SPACER_CENTER_TOP_H2 19
+#define VD_GENLIST_ITEM_TEXT2_TOP_H 1
+#define VD_GENLIST_ITEM_TEXT2_H 40
+#define VD_GENLIST_ITEM_TEXT3_H 32
+#define VD_GENLIST_ITEM_TEXT4_TOP_H 6
+#define VD_GENLIST_ITEM_TEXT4_H 30
+#define VD_GENLIST_ITEM_TEXT9_H 70
+#define VD_GENLIST_ITEM_PROGRESSBAR_BOTTOM_H 6
+#define VD_GENLIST_ITEM_PROGRESSBAR_W 335
+#define VD_GENLIST_ITEM_PROGRESSBAR_H 11
+#define VD_GENLIST_ITEM_PROGRESSBAR_BG_W 381
+#define VD_GENLIST_ITEM_PROGRESSBAR_BG_H 7
+#define VD_GENLIST_ITEM_TEXT1_COLOR 0 0 0 255
+#define VD_GENLIST_ITEM_TEXT1_STYLE "Tizen:style=Regular"
+#define VD_GENLIST_ITEM_TEXT1_SIZE 35
+#define VD_GENLIST_ITEM_TEXT2_COLOR 102 102 102 255
+#define VD_GENLIST_ITEM_TEXT2_STYLE "Tizen:style=Regular"
+#define VD_GENLIST_ITEM_TEXT2_SIZE 28
+#define VD_GENLIST_ITEM_TEXT3_COLOR 14 104 173 255
+#define VD_GENLIST_ITEM_TEXT3_COLOR_2 79 79 79 255
+#define VD_GENLIST_ITEM_TEXT3_STYLE "Tizen:style=Regular"
+#define VD_GENLIST_ITEM_TEXT3_SIZE 25
+#define VD_GENLIST_ITEM_TEXT4_COLOR 14 104 173 255
+#define VD_GENLIST_ITEM_TEXT4_STYLE "Tizen:style=Regular"
+#define VD_GENLIST_ITEM_TEXT4_SIZE 25
+#define VD_GENLIST_ITEM_THUMBNAIL_BG "T01-2_video_thumbnail_view_bg.png"
+#define VD_GENLIST_ITEM_HD_SD_ICON_W 42
+#define VD_GENLIST_ITEM_HD_SD_ICON_H 32
+#define VD_HD_SD_ICON_PADDING_H 7
+
+styles {
+ style { name: "rent_text_style";
+ base: "font=Tizen:style=Regular font_size=30 color=#3673B6FF wrap=mixed";
+ tag: "br" "\n";
+ tag: "ps" "ps";
+ tag: "tab" "\t";
+ tag: "b" "+ font=Tizen:style=Regular";
+ tag: "match" "+ color=#3F8DAD";
+ }
+}
+
+#define VD_GENLIST_PART_BASE( param_item_height ) \
+ part { name: "base"; \
+ type: RECT; \
+ repeat_events: 1; \
+ scale: 1; \
+ description { state: "default" 0.0; \
+ min: 0 param_item_height; \
+ color: 0 0 0 0; \
+ } \
+ } \
+ GENLIST_PART_PERSPECTIVE_POINT
+
+
+#define VD_TITLE_BOTTOM_LINE \
+ part { name: "bottom_line"; \
+ type: RECT; \
+ scale: 1; \
+ mouse_events: 0; \
+ description { state: "default" 0.0; \
+ min: 0 VD_TITLE_BOTTOM_LINE_H; \
+ fixed: 0 1; \
+ visible: 1; \
+ color: VD_TITLE_BOTTOM_LINE_COLOR; \
+ rel1 { \
+ relative: 1.0 0.0; \
+ to_x: "elm.padding.left"; \
+ to_y: "elm.padding.bottom"; \
+ offset: 0 -(VD_TITLE_BOTTOM_LINE_H); \
+ } \
+ rel2 { \
+ relative: 0.0 0.0; \
+ to_x: "elm.padding.right"; \
+ to_y: "elm.padding.bottom"; \
+ } \
+ } \
+ }
+
+#define VD_TITLE_TEXT \
+ color: VD_TITLE_TEXT_COLOR; \
+ text { \
+ align: 0 0.5; \
+ min: 0 1; \
+ font: "Tizen:style=Bold"; \
+ size: VD_TITLE_TEXT_SIZE; \
+ }
+
+#define VD_TITLE_TEXT_PART(NAME, HEIGHT, LEFT, RIGHT, TOP, BOTTOM) \
+ GENLIST_PART_TEXT(NAME, \
+ GENLIST_DESCRIPTION(LEFT, RIGHT, TOP, BOTTOM, \
+ min: 0 HEIGHT; \
+ VD_TITLE_TEXT \
+ ) \
+ )
+
+#define VD_GENLIST_ITEM_PADDING_LEFT \
+ GENLIST_PART_EXPANDED_PAD \
+ GENLIST_PART_SPACER("elm.padding.left", \
+ GENLIST_DESCRIPTION_L("elm.swallow.pad", \
+ min: VD_GENLIST_ITEM_LEFT 0; \
+ max: VD_GENLIST_ITEM_LEFT -1; \
+ fixed: 1 0; \
+ ) \
+ )
+#define VD_GENLIST_ITEM_PADDING_TOP \
+ GENLIST_PART_SPACER("elm.padding.top", \
+ description { \
+ state: "default" 0.0; \
+ min: 0 VD_GENLIST_ITEM_TOP; \
+ max: -1 VD_GENLIST_ITEM_TOP; \
+ fixed: 0 1; \
+ rel1.to: "base"; \
+ rel2.to: "base"; \
+ rel2.relative: 1.0 0.0; \
+ align: 0.5 0.0; \
+ } \
+ )
+
+#define VD_GENLIST_ITEM_PADDING_BOTTOM \
+ GENLIST_PART_SPACER("elm.padding.bottom", \
+ description { state: "default" 0.0; \
+ min: 0 VD_GENLIST_ITEM_BOTTOM; \
+ max: -1 VD_GENLIST_ITEM_BOTTOM; \
+ fixed: 0 1; \
+ rel1.to: "base"; \
+ rel2.to: "base"; \
+ rel1.relative: 0.0 1.0; \
+ align: 0.5 1.0; \
+ } \
+ )
+
+#define VD_GENLIST_ITEM_THUMBNAIL(NAME, LEFT, RIGHT, TOP, BOTTOM) \
+ part { name: NAME"_bg"; \
+ mouse_events: 0; \
+ scale: 1; \
+ description { \
+ state: "default" 0.0; \
+ align: 0 0.5; \
+ fixed: 1 1; \
+ min: VD_GENLIST_ITEM_THUMBNAIL_W VD_GENLIST_ITEM_THUMBNAIL_H; \
+ max: VD_GENLIST_ITEM_THUMBNAIL_W VD_GENLIST_ITEM_THUMBNAIL_H; \
+ rel1 { \
+ relative: 1 1; \
+ to_x: LEFT; \
+ to_y: TOP; \
+ }\
+ rel2 {\
+ relative: 0 0;\
+ to_x: RIGHT;\
+ to_y: BOTTOM;\
+ }\
+ image { \
+ normal: VD_GENLIST_ITEM_THUMBNAIL_BG; \
+ border_scale:1; \
+ border: 4 4 4 4; \
+ } \
+ } \
+ }\
+ GENLIST_PART_ICON (NAME, \
+ description { state: "default" 0.0;\
+ rel1 { \
+ relative: 0 0; \
+ offset: -4 -4; \
+ to: NAME"_bg"; \
+ }\
+ rel2 {\
+ relative: 1 1;\
+ offset: 4 4; \
+ to: NAME"_bg"; \
+ }\
+ }\
+ )
+
+#define VD_GENLIST_ITEM_DOWNLOAD_ICON(NAME, RIGHT) \
+ GENLIST_PART_ICON(NAME, \
+ GENLIST_DESCRIPTION_R(RIGHT, \
+ min: VD_GENLIST_ITEM_DOWNLAOD_ICON_W VD_GENLIST_ITEM_DOWNLAOD_ICON_H; \
+ max: VD_GENLIST_ITEM_DOWNLAOD_ICON_W VD_GENLIST_ITEM_DOWNLAOD_ICON_H; \
+ ) \
+ )
+
+#define VD_GENLIST_ITEM_PLAY_ICON(NAME, RIGHT) \
+ GENLIST_PART_ICON(NAME, \
+ GENLIST_DESCRIPTION_R(RIGHT, \
+ min: VD_GENLIST_ITEM_DOWNLAOD_ICON_W VD_GENLIST_ITEM_DOWNLAOD_ICON_H; \
+ max: VD_GENLIST_ITEM_DOWNLAOD_ICON_W VD_GENLIST_ITEM_DOWNLAOD_ICON_H; \
+ ) \
+ )
+
+#define VD_GENLIST_ITEM_HD_SD_ICON( NAME, LEFT, TOP ) \
+ part { name: NAME; \
+ scale: 1; \
+ type: SWALLOW; \
+ description { state: "default" 0.0; \
+ fixed: 1 1; \
+ min: VD_GENLIST_ITEM_HD_SD_ICON_W VD_GENLIST_ITEM_HD_SD_ICON_H; \
+ max: VD_GENLIST_ITEM_HD_SD_ICON_W VD_GENLIST_ITEM_HD_SD_ICON_H; \
+ align: 0.0 0.0; \
+ rel1 { \
+ relative: 1 1; \
+ to_x: LEFT; \
+ to_y: TOP; \
+ offset: 0 VD_HD_SD_ICON_PADDING_H; \
+ } \
+ rel2 { \
+ relative: 1 1; \
+ to_x: LEFT; \
+ to_y: TOP; \
+ offset: 0 VD_HD_SD_ICON_PADDING_H; \
+ } \
+ } \
+ }
+
+#define VD_GENLIST_ITEM_PROGRESSBAR_ICON( NAME, LEFT, TOP, RIGHT ) \
+ part { name: NAME; \
+ scale: 1; \
+ type: SWALLOW; \
+ description { state: "default" 0.0; \
+ fixed: 0 1; \
+ min: VD_GENLIST_ITEM_PROGRESSBAR_W VD_GENLIST_ITEM_PROGRESSBAR_H; \
+ align: 0.0 0.0; \
+ rel1 { \
+ relative: 1 1; \
+ to_x: LEFT; \
+ to_y: TOP; \
+ } \
+ rel2 { \
+ relative: 0 1; \
+ to_x: RIGHT; \
+ to_y: TOP; \
+ } \
+ } \
+ }
+
+#define VD_GENLIST_ITEM_PROGRESSBAR_ICON_BG( NAME, LEFT, BOTTOM ) \
+ part { name: NAME; \
+ scale: 1; \
+ type: RECT; \
+ description { state: "default" 0.0; \
+ fixed: 1 1; \
+ min: VD_GENLIST_ITEM_PROGRESSBAR_BG_W VD_GENLIST_ITEM_PROGRESSBAR_BG_H; \
+ max: VD_GENLIST_ITEM_PROGRESSBAR_BG_W VD_GENLIST_ITEM_PROGRESSBAR_BG_H; \
+ align: 0.0 1.0; \
+ rel1 { \
+ relative: 1 0; \
+ offset: 3 0; \
+ to_x: LEFT; \
+ to_y: BOTTOM; \
+ } \
+ rel2 { \
+ relative: 1 0; \
+ offset: 0 -2; \
+ to_x: LEFT; \
+ to_y: BOTTOM; \
+ } \
+ color:255 255 255 255; \
+ } \
+ }
+
+#define GENLIST_PART_PADDING_T( NAME, TOP, HEIGHT ) \
+ GENLIST_PART_SPACER(NAME, \
+ description { state: "default" 0.0; \
+ fixed: 0 1; \
+ min: 0 HEIGHT; \
+ max: -1 HEIGHT; \
+ align: 0.5 1; \
+ rel1 { \
+ relative: 0 1; \
+ to_y: TOP; \
+ } \
+ rel2 { \
+ relative: 1 1; \
+ to_y: TOP; \
+ } \
+ } \
+ )
+
+#define VD_GENLIST_PARAM_SUBITEM(TEXT_COLOR, TEXT_STYLE, TEXT_SIZE, ALIGN_X) \
+ color: TEXT_COLOR; \
+ text { \
+ align: ALIGN_X 1.0; \
+ min: 0 1; \
+ font: TEXT_STYLE; \
+ size: TEXT_SIZE; \
+ }
+
+#define VD_GENLIST_ITEM_SUBITEM_LRB(NAME, HEIGHT, LEFT, RIGHT, BOTTOM, TEXT_COLOR, TEXT_STYLE, TEXT_SIZE) \
+ GENLIST_PART_TEXT(NAME, \
+ GENLIST_DESCRIPTION_LRB(LEFT, RIGHT, BOTTOM, \
+ min: 0 HEIGHT; \
+ fixed: 1 1; \
+ align: 0 1; \
+ VD_GENLIST_PARAM_SUBITEM(TEXT_COLOR, TEXT_STYLE, TEXT_SIZE, 0) \
+ ) \
+ GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS \
+ )
+
+#define VD_GENLIST_ITEM_SUBITEM_LRT(NAME, HEIGHT, LEFT, RIGHT, TOP, TEXT_COLOR, TEXT_STYLE, TEXT_SIZE) \
+ GENLIST_PART_TEXT(NAME, \
+ GENLIST_DESCRIPTION_LRT(LEFT, RIGHT, TOP, \
+ min: 0 HEIGHT; \
+ fixed: 1 1; \
+ align: 0 0; \
+ VD_GENLIST_PARAM_SUBITEM(TEXT_COLOR, TEXT_STYLE, TEXT_SIZE, 0) \
+ ) \
+ GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS \
+ )
+
+#define VD_GENLIST_ITEM_TEXTBLOCK_LRT(NAME, HEIGHT, LEFT, RIGHT, TOP) \
+ GENLIST_PART_TEXTBLOCK(NAME, \
+ GENLIST_DESCRIPTION_LRT(LEFT, RIGHT, TOP, \
+ min: 0 HEIGHT; \
+ fixed: 1 1; \
+ align: 0 0; \
+ GENLIST_PARAM_LISTITEM_TIME_TB \
+ ) \
+ GENLIST_DESCRIPTION_LISTITEM_TIME_OTHERS_TB \
+ )
+
+#define VD_GENLIST_ITEM_SUBITEM_LRTP(NAME, HEIGHT, LEFT, RIGHT, TOP, PARAM) \
+ GENLIST_PART_TEXTBLOCK(NAME, \
+ GENLIST_DESCRIPTION_LRT(LEFT, RIGHT, TOP, \
+ min: 0 HEIGHT; \
+ fixed: 1 1; \
+ align: 0 0; \
+ GENLIST_PARAM_SUBTITLE_TITLE_TB \
+ PARAM \
+ ) \
+ GENLIST_DESCRIPTION_SUBITEM_TITLE_OTHERS_TB \
+ )
+
+
+#define VD_GENLIST_ITEM_TEXTBLOCK_LRTB(NAME, LEFT, RIGHT, TOP, BOTTOM, TEXT_STYLE) \
+ GENLIST_PART_TEXTBLOCK(NAME, \
+ GENLIST_DESCRIPTION_LRTB(LEFT, RIGHT, TOP, BOTTOM, \
+ min: VD_GENLIST_ITEM_PROGRESSBAR_W 30; \
+ max: VD_GENLIST_ITEM_PROGRESSBAR_W 70; \
+ fixed: 1 1; \
+ align: 0 0; \
+ text { \
+ min: 1 0; \
+ style: TEXT_STYLE; \
+ } \
+ ) \
+ GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS \
+ )
+
+#define VD_GENLIST_ITEM_SUBITEM_LRT_ALIGN_1(NAME, HEIGHT, LEFT, RIGHT, TOP, TEXT_COLOR, TEXT_STYLE, TEXT_SIZE) \
+ GENLIST_PART_TEXT(NAME, \
+ GENLIST_DESCRIPTION_CUSTOM_LRT_ALIGN_1(LEFT, RIGHT, TOP, \
+ min: 0 HEIGHT; \
+ fixed: 1 1; \
+ VD_GENLIST_PARAM_SUBITEM(TEXT_COLOR, TEXT_STYLE, TEXT_SIZE, 1) \
+ ) \
+ GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS \
+ )
+
+ group { name: "elm/genlist/item/video/download_list/default";
+ alias: "elm/genlist/item_compress/video/download_list/default";
+ alias: "elm/genlist/tree/video/download_list/default";
+ alias: "elm/genlist/tree_compress/video/download_list/default";
+
+ GENLIST_DATA_ITEM_NORMAL
+ data.item: "texts" "elm.text.1 elm.text.2 elm.text.3 elm.text.4 elm.text.5";
+ data.item: "contents" "elm.thumbnail.icon elm.progressbar.icon elm.play.icon elm.download.icon elm.hd.sd.icon";
+
+ images {
+ image: VD_GENLIST_ITEM_THUMBNAIL_BG COMP;
+ }
+
+ parts {
+ VD_GENLIST_PART_BASE(VD_GENLIST_ITEM_H)
+ GENLIST_PART_BG_IMAGE
+ GENLIST_PART_BOTTOM_LINE
+ VD_GENLIST_ITEM_PADDING_LEFT
+ GENLIST_PART_PADDING_RIGHT
+ VD_GENLIST_ITEM_PADDING_TOP
+ VD_GENLIST_ITEM_PADDING_BOTTOM
+
+ VD_GENLIST_ITEM_THUMBNAIL("elm.thumbnail.icon", "elm.padding.left",
+ "elm.padding.right", "elm.padding.top",
+ "elm.padding.bottom")
+ GENLIST_PART_PADDING_L("elm.padding.thumbnail.right", "elm.thumbnail.icon")
+
+ VD_GENLIST_ITEM_DOWNLOAD_ICON("elm.download.icon", "elm.padding.right")
+
+ GENLIST_PART_PADDING_R("elm.padding.download.left", "elm.download.icon")
+
+ VD_GENLIST_ITEM_PLAY_ICON("elm.play.icon", "elm.padding.download.left")
+
+ GENLIST_PART_PADDING_PLAY_ICON_L("elm.padding.play.left", "elm.play.icon")
+ /*video title*/
+ VD_GENLIST_ITEM_SUBITEM_LRTP("elm.text.1", VD_GENLIST_ITEM_TEXT1_H,
+ "elm.padding.thumbnail.right", "elm.padding.right",
+ "elm.padding.top",)
+
+ GENLIST_PART_SUBITEM_LRT("elm.text.1.bottom", VD_GENLIST_TEXT1_BOTTOM,
+ "elm.padding.thumbnail.right", "elm.padding.play.left", "elm.text.1")
+ /*video year*/
+ VD_GENLIST_ITEM_SUBITEM_LRT("elm.text.2", VD_GENLIST_ITEM_TEXT2_H,
+ "elm.padding.thumbnail.right", "elm.padding.download.left",
+ "elm.text.1", VD_GENLIST_ITEM_TEXT2_COLOR,
+ VD_GENLIST_ITEM_TEXT2_STYLE, VD_GENLIST_ITEM_TEXT2_SIZE)
+
+ GENLIST_PART_SUBITEM_LRT("elm.text.2.bottom", VD_GENLIST_TEXT2_BOTTOM,
+ "elm.padding.thumbnail.right", "elm.padding.play.left", "elm.text.2")
+ /*HD/SD icon*/
+ VD_GENLIST_ITEM_HD_SD_ICON("elm.hd.sd.icon", "elm.padding.thumbnail.right", "elm.text.2.bottom")
+ GENLIST_PART_PADDING_L("elm.hd.sd.icon.right", "elm.hd.sd.icon")
+ /*Licence/Expired*/
+ VD_GENLIST_ITEM_SUBITEM_LRT("elm.text.3", VD_GENLIST_ITEM_TEXT2_H,
+ "elm.hd.sd.icon.right", "elm.padding.play.left",
+ "elm.text.2.bottom", VD_GENLIST_ITEM_TEXT2_COLOR,
+ VD_GENLIST_ITEM_TEXT2_STYLE, VD_GENLIST_ITEM_TEXT2_SIZE)
+ GENLIST_PART_SUBITEM_LRT("elm.text.3.bottom", VD_GENLIST_TEXT3_BOTTOM,
+ "elm.padding.thumbnail.right", "elm.padding.play.left", "elm.text.3")
+ /*File size/running time*/
+ VD_GENLIST_ITEM_TEXTBLOCK_LRT("elm.text.4", VD_GENLIST_ITEM_TEXT3_H,
+ "elm.padding.thumbnail.right", "elm.padding.play.left",
+ "elm.text.3.bottom")
+
+ /*downloading progressbar*/
+ VD_GENLIST_ITEM_PROGRESSBAR_ICON("elm.progressbar.icon", "elm.padding.thumbnail.right", "elm.text.3.bottom", "elm.padding.play.left")
+ GENLIST_PART_PADDING_T("elm.padding.progressbar.bottom", "elm.progressbar.icon", VD_GENLIST_ITEM_PROGRESSBAR_BOTTOM_H)
+ /*downloading text, such as "0.3GB/1.5GB"*/
+ VD_GENLIST_ITEM_SUBITEM_LRT_ALIGN_1("elm.text.5", VD_GENLIST_ITEM_TEXT4_H,
+ "elm.padding.thumbnail.right", "elm.padding.play.left",
+ "elm.padding.progressbar.bottom", VD_GENLIST_ITEM_TEXT3_COLOR,
+ VD_GENLIST_ITEM_TEXT3_STYLE, VD_GENLIST_ITEM_TEXT3_SIZE)
+
+ GENLIST_PART_FLIP
+ GENLIST_PART_FOCUS
+ }
+ GENLIST_PROGRAMS_NORMAL( target: "elm.text.1"; target: "elm.text.2"; target: "elm.text.3";
+ target: "elm.text.4"; target: "elm.text.5";)
+ GENLIST_PROGRAM_FOCUS
+ }
+
+ group { name: "elm/genlist/item/video/download_series_list/default";
+ alias: "elm/genlist/item_compress/video/download_series_list/default";
+ alias: "elm/genlist/tree/video/download_series_list/default";
+ alias: "elm/genlist/tree_compress/video/download_series_list/default";
+
+ GENLIST_DATA_ITEM_NORMAL
+ data.item: "texts" "elm.text.1 elm.text.2 elm.text.3 elm.text.4 elm.text.5";
+ data.item: "contents" "elm.progressbar.icon elm.play.icon elm.download.icon elm.hd.sd.icon";
+
+ parts {
+ VD_GENLIST_PART_BASE(VD_GENLIST_ITEM_H)
+ GENLIST_PART_BG_IMAGE
+ GENLIST_PART_BOTTOM_LINE
+ VD_GENLIST_ITEM_PADDING_LEFT
+ GENLIST_PART_PADDING_RIGHT
+ VD_GENLIST_ITEM_PADDING_TOP
+ VD_GENLIST_ITEM_PADDING_BOTTOM
+
+ VD_GENLIST_ITEM_DOWNLOAD_ICON("elm.download.icon", "elm.padding.right")
+
+ GENLIST_PART_PADDING_R("elm.padding.download.left", "elm.download.icon")
+
+ VD_GENLIST_ITEM_PLAY_ICON("elm.play.icon", "elm.padding.download.left")
+
+ GENLIST_PART_PADDING_PLAY_ICON_L("elm.padding.play.left", "elm.play.icon")
+
+ /*video title*/
+ VD_GENLIST_ITEM_SUBITEM_LRTP("elm.text.1", VD_GENLIST_ITEM_TEXT1_H,
+ "elm.padding.left", "elm.padding.right",
+ "elm.padding.top",)
+
+ GENLIST_PART_SUBITEM_LRT("elm.text.1.bottom", VD_GENLIST_TEXT1_BOTTOM,
+ "elm.padding.left", "elm.padding.play.left", "elm.text.1")
+ /*video year*/
+ VD_GENLIST_ITEM_SUBITEM_LRT("elm.text.2", VD_GENLIST_ITEM_TEXT2_H,
+ "elm.padding.left", "elm.padding.download.left",
+ "elm.text.1", VD_GENLIST_ITEM_TEXT2_COLOR,
+ VD_GENLIST_ITEM_TEXT2_STYLE, VD_GENLIST_ITEM_TEXT2_SIZE)
+
+ GENLIST_PART_SUBITEM_LRT("elm.text.2.bottom", VD_GENLIST_TEXT2_BOTTOM,
+ "elm.padding.left", "elm.padding.play.left", "elm.text.2")
+ /*HD/SD icon*/
+ VD_GENLIST_ITEM_HD_SD_ICON("elm.hd.sd.icon", "elm.padding.left", "elm.text.2.bottom")
+ GENLIST_PART_PADDING_L("elm.hd.sd.icon.right", "elm.hd.sd.icon")
+ /*Licence/Expired*/
+ VD_GENLIST_ITEM_SUBITEM_LRT("elm.text.3", VD_GENLIST_ITEM_TEXT2_H,
+ "elm.hd.sd.icon.right", "elm.padding.play.left",
+ "elm.text.2.bottom", VD_GENLIST_ITEM_TEXT2_COLOR,
+ VD_GENLIST_ITEM_TEXT2_STYLE, VD_GENLIST_ITEM_TEXT2_SIZE)
+ GENLIST_PART_SUBITEM_LRT("elm.text.3.bottom", VD_GENLIST_TEXT3_BOTTOM,
+ "elm.padding.left", "elm.padding.play.left", "elm.text.3")
+ /*File size/running time*/
+ VD_GENLIST_ITEM_TEXTBLOCK_LRT("elm.text.4", VD_GENLIST_ITEM_TEXT3_H,
+ "elm.padding.left", "elm.padding.play.left",
+ "elm.text.3.bottom")
+
+ /*downloading progressbar*/
+ VD_GENLIST_ITEM_PROGRESSBAR_ICON("elm.progressbar.icon", "elm.padding.left", "elm.text.3.bottom", "elm.padding.play.left")
+ GENLIST_PART_PADDING_T("elm.padding.progressbar.bottom", "elm.progressbar.icon", VD_GENLIST_ITEM_PROGRESSBAR_BOTTOM_H)
+ /*downloading text, such as "0.3GB/1.5GB"*/
+ VD_GENLIST_ITEM_SUBITEM_LRT_ALIGN_1("elm.text.5", VD_GENLIST_ITEM_TEXT4_H,
+ "elm.padding.left", "elm.padding.play.left",
+ "elm.padding.progressbar.bottom", VD_GENLIST_ITEM_TEXT3_COLOR,
+ VD_GENLIST_ITEM_TEXT3_STYLE, VD_GENLIST_ITEM_TEXT3_SIZE)
+
+ GENLIST_PART_FLIP
+ GENLIST_PART_FOCUS
+ }
+ GENLIST_PROGRAMS_NORMAL( target: "elm.text.1"; target: "elm.text.2"; target: "elm.text.3";
+ target: "elm.text.4"; target: "elm.text.5";)
+ GENLIST_PROGRAM_FOCUS
+ }
+
+
+ group { name: "elm/genlist/item/video/download_list/rent/default";
+ alias: "elm/genlist/item_compress/video/download_list/rent/default";
+ alias: "elm/genlist/tree/video/download_list/rent/default";
+ alias: "elm/genlist/tree_compress/video/download_list/rent/default";
+
+ GENLIST_DATA_ITEM_NORMAL
+ data.item: "texts" "elm.text.1 elm.text.2 elm.text.3 elm.text.4 elm.text.5 elm.text.6 elm.text.7 elm.text.8 elm.text.9";
+ data.item: "contents" "elm.thumbnail.icon elm.progressbar.icon elm.play.icon elm.download.icon";
+
+ images {
+ image: VD_GENLIST_ITEM_THUMBNAIL_BG COMP;
+ }
+
+ parts {
+ VD_GENLIST_PART_BASE(VD_GENLIST_ITEM_H)
+ GENLIST_PART_BG_IMAGE
+ GENLIST_PART_BOTTOM_LINE
+ VD_GENLIST_ITEM_PADDING_LEFT
+ GENLIST_PART_PADDING_RIGHT
+ VD_GENLIST_ITEM_PADDING_TOP
+ VD_GENLIST_ITEM_PADDING_BOTTOM
+
+ VD_GENLIST_ITEM_THUMBNAIL("elm.thumbnail.icon", "elm.padding.left",
+ "elm.padding.right", "elm.padding.top",
+ "elm.padding.bottom")
+ GENLIST_PART_PADDING_L("elm.padding.thumbnail.right", "elm.thumbnail.icon")
+
+ VD_GENLIST_ITEM_DOWNLOAD_ICON("elm.download.icon", "elm.padding.right")
+
+ GENLIST_PART_PADDING_R("elm.padding.download.left", "elm.download.icon")
+
+ VD_GENLIST_ITEM_PLAY_ICON("elm.play.icon", "elm.padding.download.left")
+
+ GENLIST_PART_PADDING_PLAY_ICON_L("elm.padding.play.left", "elm.play.icon")
+
+ GENLIST_PART_SUBITEM_LRT("elm.padding.center.top", VD_GENLIST_ITEM_SPACER_CENTER_TOP_H2,
+ "elm.padding.thumbnail.right", "elm.padding.play.left", "elm.padding.top")
+ VD_GENLIST_ITEM_SUBITEM_LRT("elm.text.1", VD_GENLIST_ITEM_TEXT1_H,
+ "elm.padding.thumbnail.right", "elm.padding.right",
+ "elm.padding.center.top", VD_GENLIST_ITEM_TEXT1_COLOR,
+ VD_GENLIST_ITEM_TEXT1_STYLE, VD_GENLIST_ITEM_TEXT1_SIZE)
+
+ GENLIST_PART_SUBITEM_LRT("elm.text.1.bottom", VD_GENLIST_TEXT1_BOTTOM,
+ "elm.padding.thumbnail.right", "elm.padding.play.left", "elm.text.1")
+
+ VD_GENLIST_ITEM_SUBITEM_LRT("elm.text.2", VD_GENLIST_ITEM_TEXT2_H,
+ "elm.padding.thumbnail.right", "elm.padding.download.left",
+ "elm.text.1", VD_GENLIST_ITEM_TEXT2_COLOR,
+ VD_GENLIST_ITEM_TEXT2_STYLE, VD_GENLIST_ITEM_TEXT2_SIZE)
+
+ VD_GENLIST_ITEM_SUBITEM_LRT_ALIGN_1("elm.text.7", VD_GENLIST_ITEM_TEXT2_H,
+ "elm.padding.thumbnail.right", "elm.padding.play.left",
+ "elm.text.1", VD_GENLIST_ITEM_TEXT2_COLOR,
+ VD_GENLIST_ITEM_TEXT2_STYLE, VD_GENLIST_ITEM_TEXT2_SIZE)
+
+ VD_GENLIST_ITEM_PROGRESSBAR_ICON("elm.progressbar.icon", "elm.padding.thumbnail.right", "elm.text.1.bottom", "elm.padding.play.left")
+ GENLIST_PART_PADDING_T("elm.padding.progressbar.bottom", "elm.progressbar.icon", VD_GENLIST_ITEM_PROGRESSBAR_BOTTOM_H)
+
+ VD_GENLIST_ITEM_SUBITEM_LRT("elm.text.3", VD_GENLIST_ITEM_TEXT1_H,
+ "elm.padding.thumbnail.right", "elm.padding.right",
+ "elm.padding.center.top", VD_GENLIST_ITEM_TEXT1_COLOR,
+ VD_GENLIST_ITEM_TEXT1_STYLE, VD_GENLIST_ITEM_TEXT1_SIZE)
+
+ VD_GENLIST_ITEM_TEXTBLOCK_LRT("elm.text.4", VD_GENLIST_ITEM_TEXT2_H,
+ "elm.padding.thumbnail.right", "elm.padding.right",
+ "elm.text.3")
+
+ VD_GENLIST_ITEM_TEXTBLOCK_LRTB("elm.text.9", "elm.padding.thumbnail.right",
+ "elm.padding.play.left", "elm.text.4",
+ "elm.padding.bottom", "rent_text_style")
+
+ VD_GENLIST_ITEM_SUBITEM_LRT_ALIGN_1("elm.text.8", VD_GENLIST_ITEM_TEXT2_H,
+ "elm.padding.thumbnail.right", "elm.padding.play.left",
+ "elm.text.3", VD_GENLIST_ITEM_TEXT2_COLOR,
+ VD_GENLIST_ITEM_TEXT2_STYLE, VD_GENLIST_ITEM_TEXT2_SIZE)
+
+ VD_GENLIST_ITEM_SUBITEM_LRT("elm.text.5", VD_GENLIST_ITEM_TEXT4_H,
+ "elm.padding.thumbnail.right", "elm.padding.play.left",
+ "elm.padding.progressbar.bottom", VD_GENLIST_ITEM_TEXT4_COLOR,
+ VD_GENLIST_ITEM_TEXT4_STYLE, VD_GENLIST_ITEM_TEXT4_SIZE)
+
+ //GENLIST_PART_PADDING_L("elm.progressbar.icon.right", "elm.progressbar.icon")
+ VD_GENLIST_ITEM_SUBITEM_LRT_ALIGN_1("elm.text.6", VD_GENLIST_ITEM_TEXT4_H,
+ "elm.padding.thumbnail.right", "elm.padding.play.left",
+ "elm.padding.progressbar.bottom", VD_GENLIST_ITEM_TEXT4_COLOR,
+ VD_GENLIST_ITEM_TEXT4_STYLE, VD_GENLIST_ITEM_TEXT4_SIZE)
+ //GENLIST_PART_PADDING_B("elm.padding.text5.top", "elm.text.5", VD_GENLIST_ITEM_TEXT4_TOP_H)
+
+ GENLIST_PART_FLIP
+ }
+ GENLIST_PROGRAMS_NORMAL( target: "elm.text.1"; target: "elm.text.2"; target: "elm.text.3";
+ target: "elm.text.4"; target: "elm.text.5"; target: "elm.text.6"; )
+ }
+
+ group { name: "elm/genlist/item/video/download_edit_list/default";
+ alias: "elm/genlist/item_compress/video/download_edit_list/default";
+ alias: "elm/genlist/tree/video/download_edit_list/default";
+ alias: "elm/genlist/tree_compress/video/download_edit_list/default";
+
+
+ GENLIST_DATA_ITEM_NORMAL
+ data.item: "texts" "elm.text.1 elm.text.2 elm.text.3";
+ data.item: "contents" "elm.edit.icon.1 elm.thumbnail.icon elm.progressbar.icon elm.lock.icon elm.dropbox.icon";
+
+ images {
+ image: GENLIST_LIST_ITEM_FOCUS_BG COMP;
+ }
+
+ parts {
+ VD_GENLIST_PART_BASE(VD_GENLIST_ITEM_H)
+ GENLIST_PART_BG_IMAGE
+ GENLIST_PART_BOTTOM_LINE
+ VD_GENLIST_ITEM_PADDING_LEFT
+ GENLIST_PART_PADDING_RIGHT
+ VD_GENLIST_ITEM_PADDING_TOP
+ VD_GENLIST_ITEM_PADDING_BOTTOM
+
+ GENLIST_PART_ICON_CHECK_RADIO_L("elm.edit.icon.1", "elm.padding.left")
+ VD_GENLIST_ITEM_THUMBNAIL("elm.thumbnail.icon", "elm.edit.icon.1",
+ "elm.padding.right", "elm.padding.top",
+ "elm.padding.bottom")
+ GENLIST_PART_ICON_RT_CUSTOM_LOCK("elm.lock.icon", "elm.thumbnail.icon")
+ GENLIST_PART_ICON_RT_CUSTOM_DROPBOX("elm.dropbox.icon", "elm.thumbnail.icon")
+ GENLIST_PART_PADDING_L("elm.padding.icon2.right", "elm.thumbnail.icon")
+ /*video title*/
+ VD_GENLIST_ITEM_SUBITEM_LRTP("elm.text.1", VD_GENLIST_ITEM_TEXT1_H,
+ "elm.padding.icon2.right", "elm.padding.right",
+ "elm.padding.top",)
+ VD_GENLIST_ITEM_SUBITEM_LRT("elm.text.2", VD_GENLIST_ITEM_TEXT3_H,
+ "elm.padding.icon2.right", "elm.padding.right",
+ "elm.text.1", VD_GENLIST_ITEM_TEXT3_COLOR_2,
+ VD_GENLIST_ITEM_TEXT3_STYLE, VD_GENLIST_ITEM_TEXT3_SIZE)
+
+ VD_GENLIST_ITEM_SUBITEM_LRT("elm.text.3", VD_GENLIST_ITEM_TEXT3_H,
+ "elm.padding.icon2.right", "elm.padding.right",
+ "elm.text.2", VD_GENLIST_ITEM_TEXT3_COLOR_2,
+ VD_GENLIST_ITEM_TEXT3_STYLE, VD_GENLIST_ITEM_TEXT3_SIZE)
+
+ GENLIST_PART_PROGRESS_BAR_ICON("elm.progressbar.icon", "elm.thumbnail.icon", "elm.thumbnail.icon")
+
+ GENLIST_PART_FLIP
+ GENLIST_PART_FOCUS
+ //GENLIST_PART_FOCUS_IMAGE
+ }
+ GENLIST_PROGRAMS_NORMAL( target: "elm.text.1"; target: "elm.text.2"; target: "elm.text.3"; )
+ GENLIST_PROGRAM_CHECK("elm.edit.icon.1", "elm.text.1", "elm.text.2", "elm.text.3")
+ GENLIST_PROGRAM_FOCUS
+ GENLIST_PROGRAM_CLICK_SOUND("elm.thumbnail.icon")
+ GENLIST_PROGRAM_CLICK_SOUND("elm.progressbar.icon")
+ GENLIST_PROGRAM_CLICK_SOUND("elm.text.1")
+ GENLIST_PROGRAM_CLICK_SOUND("elm.text.2")
+ GENLIST_PROGRAM_CLICK_SOUND("elm.text.3")
+ }
+
+ group { name: "elm/genlist/item/video/download_title/default";
+ alias: "elm/genlist/item_compress/video/download_title/default";
+ alias: "elm/genlist/tree/video/download_title/default";
+ alias: "elm/genlist/tree_compress/video/download_title/default";
+
+ GENLIST_DATA_ITEM_NORMAL
+
+ data.item: "texts" "elm.text";
+
+ parts {
+ GENLIST_PART_BASE
+ GENLIST_PART_BG_IMAGE
+ GENLIST_PART_CUSTOM_1TEXT_PADDING_LEFT
+ GENLIST_PART_PADDING_RIGHT
+ GENLIST_PART_CUSTOM_1TEXT_PADDING_TOP
+ GENLIST_PART_CUSTOM_PADDING_BOTTOM_2LINE
+
+ VD_TITLE_BOTTOM_LINE
+ VD_TITLE_TEXT_PART("elm.text", VD_TITLE_H,
+ "elm.padding.left", "elm.padding.right",
+ "elm.padding.top", "elm.padding.bottom"
+ )
+ }
+ }
+#endif
+
+ group {name: "elm/genlist/item/video/search_list/default";
+ alias: "elm/genlist/item_compress/video/search_list/default";
+ alias: "elm/genlist/tree/video/search_list/default";
+ alias: "elm/genlist/tree_compress/video/search_list/default";
+
+ GENLIST_DATA_ITEM_NORMAL
+ data.item: "texts" "elm.text.1 elm.text.2 elm.text.3";
+ data.item: "contents" "elm.thumbnail.icon elm.progressbar.icon elm.lock.icon elm.dropbox.icon";
+ images {
+ image: GENLIST_LIST_ITEM_FOCUS_BG COMP;
+ }
+
+ parts {
+ GENLIST_PART_BASE
+ GENLIST_PART_BG_IMAGE
+ GENLIST_PART_BOTTOM_LINE
+ GENLIST_PART_CUSTOM_PADDING_LEFT
+ GENLIST_PART_PADDING_RIGHT
+ GENLIST_PART_CUSTOM_PADDING_TOP_2LINE
+ GENLIST_PART_CUSTOM_PADDING_BOTTOM_2LINE
+
+ GENLIST_PART_BG("elm.thumbnail.icon.bg", "elm.thumbnail.icon", GENLIST_LIST_THUMBNAIL_BG)
+ GENLIST_PART_ICON_BIG_L_CUSTOM_THUMBNAIL("elm.thumbnail.icon", "elm.padding.left")
+ GENLIST_PART_ICON_RT_CUSTOM_LOCK("elm.lock.icon", "elm.thumbnail.icon")
+ GENLIST_PART_ICON_RT_CUSTOM_DROPBOX("elm.dropbox.icon", "elm.thumbnail.icon")
+ GENLIST_PART_PADDING_L("elm.padding.icon.right", "elm.thumbnail.icon")
+ GENLIST_PART_LISTITEM_TB_("elm.text.1", GENLIST_HEIGHT_2LINE_MAIN, "elm.padding.icon.right", "elm.padding.right", "elm.padding.top", "elm.text.2",)
+ GENLIST_PART_SUBITEM_TIME_BLOCK_LRB("elm.text.2", GENLIST_HEIGHT_2LINE_SUB, "elm.padding.icon.right", "elm.padding.right", "elm.padding.bottom")
+ GENLIST_PART_CUSTOM_SUBITEM_LRB_ALIGN_1("elm.text.3", GENLIST_HEIGHT_2LINE_SUB, "elm.padding.icon.right", "elm.padding.right", "elm.padding.bottom")
+ GENLIST_PART_PROGRESS_BAR_ICON("elm.progressbar.icon", "elm.thumbnail.icon", "elm.thumbnail.icon")
+
+ GENLIST_PART_FLIP
+ GENLIST_PART_FOCUS
+ //GENLIST_PART_FOCUS_IMAGE
+ }
+ GENLIST_PROGRAMS_NORMAL( target: "elm.text.1"; target: "elm.text.2"; target: "elm.text.3"; )
+ GENLIST_PROGRAM_FOCUS
+ GENLIST_PROGRAM_CLICK_SOUND("elm.thumbnail.icon")
+ GENLIST_PROGRAM_CLICK_SOUND("elm.progressbar.icon")
+ GENLIST_PROGRAM_CLICK_SOUND("elm.text.1")
+ GENLIST_PROGRAM_CLICK_SOUND("elm.text.2")
+ GENLIST_PROGRAM_CLICK_SOUND("elm.text.3")
+ }
+
+ group { name: "elm/genlist/item/video/edit_list/default";
+ alias: "elm/genlist/item_compress/video/edit_list/default";
+ alias: "elm/genlist/tree/video/edit_list/default";
+ alias: "elm/genlist/tree_compress/video/edit_list/default";
+
+ GENLIST_DATA_ITEM_NORMAL
+ data.item: "texts" "elm.text.1 elm.text.2 elm.text.3";
+ data.item: "contents" "elm.edit.icon.1 elm.thumbnail.icon elm.progressbar.icon elm.lock.icon elm.dropbox.icon";
+
+ images {
+ image: GENLIST_LIST_ITEM_FOCUS_BG COMP;
+ }
+
+ parts {
+ GENLIST_PART_BASE
+ GENLIST_PART_BOTTOM_LINE
+ GENLIST_PART_BG_IMAGE
+ GENLIST_PART_CUSTOM_PADDING_LEFT_EDIT
+ GENLIST_PART_PADDING_RIGHT
+ GENLIST_PART_CUSTOM_PADDING_TOP_2LINE
+ GENLIST_PART_CUSTOM_PADDING_BOTTOM_2LINE
+
+ GENLIST_PART_ICON_CHECK_RADIO_L("elm.edit.icon.1", "elm.padding.left")
+ GENLIST_PART_PADDING_L("elm.padding.icon1.right", "elm.edit.icon.1")
+ GENLIST_PART_BG("elm.thumbnail.icon.bg", "elm.thumbnail.icon", GENLIST_LIST_THUMBNAIL_BG)
+ GENLIST_PART_ICON_BIG_L_CUSTOM_THUMBNAIL("elm.thumbnail.icon", "elm.padding.icon1.right")
+ GENLIST_PART_ICON_RT_CUSTOM_LOCK("elm.lock.icon", "elm.thumbnail.icon")
+ GENLIST_PART_ICON_RT_CUSTOM_DROPBOX("elm.dropbox.icon", "elm.thumbnail.icon")
+ GENLIST_PART_PADDING_L("elm.padding.icon2.right", "elm.thumbnail.icon")
+ GENLIST_PART_LISTITEM_("elm.text.1", GENLIST_HEIGHT_2LINE_MAIN, "elm.padding.icon2.right", "elm.padding.right", "elm.padding.top", "elm.text.2",)
+ GENLIST_PART_SUBITEM_TIME_BLOCK_LRB("elm.text.2", GENLIST_HEIGHT_2LINE_SUB, "elm.padding.icon2.right", "elm.padding.right", "elm.padding.bottom")
+ GENLIST_PART_CUSTOM_SUBITEM_LRB_ALIGN_1("elm.text.3", GENLIST_HEIGHT_2LINE_SUB, "elm.padding.icon2.right", "elm.padding.right", "elm.padding.bottom")
+ GENLIST_PART_PROGRESS_BAR_ICON("elm.progressbar.icon", "elm.thumbnail.icon", "elm.thumbnail.icon")
+
+ GENLIST_PART_FLIP
+ GENLIST_PART_FOCUS
+ //GENLIST_PART_FOCUS_IMAGE
+ }
+ GENLIST_PROGRAMS_NORMAL( target: "elm.text.1"; target: "elm.text.2"; target: "elm.text.3"; )
+ GENLIST_PROGRAM_CHECK("elm.edit.icon.1", "elm.text.1", "elm.text.2", "elm.text.3")
+ GENLIST_PROGRAM_FOCUS
+ GENLIST_PROGRAM_CLICK_SOUND("elm.thumbnail.icon")
+ GENLIST_PROGRAM_CLICK_SOUND("elm.progressbar.icon")
+ GENLIST_PROGRAM_CLICK_SOUND("elm.text.1")
+ GENLIST_PROGRAM_CLICK_SOUND("elm.text.2")
+ GENLIST_PROGRAM_CLICK_SOUND("elm.text.3")
+ }
+
+ group { name: "elm/genlist/item/video/edit_folder/default";
+ alias: "elm/genlist/item_compress/video/edit_folder/default";
+ alias: "elm/genlist/tree/video/edit_folder/default";
+ alias: "elm/genlist/tree_compress/video/edit_folder/default";
+ GENLIST_DATA_ITEM_NORMAL
+ data.item: "texts" "elm.text.1 elm.text.2";
+ data.item: "contents" "elm.edit.icon.1 elm.thumbnail.icon elm.lock.icon";
+
+ images {
+ image: GENLIST_LIST_ITEM_FOCUS_BG COMP;
+ }
+
+ parts {
+ GENLIST_PART_BASE
+ GENLIST_PART_BG_IMAGE
+ GENLIST_PART_BOTTOM_LINE
+ GENLIST_PART_CUSTOM_PADDING_LEFT_EDIT
+ GENLIST_PART_PADDING_RIGHT
+ GENLIST_PART_CUSTOM_PADDING_TOP_2LINE
+ GENLIST_PART_CUSTOM_PADDING_BOTTOM_2LINE
+
+ GENLIST_PART_ICON_CHECK_RADIO_L("elm.edit.icon.1", "elm.padding.left")
+ GENLIST_PART_PADDING_L("elm.padding.icon1.right", "elm.edit.icon.1")
+ GENLIST_PART_ICON_BIG_L_CUSTOM_FOLDER_ICON("elm.thumbnail.icon", "elm.padding.icon1.right")
+ GENLIST_PART_ICON_RT_CUSTOM_LOCK("elm.lock.icon", "elm.thumbnail.icon")
+ GENLIST_PART_PADDING_L("elm.padding.icon2.right", "elm.thumbnail.icon")
+ GENLIST_PART_LISTITEM_("elm.text.1", GENLIST_HEIGHT_2LINE_MAIN, "elm.padding.icon2.right", "elm.padding.right", "elm.padding.top", "elm.text.2",)
+ GENLIST_PART_SUBITEM_LRB("elm.text.2", GENLIST_HEIGHT_2LINE_SUB, "elm.padding.icon2.right", "elm.padding.right", "elm.padding.bottom")
+
+ GENLIST_PART_FLIP
+ GENLIST_PART_FOCUS
+ //GENLIST_PART_FOCUS_IMAGE
+ }
+ GENLIST_PROGRAMS_NORMAL( target: "elm.text.1"; target: "elm.text.2";)
+ GENLIST_PROGRAM_CHECK("elm.edit.icon.1", "elm.text.1", "elm.text.2", "elm.text.2")
+ GENLIST_PROGRAM_FOCUS
+ GENLIST_PROGRAM_CLICK_SOUND("elm.thumbnail.icon")
+ GENLIST_PROGRAM_CLICK_SOUND("elm.text.1")
+ GENLIST_PROGRAM_CLICK_SOUND("elm.text.2")
+ }
+
+ group { name: "elm/genlist/item/video/1icon/default";
+ alias: "elm/genlist/item_compress/video/1icon/default";
+ alias: "elm/genlist/tree/video/1icon/default";
+ alias: "elm/genlist/tree_compress/video/1icon/default";
+
+ GENLIST_DATA_ITEM_NORMAL
+ data.item: "contents" "elm.icon";
+
+ images {
+ image: GENLIST_LIST_ITEM_FOCUS_BG COMP;
+ }
+
+ parts {
+ GENLIST_PART_BASE
+ GENLIST_PART_BG_IMAGE
+ GENLIST_PART_BOTTOM_LINE
+ GENLIST_PART_CUSTOM_1ICON_PADDING_LEFT
+ GENLIST_PART_CUSTOM_1ICON_PADDING_RIGHT
+
+ GENLIST_PART_ICON("elm.icon", GENLIST_DESCRIPTION_LR(
+ "elm.padding.left", "elm.padding.right",
+ min: 0 GENLIST_HEIGHT_1LINE; )
+ )
+ GENLIST_PART_FLIP
+ GENLIST_PART_FOCUS
+ //GENLIST_PART_FOCUS_IMAGE
+ }
+ GENLIST_PROGRAMS_NORMAL_NO_BG_SOUND( target: "elm.icon"; )
+ GENLIST_PROGRAM_FOCUS
+ }
+
+ group { name: "elm/genlist/item/video/1icon.noline/default";
+ alias: "elm/genlist/item_compress/video/1icon.noline/default";
+ alias: "elm/genlist/tree/video/1icon.noline/default";
+ alias: "elm/genlist/tree_compress/video/1icon.noline/default";
+
+ GENLIST_DATA_ITEM_NORMAL
+ data.item: "contents" "elm.icon";
+
+ parts {
+ GENLIST_PART_BASE
+ GENLIST_PART_BG_IMAGE
+ //GENLIST_PART_BOTTOM_LINE
+ GENLIST_PART_CUSTOM_1ICON_PADDING_LEFT
+ GENLIST_PART_CUSTOM_1ICON_PADDING_RIGHT
+
+ GENLIST_PART_ICON("elm.icon", GENLIST_DESCRIPTION_LR(
+ "elm.padding.left", "elm.padding.right",
+ min: 0 GENLIST_HEIGHT_MIN_1LINE; )
+ )
+ //GENLIST_PART_FLIP
+ }
+ //GENLIST_PROGRAMS_NORMAL( target: "elm.icon"; )
+ }
+
+ group { name: "elm/genlist/item/video/1icon.thumbnail/default";
+ alias: "elm/genlist/item_compress/video/1icon.thumbnail/default";
+ alias: "elm/genlist/tree/video/1icon.thumbnail/default";
+ alias: "elm/genlist/tree_compress/video/1icon.thumbnail/default";
+
+ GENLIST_DATA_ITEM_NORMAL
+ data.item: "contents" "elm.icon";
+
+ parts {
+ GENLIST_PART_BASE
+ //GENLIST_PART_BG_IMAGE
+ //GENLIST_PART_BOTTOM_LINE
+ GENLIST_PART_CUSTOM_1ICON_PADDING_LEFT
+ GENLIST_PART_CUSTOM_1ICON_PADDING_RIGHT
+
+ GENLIST_PART_ICON("elm.icon", GENLIST_DESCRIPTION_LR(
+ "elm.padding.left", "elm.padding.right",
+ min: 0 GENLIST_HEIGHT_MIN_1LINE_THUMBNAIL; )
+ )
+ //GENLIST_PART_FLIP
+ }
+ //GENLIST_PROGRAMS_NORMAL( target: "elm.icon"; )
+ }
+
+ group { name: "elm/genlist/item/video/1icon.thumbnail.landscape/default";
+ alias: "elm/genlist/item_compress/video/1icon.thumbnail.landscape/default";
+ alias: "elm/genlist/tree/video/1icon.thumbnail.landscape/default";
+ alias: "elm/genlist/tree_compress/video/1icon.thumbnail.landscape/default";
+
+ GENLIST_DATA_ITEM_NORMAL
+ data.item: "contents" "elm.icon";
+
+ parts {
+ GENLIST_PART_BASE
+ //GENLIST_PART_BG_IMAGE
+ //GENLIST_PART_BOTTOM_LINE
+ GENLIST_PART_CUSTOM_1ICON_PADDING_LEFT
+ GENLIST_PART_CUSTOM_1ICON_PADDING_RIGHT
+
+ GENLIST_PART_ICON("elm.icon", GENLIST_DESCRIPTION_LR(
+ "elm.padding.left", "elm.padding.right",
+ min: 0 GENLIST_HEIGHT_MIN_1LINE_THUMBNAIL_LANDSCAPE; )
+ )
+ //GENLIST_PART_FLIP
+ }
+ //GENLIST_PROGRAMS_NORMAL( target: "elm.icon"; )
+ }
+ group { name: "elm/genlist/item/video/1icon.thumbnail.zoom/default";
+ alias: "elm/genlist/item_compress/video/1icon.thumbnail.zoom/default";
+ alias: "elm/genlist/tree/video/1icon.thumbnail.zoom/default";
+ alias: "elm/genlist/tree_compress/video/1icon.thumbnail.zoom/default";
+
+ GENLIST_DATA_ITEM_NORMAL
+ data.item: "contents" "elm.icon";
+
+ parts {
+ GENLIST_PART_BASE
+ GENLIST_PART_CUSTOM_1ICON_PADDING_LEFT
+ GENLIST_PART_CUSTOM_1ICON_PADDING_RIGHT
+
+ GENLIST_PART_ICON("elm.icon", GENLIST_DESCRIPTION_LR(
+ "elm.padding.left", "elm.padding.right",
+ min: 0 GENLIST_HEIGHT_MAX_1LINE_THUMBNAIL; )
+ )
+ }
+ }
+ /*only used for title.*/
+ group { name: "elm/genlist/item/video/1text/default";
+ alias: "elm/genlist/item_compress/video/1text/default";
+ alias: "elm/genlist/tree/video/1text/default";
+ alias: "elm/genlist/tree_compress/video/1text/default";
+
+ GENLIST_DATA_ITEM_NORMAL
+
+ data.item: "texts" "elm.text";
+
+ parts {
+ GENLIST_PART_BASE
+ GENLIST_PART_BG_IMAGE
+ //GENLIST_PART_BOTTOM_LINE
+ GENLIST_PART_CUSTOM_1TEXT_PADDING_LEFT
+ GENLIST_PART_CUSTOM_1TEXT_PADDING_RIGHT
+ GENLIST_PART_CUSTOM_1TEXT_PADDING_TOP
+ GENLIST_PART_CUSTOM_1TEXT_PADDING_BOTTOM
+
+ GENLIST_PART_RECENTLY_ITEM_("elm.text", GENLIST_HEIGHT_1LINE_RECENT,
+ "elm.padding.left", "elm.padding.right",
+ "elm.padding.top", "elm.padding.bottom",
+ )
+ //GENLIST_PART_FLIP
+ }
+ //GENLIST_PROGRAMS_NORMAL( target: "elm.text"; )
+ }
+
+ group { name: "elm/genlist/item/video/folder_list/default";
+ alias: "elm/genlist/item_compress/video/folder_list/default";
+ alias: "elm/genlist/tree/video/folder_list/default";
+ alias: "elm/genlist/tree_compress/video/folder_list/default";
+
+ GENLIST_DATA_ITEM_NORMAL
+ data.item: "texts" "elm.text.1 elm.text.2";
+ data.item: "contents" "elm.thumbnail.icon elm.lock.icon";
+
+ images {
+ image: GENLIST_LIST_ITEM_FOCUS_BG COMP;
+ }
+
+ parts {
+ GENLIST_PART_BASE
+ GENLIST_PART_BG_IMAGE
+ GENLIST_PART_BOTTOM_LINE
+ GENLIST_PART_CUSTOM_PADDING_LEFT
+ GENLIST_PART_PADDING_RIGHT
+ GENLIST_PART_CUSTOM_PADDING_TOP_2LINE
+ GENLIST_PART_CUSTOM_PADDING_BOTTOM_2LINE
+
+ GENLIST_PART_ICON_BIG_L_CUSTOM_FOLDER_ICON("elm.thumbnail.icon", "elm.padding.left")
+ GENLIST_PART_ICON_RT_CUSTOM_LOCK("elm.lock.icon", "elm.thumbnail.icon")
+ GENLIST_PART_PADDING_L("elm.padding.icon.right", "elm.thumbnail.icon")
+ GENLIST_PART_LISTITEM_("elm.text.1", GENLIST_HEIGHT_2LINE_MAIN, "elm.padding.icon.right", "elm.padding.right", "elm.padding.top", "elm.text.2",)
+ GENLIST_PART_SUBITEM_LRB("elm.text.2", GENLIST_HEIGHT_2LINE_SUB, "elm.padding.icon.right", "elm.padding.right", "elm.padding.bottom")
+
+ GENLIST_PART_FLIP
+ GENLIST_PART_FOCUS
+ //GENLIST_PART_FOCUS_IMAGE
+ }
+ GENLIST_PROGRAMS_NORMAL( target: "elm.text.1"; target: "elm.text.2";)
+ GENLIST_PROGRAM_FOCUS
+ GENLIST_PROGRAM_CLICK_SOUND("elm.thumbnail.icon")
+ GENLIST_PROGRAM_CLICK_SOUND("elm.text.1")
+ GENLIST_PROGRAM_CLICK_SOUND("elm.text.2")
+ }
+
+//------------------for lite---------------------------------------------------------------------------//
+
+#define LITE_GENLIST_ICON_CUSTOM_VIDEO_PROGRESSBAR_H 4
+
+#define LITE_GENLIST_ICON_CUSTOM_BG_WIDTH 90
+#define LITE_GENLIST_ICON_CUSTOM_BG_HEIGHT 55
+
+#define LITE_GENLIST_ICON_CUSTOM_THUMBNAIL_WIDTH 55
+#define LITE_GENLIST_ICON_CUSTOM_THUMBNAIL_HEIGHT 40
+
+#define LITE_GENLIST_PROGRESSBAR_L 0
+#define LITE_GENLIST_PROGRESSBAR_R (LITE_GENLIST_ICON_CUSTOM_THUMBNAIL_WIDTH-LITE_GENLIST_PROGRESSBAR_L)
+
+
+#define LITE_GENLIST_ICON_PAD_L 10
+#define LITE_GENLIST_ICON_PAD_R 115
+#define LITE_GENLIST_ICON_PAD_T 8
+
+#define LITE_GENLIST_ICON_CUSTOM_FOLDER_WIDTH 24
+#define LITE_GENLIST_ICON_CUSTOM_FOLDER_HEIGHT 24
+
+#define LITE_GENLIST_PAD_CUSTOM_FOLDER_ICON_RIGHT 8
+#define LITE_GENLIST_PAD_CUSTOM_FOLDER_ICON_BOTTOM 8
+
+ group { name: "listview.thumbnail.layout";
+ images {
+ image: "player_library_list_thumbnail_default.png" COMP;
+ }
+ parts {
+ part { name: "bg";
+ type: SPACER;
+ scale: 1;
+ description { state: "default" 0.0;
+ align: 0 0;
+ min: LITE_GENLIST_ICON_CUSTOM_BG_WIDTH LITE_GENLIST_ICON_CUSTOM_BG_HEIGHT;
+ max: LITE_GENLIST_ICON_CUSTOM_BG_WIDTH LITE_GENLIST_ICON_CUSTOM_BG_HEIGHT;
+ fixed: 0 1;
+ rel1 { relative: 0 0; }
+ rel2 { relative: 1 1; }
+ }
+ }
+
+ part { name: "elm.padding.left";
+ scale: 1;
+ type: SPACER;
+ description { state: "default" 0.0;
+ fixed: 1 0;
+ align: 0 0.3;
+ rel1 {
+ relative: 0 0;
+ to: "bg";
+ }
+ rel2 {
+ relative: 0 1;
+ to: "bg";
+ }
+ min: LITE_GENLIST_ICON_PAD_L 0;
+ }
+ }
+
+ part { name: "elm.thumbnail.bg";
+ scale: 1;
+ type: IMAGE;
+ description { state: "default" 0.0;
+ align: 0 0;
+ fixed: 1 1;
+ rel1 {
+ relative: 1 0;
+ to: "elm.padding.left";
+ }
+ rel2 {
+ relative: 1 0;
+ to: "elm.padding.left";
+ }
+ min: LITE_GENLIST_ICON_CUSTOM_THUMBNAIL_WIDTH LITE_GENLIST_ICON_CUSTOM_THUMBNAIL_HEIGHT;
+ max: LITE_GENLIST_ICON_CUSTOM_THUMBNAIL_WIDTH LITE_GENLIST_ICON_CUSTOM_THUMBNAIL_HEIGHT;
+ image.normal: "player_library_list_thumbnail_default.png";
+ }
+ description { state: "fadeout" 0.0;
+ inherit: "default" 0.0;
+ color: 0 0 0 10;
+ visible: 0;
+ }
+ description { state: "fadein" 0.0;
+ inherit: "default" 0.0;
+ }
+ }
+
+ part { name: "elm.thumbnail.icon";
+ scale: 1;
+ type: SWALLOW;
+ description { state: "default" 0.0;
+ align: 0 0;
+ fixed: 1 1;
+ rel1 {
+ relative: 0 0;
+ to: "elm.thumbnail.bg";
+ }
+ rel2 {
+ relative: 1 1;
+ to: "elm.thumbnail.bg";
+ }
+ }
+ description { state: "fadeout" 0.0;
+ inherit: "default" 0.0;
+ color: 0 0 0 10;
+ visible: 0;
+ }
+ description { state: "fadein" 0.0;
+ inherit: "default" 0.0;
+ }
+ }
+
+ part { name: "elm.frame.top";
+ type: RECT;
+ scale: 1;
+ description { state: "default" 0.0;
+ align: 0.5 0.0;
+ rel1 {
+ relative: 0 0; to: "elm.thumbnail.icon";
+ }
+ rel2 {
+ relative: 1 0; to: "elm.thumbnail.icon";
+ }
+ fixed: 1 1;
+ min: LITE_GENLIST_ICON_CUSTOM_THUMBNAIL_WIDTH 1;
+ color: 255 255 255 128;
+ }
+ }
+
+ part { name: "elm.frame.bottom";
+ type: RECT;
+ scale: 1;
+ description { state: "default" 0.0;
+ align: 0.5 1.0;
+ rel1 {
+ relative: 0 1; to: "elm.thumbnail.icon";
+ }
+ rel2 {
+ relative: 1 1; to: "elm.thumbnail.icon";
+ }
+ fixed: 1 1;
+ min: LITE_GENLIST_ICON_CUSTOM_THUMBNAIL_WIDTH 1;
+ color: 255 255 255 128;
+ }
+ }
+
+ part { name: "elm.frame.left";
+ type: RECT;
+ scale: 1;
+ description { state: "default" 0.0;
+ align: 0.0 0.5;
+ rel1 {
+ relative: 0 0; to: "elm.thumbnail.icon";
+ }
+ rel2 {
+ relative: 0 1; to: "elm.thumbnail.icon";
+ }
+ fixed: 1 1;
+ min: 1 LITE_GENLIST_ICON_CUSTOM_THUMBNAIL_HEIGHT;
+ color: 255 255 255 128;
+ }
+ }
+
+ part { name: "elm.frame.right";
+ type: RECT;
+ scale: 1;
+ description { state: "default" 0.0;
+ align: 1.0 0.5;
+ rel1 {
+ relative: 1 0; to: "elm.thumbnail.icon";
+ }
+ rel2 {
+ relative: 1 1; to: "elm.thumbnail.icon";
+ }
+ fixed: 1 1;
+ min: 1 LITE_GENLIST_ICON_CUSTOM_THUMBNAIL_HEIGHT;
+ color: 255 255 255 128;
+ }
+ }
+
+ part { name: "elm.progressbar.icon";
+ scale: 1;
+ repeat_events: 0;
+ type: SWALLOW;
+ description { state: "default" 0.0;
+ min: LITE_GENLIST_ICON_CUSTOM_THUMBNAIL_WIDTH-2 LITE_GENLIST_ICON_CUSTOM_VIDEO_PROGRESSBAR_H;
+ max: LITE_GENLIST_ICON_CUSTOM_THUMBNAIL_WIDTH-2 LITE_GENLIST_ICON_CUSTOM_VIDEO_PROGRESSBAR_H;
+ fixed: 1 1;
+ align: 0.0 0.0;
+ rel1 {
+ relative: 0 0.92 ;
+ to: "elm.thumbnail.icon";
+ }
+ rel2 {
+ relative: 1 1;
+ to: "elm.thumbnail.icon";
+ }
+ }
+ }
+
+ part { name: "elm.folder.icon";
+ scale: 1;
+ repeat_events: 0;
+ type: SWALLOW;
+ description { state: "default" 0.0;
+ min: LITE_GENLIST_ICON_CUSTOM_FOLDER_WIDTH LITE_GENLIST_ICON_CUSTOM_FOLDER_HEIGHT;
+ max: LITE_GENLIST_ICON_CUSTOM_FOLDER_WIDTH LITE_GENLIST_ICON_CUSTOM_FOLDER_HEIGHT;
+ fixed: 1 1;
+ align: 1.0 1.0;
+ rel1 {
+ relative: 0 0.5;
+ to: "elm.thumbnail.icon";
+ }
+ rel2 {
+ relative: 1 1;
+ to: "elm.thumbnail.icon";
+ }
+ }
+ }
+
+ part { name: "elm.folder.icon.ef";
+ scale: 1;
+ repeat_events: 0;
+ type: SWALLOW;
+ description { state: "default" 0.0;
+ min: LITE_GENLIST_ICON_CUSTOM_FOLDER_WIDTH LITE_GENLIST_ICON_CUSTOM_FOLDER_HEIGHT;
+ max: LITE_GENLIST_ICON_CUSTOM_FOLDER_WIDTH LITE_GENLIST_ICON_CUSTOM_FOLDER_HEIGHT;
+ fixed: 1 1;
+ rel1 {
+ relative: 0.0 0.0;
+ to: "elm.folder.icon";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ to: "elm.folder.icon";
+ }
+ }
+ }
+ }
+ }
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES 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;
+ }
+ }
+ }
+ }
+}
+
+
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "edc_image_macro.edc"
+
+collections {
+RESOURCE_IMAGE_LOSSY("turn_over/B15_turn_over_01.png")
+RESOURCE_IMAGE_LOSSY("turn_over/B15_turn_over_02.png")
+RESOURCE_IMAGE_LOSSY("turn_over/B15_turn_over_03.png")
+RESOURCE_IMAGE("icon/T01_2_button_expand_download.png")
+RESOURCE_IMAGE("icon/T01_2_button_expand_download_press.png")
+RESOURCE_IMAGE("icon/T01_2_button_expand_play.png")
+RESOURCE_IMAGE("icon/T01_2_button_expand_stop.png")
+RESOURCE_IMAGE("icon/T01_2_button_expand_cancel.png")
+RESOURCE_IMAGE("icon/T01_2_button_expand_cancel_press.png")
+
+RESOURCE_IMAGE("player_library_list_thumbnail_default.png")
+RESOURCE_IMAGE("icon/T01_2_icon_search.png")
+RESOURCE_IMAGE("sound_only.png")
+
+RESOURCE_IMAGE("icon/T01_2_icon_video.png")
+RESOURCE_IMAGE("icon/T01-2_video_noitem.png")
+RESOURCE_IMAGE("icon/T01-2_video_thumbnail_default.png")
+RESOURCE_IMAGE("icon/T02_icon_edit.png")
+RESOURCE_IMAGE("icon/U04_device_None_DNS.png")
+RESOURCE_IMAGE("icon/U04_device_TV.png")
+RESOURCE_IMAGE("icon/U04_device_PC.png")
+RESOURCE_IMAGE("icon/U04_device_STB.png")
+RESOURCE_IMAGE("icon/U04_device_Mobile.png")
+RESOURCE_IMAGE("icon/U04_device_Camera.png")
+RESOURCE_IMAGE("icon/U04_device_Camcorder.png")
+//RESOURCE_IMAGE("icon/U04_device_Tablet.png")
+RESOURCE_IMAGE("icon/T01_2_video_lock_45x45.png")
+RESOURCE_IMAGE("icon/T01_2_thumbnail_icon_drop_box.png")
+RESOURCE_IMAGE("icon/T01_Device_icon_index_refresh_bg.png")
+RESOURCE_IMAGE("icon/T01_Device_icon_index_refresh_focus_ef.png")
+
+//folder view
+RESOURCE_IMAGE("icon/player_folder_list_icon_folder.png")
+RESOURCE_IMAGE("icon/player_folder_list_icon_folder_ef.png")
+RESOURCE_IMAGE("icon/player_folder_list_icon_dropbox.png")
+RESOURCE_IMAGE("icon/player_folder_list_icon_dropbox_ef.png")
+RESOURCE_IMAGE("icon/T01_2_list_icon_inner_usb.png")
+RESOURCE_IMAGE("icon/T01_2_list_icon_sd_card.png")
+
+RESOURCE_IMAGE("toolbar/T01-2_controlbar_icon_video.png")
+RESOURCE_IMAGE("toolbar/T01-2_controlbar_icon_recorded.png")
+RESOURCE_IMAGE("toolbar/T01-2_btn_toolbar_back.png")
+RESOURCE_IMAGE("toolbar/T01-2_icon_toolbar_cancel.png")
+RESOURCE_IMAGE("toolbar/icon_delete.png")
+RESOURCE_IMAGE("toolbar/more_button_icon_add_to_your_personal_storage.png")
+RESOURCE_IMAGE("toolbar/more_button_icon_remove_from_your_personal_storage.png")
+RESOURCE_IMAGE("toolbar/T01-2_icon_toolbar_done.png")
+
+//Use for more button popup
+RESOURCE_IMAGE("toolbar/icon_signin.png")
+RESOURCE_IMAGE("toolbar/icon_download.png")
+RESOURCE_IMAGE("toolbar/icon_refresh.png")
+RESOURCE_IMAGE("toolbar/icon_sort_by.png")
+RESOURCE_IMAGE("toolbar/icon_view_as.png")
+RESOURCE_IMAGE("toolbar/icon_share_via.png")
+RESOURCE_IMAGE("toolbar/icon_nearbydevices.png")
+RESOURCE_IMAGE("T01_icon_soft_back.png");
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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 */
+
+
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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;
+ }
+ }
+ }
+ }
+}
+
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES 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 */
+
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES 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";
+ }
+ }
+ }
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES 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";
+ }
+ }
+ }
+ }
+ }
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#define NAVIFRAME_TOP_LINE_COLOR 146 130 255 255
+#define SEARCHBAR_H_INC 69
+externals {
+ external: "elm";
+ external: "feedback";
+ }
+collections
+{
+ /*************************************************/
+ /* elm_layout -> searchbar style */
+ /*************************************************/
+plugins {
+ plugin {
+ name: "touch_sound_plugin";
+ source: "feedback";
+ param: "FEEDBACK_TYPE_SOUND FEEDBACK_PATTERN_TAP";
+ }
+ }
+ base_scale: 2.6;
+ group {
+ name: "search_view_layout";
+ parts {
+ part {
+ name: "background";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: 0.0 0.0; }
+ rel2 { relative: 1.0 1.0; }
+ color: 255 255 255 0;
+ }
+ }
+ part {
+ name: "search_bar";
+ type: SWALLOW;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 58;
+ fixed: 0 1;
+ align: 0.5 0.0;
+ rel1 { relative: 0.0 0.0; to:"background"; }
+ rel2 { relative: 1.0 0.0; to:"background"; }
+ color: 255 255 255 0;
+ }
+ }
+ part {
+ name: "elm.swallow.content";
+ type: SWALLOW;
+ scale: 1;
+ repeat_events: 1;
+ description {
+ state: "default" 0.0;
+ align: 0.5 0.0;
+ fixed: 0 1;
+ rel1 { relative: 0.0 1.0; to_y:"search_bar"; }
+ rel2 { relative: 1.0 1.0; }
+ }
+ }
+ }
+ }
+
+ group {
+ name: "searchbar_video";
+ images{
+ image: "T01_icon_soft_back_blabk.png" COMP;
+ }
+ parts {
+ part {
+ name: "bg";
+ mouse_events: 0;
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 0 58;
+ rel1 { relative: 0.0 0.0; }
+ rel2 { relative: 1.0 1.0; }
+ color: 255 255 255 255;
+ }
+ }
+ part {
+ name: "searchbar_video_title_rect";
+ type: RECT;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ fixed: 0 1;
+ align: 0.0 1.0;
+ rel1 { relative: 0.0 0.0; to: "bg"; }
+ rel2 { relative: 1.0 1.0;to:"bg"; }
+ color: 255 255 255 255;
+ }
+ }
+ part {
+ name: "searchbar_video_soft_back_button";
+ type: RECT;
+ scale: 1;
+ description{
+ state: "default" 0.0;
+ rel1{ relative: 0.0 0.1; to: "searchbar_video_title_rect"; }
+ rel2{ relative: 0.1 0.9; to: "searchbar_video_title_rect"; }
+ }
+ description {
+ state: "pressed" 0.0;
+ inherit: "default" 0.0;
+ color: 255 255 255 255;
+ }
+ description {
+ state: "landscape" 0.0;
+ rel1{ relative: 0.0 0.1; to: "searchbar_video_title_rect"; }
+ rel2{ relative: 0.06 0.9; to: "searchbar_video_title_rect"; }
+ }
+ }
+ part {
+ name: "searchbar_video_soft_back_button_image";
+ type: IMAGE;
+ repeat_events : 1;
+ description{ state: "default" 0.0;
+ min : 40 40 ;
+ max : 40 40 ;
+ align: 0.5 0.5;
+ rel1 { relative: 0 0; to: "searchbar_video_soft_back_button"; }
+ rel2 { relative: 1 1; to: "searchbar_video_soft_back_button"; }
+ image.normal: "T01_icon_soft_back_blabk.png";
+ }
+ }
+ part {
+ name: "searchbar_outer_rect";
+ type: RECT;
+ scale: 1;
+ description{
+ state: "default" 0.0;
+ rel1 { relative: 0.1 0.12; to: "searchbar_video_title_rect"; }
+ rel2 { relative: 0.95 0.83; to: "searchbar_video_title_rect"; }
+ color: 0 0 0 255;
+ }
+ description{
+ state: "landscape" 0.0;
+ rel1 { relative: 0.06 0.12; to: "searchbar_video_title_rect"; }
+ rel2 { relative: 0.97 0.83; to: "searchbar_video_title_rect"; }
+ color: 0 0 0 255;
+ }
+ }
+ part {
+ name: "searchbar_inner_rect";
+ type: RECT;
+ scale: 1;
+ description{
+ state: "default" 0.0;
+ rel1 { relative: 0.104 0.15; to: "searchbar_video_title_rect"; }
+ rel2 { relative: 0.947 0.80; to: "searchbar_video_title_rect"; }
+ color: 255 255 255 255;
+ }
+ description{
+ state: "landscape" 0.0;
+ rel1 { relative: 0.0625 0.15; to: "searchbar_video_title_rect"; }
+ rel2 { relative: 0.9675 0.80; to: "searchbar_video_title_rect"; }
+ color: 255 255 255 255;
+ }
+ }
+ part {
+ name: "searchbar_outer_line";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: 0.0 0.98; to_y: "searchbar_video_title_rect"; }
+ rel2 { relative: 1.0 1.0; to: "searchbar_video_title_rect"; }
+ color: 0 0 0 255;
+ }
+ }
+ part {
+ name: "searchbar";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 SEARCHBAR_H_INC;
+ //fixed: 0 1;
+ align: 0.0 0.5;
+ rel1 { relative: 0.0 0.05; to: "searchbar_inner_rect"; }
+ rel2 { relative: 0.9 1.0; to: "searchbar_inner_rect"; }
+ }
+ description {
+ state: "visible" 0.0;
+ inherit: "default" 0.0;
+ align: 0.0 0.0;
+ }
+ }
+ part {
+ name: "searchbar_clear_btn";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ align: 0.0 0.5;
+ color: 0 0 0 255;
+ rel1 { relative: 0.8 0.0; to_y: "searchbar"; }
+ rel2 { relative: 1.0 1.0; to_y: "searchbar"; }
+ }
+ description{
+ state: "landscape" 0.0;
+ color: 0 0 0 255;
+ rel1 { relative: 0.9 0.05; to: "searchbar_inner_rect"; }
+ rel2 { relative: 1.0 1.0; to: "searchbar_inner_rect"; }
+ }
+ }
+ part {
+ name: "progress";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ align: 0.5 0.5;
+ color: 0 255 0 0;
+ rel1 { relative: 0.0 1.0; to: "searchbar_video_title_rect"; }
+ }
+ }
+ }
+ programs {
+ program {
+ name: "show_portrait";
+ signal: "elm,state,show,portrait";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ //target: "searchbar_video_title_rect";
+ target: "searchbar_video_soft_back_button";
+ target: "searchbar_outer_rect";
+ target: "searchbar_inner_rect";
+ }
+ program {
+ name: "show_landscape";
+ signal: "elm,state,show,landscape";
+ source: "elm";
+ action: STATE_SET "landscape" 0.0;
+ //target: "searchbar_video_title_rect";
+ target: "searchbar_video_soft_back_button";
+ target: "searchbar_outer_rect";
+ target: "searchbar_inner_rect";
+ }
+ program {
+ name: "show_clear_button_portrait";
+ signal: "elm,state,show,clear_button,portrait";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "searchbar_clear_btn";
+ }
+ program {
+ name: "show_clear_button_landscape";
+ signal: "elm,state,show,clear_button,landscape";
+ source: "elm";
+ action: STATE_SET "landscape" 0.0;
+ target: "searchbar_clear_btn";
+ }
+ program{
+ name: "searchbar_video_send_signal";
+ signal: "mouse,up,1"; //mouse,down,1 // mouse,up,1
+ source: "searchbar_video_soft_back_button";
+ action: SIGNAL_EMIT "elm,action,click" "back_button_callback";
+ target: "searchbar_video_soft_back_button";
+ }
+ program{
+ name: "touch_snd";
+ source: "searchbar_video_soft_back_button";
+ signal: "mouse,clicked,1";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ program{
+ name: "touch_snd_clear";
+ source: "searchbar_clear_btn";
+ signal: "mouse,clicked,1";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ program {
+ name: "show_searchbar";
+ signal: "elm,state,show,searchbar";
+ source: "elm";
+ action: STATE_SET "visible" 0.0;
+ target: "searchbar";
+ }
+ program {
+ name: "show_searchbar_with_animation";
+ signal: "elm,state,show,searchbar,animation";
+ source: "elm";
+ action: STATE_SET "visible" 0.0;
+ transition: DECELERATE 0.3;
+ target: "searchbar";
+ }
+ program {
+ name: "hide_searchbar";
+ signal: "elm,state,hide,searchbar";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "searchbar";
+ }
+ program {
+ name: "hide_searchbar_with_animation";
+ signal: "elm,state,hide,searchbar,animation";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ transition: ACCELERATE 0.3;
+ target: "searchbar";
+ }
+ }
+ }
+
+ group {
+ name: "download.series.view";
+ parts {
+ part {
+ name, "background";
+ type: RECT;
+ scale: 1;
+ description {
+ state, "default" 0.0;
+ visible: 1;
+ color: 248 246 239 255;
+ }
+ description {
+ state, "rotate" 0.0;
+ visible: 1;
+ min: 1280 0;
+ max: 1280 10000;
+ }
+ }
+ part {
+ name: "content";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 1;
+ description {
+ state: "default" 0.0;
+ }
+ description {
+ state: "rotate" 0.0;
+ inherit: "default" 0.0;
+ }
+ }
+ part {
+ name: "progress";
+ type: SWALLOW;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ }
+ description {
+ state: "rotate" 0.0;
+ inherit: "default" 0.0;
+ }
+ }
+ }
+ programs {
+ program {
+ name: "view,rotate";
+ signal: "view,rotate";
+ source: "elm";
+ action: STATE_SET "rotate" 0.0;
+ target: "background";
+ target: "content";
+ target: "progress";
+ }
+ program {
+ name: "view,default";
+ signal: "view,default";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "background";
+ target: "content";
+ target: "progress";
+ }
+ }
+ }
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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;
+ }
+ }
+ }
+ }
+ }
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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;
+ }
+ }*/
+}
+
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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";
+ }
+ }
+ }
+*/
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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 */
+
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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";
+ }
+ }
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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 */
+
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES 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 */
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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";}
+ }
+ }
+ }
+}
+
+}
+
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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"; }
+ }
+ }
+ }
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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
--- /dev/null
+# 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})
--- /dev/null
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "تنزيل"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "سيتم تنزيل مجلد واحد."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "سيتم تنزيل فيديو واحد."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "سيتم تنزيل كل المجلدات."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "سيتم تنزيل كل مقاطع الفيديو."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "سيتم تنزيل %d من المجلدات."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "سيتم تنزيل %d من مقاطع الفيديو."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "تم إيقاف تشغيل بيانات الهاتف المحمول. بدلاً من ذلك، اتصل بشبكة Wi-Fi، أو شغّل بيانات الهاتف المحمول وحاول مرة أخرى."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "خاص"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "ب."
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "ج.ب"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "ك.ب"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "الموقع"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "م.ب"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "غير معروف"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "موافق"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "مجلد واحد"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "مقطع فيديو واحد"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "الكل"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "من الجهاز"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "من Dropbox"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "آخر تعديل"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "المحتوى المطلوب عرضه"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "البحث"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "مشاركة"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "سيتم حذف مجلد واحد."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "جارٍ الحذف..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "سيتم عرض مقاطع فيديو التي تم تسجيلها باستخدام الكاميرا هنا."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d مقاطع فيديو"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "فيديو"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "ما من مقاطع فيديو"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "التفاصيل"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "المجلد"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "اللائحة"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "مضاف مؤخرا"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "تمت مشاهدتها مؤخراً"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "تغيير الاسم"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "الحجم"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "فرز حسب"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "العنوان"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "النوع"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "عرض كـ"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "سيتم حذف جميع مقاطع الفيديو."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "سيتم حذف %d مجلدات."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "سيتم حذف %d مقاطع فيديو."
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "سيتم حذف هذا المجلد."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "مجلدات %d"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "الضبط"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "يتعذر تشغيل الفيديو"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "محاذاة"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "حجم الخط"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "ضبط التكرار"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "العناوين الفرعية (CC)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "سيتم حذف كل المجلدات."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "وسط"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "كبير"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "إلى اليسار"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "متوسطة"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "إلى اليمين"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "صغير"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "اسم الملف مستخدم بالفعل"
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "إغلاق"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "تم الوصول إلى أقصى عدد من الحروف."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "إيقاف"
+
+msgid "IDS_COM_SK_OK"
+msgstr "موافق"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "غير مفعل"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "إنعاش"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "الموقع"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "تم الحذف."
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "إزالة من الخاص"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "نقل إلى الخاص"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "المدخل خالي."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "تنسيق"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "يتعذر تشغيل الصوت أثناء المكالمة."
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "هذا الملف غير متاح أثناء عدم الاتصال الشبكة. تحقق من اتصال الشبكة وحاول مرة أخرى."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "سيتم نقل العنصر المحدد إلى %s."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "سيتم نقل العناصر المحددة إلى %s."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "جاري الحذف..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "جاري النقل..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "فشل النقل إلى التخزين الشخصي."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "فشل النقل إلى التخزين العادي."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "الرسالة"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "مجلدات"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "بريد إلكتروني"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "التاريخ (الأحدث)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "تم تحديد %d"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "حذف مقاطع الفيديو"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "حذف مقطع الفيديو"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "نقل"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "خط الطول"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "المدى"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "بعد تسجيل مقاطع فيديو باستخدام الكاميرا، سيتم عرض مقاطع الفيديو"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "إلغاء"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "بعد إيقاف الكل"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "تكرار الحالية"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "تكرار الكل"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "الدقة"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "حذف"
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "مسح الكل"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "هذا الملف يعتمد بيانات الصوت فقط. تشغيل الصوت الآن."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "هذا الملف يعتمد بيانات الفيديو فقط. تشغيل الفيديو الآن."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "إعادة تسمية"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "سماعات رأس"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "غير معروف"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "خطأ"
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "البلوتوث"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "البطارية ضعيفة."
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "فشل التوصيل."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "هذا الملف غير موجود."
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "يمكنك استخدام %s أكثر من مرة واحدة. هل تريد الحصول على ترخيص آخر؟"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "جهاز صوت"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "تمت الإضافة."
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "بحث"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "تتعذر الإضافة."
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "إفتراضي"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "تنزيل"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "غير مفعل"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "مفعل"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "سيتم حذف مقطع فيديو واحد."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "حرف غير صالح"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "لا توجد نتائج للبحث"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "تحديد"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "آخر تعديل"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "تم"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "التاريخ"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "المدى"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "الاسم"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "الاسم (من أ إلى ي)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "الفيديو"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "تم تجاوز الحد الأقصى لعدد المرفقات (%d)."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "تحديد الكل"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "وحدة تخزين الجهاز"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "بطاقة SD"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "نقل"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "مفعل"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "مشاركة عبر"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "حدث خطأ في الشبكة. حاول مرة أخرى."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "تشغيل التالي تلقائيا"
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "جاري المعالجة..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "تم بلوغ الحد الأقصى لعدد الأحرف."
+
+msgid "IDS_COM_SK_YES"
+msgstr "نعم"
+
+msgid "IDS_COM_SK_NO"
+msgstr "لا"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "حذف"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "مسح الكل"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "لا يوجد نتيجة للبحث"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "اختيار عنصر"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "تحديد العناصر"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "إلغاء"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "تم"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "إلغاء"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "حذف"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "موقع التخزين"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "التاريخ"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "تحديد الفيديو"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi مباشر"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "حدث خطأ اتصال."
+
+msgid "IDS_COM_BODY_KB"
+msgstr "ك.ب"
+
+msgid "IDS_COM_BODY_B"
+msgstr "ب."
+
+msgid "IDS_COM_BODY_MB"
+msgstr "م.ب"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "ج.ب"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "تم التنزيل."
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "تزامن"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "الخط"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "لاشيء"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "سماعات رأس"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "يمكنك استخدام %s مرة أخرى. هل تريد البدء الآن؟"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "يمكنك استخدام %s مرتين آخرتين. هل تريد البدء الآن؟"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "تم حظر %s في الوقت الحالي. هل تريد إلغاء الحظر؟"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "لا يمكنك استخدام %s لمرات أكثر من ذلك. هل تريد الحصول على ترخيص آخر؟"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "لقد أوشكت صلاحية %s على الانتهاء. هل تريد الحصول على ترخيص آخر؟"
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Yüklə"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "1 qovluq yüklənəcək."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "1 video yüklənəcək."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Bütün qovluqlar yüklənəcək."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Bütün videolar yüklənəcək."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "%d qovluq yüklənəcək."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "%d video yüklənəcək."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Mobil tarif söndürüldü. Əvəzinə Wi-Fi şəbəkəsinə qoşulun və ya Mobil tarifi aktivləşdirin və yenidən cəhd edin."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Şəxsi"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "QB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Yeri"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Naməlum"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 qovluq"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 video"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Hamısını"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "Cihazdan"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "Dropbox-dan"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Son dəyişmə"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Göstərmək üçün məzmun"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Axtar"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Paylaş"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "1 qovluq silinəcək."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Silinir..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Kamera vasitəsilə videoları çəkdikdən sonra onlar burada görünəcək."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d video"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Video"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "Video yoxdur"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Təfsilatlar"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Qovluq"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Siyahı"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Son əlavələr"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Bu yaxınlarda baxılmış"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Adını dəyişdir"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Ölçü"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Çeşidlə"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Başlıq"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Növ"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Fərqli bax"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "Bütün videolar silinəcək."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "%d qovluq silinəcək."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "%d video silinəcək."
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "Bu qovluq silinəcək."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d qovluq"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Parametrlər"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Videonu göstərmək mümkün deyil"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Nizamlama"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Şriftin ölçüsü"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Parametri təkrarla"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Yarım başlıqlar (bağlı)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "Bütün qovluqlar silinəcək."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Mərkəz"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Böyük"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Sol"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Orta"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Sağ"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Kiçik"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "Fayl adı artıq istifadədədir"
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Bağla"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Simvol sayı maksimuma çatıb."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Dayandır"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Söndür"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Yenilǝ"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Yeri"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Silindi."
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Şəxsi rejimdən sil"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Şəxsiyə köçür"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Boş qeyd."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Format"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Zəng zamanı videonu göstərmək mümkün deyildir."
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "Bu fayl oflayn mümkün deyil. Şəbəkə bağlantısını yoxlayın və yenidən cəhd edin"
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "Seçilən element %s-a köçürüləcəkdir."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "Seçilən elementlər %s-a köçürüləcəkdir."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Silinir..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Göndərilmə..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Fərdi yaddaşa köçürmək mümkün olmadı."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Normal yaddaşa köçürmək mümkün olmadı."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Mesaj"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Qovluqlar"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Epoçt"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Tarix (ən son)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d seçilmişdir"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Videoları sil"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Videonu sil"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Köçür"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Uzunluq"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "En"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "Kamera vasitəsilə videoları çəkdikdən sonra videolar göstəriləcək."
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Ləğv et"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Bitəndə dayandır"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "İndikini təkrarla"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Hamısını təkrarla"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Rezolyusiya"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Sil"
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Hamısı silindi"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Bu fayl yalnız audio məlumatı dəstəkləyir. İndi səsləndirilən audio."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Bu fayl yalnız video məlumatı dəstəkləyir. İndi görüntülənən video."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Adını dəyiş"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Qulaqlıqlar"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Naməlum"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Xəta"
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Batareya zəifdir."
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Əlaqə mümkün olmadı."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Bu fayl movcud deyil."
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "Siz 1 dəfə də %s istifadə edə bilərsiniz. Başqa bir lisenziya alınsın?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Audio cihaz"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Əlavə edildi."
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Axtarın"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Əlavə etmək mümkün deyil."
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "İlkin təyin olunan"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Yükləyin"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Söndür"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "Qoş"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "1 video silinəcək."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Yalnış simvol"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "Axtarış nəticəsi yoxdur"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Seç"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Son dəyişdirilmə"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Tamam"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Tarix"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "En"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Ad"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Ad (A-Z)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Video"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Qoşmaların sayı maksimumu (%d) keçmişdir."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Hamısını seç"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Cihazın yaddaşı"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "SD kart"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Göndər"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "Qoş"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Paylaş"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Şəbəkə xətası baş verdi. Yenidən cəhd edin."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Növbətini avto-göstər"
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Emal edilir..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Simvolların sayı maksimuma çatıb."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Bəli"
+
+msgid "IDS_COM_SK_NO"
+msgstr "Xeyr"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Sil"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Hamısı silindi"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "Axtarış nəticəsi yoxdur"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Element seç"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Elementləri seç"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Ləğv et"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "HAZIR"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "LƏĞV ET"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "SİL"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Yaddaş yeri"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Tarix"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Video seçin"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Bağlantıda səhv oldu."
+
+msgid "IDS_COM_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "QB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Yükləndi."
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Sinxronlaşdır"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Şrift"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "Yoxdur"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Qulaqlıqlar"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "Siz 1 dəfə də %s istifadə edə bilərsiniz. İndi başlasın?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "Siz 2 dəfə də %s istifadə edə bilərsiniz. İndi başlasın?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s hazırda kilidlənib. Kilid açılsın?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "Siz artıq %s istifadə edə bilməzsiniz. Başqa bir lisenziya alınsın?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s vaxtı bitmək üzrədir. Başqa bir lisenziya alınsın?"
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Изтегляне"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "1 папка ще бъде изтеглена."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "1 видео ще бъде изтеглено."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Всички папки ще бъдат изтеглени."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Всички видеоклипове ще бъдат изтеглени."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "%d папки ще бъдат изтеглени."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "%d видеоклипа ще бъдат изтеглени."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Мобилните данни са изключени. Вместо това се свържете към Wi-Fi мрежа или включете мобилните данни и опитайте отново."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Лична"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Позиция"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Няма информация"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 папка"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 видео"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Всички"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "От устройството"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "От Dropbox"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Последна промяна"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Съдържание за показване"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Търсене"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Споделяне"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "1 папка ще бъде изтрита."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Изтриване..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "След като заснемете видеоклипове с камерата, те ще се покажат тук."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d клипа"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Видеоклип"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "Няма видео"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Детайли"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Папка"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Списък"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Последно добавени"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Последно разглеждани"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Преименуване"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Размер"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Сортиране по"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Заглавие"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Тип"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Преглед като"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "Всички видеоклипове ще бъдат изтрити."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "%d папки ще бъдат изтрити."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "%d видеоклипа ще бъдат изтрити."
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "Тази папка ще бъде изтрита."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d папки"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Настройки"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Не може да се възпр. видео"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Подравняване"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Р-р шрифт"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Настройка за повторение"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Субтитри (CC)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "Всички папки ще бъдат изтрити."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Център"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Голям"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Отляво"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Средно"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Отдясно"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Малък"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "Името на файла вече се използва."
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Затваряне"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Достигнат максимален брой знаци."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Стоп"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Изключено"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Презар."
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Позиция"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Изтрито."
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Премахване от Лични"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Преместване в Лична"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Празен запис"
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Формат"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Не може да се възпроизвежда видео по време на разговор."
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "Този файл е недостъпен офлайн. Проверете връзката с мрежата и опитайте отново."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "Избраният елемент ще бъде преместен в %s."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "Избраните елементи ще бъдат преместени в %s."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Премахване..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Преместване"
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Преместването в персоналното място за съхранение е неуспешно."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Преместването в стандартното място за съхранение е неуспешно."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Съобщ-ие"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Папки"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Имейл"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Дата (най-нови)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d избрани"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Изтриване клипове"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Изтриване на видео"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Преместване"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Геогр. дължина"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Геогр. ширина"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "След като заснемете клипове с камерата, те ще се покажат."
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Отказ"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Спри след всички"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Повтаряне на текущо"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Повторение на всички"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Разделителна способност"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Изтрий"
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Изтриване на всички"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Само аудио данни, поддържани от този файл. В момента се възпроизвежда аудио."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Само видео данни, поддържани от този файл. В момента се възпроизвежда видео."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Преименуване"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Слушалки"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Няма информация"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Грешка."
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Изтощена батерия."
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Неуспешно свързване."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Файлът не съществува."
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "Можете да използвате %s още 1 път. Вземане на друг лиценз?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Аудио устройство"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Добавен."
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Сканиране"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Не може да се добави."
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "По подразбиране"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Изтегли"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Изключено"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "Включено"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "Ще бъде изтрит 1 видеоклип."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Невалиден знак"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "Няма резултати от търсенето"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Избор"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Последна промяна"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Готово"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Дата"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Геогр. ширина"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Име"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Име (A-Z)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Видеоклипове"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Максималният брой на прикачени файлове (%d) е надвишен."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Избор на всичко"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Памет на устройството"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "SD карта"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Премести"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "Включено"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Споделяне с"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Възникна мрежова грешка. Опитайте отново."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Авт. възпр. следващ"
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Обработване..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Достигнат е максималният брой символи."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Да"
+
+msgid "IDS_COM_SK_NO"
+msgstr "Не"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Изтриване"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Изтриване на всички"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "Няма резултати"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Изберете елемент"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Изберете елементи"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Отказ"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "ГОТОВО"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ОТКАЗ"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "ИЗТРИВАНЕ"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Място за съхранение"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Дата"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Избор на видео"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Грешка при свързване."
+
+msgid "IDS_COM_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Изтеглен."
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Синхронизирай"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Шрифт"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "Няма"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Слушалки"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "Можете да използвате %s още 1 път. Стартиране сега?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "Можете да използвате %s още 2 пъти. Стартиране сега?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s в момента е заключено. Отключване?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "Не можете да използвате %s повече. Вземане на друг лиценз?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s предстои да изтече. Вземане на друг лиценз?"
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Descarregar"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "Es descarregarà 1 carpeta."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "Es descarregarà 1 vídeo."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Es descarregaran totes les carpetes."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Es descarregaran tots els vídeos."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Es descarregaran %d carpetes."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Es descarregaran %d vídeos."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Dades mòbils desactivades. Connecti's a una xarxa Wi-Fi o activi les dades mòbils i torni-ho a intentar."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Privat"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Ubicació"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Desconegut"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "Acceptar"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 carpeta"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 vídeo"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Tot"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "Des del dispositiu"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "Des de Dropbox"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Última modificació"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Contingut per mostrar"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Cercar"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Compartir"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "S'esborrarà 1 carpeta."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Esborrant..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Després de gravar vídeos amb la càmera, es mostraran aquí."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d vídeos"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Vídeo"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "No hi ha vídeos"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Detalls"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Carpeta"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Llista"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Afegits fa poc"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Vist fa poc"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Canviar nom"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Mida"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Ordenar per"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Títol"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Tipus"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Veure com a"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "S'esborraran tots els vídeos"
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "S'esborraran %d carpetes"
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "S'esborraran %d vídeos"
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "S'esborrarà aquesta carpeta"
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d carpetes"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Ajustaments"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "No es pot reproduir el vídeo"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Alineació"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Mida font"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Repetir ajustament"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Subtítols"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "S'esborraran totes les carpetes"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Centre"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Gran"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Esquerra"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Mitjana"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Dreta"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Petita"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "El nom de fitxer està en ús."
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Tancar"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "S'ha assolit el nombre màxim de caràcters"
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Aturar"
+
+msgid "IDS_COM_SK_OK"
+msgstr "Acceptar"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Desactivat"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Actualitzar"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Ubicació"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Esborrat"
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Esborrar de Privat"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Moure a Privat"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "L'entrada és buida"
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Format"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "No es pot reproduir un vídeo durant una trucada"
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "Aquest fitxer no està disponible quan està desconnectat. Comprovi la connexió de xarxa i torni-ho a intentar."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "L'element seleccionat es mourà a %s"
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "Els elements seleccionats es mouran a %s"
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Eliminant..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Movent..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Error en moure a l'emmagatzematge personal."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Error en moure a l'emmagatzematge normal."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Missatge"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Carpetes"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Correu elec"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Data (més recents)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d seleccionat"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Esborrar vídeos"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Esborrar vídeo"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Moure"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Longitud"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Latitud"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "Després de gravar vídeos amb la càmera, es mostraran els vídeos"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Cancel·lar"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Aturar després tot"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Repetir actual"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Repetir tot"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Resolució"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Esborr"
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Esborrar tot"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Aquest fitxer només admet dades d'àudio. Ara està reproduint àudio."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Aquest fitxer només admet dades de vídeo. Ara està reproduint vídeo."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Canviar nom"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Auriculars"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Desconegut"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Error"
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Bateria baixa"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Error de connexió"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Aquest fitxer no existeix"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "Pot utilitzar %s 1 vegada més. Obtenir una altra llicència?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Dispositiu d’àudio"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Afegit"
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Escanejar"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "No es pot afegir"
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Predeterminat"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Descarregar"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Desactivat"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "Activat"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "S'esborrarà 1 vídeo."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Caràcter no vàlids"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "No hi ha cap resultat de cerca"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Seleccionar"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Última modificació"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Fet"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Data"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Latitud"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Nom"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Nom (A-Z)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Vídeos"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "S'ha excedit el nombre màxim d'adjunts (%d)."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Seleccionar tot"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Emmagatzematge de dispositiu"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "Targeta SD"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Moure"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "Activat"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Compartir mitjançant"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "S'ha produït un error de xarxa. Torni a intentar-ho."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Rep. aut. següent"
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Processant..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "S'ha assolit el nombre màxim de caràcters."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Sí"
+
+msgid "IDS_COM_SK_NO"
+msgstr "No"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Esborrar"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Esborrar tot"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "No hi ha resultats de cerca"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Seleccionar element"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Seleccionar elements"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Cancel"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "REALITZAT"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "CANCEL·LAR"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "ESBORRAR"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Ubicació d'emmagatzematge"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Data"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Seleccionar vídeo"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Error de connexió"
+
+msgid "IDS_COM_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Descarregat"
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Sincronitzar"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Font"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "Cap"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Auriculars"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "Pot utilitzar %s 1 vegada més. Començar ara?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "Pot utilitzar %s 2 vegades més. Començar ara?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s bloquejat actualment. Desbloquejar?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "No pot utilitzar %s cap vegada més. Obtenir una altra llicència?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s és a punt de caducar. Obtenir una altra llicència?"
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Stáhnout"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "Bude stažena 1 složka."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "Bude staženo 1 video."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Budou staženy všechny složky."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Budou stažena všechna videa."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Bude staženo %d složek."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Bude staženo %d videí."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Mobilní data jsou vypnutá. Připojte se k síti Wi-Fi nebo zapněte Mobilní data a opakujte akci."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Soukromé"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "kB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Místo"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Neznámé"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 složka"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 video"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Vše"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "Ze zařízení"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "Z Dropbox"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Naposledy změněno"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Obsah k zobrazení"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Hledat"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Sdílet"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "1 složka bude odstraněna."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Odstraňování..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Až nahrajete videa pomocí fotoaparátu, zobrazí se zde."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d videoklipů"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Video"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "Žádná videa"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Podrobnosti"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Složka"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Seznam"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Posl. přidané"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Poslední zobrazené"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Přejmenovat"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Velikost"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Seřadit podle"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Název"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Typ"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Zobrazit jako"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "Budou odstraněny všechny videoklipy."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "Bude odstraněno %d složek."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "Bude odstraněno %d videoklipů."
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "Složka bude odstraněna."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "Počet složek: %d"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Nastavení"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Video nelze přehrát"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Zarovnání"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Velikost písma"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Nastavení opakování"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Titulky (skryté)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "Budou odstraněny všechny složky."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Na střed"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Velké"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Doleva"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Střední"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Doprava"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Malé"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "Název souboru je již použit."
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Zavřít"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Bylo dosaženo maximálního počtu znaků."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Stop"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Vypnuto"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Obnovit"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Místo"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Odstraněno."
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Odebrat ze složky Soukromé"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Přesunout do složky Soukromé"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Prázdná položka."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Formát"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Během hovoru nelze přehrát videoklip."
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "Soubor není v režimu offline dostupný. Zkontrolujte připojení k síti a opakujte akci."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "Vybraná položka bude přesunuta do %s."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "Vybrané položky budou přesunuty do %s."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Odebírání..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Probíhá přesouvání"
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Nepodařilo se přesunout video do osobního úložiště."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Nepodařilo se přesunout video do normálního úložiště."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Zpráva"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Složky"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "E-mail"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Datum (nejnovější)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "Vybráno: %d"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Odstranit videa"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Odstranit video"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Přesunout"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Zeměpisná délka"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Zeměpisná šířka"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "Až nahrajete videa pomocí fotoaparátu, videa se zobrazí."
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Zruš."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Zast. po přeh. všech"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Opakovat aktuální"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Opakovat vše"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Rozlišení"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Odstr."
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Odstranit vše"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Tento soubor podporuje pouze zvuková data. Nyní se přehrává zvuk."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Tento soubor podporuje pouze obrazová data. Nyní se přehrává video."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Přejmenovat"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Sluchátka"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Neznámé"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Chyba."
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Vybitá baterie."
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Připojení se nezdařilo."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Soubor neexistuje."
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "%s můžete použít již pouze jednou. Chcete získat další licenci?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Zvukové zařízení"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Přidáno."
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Načíst"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Nelze přidat."
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Výchozí"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Stáhnout"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Vypnuto"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "Zapnuto"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "1 video bude odstraněno."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Neplatný znak"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "Žádné výsledky"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Vybrat"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Naposledy změněno"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Hot."
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Datum"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Zeměpisná šířka"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Jméno"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Název (A-Z)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Videa"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Byl překročen maximální počet příloh (%d)."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Vybrat vše"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Paměť zařízení"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "SD karta"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Přesunout"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "Zapnuto"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Sdílet přes"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Došlo k chybě sítě. Opakujte akci."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Automaticky další"
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Probíhá zpracování..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Bylo dosaženo maximálního počtu znaků."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Ano"
+
+msgid "IDS_COM_SK_NO"
+msgstr "Ne"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Odstranit"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Odstranit vše"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "Žádný výsledek hledání"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Vybrat položku"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Vyberte položky"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Storno"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "HOTOVO"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ZRUŠIT"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "ODSTRANIT"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Místo uložení"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Datum"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Vybrat videoklip"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Chyba připojení."
+
+msgid "IDS_COM_BODY_KB"
+msgstr "kB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Staženo."
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Synchronizace"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Písmo"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "Žádná"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Sluchátka"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "%s můžete použít již pouze jednou. Spustit?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "%s můžete použít ještě dvakrát. Spustit?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s je nyní zamknut. Odemknout?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "%s již nemůžete použít. Chcete získat další licenci?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s brzy vyprší. Chcete získat další licenci?"
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Download"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "Der vil blive downloadet 1 mappe."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "Der vil blive downloadet 1 video."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Alle mapper vil blive downloadet."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Alle videoer vil blive downloadet."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Der vil blive downloadet %d mapper."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Der vil blive downloadet %d videoer."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Mobile data er slået fra. Opret forbindelse til et Wi-Fi-netværk i stedet, eller slå Mobile data til, og prøv igen."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Privat"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Placering"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Ukendt"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 mappe"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 video"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Alle"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "Fra enhed"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "Fra Dropbox"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Sidst ændret"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Indhold, du vil vise"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Søg"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Del"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "Der vil blive slettet 1 mappe."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Sletter ..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Når du har optaget videoer ved hjælp af kameraet, vil de blive vist her."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d videoer"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Videoklip"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "Ingen videoer"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Detaljer"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Mappe"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Liste"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Nyligt tilføjet"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Senest set"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Omdøb"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Størrelse"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Sortér efter"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Titel"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Type"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Se som"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "Alle videoer vil blive slettet."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "%d mapper bliver slettet."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "%d videoer vil blive slettet."
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "Denne mappe vil blive slettet."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d mapper"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Indstillinger"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Kan ej afspille video"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Justering"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Skriftstørrelse"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Gentag indstilling"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Undertekster (CC)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "Alle mapper bliver slettet."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Centrer"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Stor"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Venstre"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Mellem"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Højre"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Lille"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "Filnavn allerede i brug."
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Luk"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Det maksimale antal tegn er nået."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Stop"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Fra"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Opdater"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Placering"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Slettet."
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Fjern fra Privat"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Flyt til Privat"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Posten er tom."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Format"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Kan ikke afspille videoen under samtale."
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "Denne fil er ikke tilgængelig, mens du er offline. Kontrollér netværksforbindelsen, og prøv igen."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "Det valgte element vil blive flyttet til %s."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "De valgte elementer vil blive flyttet til %s."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Fjerner..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Flytter ..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Kunne ikke flytte til personligt lager."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Kunne ikke flytte til normalt lager."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Besked"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Mapper"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "E-mail"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Dato (nyeste)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d valgt"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Slet videoer"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Slet videoklip"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Flyt"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Længdegrad"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Breddegrad"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "Når du har optaget videoer ved hjælp af kameraet, vises videoerne."
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Afbr."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Stop efter alle"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Gentag aktuel"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Gentag alle"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Opløsning"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Slet"
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Slet alle"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Kun lyddata understøttes af denne fil. Spiller lyd nu."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Kun videodata understøttes af denne fil. Spiller video nu."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Omdøb"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Høretelefoner"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Ukendt"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Fejl."
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Lavt batteriniveau."
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Forbindelsen\nmislykkedes."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Fil findes ikke."
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "Du kan bruge %s én gang til. Få en anden licens?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Lydenhed"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Tilføjet."
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Scanning"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Der kan ikke tilføjes."
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Standard"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Download"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Fra"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "Til"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "1 video bliver slettet."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Ugyldigt tegn"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "Ingen søgeresultater"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Vælg"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Sidst ændret"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Udført"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Dato"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Breddegrad"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Navn"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Navn (A-Z)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Video"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Det maksimale antal vedhæftede filer (%d) er overskredet."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Vælg alle"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Enhedslager"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "SD-kort"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Flyt"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "Til"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Del via"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Der opstod en netværksfejl. Prøv igen."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Autospil næste"
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Behandler ..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Det maksimale antal tegn er nået."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Ja"
+
+msgid "IDS_COM_SK_NO"
+msgstr "Nej"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Slet"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Slet alle"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "Intet søgeresultat"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Vælg element"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Vælg elementer"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Annullér"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "UDFØRT"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ANNULLER"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "SLET"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Lagerplacering"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Dato"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Vælg video"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Forbindelsesfejl."
+
+msgid "IDS_COM_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Downloadet."
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Synkroniser"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Skrifttype"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "Ingen"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Høretelefoner"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "Du kan bruge %s én gang til. Start nu?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "Du kan bruge %s 2 gange til. Start nu?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s er i øjeblikket låst. Lås op?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "Du kan ikke bruge %s flere gange. Få en anden licens?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s er ved at udløbe. Få en anden licens?"
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Download"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "1 Ordner wird heruntergeladen."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "1 Video wird heruntergeladen."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Alle Ordner werden heruntergeladen."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Alle Videos werden heruntergeladen."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "%d Ordner werden heruntergeladen."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "%d Videos werden heruntergeladen."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Mobile Daten sind deaktiviert. Stellen Sie stattdessen eine Verbindung mit einem WLAN her oder aktivieren Sie mobile Daten und versuchen Sie es erneut."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Privat"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Standort"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Unbekannt"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 Ordner"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 Video"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Alle"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "Vom Gerät"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "Aus Dropbox"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Letzte Änderung"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Anzuzeigender Inhalt"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Suche"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Senden"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "1 Ordner wird gelöscht."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Wird gelöscht..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Nach dem Aufnehmen von Videos mit der Kamera werden diese Videos hier angezeigt."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d Videos"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Video"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "Keine Videos"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Details"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Ordner"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Liste"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Zul. hinzug."
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Kürzlich angesehen"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Umbenennen"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Größe"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Sortieren nach"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Titel"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Typ"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Ansicht"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "Alle Videos werden gelöscht."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "%d Ordner werden gelöscht."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "%d Videos werden gelöscht."
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "Dieser Ordner wird gelöscht."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d Ordner"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Einstellungen"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Videowiedergabe nicht möglich."
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Ausrichtung"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Schriftgröße"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Einstellung wiederholen"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Untertitel (CC)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "Alle Ordner werden gelöscht."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Mitte"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Groß"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Links"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Mittel"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Rechts"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Klein"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "Dateiname wird bereits verwendet."
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Schließen"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Maximal zulässige Zeichenanzahl erreicht."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Stopp"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Deaktiviert"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Aktualisieren"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Standort"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Gelöscht"
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Aus Privat entfernen"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Nach Privat verschieben"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Eintrag ist leer"
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Format"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Video kann während eines Anrufs nicht wiedergegeben werden"
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "Die Datei ist offline nicht verfügbar. Überprüfen Sie die Netzwerkverbindung, und versuchen Sie es erneut."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "Das ausgewählte Element wird zu %s verschoben."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "Die ausgewählten Elemente werden zu %s verschoben."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Entferne..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Verschiebevorgang aktiv..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Verschieben in den persönlichen Speicher nicht möglich."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Verschieben in den normalen Speicher nicht möglich."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Nachr."
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Ordner"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "E-Mail"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Datum (neueste)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d ausgewählt"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Löschen von Videos"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Video löschen"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Verschieben"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Länge"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Breite"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "Nach dem Aufnehmen von Videos mit der Kamera werden die Videos angezeigt."
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Abbr."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Nach allen anh."
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Aktuelles wiederh."
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Alle wiederholen"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Auflösung"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Lösch."
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Alle löschen"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Für diese Datei werden nur Audiodaten unterstützt. Audio wird jetzt wiedergegeben."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Für diese Datei werden nur Videodaten unterstützt. Video wird jetzt wiedergegeben."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Umbenennen"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Kopfhörer"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Unbekannt"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Fehler"
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Akku fast leer"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Verbindung fehlgeschlagen"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Datei nicht vorhanden"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "Sie können %s noch 1 Mal verwenden. Neue Lizenz erwerben?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Audiogerät"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Hinzugefügt"
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Suchen"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Hinzufügen nicht möglich"
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Standard"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Herunterladen"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Aus"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "Ein"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "1 Video wird gelöscht."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Ungültiges Zeichen"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "Keine Suchergebnisse"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Auswählen"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Zuletzt geändert"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Fertig"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Datum"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Breite"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Name"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Name (A-Z)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Videos"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Maximale Anzahl von Anhängen (%d) überschritten."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Alle auswählen"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Gerätespeicher"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "SD-Karte"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Verschieben"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "Ein"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Senden via"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Ein Netzwerkfehler ist aufgetreten. Versuchen Sie es erneut."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Automatisch nächste Datei"
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Verarbeitung läuft ..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Maximale Anzahl von Zeichen erreicht."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Ja"
+
+msgid "IDS_COM_SK_NO"
+msgstr "Nein"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Löschen"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Alle löschen"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "Kein Suchergebnis"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Element auswählen"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Elemente auswählen"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Abbruch"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "FERTIG"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ABBRECHEN"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "LÖSCHEN"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Speicherort"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Datum"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Wählen Sie ein Video aus"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Verbindungsfehler"
+
+msgid "IDS_COM_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Heruntergeladen"
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Synchronisieren"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Schriftart"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "Ohne"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Kopfhörer"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "Sie können %s noch 1 Mal verwenden. Jetzt starten?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "Sie können %s noch 2 Mal verwenden. Jetzt starten?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s derzeit gesperrt. Entsperren?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "Sie können %s nicht mehr verwenden. Neue Lizenz erwerben?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s läuft demnächst ab. Neue Lizenz erwerben?"
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Λήψη"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "Θα γίνει λήψη 1 φακέλου."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "Θα γίνει λήψη 1 βίντεο."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Θα γίνει λήψη όλων των φακέλων."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Θα γίνει λήψη όλων των βίντεο."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Θα γίνει λήψη %d φακέλων."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Θα γίνει λήψη %d βίντεο."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Τα δεδομένα κινητής τηλεφωνίας απενεργοποιήθηκαν. Συνδεθείτε σε ένα δίκτυο Wi-Fi ή ενεργοποιήστε τα δεδομένα κινητής τηλεφωνίας και δοκιμάστε ξανά."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Προσωπικό"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Τοποθεσία"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Άγνωστο"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 φάκελος"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 βίντεο"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Όλα"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "Από τη συσκευή"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "Από το Dropbox"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Τελευταία τροποποίηση"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Περιεχόμενο για εμφάνιση"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Αναζήτηση"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Κοινή χρήση"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "1 φάκελος θα διαγραφεί."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Διαγραφή..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Αφού τραβήξετε βίντεο με την κάμερα, τα βίντεο θα εμφανιστούν εδώ."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d βίντεο"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Βίντεο"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "Δεν υπάρχουν βίντεο"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Λεπτομέρειες"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Φάκελος"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Λίστα"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Πρόσφ. προσθ."
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Προβλήθηκαν πρόσφατα"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Μετονομασία"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Μέγεθος"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Ταξινόμηση κατά"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Τίτλος"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Είδος"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Προβολή ως"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "Θα διαγραφούν όλα τα βίντεο."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "Θα διαγραφούν %d φάκελοι."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "Θα διαγραφούν %d βίντεο."
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "Ο φάκελος θα διαγραφεί."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d φάκελοι"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Ρυθμίσεις"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Αδύν. η αναπαρ. του βίντεο"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Στοίχιση"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Μέγ. γραμματοσειράς"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Επανάληψη ρύθμισης"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Υπότιτλοι (CC)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "Θα διαγραφούν όλοι οι φάκελοι."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Σεντρ"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Μεγάλο"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Αριστερό"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Μεσαίο"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Δεξιά"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Μικρό"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "Το όνομα αρχείου χρησιμοποιείται ήδη."
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Κλείσιμο"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Ο μέγιστος αριθμός χαρακτήρων συμπληρώθηκε."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Διακοπή"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Ανενεργό"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Ανανέωση"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Τοποθεσία"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Διαγράφηκε."
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Κατάργηση από το φάκελο «Απόρρητο»"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Μετακίνηση στο φάκελο «Ιδιωτικό»"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Κενή καταχώρηση."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Μορφή"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Δεν είναι δυνατή η αναπαραγωγή βίντεο κατά την κλήση."
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "Το αρχείο δεν είναι διαθέσιμο εκτός σύνδεσης. Ελέγξτε τη σύνδεση δικτύου σας και δοκιμάστε ξανά."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "Το επιλεγμένο στοιχείο θα μετακινηθεί στο %s."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "Τα επιλεγμένα στοιχεία θα μετακινηθούν στο %s."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Αφαίρεση..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Μετακίνηση..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Απέτυχε η μετακίνηση στον προσωπικό χώρο αποθήκευσης."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Απέτυχε η μετακίνηση στον κανονικό χώρο αποθήκευσης."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Μήνυμα"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Φάκελοι"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Email"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Ημερ. (πιο πρόσφ.)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d επιλέχθηκαν"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Διαγραφή βίντεο"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Διαγραφή βίντεο"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Μετακίνηση"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Γεωγραφικό μήκος"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Γεωγραφικό πλάτος"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "Τα στοιχεία θα εμφανιστούν, μετά την εγγραφή βίντεο μέσω της κάμερας."
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Άκυρο"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Όλα και μετά διακοπή"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Επανάληψη τρέχοντος"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Επανάληψη όλων"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Ανάλυση"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Διαγρ."
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Διαγραφή όλων"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Υποστηρίζονται μόνο δεδομένα ήχου από αυτό το αρχείο. Γίνεται αναπαραγωγή του ήχου."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Υποστηρίζονται μόνο δεδομένα βίντεο από αυτό το αρχείο. Γίνεται αναπαραγωγή του βίντεο."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Μετονομασία"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Ακουστικά"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Άγνωστο"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Σφάλμα."
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Χαμηλή μπαταρία."
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Αποτυχία σύνδεσης. Επανάληψη;"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Δεν υπάρχει αρχείο."
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "Μπορείτε να χρησιμοποιήσετε το %s 1 φορά ακόμα. Λήψη νέας άδειας;"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Συσκευή ήχου"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Προστέθηκε."
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Σάρωση"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Δεν είναι δυνατή η προσθήκη."
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Προεπιλογή"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Λήψη"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Ανενεργό"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "Ενεργό"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "1 βίντεο θα διαγραφεί."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Μη έγκυρος χαρακτήρας"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "Δεν υπάρχουν αποτελέσματα αναζήτησης"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Επιλογή"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Τελευταία τροποποίηση"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Τέλος"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Ημερομηνία"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Γεωγραφικό πλάτος"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Όνομα"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Όνομα (Α-Ω)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Βίντεο"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Έγινε υπέρβαση του μέγιστου αριθμού συνημμένων (%d)."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Επιλογή όλων"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Χώρος αποθήκευσης συσκευής"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "Κάρτα SD"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Μετακίνηση"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "Ενεργό"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Κοινή χρήση μέσω"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Προέκυψε σφάλμα δικτύου. Δοκιμάστε ξανά."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Αυτ. αναπ. επόμ."
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Επεξεργασία..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Συμπληρώθηκε ο μέγιστος αριθμός χαρακτήρων."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Ναι"
+
+msgid "IDS_COM_SK_NO"
+msgstr "Όχι"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Διαγραφή"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Διαγραφή όλων"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "Δεν υπ. απ. αναζ."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Επιλογή στοιχείου"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Επιλογή στοιχείων"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Ακύρωση"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "ΤΕΛΟΣ"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ΑΚΥΡΟ"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "ΔΙΑΓΡΑΦΗ"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Θέση αποθήκευσης"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Ημερομηνία"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Επιλογή βίντεο"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Σφάλμα σύνδεσης."
+
+msgid "IDS_COM_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Η λήψη ολοκληρώθηκε."
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Συγχρονισμός"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Γραμματοσειρά"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "Κανένα"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Ακουστικά"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "Μπορείτε να χρησιμοποιήσετε το %s 1 φορά ακόμα. Έναρξη τώρα;"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "Μπορείτε να χρησιμοποιήσετε το %s 2 φορές ακόμα. Έναρξη τώρα;"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "Το %s έχει προσωρινά ξεκλειδωθεί. Ξεκλείδωμα;"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "Δεν μπορείτε να χρησιμοποιήσετε το %s άλλη φορά. Λήψη νέας άδειας;"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "Το %s κοντεύει να λήξει. Λήψη νέας άδειας;"
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Download"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "1 folder will be downloaded."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "1 video will be downloaded."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "All folders will be downloaded."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "All videos will be downloaded."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "%d folders will be downloaded."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "%d videos will be downloaded."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Mobile data turned off. Connect to Wi-Fi network instead, or turn on Mobile data and try again."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Private"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Location"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Unknown"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 folder"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 video"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "All"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "From device"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "From Dropbox"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Last modified"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Content to display"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Search"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Share"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "1 folder will be deleted."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Deleting..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "After you record videos using the camera, they will be shown here."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d videos"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Video"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "No videos"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Details"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Folder"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "List"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Recently added"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Recently viewed"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Rename"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Size"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Sort by"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Title"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Type"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "View as"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "All videos will be deleted."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "%d folders will be deleted."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "%d videos will be deleted."
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "This folder will be deleted."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d folders"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Settings"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Unable to play video"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Alignment"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Font size"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Repeat setting"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Subtitles (CC)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "All folders will be deleted."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Centre"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Large"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Left"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Medium"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Right"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Small"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "File name already in use."
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Close"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Maximum number of characters reached."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Stop"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Off"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Refresh"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Location"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Deleted."
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Remove from Private"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Move to Private"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Entry is empty."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Format"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Unable to play video during call."
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "This file is unavailable while offline. Check network connection and try again."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "The selected item will be moved to %s."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "The selected items will be moved to %s."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Removing..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Moving..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Failed to move to personal storage."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Failed to move to normal storage."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Message"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Folders"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Email"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Date (most recent)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d selected"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Delete videos"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Delete video"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Move"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Longitude"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Latitude"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "After you record videos using the camera, videos will be shown."
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Cancel"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Stop after all"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Repeat current"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Repeat all"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Resolution"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Delete"
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Delete all"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Only audio data supported by this file. Now playing audio."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Only video data supported by this file. Now playing video."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Rename"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Headphones"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Unknown"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Error."
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Low battery."
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Connection failed."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "This file does not exist."
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "You can use %s 1 more time. Get another licence?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Audio device"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Added."
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Scan"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Unable to add."
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Default"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Download"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Off"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "On"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "1 video will be deleted."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Invalid character"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "No search results"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Select"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Last modified"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Done"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Date"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Latitude"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Name"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Name (A-Z)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Videos"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Maximum number of attachments (%d) exceeded."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Select all"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Device storage"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "SD card"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Move"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "On"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Share via"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "A network error has occurred. Try again."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Auto play next"
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Processing..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Maximum number of characters reached."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Yes"
+
+msgid "IDS_COM_SK_NO"
+msgstr "No"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Delete"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Delete all"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "No search result"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Select item"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Select items"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Cancel"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "DONE"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "CANCEL"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "DELETE"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Storage location"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Date"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Select video"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Connection error."
+
+msgid "IDS_COM_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Downloaded."
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Synchronise"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Font"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "None"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Headphones"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "You can use %s 1 more time. Start now?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "You can use %s 2 more times. Start now?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s currently locked. Unlock?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "You cannot use %s any more times. Get another licence?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s is about to expire. Get another licence?"
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Download"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "1 folder will be downloaded."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "1 video will be downloaded."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "All folders will be downloaded."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "All videos will be downloaded."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "%d folders will be downloaded."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "%d videos will be downloaded."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Mobile data turned off. Connect to Wi-Fi network instead, or turn on Mobile data and try again."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Private"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Location"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Unknown"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 folder"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 video"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "All"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "From device"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "From Dropbox"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Last modified"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Content to display"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Search"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Share"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "1 folder will be deleted."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Deleting..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "After you record videos using the camera, they will be shown here."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d videos"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Video"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "No videos"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Details"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Folder"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "List"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Recently added"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Recently viewed"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Rename"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Size"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Sort by"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Title"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Type"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "View as"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "All videos will be deleted."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "%d folders will be deleted."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "%d videos will be deleted."
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "This folder will be deleted."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d folders"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Settings"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Unable to play video"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Alignment"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Font size"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Repeat setting"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Subtitles (CC)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "All folders will be deleted."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Center"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Large"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Left"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Medium"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Right"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Small"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "File name already in use."
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Close"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Maximum number of characters reached."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Stop"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Off"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Refresh"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Location"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Deleted."
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Remove from Private"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Move to Private"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Entry is empty."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Format"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Unable to play video during call."
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "This file is unavailable while offline. Check network connection and try again."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "The selected item will be moved to %s."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "The selected items will be moved to %s."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Removing..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Moving..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Failed to move to personal storage."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Failed to move to normal storage."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Message"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Folders"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Email"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Date (most recent)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d selected"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Delete videos"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Delete video"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Move"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Longitude"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Latitude"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "After you record videos using the camera, videos will be shown."
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Cancel"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Stop after all"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Repeat current"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Repeat all"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Resolution"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Delete"
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Delete all"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Only audio data supported by this file. Now playing audio."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Only video data supported by this file. Now playing video."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Rename"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Headphones"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Unknown"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Error."
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Low battery."
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Connection failed."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "This file does not exist."
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "You can use %s 1 more time. Get another license?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Audio device"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Added."
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Scan"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Unable to add."
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Default"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Download"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Off"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "On"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "1 video will be deleted."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Invalid character"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "No search results"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Select"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Last modified"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Done"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Date"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Latitude"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Name"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Name (A-Z)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Videos"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Maximum number of attachments (%d) exceeded."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Select all"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Device storage"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "SD card"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Move"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "On"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Share via"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "A network error has occurred. Try again."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Auto play next"
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Processing..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Maximum number of characters reached."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Yes"
+
+msgid "IDS_COM_SK_NO"
+msgstr "No"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Delete"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Delete all"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "No search result"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Select item"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Select items"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Cancel"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "DONE"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "CANCEL"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "DELETE"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Storage location"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Date"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Select video"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Connection Error."
+
+msgid "IDS_COM_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Downloaded."
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Synchronize"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Font"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "None"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Headphones"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "You can use %s 1 more time. Start now?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "You can use %s 2 more times. Start now?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s currently locked. Unlock?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "You cannot use %s any more times. Get another license?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s is about to expire. Get another license?"
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Download"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "1 folder will be downloaded."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "1 video will be downloaded."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "All folders will be downloaded."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "All videos will be downloaded."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "%d folders will be downloaded."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "%d videos will be downloaded."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Mobile data off. Connect to Wi-Fi network instead, or turn on Mobile data and try again."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Private"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Location"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Unknown"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 folder"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 video"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "All"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "From device"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "From Dropbox"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Last modified"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Content to show"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Search"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Share"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "1 folder will be deleted."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Deleting..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "After you record videos using the camera, they will be shown here."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d videos"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Video"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "No videos"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Details"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Folder"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "List"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Recently added"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Recently viewed"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Rename"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Size"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Sort by"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Title"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Type"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "View as"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "All videos will be deleted."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "%d folders will be deleted."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "%d videos will be deleted."
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "This folder will be deleted."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d folders"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Settings"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Unable to play video"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Alignment"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Font size"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Repeat setting"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Subtitles (CC)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "All folders will be deleted."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Center"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Large"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Left"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Medium"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Right"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Small"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "File name already in use."
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Close"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Maximum number of characters reached."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Stop"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Off"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Refresh"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Location"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Deleted."
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Remove from Private"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Move to Private"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Entry is empty."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Format"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Unable to play video during call."
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "This file is unavailable while offline. Check network connection and try again."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "The selected item will be moved to %s."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "The selected items will be moved to %s."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Removing..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Moving..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Failed to move to personal storage."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Failed to move to normal storage."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Message"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Folders"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Email"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Date (most recent)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d selected"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Delete videos"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Delete video"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Move"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Longitude"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Latitude"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "After you record videos using the camera, videos will be shown."
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Cancel"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Stop after all"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Repeat current"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Repeat all"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Resolution"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Delete"
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Delete all"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Only audio data supported by this file. Now playing audio."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Only video data supported by this file. Now playing video."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Rename"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Headphones"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Unknown"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Error"
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Low battery."
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Connection failed."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "This file does not exist."
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "You can use %s 1 more time. Get another license?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Audio device"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Added."
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Scan"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Unable to add."
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Default"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Download"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Off"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "On"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "1 video will be deleted."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Invalid character"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "No search results"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Select"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Last modified"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Done"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Date"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Latitude"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Name"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Name (A-Z)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Videos"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Maximum number of attachments (%d) exceeded."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Select all"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Device storage"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "SD card"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Move"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "On"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Share via"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "A network error has occurred. Try again."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Auto play next"
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Processing..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Maximum number of characters reached."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Yes"
+
+msgid "IDS_COM_SK_NO"
+msgstr "No"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Delete"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Delete all"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "No search result"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Select item"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Select items"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Cancel"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "DONE"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "CANCEL"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "DELETE"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Storage location"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Date"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Select video"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Connection error."
+
+msgid "IDS_COM_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Downloaded."
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Synchronize"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Font"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "None"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Headphones"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "You can use %s 1 more time. Start now?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "You can use %s 2 more times. Start now?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s currently locked. Unlock?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "You cannot use %s any more times. Get another license?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s is about to expire. Get another license?"
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Descargar"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "Se descargará 1 carpeta."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "Se descargará 1 vídeo."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Se descargarán todas las carpetas."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Se descargarán todos los vídeos."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Se descargarán %d carpetas."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Se descargarán %d vídeos."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Los datos móviles están desactivados. En su lugar, conéctese a una red Wi-Fi o active los datos móviles y vuelva a intentarlo."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Privado"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Ubicación"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Desconocido"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "Aceptar"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 carpeta"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 vídeo"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Todo"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "Desde el dispositivo"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "Desde Dropbox"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Modificado por última vez"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Contenido para mostrar"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Buscar"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Compartir"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "Se eliminará 1 carpeta."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Eliminando..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Después de grabar vídeos con la cámara, se mostrarán aquí."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d vídeos"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Vídeo"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "Sin vídeos"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Detalles"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Carpeta"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Lista"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Añad recient"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Vistos recientemente"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Renombrar"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Tamaño"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Ordenar por"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Título"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Tipo"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Ver como"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "Se eliminarán todos los vídeos"
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "Se eliminarán %d carpetas"
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "Se eliminarán %d vídeos"
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "Esta carpeta se eliminará"
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d carpetas"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Ajustes"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "No se puede reproducir vídeo"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Alineación"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Tamaño de fuente"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Repetir ajuste"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Subtítulos (CC)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "Se eliminarán todas las carpetas"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Centro"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Grande"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Izquierda"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Medio"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Derecha"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Pequeño"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "El nombre de archivo ya está en uso."
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Cerrar"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Alcanzado el número máximo de caracteres"
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Parar"
+
+msgid "IDS_COM_SK_OK"
+msgstr "Aceptar"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Desactivar"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Actualizar"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Ubicación"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Eliminado"
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Eliminar de Privado"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Mover a Privado"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Entrada vacía"
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Formato"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "No se puede reproducir vídeo durante la llamada"
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "Este archivo no está disponible cuando está fuera de línea. Compruebe su conexión de red y vuélvalo a intentar."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "El elemento seleccionado se moverá a %s"
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "Los elementos seleccionados se moverán a %s"
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Eliminando..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Moviendo..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Error al mover al almacenamiento personal."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Error al mover al almacenamiento normal."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Mensaje"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Carpetas"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Correo elect"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Fecha (reciente)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d seleccionado(s)"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Eliminar vídeos"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Eliminar vídeo"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Mover"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Longitud"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Latitud"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "Después de grabar vídeos con la cámara, se mostrarán los vídeos"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Canc."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Detener después todo"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Repetir actual"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Repetir todo"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Resolución"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Elim."
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Eliminar todo"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Este archivo solo admite datos de audio. Ahora se reproduce audio."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Este archivo solo admite datos de vídeo. Ahora se reproduce vídeo."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Cambiar nombre"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Auriculares"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Desconocido"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Error"
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Batería baja"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Error de conexión"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "El archivo no existe"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "Puede usar %s 1 vez más. ¿Obtener otra licencia?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Dispositivo de audio"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Añadido"
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Buscar"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "No se puede añadir"
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Predeterminado"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Descargar"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Desactivado"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "Activado"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "Se eliminará 1 vídeo."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Carácter no válido"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "No se han encontrado resultados"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Seleccionar"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Última modificación"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Hecho"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Fecha"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Latitud"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Nombre"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Nombre (A-Z)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Vídeos"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Se ha superado el número máximo de adjuntos (%d)."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Seleccionar todo"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Almacenamiento del dispositivo"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "Tarjeta SD"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Mover"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "Activado"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Compartir"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Se ha producido un error de red. Vuelva a intentarlo."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Reproducción continua"
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Procesando..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Número máximo de caracteres alcanzado."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Sí"
+
+msgid "IDS_COM_SK_NO"
+msgstr "No"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Eliminar"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Eliminar todo"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "Sin resultados"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Seleccionar elemento"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Seleccionar elementos"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Cancelar"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "HECHO"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "CANCELAR"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "ELIMINAR"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Ubicación almacenamiento"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Fecha"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Seleccionar vídeo"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Error de conexión"
+
+msgid "IDS_COM_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Descargado"
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Sincronizar"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Fuente"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "No"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Auriculares"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "Puede usar %s 1 vez más. ¿Iniciar ahora?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "Puede usar %s 2 veces más. ¿Iniciar ahora?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s está bloqueado actualmente. ¿Desbloquear?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "No puede usar %s más veces. ¿Obtener otra licencia?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s está a punto de caducar. ¿Obtener otra licencia?"
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Descargar"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "Se descargará 1 carpeta."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "Se descargará 1 video."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Se descargarán todas las carpetas."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Se descargarán todos los videos."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Se descargarán %d carpetas."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Se descargarán %d videos."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Los datos móviles están desactivados. Conéctese a una red Wi-Fi o active Datos móviles e inténtelo de nuevo."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Privado"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Ubicación"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Desconocido"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "Aceptar"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 carpeta"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 video"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Todo"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "Desde el dispositivo"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "Desde Dropbox"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Modificado por última vez"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Contenido para mostrar"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Buscar"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Compartir"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "Se eliminará 1 carpeta."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Eliminando..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Después de grabar videos con la cámara, los videos se mostrarán aquí."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d videos"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Video"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "Sin videos"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Detalles"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Carpeta"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Lista"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Añadido reciente"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Visto recientemente"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Renombrar"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Tamaño"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Ordenar por"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Título"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Tipo"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Ver como"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "Se eliminarán todos los videos."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "Se eliminarán %d carpetas."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "Se eliminarán %d videos."
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "Esta carpeta se eliminará."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d carpetas"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Ajustes"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "No se puede reproducir video"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Alineación"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Tamaño de fuente"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Repetir configuración"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Subtítulos (CC)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "Se eliminarán todas las carpetas."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Central"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Grande"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Izquierda"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Medio"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Derecha"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Pequeño"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "Nombre de archivo ya existe."
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Cerrar"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Se ha alcanzado el número máximo de caracteres."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Detener"
+
+msgid "IDS_COM_SK_OK"
+msgstr "Aceptar"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Desactivado"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Actualizar"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Ubicación"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Eliminado."
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Eliminar de Privado"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Mover a Privado"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Entrada vacía."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Formato"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "No es posible reproducir video durante la llamada."
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "Este archivo no está disponible sin conexión. Verifique su conexión de red e inténtelo de nuevo."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "El elemento seleccionado se moverá a %s."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "Los elementos seleccionados se moverán a %s."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Eliminando..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Moviendo…"
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Error al mover al almacenamiento personal."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Error al mover al almacenamiento normal."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Mensaje"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Carpetas"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Correo"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Fecha (reciente)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d seleccionado(s)"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Eliminar videos"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Eliminar video"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Mover"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Longitud"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Latitud"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "Se mostrarán los videos después de ser grabados con Cámara."
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Canc."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Detener desp. todo"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Repetir actual"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Repetir todo"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Resolución"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Eliminar"
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Eliminar todo"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Este archivo sólo admite datos de audio. Ahora se reproduce audio."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Este archivo sólo admite datos de video. Ahora se reproduce video."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Renombrar"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Auricular"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Desconocido"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Error."
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Batería baja."
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Error de conexión."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "El archivo no existe."
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "Puedes usar %s 1 vez más. ¿Deseas obtener otra licencia?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Dispositivo de audio"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Añadido."
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Buscar"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "No es posible añadir."
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Predeterminado"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Descargar"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Desactivado"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "Activado"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "Se eliminará 1 video."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Carácter no válido"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "No se han encontrado resultados"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Seleccionar"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Modificado por última vez"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Aceptar"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Fecha"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Latitud"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Nombre"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Nombre (A a Z)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Videos"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Se excedió el número máximo de archivos adjuntos (%d)."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Todo"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Almacenamiento del dispositivo"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "Tarjeta de memoria"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Mover"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "Activado"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Compartir vía"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Se produjo un error de red. Inténtelo de nuevo."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Reproducción continua"
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Procesando..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Se alcanzó el número máximo de caracteres."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Sí"
+
+msgid "IDS_COM_SK_NO"
+msgstr "No"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Eliminar"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Eliminar todo"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "Sin resultados"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Seleccionar elemento"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Seleccionar archivos"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Cancelar"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "REALIZADO"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "CANCELAR"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "ELIMINAR"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Ubicación de almacenam."
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Fecha"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Seleccionar video"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Directo"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Error de conexión."
+
+msgid "IDS_COM_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Descargado."
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Sincronizar"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Fuente"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "Ninguno"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Auricular"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "Puedes usar %s 1 vez más. ¿Iniciar ahora?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "Puedes usar %s 2 veces más. ¿Iniciar ahora?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s bloqueado actualmente. ¿Desbloquear?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "Ya no puedes usar %s. ¿Deseas obtener otra licencia?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s está por caducar. ¿Deseas obtener otra licencia?"
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Laadi alla"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "1 kaust laaditakse alla."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "1 video laaditakse alla."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Kõik kaustad laaditakse alla."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Kõik videod laaditakse alla."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "%d kausta laaditakse alla."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "%d videot laaditakse alla."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Mobiilne andmeside on välja lülitatud. Looge selle asemel ühendus Wi-Fi võrguga või lülitage mobiilne andmeside sisse ja proovige uuesti."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Privaatne"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "kB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Asukoht"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Tundmatu"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 kaust"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 video"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Kõik"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "Seadmest"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "Dropboxist"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Viimati muudetud"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Sisu, mida kuvada"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Otsi"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Jaga"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "1 kaust kustutatakse."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Kustutamine..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Videod kuvatakse pärast nende salvestamist kaameraga."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d videot"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Video"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "Videoid pole"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Üksikasjad"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Kaust"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Loend"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Hiljuti lisatud"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Hiljuti vaadatud"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Nimeta ümber"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Suurus"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Sortimisalus"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Pealkiri"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Tüüp"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Kuva:"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "Koik videod kustutatakse."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "%d kausta kustutatakse."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "%d videot kustutatakse."
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "See kaust kustutatakse."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d kaustad"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Seaded"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Videot ei saa esitada"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Joondamine"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Fondi suurus"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Korduse seadistus"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Subtiitrid (peittiitrid)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "Koik kaustad kustutatakse."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Keskel"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Suur"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Vasakul"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Keskmine"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Paremal"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Väike"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "Failinimi on juba kasutusel"
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Sulge"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Lubatud arv märke on täis."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Lõpeta"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Väljas"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Värskenda"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Asukoht"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Kustutatud."
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Eemalda kaustast Privaatne"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Teisalda kausta Privaatne"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Kirje on tuhi."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Vorminda"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Kõne ajal ei saa videot esitada."
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "See fail pole võrguühenduseta olekus saadaval. Kontrollige võrguühendust ja proovige uuesti."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "Valitud uksus teisaldatakse asukohta %s."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "Valitud uksused teisaldatakse asukohta %s."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Eemaldamine..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Teisaldamine..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Isiklikku mällu teisaldamine nurjus."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Tavamällu teisaldamine nurjus."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Sõnum"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Kaustad"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "E-kiri"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Kuupäev (hilis)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d valitud"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Kustuta videod"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Kustuta video"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Teisalda"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Pikkuskraad"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Laiuskraad"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "Videod kuvatakse parast nende salvestamist kaameraga."
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Tühis."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Lõpeta pärast kõiki"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Korda praegust"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Korda kõik"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Eraldusvõime"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Kust."
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Kustuta kõik"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "See fail toetab ainult heliandmeid. Nüüd esitatakse heli."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "See fail toetab ainult videoandmeid. Nüüd esitatakse videot."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Nimeta ümber"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Kõrvaklapid"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Tundmatu"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Tõrge"
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Aku on peaaegu tühi."
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Ühendamine nurjus."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Seda faili pole olemas."
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "Te saate kasutada %s veel 1 korra. Kas hankida teine litsents?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Heliseade"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Lisatud."
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Otsi"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Ei saa lisada."
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Vaikimisi"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Laadi alla"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Väljas"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "Sees"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "1 video kustutatakse."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Lubamatu tähemärk"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "Otsingutulemeid pole"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Vali"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Viimati muudetud"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Valmis"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Kuupäev"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Laiuskraad"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Nimi"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Nimi (A‒Z)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Videod"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Manuste maksimaalne arv (%d) on ületatud."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Vali kõik"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Seadme mälu"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "SD-kaart"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Teisalda"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "Sees"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Jaga:"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Ilmnes võrgutõrge. Proovige uuesti."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Esita järgm. auto."
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Töötlemine..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Tähemärkide maksimaalne arv on saavutatud."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Jah"
+
+msgid "IDS_COM_SK_NO"
+msgstr "Ei"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Kustuta"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Kustuta kõik"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "Otsing ei andnud"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Vali üksus"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Vali üksusi"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Tühista"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "VALMIS"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "TÜHISTA"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "KUSTUTA"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Salvestamise asukoht"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Kuupäev"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Valige video"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Ühenduse tõrge."
+
+msgid "IDS_COM_BODY_KB"
+msgstr "kB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Alla laetud."
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Sünkrooni"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Font"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "Puudub"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Kõrvaklapid"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "Te saate kasutada %s veel 1 korra. Kas alustada kohe?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "Te saate kasutada %s veel 2 korda. Kas alustada kohe?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s praegu lukustatud. Kas avada?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "Te ei saa kasutada %s enam ühtegi korda. Kas hankida teine litsents?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s aegub peagi. Kas hankida teine litsents?"
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Deskargatu"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "Karpeta 1 deskargatuko da."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "Bideo 1 deskargatuko da."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Karpeta guztiak deskargatuko dira."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Bideo guztiak deskargatuko dira."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "%d karpeta deskargatuko dira."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "%d bideo deskargatuko dira."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Datu mugikorrak itzalita. Konektatu Wi-Fi sare batera edo piztu datu mugikorrak eta saiatu berriz."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Pribatua"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Kokalekua"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Ezezaguna"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "Ados"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "Karpeta 1"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "Bideo 1"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Guztiak"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "Gailutik"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "Dropbox-etik"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Azken aldaketa"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Erakusteko edukia"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Bilatu"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Partekatu"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "Karpeta 1 ezabatuko da."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Ezabatzen..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Kamera erabiliz bideoak grabatu ondoren, hemen erakutsiko dira."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d bideo"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Bideoa"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "Ez dago bideorik"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Xehetasunak"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Karpeta"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Zerrenda"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Berriki gehituak"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Berriki ikusitakoak"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Berrizendatu"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Tamaina"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Sailkatu honela"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Izenburua"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Mota"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Ikusi honela"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "Bideo guztiak ezabatuko dira"
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "%d karpeta ezabatuko dira"
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "%d bideo ezabatuko dira"
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "Karpeta hau ezabatuko da"
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d karpeta"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Ezarpenak"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Ezin da bideoa erreproduzitu"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Lerrokatzea"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Letraren neurria"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Errepikatu ezarpena"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Azpitituluak (CC)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "Karpeta guztiak ezabatuko dira"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Erdikoa"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Handia"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Ezkerra"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Ertaina"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Eskuinekoa"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Txikia"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "Fitxategi izena aurretik erabiltzen ari zara."
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Itxi"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Gehienezko karaktere kopurura heldu zara."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Gelditu"
+
+msgid "IDS_COM_SK_OK"
+msgstr "Ados"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Desaktibatuta"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Eguneratu"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Kokalekua"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Ezabatua"
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Kendu Pribatutik"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Mugitu pribatura"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Sarrera hutsik dago"
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Formateatu"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Ezin da bideoa erreproduzitu deia egiten ari den bitartean"
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "Fitxategi hau ez dago erabilgarri lineaz kanpo. Egiaztatu sare konexioa eta saiatu berriz."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "Hautatutako gaia %s-(e)ra mugituko da"
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "Hautatutako elementuak %s-(e)ra mugituko dira"
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Ezabatzen..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Mugitzen..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Huts egin da biltegi pertsonalera mugitzean."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Huts egin da ohiko biltegira mugitzean."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Mezua"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Karpetak"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Helb. elek."
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Data (berriena)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d aukeratuta"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Ezabatu bideoak"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Ezabatu bideoa"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Mugitu"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Longitudea"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Latitudea"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "Kamera erabiliz bideoak grabatu ondoren, bideoak erakutsiko dira"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Ezez."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Eten denen ondoren"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Errepikatu hau"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Errepikatu dena"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Bereizmena"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Ezab."
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Dena(k) ezabatu"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Fitxategi honek audio datuak baino ez ditu onartzen. Audioa erreproduzitzen."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Fitxategi honek bideo datuak baino ez ditu onartzen. Bideoa erreproduzitzen."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Berrizendatu"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Aurikularrak"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Ezezaguna"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Akatsa"
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Bateria gutxi"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Konektatzerakoan errorea"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Fitxategia ez dago"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "%s erabili dezakezu beste behin. Lortu beste lizentzia bat?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Audio gailua"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Gehituta"
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Eskaneatzea"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Ezin da gehitu"
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Lehenetsia"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Deskargatu"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Desaktibatuta"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "Aktibatuta"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "Bideo 1 ezabatuko da."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Karaktere baliogabea"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "Ez dago bilaketaren emaitzarik"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Hautatu"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Azken aldaketa"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Egina"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Data"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Latitudea"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Izena"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Izena (Atik Zra)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Bideoak"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Eranskinen gehieneko kopurua (%d) gainditu duzu."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Hautatu guztiak"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Gailu biltegia"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "SD txartela"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Mugitu"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "Aktibatuta"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Partekatu honen bidez"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Sare errorea gertatu da. Saiatu berriz."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Errep. hur. auto."
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Prozesatzen..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Gehieneko karaktere kopurura iritsi zara."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Bai"
+
+msgid "IDS_COM_SK_NO"
+msgstr "Ez"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Ezabatu"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Dena(k) ezabatu"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "Ez dago bilaketa emaitzarik"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Elementua aukeratu"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Aukeratu elementuak"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Ezeztatu"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "EGINA"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "UTZI"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "EZABATU"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Biltegiratze kokapena"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Data"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Hautatu bideoa"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Konexio errorea"
+
+msgid "IDS_COM_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Deskargatuta"
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Sinkronizatu"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Letra"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "Bat ere ez"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Aurikularrak"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "%s erabili dezakezu beste behin. Hasi orain?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "%s erabili dezakezu beste 2 aldiz. Hasi orain?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s blokeatuta dago orain. Desblokeatu?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "Ezin duzu beste %s elementu gehiago erabili. Lortu beste lizentzia bat?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s iraungitzear dago. Lortu beste lizentzia bat?"
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Lataa"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "1 kansio ladataan."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "1 video ladataan."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Kaikki kansiot ladataan."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Kaikki videot ladataan."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "%d kansiota ladataan."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "%d videota ladataan."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Mobiilidata on poistettu käytöstä. Muodosta sen sijaan yhteys Wi-Fi-verkon kautta tai ota mobiilidata käyttöön ja yritä uudelleen."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Yksityinen"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "t"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "Gt"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "kt"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Sijainti"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "Mt"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Tuntematon"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 kansio"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 video"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Kaikki"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "Laitteesta"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "Dropboxista"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Muutettu viimeksi"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Näytettävä sisältö"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Hae"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Jaa"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "1 kansio poistetaan."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Poistetaan..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Kun olet tallentanut kameralla videoita, ne näytetään täällä."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d videota"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Video"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "Ei videoita"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Lisätiedot"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Kansio"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Luettelo"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Viim. lisätyt"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Viimeksi katsotut"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Nimeä uudelleen"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Koko"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Lajitteluperuste"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Otsikko"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Tyyppi"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Näyttötapa"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "Kaikki videot poistetaan."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "%d kansiota poistetaan."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "%d videota poistetaan."
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "Tämä kansio poistetaan."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d kansiota"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Asetukset"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Videota ei voi toistaa"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Kohdistus"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Fonttikoko"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Toistoasetus"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Tekstitys (CC)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "Kaikki kansiot poistetaan."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Keskelle"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Suuri"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Vasemmalle"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Keskisuuri"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Oikealle"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Pieni"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "Tiedoston nimi jo käytössä."
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Sulje"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Merkkien enimmäismäärä saavutettu."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Lopeta"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Pois"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Päivitä"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Sijainti"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Poistettu."
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Poista Yksityiset-kansiosta"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Siirrä Yksityiset-kansioon"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Tyhjä tieto"
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Muoto"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Puhelun aikana ei voi toistaa videota."
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "Tätä tiedostoa ei voi käyttää offline-tilassa. Tarkista verkkoyhteys ja yritä uudelleen."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "Valittu kohde siirretään kohteeseen %s."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "Valitut kohteet siirretään kohteeseen %s."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Poistetaan..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Siirretään..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Siirtäminen henkilökohtaiseen tallennustilaan epäonnistui."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Siirtäminen normaaliin tallennustilaan epäonnistui."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Viesti"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Kansiot"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Sähköposti"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Päiväys (uusimmat)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d valittu"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Poista videot"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Poista video"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Siirrä"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Pituusaste"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Leveysaste"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "Videot näytetään, kun olet tallentanut videoita kameralla."
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Per."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Pysäytä kaikk. jälk."
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Toista nykyinen"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Toista kaikki"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Tarkkuus"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Poista"
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Poista kaikki"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Tiedosto tukee vain äänitietoja. Toistetaan ääntä."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Tiedosto tukee vain videotietoja. Toistetaan videota."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Nimeä uudelleen"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Kuulokkeet"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Tuntematon"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Virhe"
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Akku on loppumassa."
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Yhdistäminen epäonnistui."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Tiedostoa ei ole."
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "Voit käyttää kohdetta %s vielä 1 kerran. Hankitaanko toinen lisenssi?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Äänilaite"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Lisätty."
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Hae"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Lisääminen ei onnistu."
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Oletus"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Lataa"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Pois"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "Päälle"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "1 video poistetaan."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Virheellinen merkki"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "Ei hakutuloksia"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Valitse"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Muutettu viimeksi"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Valmis"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Päivämäärä"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Leveysaste"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Nimi"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Nimi (A–Ö)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Videot"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Liitteiden enimmäismäärä (%d) on ylitetty."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Valitse kaikki"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Laitteen muisti"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "SD-kortti"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Siirrä"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "Päällä"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Jakotapa"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Verkkovirhe. Yritä uudelleen."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Toista seur. aut."
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Käsitellään..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Merkkien enimmäismäärä on saavutettu."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Kyllä"
+
+msgid "IDS_COM_SK_NO"
+msgstr "Ei"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Poista"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Poista kaikki"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "Ei hakutuloksia"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Valitse kohde"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Valitse kohteet"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Peruuta"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "VALMIS"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "PERUUTA"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "POISTA"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Tallennuspaikka"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Päivämäärä"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Valitse video"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Yhteysvirhe"
+
+msgid "IDS_COM_BODY_KB"
+msgstr "kt"
+
+msgid "IDS_COM_BODY_B"
+msgstr "t"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "Mt"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "Gt"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Ladattu."
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Synkronoi"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Fontti"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "Ei mitään"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Kuulokkeet"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "Voit käyttää kohdetta %s vielä 1 kerran. Aloitetaanko nyt?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "Voit käyttää kohdetta %s vielä 2 kertaa. Aloitetaanko nyt?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s on tällä hetkellä lukittu. Poistetaanko lukitus?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "Kohdetta %s ei enää voi käyttää. Hankitaanko toinen lisenssi?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s on vanhentumassa. Hankitaanko toinen lisenssi?"
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Télécharger"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "1 dossier va être téléchargé."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "1 vidéo va être téléchargée."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Tous les dossiers vont être téléchargés."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Toutes les vidéos vont être téléchargées."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "%d dossiers vont être téléchargés."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "%d vidéos vont être téléchargées."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Données mobiles désactivées. Connectez-vous à un réseau Wi-Fi ou activez les données mobiles, puis réessayez."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Privé"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "o"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "Go"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "Ko"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Localisation"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "Mo"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Inconnu"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 dossier"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 vidéo"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Tout"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "À partir de l'appareil"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "À partir de Dropbox"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Dernière modification"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Contenu à afficher"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Rechercher"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Partager"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "1 dossier va être supprimé."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Suppression en cours..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Les vidéos enregistrées avec l'appareil photo seront affichées ici."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d vidéos"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Vidéo"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "Aucune vidéo"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Détails"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Dossier"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Liste"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Ajout récent"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Visionnées récemment"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Renommer"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Taille"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Trier par"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Titre"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Type"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Afficher en tant que"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "Toutes les vidéos seront supprimées."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "%d dossiers seront supprimés."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "%d vidéos seront supprimées."
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "Ce dossier sera supprimé."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d dossiers"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Paramètres"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Impossible de lire la vidéo"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Alignement"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Taille de police"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Répéter le paramètre"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Sous-titres (codés)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "Tous les dossiers seront supprimés."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Centre"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Grand"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Gauche"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Moyen"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Droit"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Petit"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "Le nom de fichier est déjà utilisé."
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Fermer"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Nb max de caractères atteint"
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Arrêter"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Désactivé"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Actualiser"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Localisation"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Supprimé"
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Supprimer de Privé"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Déplacer dans Privé"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Entrée vide"
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Format"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Impossible de lire la vidéo pendant un appel."
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "Ce fichier est indisponible en mode hors-ligne. Vérifiez la connexion réseau et réessayez."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "L'élément sélectionné sera déplacé vers %s."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "Les éléments sélectionnés seront déplacés vers %s."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Suppression..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Déplacement..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Déplacement vers l'espace de stockage personnel impossible."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Déplacement vers l'espace de stockage normal impossible."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Message"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Dossiers"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "E-mail"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Date (+ récent)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d sélectionné(es)"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Supprimer les vidéos"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Supprimer la vidéo"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Déplacer"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Longitude"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Latitude"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "Les vidéos enregistrées avec l'appareil photo seront affichées."
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Annul."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Arrêter après tout"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Répéter élém. actuel"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Tout répéter"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Résolution"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Suppr."
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Tout supprimer"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Seules les données audio sont prises en charge par ce fichier. Audio en cours de lecture."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Seules les données vidéo sont prises en charge par ce fichier. Vidéo en cours de lecture."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Renommer"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Écouteurs"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Inconnu"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Erreur"
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Batterie faible"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Échec de connexion au réseau."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Fichier inexistant"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "Vous pouvez utiliser %s encore 1 fois. Obtenir une autre licence ?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Périphérique audio"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Ajouté"
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Rechercher"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Impossible à ajouter."
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Par défaut"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Télécharger"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Désactivé"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "Activé"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "1 vidéo sera supprimée."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Caractère non valide"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "Aucun résultat trouvé"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Sélectionner"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Dernière modification"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Date"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Latitude"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Nom"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Nom (A à Z)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Vidéos"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Le nombre maximal de pièces jointes (%d) a été dépassé."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Sélectionner tout"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Espace sur l'appareil"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "Carte SD"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Déplacer"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "Activé"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Partager via"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Une erreur réseau s'est produite. Réessayez."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Lire suivant auto"
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "En cours..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Nombre maximal de caractères atteint."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Oui"
+
+msgid "IDS_COM_SK_NO"
+msgstr "Non"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Supprimer"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Tout supprimer"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "Aucun résultat"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Sélectionnez votre choix"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Sélectionner éléments"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Annuler"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "OK"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ANNULER"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "SUPPRIMER"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Emplacement de stockage"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Date"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Sélectionner une vidéo"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Erreur de connexion"
+
+msgid "IDS_COM_BODY_KB"
+msgstr "Ko"
+
+msgid "IDS_COM_BODY_B"
+msgstr "o"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "Mo"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "Go"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Téléchargement terminé"
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Synchroniser"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Police"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "Aucun(e)"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Écouteurs"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "Vous pouvez utiliser %s encore 1 fois. Démarrer maintenant ?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "Vous pouvez utiliser %s encore 2 fois. Démarrer maintenant ?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s est actuellement verrouillé. Déverrouiller ?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "Vous ne pouvez plus utiliser %s. Obtenir une autre licence ?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s est sur le point d'expirer. Obtenir une autre licence ?"
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Télécharger"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "1 dossier va être téléchargé."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "1 vidéo va être téléchargée."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Tous les dossiers vont être téléchargés."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Toutes les vidéos vont être téléchargées."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "%d dossiers vont être téléchargés."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "%d vidéos vont être téléchargées."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Données mobiles désactivées. Connectez-vous à un réseau wifi ou activez les données mobiles, puis réessayez."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Privé"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "O"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "Go"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "Ko"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Localisation"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "Mo"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Inconnu"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 dossier"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 vidéo"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Tous"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "À partir de l'appareil"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "À partir de Dropbox"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Dernière modification"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Contenu à afficher"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Rechercher"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Partager"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "1 dossier va être supprimé."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Suppression en cours..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Les vidéos enregistrées avec l'appareil photo seront affichées ici."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d vidéos"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Vidéo"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "Aucune vidéo"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Détails"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Dossier"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Liste"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Ajouté récem."
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Stylet"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Renommer"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Taille"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Trier par"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Titre"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Type"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Afficher en tant que"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "Toutes les vidéos seront supprimées."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "%d dossiers seront supprimés."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "%d vidéos seront supprimées."
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "Ce dossier sera supprimé."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d dossiers"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Réglages"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Impossible de lire la vidéo"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Alignement"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Taille de police"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Répéter le paramètre"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Sous-titres"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "Tous les dossiers seront supprimés."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Centre"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Grand"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Gauche"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Moyen"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Droit"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Petit"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "Le nom de fichier est déjà utilisé."
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Fermer"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Nb max de caractères atteint."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Arrêter"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Désactivé"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Actualiser"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Localisation"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Supprimé."
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Supprimer de Privé"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Déplacer dans Privé"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Entrée vide"
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Format"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Impossible de jouer la vidéo pendant un appel."
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "Ce fichier est indisponible en mode hors-ligne. Vérifiez la connexion réseau et réessayez."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "L'élément sélectionné sera déplacé vers %s."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "Les éléments sélectionnés seront déplacés vers %s."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Retrait..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Déplacement..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Déplacement vers l'espace de stockage personnel impossible."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Déplacement vers l'espace de stockage normal impossible."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Message"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Dossiers"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Courriel"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Date (+ récent)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d sélect."
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Supprimer les vidéos"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Supprimer la vidéo"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Déplacer"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Longitude"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Latitude"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "Les vidéos enregistrées avec l'appareil photo seront affichées."
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Annuler"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Arrêter après tout"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Répéter élém. actuel"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Tout répéter"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Résolution"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Suppr."
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Supprimer tout"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Seules les données audios sont prises en charge par ce fichier. Audio en cours de lecture."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Seules les données vidéos sont prises en charge par ce fichier. Vidéo en cours de lecture."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Renommer"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Écouteurs"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Inconnu"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Erreur."
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Pile faible"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Échec de connexion réseau."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Fichier inexistant"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "Vous pouvez utiliser %s encore 1 fois. Obtenir une autre licence ?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Périphérique audio"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Ajouté."
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Rechercher"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Impossible à ajouter."
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Par défaut"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Télécharger"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Désactivé"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "Activé"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "1 vidéo sera supprimée."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Caractère non valide"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "Aucun résultat de recherche"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Sélectionner"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Dernière modification"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Date"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Latitude"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Nom"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Nom (A à Z)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Vidéos"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Le nombre maximal de pièces jointes (%d) a été dépassé."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Sélectionner tout"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Espace sur l'appareil"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "Carte SD"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Déplacer"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "Activé"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Partager via"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Une erreur réseau s'est produite. Réessayez."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Lire auto. suiv."
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Traitement…"
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Nombre maximal de caractères atteint."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Oui"
+
+msgid "IDS_COM_SK_NO"
+msgstr "Non"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Supprimer"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Supprimer tout"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "Aucun résultat"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Sélectionner un élément"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Sélectionner éléments"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Annuler"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "OK"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ANNULER"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "SUPPRIMER"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Emplacement de stockage"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Date"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Sélectionner une vidéo"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wifi direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Erreur de connexion."
+
+msgid "IDS_COM_BODY_KB"
+msgstr "Ko"
+
+msgid "IDS_COM_BODY_B"
+msgstr "O"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "Mo"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "Go"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Télécharg."
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Synchroniser"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Police"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "Aucun"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Écouteurs"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "Vous pouvez utiliser %s encore 1 fois. Démarrer maintenant ?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "Vous pouvez utiliser %s encore 2 fois. Démarrer maintenant ?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s est actuellement verrouillé. Déverrouiller ?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "Vous ne pouvez plus utiliser %s. Obtenir une autre licence ?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s est sur le point d'expirer. Obtenir une autre licence ?"
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Íoslódáil"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "Íoslódálfar 1 fhillteán."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "Íoslódálfar 1 fhíseán."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Íoslódálfar gach fillteán."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Íoslódálfar gach físeán."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Íoslódálfar %d fillteán."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Íoslódálfar %d físeán."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Sonraí móibíleacha casta as. Nasc le líonra Wi-Fi ina ionad, nó cas Sonraí móibíleacha air agus triail arís."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Príobháideach"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Suíomh"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Anaithnid"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 Fhillteán"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 fhíseán"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Gach"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "Ó ghléas"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "Ó Dropbox"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Mionathrú is déanaí"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Inneachar le taispeáint"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Cuardaigh"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Comhroinn"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "Scriosfar 1 fhillteán."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Scriosadh..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Tar éis duit físeáin a thaifeadadh leis an gceamara, taispeánfar anseo iad."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d físeán"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Físeán"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "Níl físeáin ann"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Sonraí"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Fillteán"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Liostaigh"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Curtha leis le déanaí"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Amharc orthu le déanaí"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Athainmnigh"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Méid"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Sórt de réir"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Teideal"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Cineál"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Amharc air mar"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "Scriosfar gach físeán"
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "Scriosfar %d fillteán"
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "Scriosfar %d físeán"
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "Scriosfar an fillteán seo"
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d fillteán"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Socruithe"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Ní féidir físeán a sheinm"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Ailíniú"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Méid cló"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Socrú athsheanma"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Fotheidil (CC)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "Scriosfar gach fillteán"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Lárnach"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Mór"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Clé"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Meánach"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Deas"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Beag"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "Comhadainm in úsáid cheana."
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Dún"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Uaslíon na gcarachtar bainte amach."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Stop"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "As"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Athnuaigh"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Suíomh"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Scriosta."
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Bain ó Phríobháideach"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Bog chuig Príobháideach"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Tá an iontráil folamh"
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Formáid"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Ní féidir físeán a sheinm le linn glao."
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "Níl an comhad seo ar fáil fad is atá tú as líne. Seiceáil do nasc líonra le do thoil agus triail arís."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "Bogfar an mhír roghnaithe chuig %s"
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "Bogfar na míreanna roghnaithe chuig %s"
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Ag baint..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Ag bogadh..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Theip ar bhogadh chuig stóras pearsanta."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Theip ar bhogadh chuig gnáthstóras."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Teachtai"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Fillteáin"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "R-phost"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Dáta (is déanaí)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d roghnaithe"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Scrios físeáin"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Scrios físeán"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Bog"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Domhanfad"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Leithead"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "Tar éis duit físeáin a thaifeadadh ag úsáid an cheamara, taispeánfar na físeáin"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Cealú"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Stop tar eis gach"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Athdhean cuid reatha"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Athdhéan gach"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Taifeach"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Scrios"
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Scrios gach"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Níl tacú sa chomhad seo ach do shonraí fuaime. Fuaim á seinm anois."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Níl tacú sa chomhad seo ach do shonraí físe. Físeán á sheinm anois."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Athainmnigh"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Cluasáin"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Anaithnid"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Earráid."
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Ceallra lag."
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Theip ar nascadh."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Níl an comhad seo ann"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "Is féidir leat %s a úsáid uair amháin eile. Faigh ceadúnas eile?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Gléas fuaime"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Curtha leis."
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Scan"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Ní féidir cur leis."
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Réamhshocrú"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Íoslódáil"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "As"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "Air"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "Scriosfar 1 fhíseán."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Carachtar neamhbhailí"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "Níl torthaí cuardaigh ann"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Roghnaigh"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Mionathrú is déanaí"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Déanta"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Dáta"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Leithead"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Ainm"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Ainm (A-Z)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Físeáin"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Uaslíon na gceangaltán (%d) sáraithe."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Roghnaigh gach"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Stóras gléis"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "Cárta SD"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Bog"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "Air"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Comhroinn le"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Tharla earráid líonra. Triail arís."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "U. sheinn ar lean"
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Ag próiseáil..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Uaslíon na gcarachtar bainte amach."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Déan é"
+
+msgid "IDS_COM_SK_NO"
+msgstr "Ná déan é"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Scrios"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Scrios gach"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "Níl toradh cuardaigh ann"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Roghnaigh mír"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Roghnaigh míreanna"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Cealaigh"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "DÉANTA"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "CUIR AR CEAL"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "SCRIOS"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Suíomh stórais"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Dáta"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Roghnaigh físeán"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Earráid le nasc."
+
+msgid "IDS_COM_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Íoslódáilte."
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Sioncronaigh"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Cló"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "Dada"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Cluasáin"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "Is féidir leat %s a úsáid uair amháin eile. Tosaigh anois?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "Is féidir leat %s a úsáid 2 uaire eile. Tosaigh anois?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "Tá %s glasáilte faoi láthair. Díghlasáil?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "Ní féidir leat %s a úsáid arís. Faigh ceadúnas eile?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "Tá %s ar tí dul as feidhm. Faigh ceadúnas eile?"
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Descargar"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "Descargarase 1 carpeta."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "Descargarase 1 vídeo."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Descargaranse todas as carpetas."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Descargaranse todos os vídeos."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Descargaranse %d carpetas."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Descargaranse %d vídeos."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Os datos móbiles están desactivados. Conéctate a unha rede Wi-Fi no seu lugar ou activa os datos móbiles e téntao de novo."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Privado"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Localización"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Descoñecido"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "Aceptar"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 carpeta"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 vídeo"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Todas"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "Do dispositivo"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "De Dropbox"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Modificado por última vez"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Contido a amosar"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Buscar"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Compartir"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "Eliminarase 1 carpeta."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Eliminando..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Despois de gravar vídeos coa cámara, amosaranse aquí."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d vídeos"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Vídeo"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "Non hai vídeos"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Detalles"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Carpeta"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Lista"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Engadido recen."
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Vistos recentemente"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "C. nome"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Tamaño"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Ordenar por"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Título"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Tipo"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Ver como"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "Eliminaranse todos os vídeos"
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "Eliminaranse %d carpetas"
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "Eliminaranse %d vídeos"
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "Eliminarase esta carpeta"
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d carpetas"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Axustes"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Imposible reproducir vídeo"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Aliñamento"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Tamaño da fonte"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Axustes de repetición"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Subtítulos"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "Eliminaranse todas as carpetas"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Centro"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Grande"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Esquerda"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Media"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Dereita"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Pequeno"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "Nome do arquivo xa en uso."
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Pechar"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Número máximo de caracteres alcanzado"
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Deter"
+
+msgid "IDS_COM_SK_OK"
+msgstr "Aceptar"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Desactivado"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Actualizar"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Localización"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Eliminado"
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Eliminar de Privado"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Mover a Privado"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "A entrada está baleira"
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Formatar"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Non se pode reproducir vídeo durante a chamada"
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "Este arquivo non está dispoñible mentres estás fóra de liña. Comproba a conexión de rede e téntao de novo."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "O elemento seleccionado moverase a %s"
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "Os elementos seleccionados moveranse a %s"
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Eliminando..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Movendo..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Non se puido mover ao almacenamento persoal."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Non se puido mover ao almacenamento normal."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Mensaxe"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Carpetas"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Correo e."
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Data (recente)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d seleccionados"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Eliminar vídeos"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Eliminar vídeo"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Mover"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Lonxitude"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Latitude"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "Despois de gravar vídeos mediante a cámara, estes amosaranse"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Canc."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Deter despo. de todo"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Repetir actual"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Repetir todos"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Resolución"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Elim"
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Eliminar todo"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Este arquivo só admite datos de audio. Reprodución de audio en curso."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Este arquivo só admite datos de vídeo. Reprodución de vídeo en curso."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Cambiar nome"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Auriculares"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Descoñecido"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Erro"
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Batería baixa"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Erro na conexión"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "O arquivo non existe"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "Podes utilizar %s 1 vez máis. Desexas obter outra licenza?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Dispositivo de son"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Engadido"
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Buscar"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Non se pode engadir"
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Predeterminada"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Descargar"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Desactivado"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "Activado"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "Eliminarase 1 vídeo."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Carácter non válido"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "Non hai resultados da busca"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Seleccionar"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Modificado por última vez"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Feito"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Data"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Latitude"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Nome"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Nome (A-Z)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Vídeos"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Superouse o número máximo de adxuntos (%d)."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Seleccionar todo"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Almacenamento do dispositivo"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "Tarxeta SD"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Mover"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "Activado"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Compartir mediante"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Produciuse un erro de rede. Téntao de novo."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Reprod seg autom"
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Procesando..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Alcanzouse o número máximo de carácteres."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Si"
+
+msgid "IDS_COM_SK_NO"
+msgstr "Non"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Eliminar"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Eliminar todo"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "Sen resultado da busca"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Seleccionar elemento"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Seleccionar elementos"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Cancelar"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "FEITO"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "CANCELAR"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "ELIMINAR"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Localización almacenam."
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Data"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Seleccionar vídeo"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Erro de conexión"
+
+msgid "IDS_COM_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Descargado"
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Sincronizar"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Fonte"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "Ningún"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Auriculares"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "Podes utilizar %s 1 vez máis. Desexas comezar agora?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "Podes utilizar %s 2 veces máis. Desexas comezar agora?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s está bloqueado actualmente. Desexas desbloquealo?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "Non podes utilizar %s ningunha vez máis. Desexas obter outra licenza?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s está a piques de caducar. Desexas obter outra licenza?"
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "डाउनलोड"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "1 फोल्डर डाउनलोड किया जाएगा।"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "1 वीडियो डाउनलोड किया जाएगा।"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "सभी फोल्डर्स डाउनलोड किए जाएँगे।"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "सभी वीडियो डाउनलोड किए जाएँगे।"
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "%d फोल्डर्स डाउनलोड किए जाएँगे।"
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "%d वीडियोज डाउनलोड किए जाएँगे।"
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "मोबाइल डाटा बंद किया गया। इसके बजाय किसी Wi-Fi नेटवर्क से कनेक्ट करें या मोबाइल डाटा चालू करें और फिर से प्रयास करें।"
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "निजी"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "स्थान"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "अज्ञात"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "ओके"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 फोल्डर"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 वीडियो"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "सभी"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "डिवाइस से"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "ड्रॉपबॉक्स से"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "अंतिम बार संशोधित"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "प्रदर्शन के लिए सामग्री"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "खोजें"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "साझा करें"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "1 फोल्डर हटाया जाएगा।"
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "हटाया जा रहा है..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "आपके द्वारा कैमरे का उपयोग करके वीडियोज रिकॉर्ड करने के बाद, वे यहाँ दिखाई जाएँगे।"
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d वीडियोज़"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "वीडियो"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "कोई वीडियो नहीं"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "विवरण"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "फोल्डर"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "सूची"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "हाल ही में जोड़ें गए"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "हाल ही में देखा गया"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "नाम बदलें"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "आकार"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "इसके द्वारा क्रमबद्ध करें"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "शीर्षक"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "प्रकार"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "इस रूप में देखें"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "सभी वीडियो हटाए जाएँगे"
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "%d फोल्डर्स हटाए जाएँगे"
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "%d वीडियोज हटाए जायेंगे।"
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "यह फोल्डर हटाया जाएगा।"
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d फोल्डर्स"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "सेटिंग्स"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "वीडियो चलाने में असमर्थ"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "संरेखण"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "फॉन्ट आकार"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "दोहराव सेटिंग"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "उपशीर्षक (CC)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "सभी फोल्डर्स हटाए जाएँगे।"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "केंद्र"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "बड़ा"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "बाएँ"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "मध्यम"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "दाएँ"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "छोटा"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "फाइल नाम पहले से ही उपयोग में है।"
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "बंद करें"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "वर्णो की संख्या अधिकतम पहुँची।"
+
+msgid "IDS_COM_SK_STOP"
+msgstr "रोकें"
+
+msgid "IDS_COM_SK_OK"
+msgstr "ओके"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "बंद"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "रीफ्रेश"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "स्थान"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "हटाया।"
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "निजी से निकालें"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "निजी पर ले जाएँ"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "प्रविष्टि खाली है"
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "फॉर्मेट"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "कॉल के दौरान वीडियो चलाने में असमर्थ।"
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "ड्रॉपबॉक्स"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "यह फाइल ऑफलाइन में अनुपलब्ध है। नेटवर्क कनेक्शन जाँचें और फिर से प्रयास करें।"
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "चुनी हुई मद %s में ले जाई जाएँगी"
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "चुनी हुई मदें %s में ले जाई जाएँगी"
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "हटा रहा है..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "ले जा रहा है..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "व्यक्गित स्टोरेज पर ले जाने में विफल।"
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "सामान्य स्टोरेज पर ले जाने में विफल।"
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "सन्देश"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "फोल्डर्स"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "ईमेल"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "तिथि (सबसे नवीनतम)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d चयनित"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "वीडियोज हटाएँ"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "वीडियो हटाएँ"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "ले जाएँ"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "देशांतर"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "अक्षांश"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "आपके द्वारा कैमरे का उपयोग करके वीडियो रिकॉर्ड करने के बाद, वीडियो दिखाए जाएंगे।"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "रद्द"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "सब के बाद रोकें"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "वर्तमान को दोहराएँ"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "सभी दोहराएँ"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "रिजॉल्यूशन"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "हटाएँ"
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "सभी हटाएँ"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "इस फाइल के द्वारा केवल ऑडियो डाटा समर्थित है। अब ऑडियो चलाया जा रहा है।"
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "इस फ़ाइल के द्वारा केवल वीडियो डाटा समर्थित है। अब वीडियो चलाया जा रहा है।"
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "नाम बदलें"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "हेडफोन्स"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "अज्ञात"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "त्रुटि।"
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "ब्लूटूथ"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "बैटरी कम है।"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "कनेक्शन विफल।"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "यह फाइल मौजूद नहीं है।"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "आप %s का उपयोग 1 बार और कर सकते हैं। लाइसेंस प्राप्त करें?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "ऑडियो डिवाइस"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "जोड़ा गया।"
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "स्कैन करें"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "जोड़ने में असमर्थ।"
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "डिफॉल्ट"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "डाउनलोड करें"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "बंद"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "चालू"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "1 वीडियो हटाया जाएगा।"
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "अमान्य वर्ण"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "कोई खोज परिणाम नहीं"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "चयन करें"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "अंतिम बार संशोधित"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "पूर्ण"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "तिथि"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "अक्षांश"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "नाम"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "नाम (A-Z)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "वीडियो"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "संलग्नक की अधिकतम संख्या (%d) पार हुई।"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "सभी चुनें"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "डिवाइस स्टोरेज"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "SD कार्ड"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "ले जाएँ"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "चालू"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "इसके द्वारा साझा करें"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "नेटवर्क त्रुटि उत्पन्न हुई है। फिर से प्रयास करें।"
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "अगला स्वतः चलाना"
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "प्रक्रिया हो रही है..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "वर्णों की अधिकतम संख्या पूरी हो गई।"
+
+msgid "IDS_COM_SK_YES"
+msgstr "हाँ"
+
+msgid "IDS_COM_SK_NO"
+msgstr "नहीं"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "हटाएँ"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "सभी हटाएँ"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "खोज का कोई परिणाम नहीं"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "मद चुनें"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "मद चुनें"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "रद्द"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "पूर्ण"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "रद्द करें"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "हटाएँ"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "संग्रहण स्थान"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "तिथि"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "वीडियो चुनें"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "कनेक्शन त्रुटी।"
+
+msgid "IDS_COM_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "डाउनलोड हुआ।"
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "सिंक्रोनाइज"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "फॉन्ट"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "कुछ नहीं"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "हेडफोन्स"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "आप %s का उपयोग 1 बार और कर सकते हैं। अभी प्रारंभ करें?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "आप %s का उपयोग 2 बार और कर सकते हैं। अभी प्रारंभ करें?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s वर्तमान में लॉक किया गया। अनलॉक करें?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "आप %s का उपयोग इसके बाद नहीं कर सकते हैं। लाइसेंस प्राप्त करें?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s समाप्त होने वाला है। लाइसेंस प्राप्त करें?"
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Preuzmi"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "Preuzet će se 1 mapa."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "Preuzet će se 1 videozapis."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Preuzet će se sve mape."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Preuzet će se svi videozapisi."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Preuzet će se ovoliko mapa: %d."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Preuzet će se ovoliko videozapisa: %d."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Mobilni su podaci isključeni. Spojite se na Wi-Fi mrežu ili uključite Mobilne podatke i pokušajte ponovno."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Privatno"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Lokacija"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Nepoznato"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "U redu"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 mapa"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 video"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Sve"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "S uređaja"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "S Dropboxa"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Zadnja promjena"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Prikaz sadržaja"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Traži"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Dijeli"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "1 će se mapa izbrisati."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Brisanje..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Nakon što kamerom snimite videozapise, prikazat će se ovdje."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d videa"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Video"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "Nema videa"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Detalji"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Mapa"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Popis"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Nedavno dodano"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Nedavno pogledano"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Preimenuj"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Veličina"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Sortiraj"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Naslov"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Vrsta"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Prikaži kao"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "Svi će videi biti obrisani."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "%d će se mapa obrisati."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "%d videa bit će obrisano."
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "Ova će mapa biti obrisana."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d mapa"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Postavke"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Nemoguće reproduc. videozapis"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Poravnanje"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Veličina slova"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Postavka ponavljanja"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Titlovi (CC)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "Sve mape će se obrisati."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Centralno"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Velika"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Lijevo"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Srednja"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Desno"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Mala"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "Već postoji naziv datoteke."
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Prekid"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Maks. broj znakova."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Zaustavi"
+
+msgid "IDS_COM_SK_OK"
+msgstr "U redu"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Isključeno"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Aktualiziraj"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Lokacija"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Obrisano."
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Ukloni iz Privatnog"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Premjesti u Privatno"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Unos prazan."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Format"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Tijekom razgovora nemoguća video reprodukcija."
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "Datoteka nije dostupna dok ste izvan mreže. Provjerite mrežnu vezu i pokušajte ponovno."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "Odabrana stavka bit će premještena u %s."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "Odabrane stavke bit će premještene u %s."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Uklanjanje..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Premještanje..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Neuspješno premještanje na osobnu memoriju."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Neuspješno premještanje na normalnu memoriju."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Poruka"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Mape"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Email"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Datum (najnoviji)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d odabrano"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Izbriši videozapise"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Obriši video"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Premjesti"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Geo. duljina"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Geo. širina"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "Vaši videozapisi bit će prikazani ovdje."
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Prekid"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Stati nakon svega"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Ponovi trenutno"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Ponovi sve"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Rezolucija"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Obriši"
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Obriši sve"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Datoteka podržava samo audio podatke. Sada reproducira zvuk."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Datoteka podržava samo video podatke. Sada reproducira video."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Promjeni ime"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Slušalice"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Nepoznato"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Greška."
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Baterija skoro prazna."
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Spajanje neuspješno."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Datoteka ne postoji."
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "%s možete koristiti još jednom. Preuzeti drugu licencu?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Audio uređaj"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Dodano."
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Skeniraj"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Nije moguće dodati."
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Zadano"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Skidanje"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Isključeno"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "Uključeno"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "1 će videozapis biti izbrisan."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Neispravan znak"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "Nema traženih rezultata"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Odaberi"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Zadnja promjena"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Datum"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Geo. širina"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Ime"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Naziv (A-Z)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Video"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Premašen je maksimalni broj privitaka (%d)."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Odaberi sve"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Memorija uređaja"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "SD kartica"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Premjesti"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "Uključeno"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Dijeli preko"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Došlo je do mrežne pogreške. Pokušajte ponovno."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Auto. rep. idući"
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Procesiranje..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Dosegnut maksimalan broj znakova."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Da"
+
+msgid "IDS_COM_SK_NO"
+msgstr "Ne"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Obriši"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Obriši sve"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "Nema traženih rezultata"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Odaberite stavku"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Odaberite stavke"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Prekid"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "GOTOVO"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ODUSTANI"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "IZBRIŠI"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Mjesto spremanja"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Datum"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Odaberite video"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Greška veze."
+
+msgid "IDS_COM_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Skinuto."
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Sinkronizacija"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Slova"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "Ništa"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Slušalice"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "%s možete koristiti još jednom. Početak?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "%s možete koristiti još dvaput. Početak?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s je trenutno zaključan. Otključati?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "Ne možete više koristiti %s. Preuzeti drugu licencu?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s će uskoro isteći. Preuzeti drugu licencu?"
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Letöltés"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "Letölt 1 mappát."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "Letölt 1 videót."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Az összes mappát letölti."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Az összes videót letölti."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Letölt %d mappát."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Letölt %d videót."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "A mobil internetkapcsolat ki van kapcsolva. Kapcsolódjon Wi-Fi-hálózathoz, vagy kapcsolja be a mobil internetkapcsolatot, és próbálja újra."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Privát"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Hely"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Ismeretlen"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 mappa"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 videó"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Mind"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "Az eszközről"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "A Dropboxból"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Legutóbbi módosítás"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Megjelenítendő tartalom"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Keresés"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Megosztás"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "1 mappát törölni fog."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Törlés..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Itt jelennek majd meg a fényképezővel rögzített videók."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d videó"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Videó"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "Nincs videó"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Részletek"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Mappa"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Lista"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Legut. ho.adott"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Legutóbb megtekintett"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Átnevez"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Méret"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Rendezés szempontja"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Cím"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Típus"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Megjelenítés módja"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "Minden videót törölni fog."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "Törölni fogja a(z) %d mappát."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "%d videót törölni fog."
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "Törölni fogja a mappát."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d mappa"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Beállítások"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Nem lehet lejátszani a videót"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Igazítás"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Betűméret"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Ismétlési beállítás"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Feliratok (hangfelirat)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "Minden mappát törölni fog."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Középső"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Nagy"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Balra"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Közepes"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Jobbra"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Kicsi"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "Ilyen fájlnév már van."
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Bezárás"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Nincs hely több karakternek."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Leállít"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Ki"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Frissít"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Hely"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Törölve."
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Eltávolítás a Privátból"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Áthelyezés a Privátba"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "A bejegyzés üres."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Formátum"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Hívás közben nem lehet videót lejátszani."
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "Offline állapotban ez a fájl nem elérhető. Ellenőrizze a hálózati kapcsolatot, és próbálja újra."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "A kijelölt tételt a(z) %s mappába helyezi."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "A kijelölt tételeket a(z) %s mappába helyezi."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Eltávolítás..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Áthelyezés..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Nem sikerült áthelyezni a személyes tárhelyre."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Nem sikerült áthelyezni a normál tárhelyre."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Üzenet"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Mappák"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "E-mail"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Dátum (legújabb)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d kiválasztva"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Videók törlése"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Videó törlése"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Áthelyezés"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Hosszúság"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Szélesség"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "Ha majd készít videofelvételeket a fényképező használatával, azok megjelennek itt."
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Mégse"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Mégis leállítja"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Aktuális ismétlése"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Összes ismétlése"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Felbontás"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Törlés"
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Összes törlése"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "A fájl csak hangadatokat támogat. Jelenleg hanglejátszás zajlik."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "A fájl csak videóadatokat támogat. Jelenleg videólejátszás zajlik."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Átnevezés"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Fejhallgató"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Ismeretlen"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Hiba"
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Az akkumulátor lemerült."
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Kapcsolódás sikertelen."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "A fájl nem létezik."
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "A(z) %s még 1 alkalommal használható. Beszerez új licencet?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Hangeszköz"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Hozzáadva."
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Keresés"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Nem adható hozzá."
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Alapértelmezett"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Letöltés"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Ki"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "Be"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "1 videót törölni fog."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Érvénytelen karakter"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "Nincs találat"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Kiválasztás"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Legutóbbi módosítás"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Kész"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Dátum"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Szélesség"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Név"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Név (A–Z)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Videók"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Túllépte a mellékletek maximális számát (%d)."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Mind kijelöli"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Eszköz tárhelye"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "SD-kártya"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Áthelyez"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "Be"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Megosztás"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Hálózati hiba történt. Próbálja újra."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Automatikus lejátszás"
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Feldolgozás folyamatban"
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Elérte a karakterek maximális számát."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Igen"
+
+msgid "IDS_COM_SK_NO"
+msgstr "Nem"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Törlés"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Összes törlése"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "Nincs találat"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Elem kiválasztása"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Jelöljön ki tételeket"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Mégse"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "KÉSZ"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "MÉGSE"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "TÖRLÉS"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Mentési hely"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Dátum"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Videó kiválasztása"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Kapcsolódási hiba"
+
+msgid "IDS_COM_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Letöltve."
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Szinkronizálás"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Betűtípus"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "Nincs"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Fejhallgató"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "A(z) %s még 1 alkalommal használható. Elindítja most?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "A(z) %s még 2 alkalommal használható. Elindítja most?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "A(z) %s jelenleg blokkolva van. Feloldja?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "A(z) %s már nem használható. Beszerez új licencet?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "A(z) %s hamarosan lejár. Beszerez új licencet?"
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Ներբեռնել"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "1 պանակ կներբեռնվի:"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "1 տեսանյութ կներբեռնվի:"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Բոլոր պանակները կներբեռնվեն:"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Բոլոր տեսանյութերը կներբեռնվեն:"
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "%d պանակ կներբեռնվի:"
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "%d տեսանյութ կներբեռնվի:"
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Շարժական տվյալներն անջատված են: Փոխարենը միացեք Wi-Fi ցանցի կամ միացրեք Շարժական տվյալներն ու նորից փորձեք:"
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Գաղտնի"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "Բ"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "ԳԲ"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "ԿԲ"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Գտնվելու վայր"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "ՄԲ"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Անհայտ"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 թղթապանակ"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 տեսանյութ"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Բոլոր"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "Սարքից"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "Dropbox-ից"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Վերջին փոփոխումը"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Ցուցադրման ենթակա բովանդակութ."
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Որոնել"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Համօգտագործել"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "1 պանակ կջնջվի:"
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Վերացվում է..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Խցիկով տեսանյութեր տեսագրելուց հետո դրանք կցուցադրվեն այստեղ:"
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d տեսանյութ"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Վիդեո"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "Տեսանյութեր չկան"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Մանրամասներ"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Թղթապանակ"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Ցանկ"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Վերջերս ավելցվծ"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Վերջերս դիտված"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Վերանվանել"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Չափս"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Տեսակավորել ըստ"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Վերնագիր"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Տեսակ"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Դիտել որպես"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "Բոլոր տեսանյութերը կվերացվեն:"
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "%d թղթապանակ կջնջվի:"
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "%d տեսանյութեր կվերացվեն:"
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "Այս թղթապանակը կվերացվի:"
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d թղթպանակ"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Պարամետրեր"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Անհնար է նվագարկել տեսանյութը"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Հավասարեցում"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Տառաչափ"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Կրկնման դրվածք"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Ենթավերնագրեր (ԹԵ)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "Բոլոր թղթապանակները կջնջվեն:"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Կենտրոն"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Մեծ"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Ձախ"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Միջին"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Աջ"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Փոքր"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "Ֆայլի անունն արդեն գործածվում է"
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Փակել"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Հասել եք նիշերի առավելագույն քանակին:"
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Կանգնել"
+
+msgid "IDS_COM_SK_OK"
+msgstr "Ընդունել"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Անջատված է"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Թարմացնել"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Գտնվելու վայր"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Ջնջված է:"
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Հեռացնել Գաղտնիից"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Տեղափոխել դեպի Գաղտնի"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Գրառումը դատարկ է:"
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Ձևաչափ"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Հնարավոր չէ վիդեո նվագարկել կանչի ընթացքում:"
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "Այս ֆայլն անմատչելի է ցանցից դուրս: Ստուգեք ցանցային միացումը և նորից փորձեք"
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "Ընտրված տարրը կտեղափոխվի %s:"
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "Ընտրված տարրերը կտեղափոխվեն %s:"
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Հեռացնում է..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Տեղափոխում..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Չհաջողվեց տեղափոխել անձնական պահեստ:"
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Չհաջողվեց տեղափոխել սովորական պահեստ:"
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Հղգրթյն"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Պանակներ"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Էլփոստ"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Ամսթվ (առ. վերջին)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d ընտրվել է"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Վերացնել տեսանյութեր"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Վերացնել տեսանյութ"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Տեղափոխել"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Երկայնք"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Լայնք"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "Խցիկով տեսանյութեր տեսագրելուց հետո տեսանյութերը կցուցադրվեն:"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Չեղկլ"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Կանգ բոլորից հետո"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Կրկնել ընթացիկը"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Կրկնել բոլորը"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Լուծաչափ"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Վրցնլ"
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Ջնջել բոլորը"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Այս ֆայլը միայն ձայնատվյալներ է ապահովում: Այժմ ձայնանյութ է նվագարկվում:"
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Այս ֆայլը միայն տեսատվյալներ է ապահովում: Այժմ տեսանյութ է նվագարկվում:"
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Վերանվանել"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Գլխ. հեռախոսներ"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Անհայտ"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Սխալ:"
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Մարտկոցի լիցքը թույլ է:"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Միացումը ձախողվեց:"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Այս ֆայլը գոյություն չունի:"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "Կարող եք օգտագործել %s ևս 1 անգամ. ստանա՞լ այլ արտոնագիր:"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Ձայնային սարք"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Ավելացված է:"
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Զննել"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Անհնար է ավելացնել:"
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Լռելյայն"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Ներլցնել"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Անջատված է"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "Միացված է"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "1 տեսանյութ կվերացվի:"
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Անվավեր նիշ"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "Որոնման արդյունքներ չկան"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Ընտրել"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Վերջին փոփոխվածը"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Արված է"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Ամսաթիվ"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Լայնք"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Անուն"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Անուն (Ա-Ֆ)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Տեսահոլովակներ"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Կցուրդների առավելագույն քանակը (%d) գերազանցվել է:"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Ընտրել բոլորը"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Սարքի պահոց"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "SD քարտ"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Տեղափոխել"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "Միացված է"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Համօգտ. հետևյալով՝"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Ցանցի սխալ է տեղի ունեցել: Նորից փորձեք:"
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Ինք. նվգրկել հջրդ"
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Ընթացքում է"
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Հասել է նիշերի առավելագույն քանակին:"
+
+msgid "IDS_COM_SK_YES"
+msgstr "Այո"
+
+msgid "IDS_COM_SK_NO"
+msgstr "Ոչ"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Վերացնել"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Ջնջել բոլորը"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "Որոնման արդյունք չկա"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Ընտրել տարրը"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Ընտրել տարրեր"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Չեղարկել"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "ԱՐՎԱԾ"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ԴԱԴԱՐԵՑՆԵԼ"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "ՎԵՐԱՑՆԵԼ"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Պահման տեղը"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Ամսաթիվ"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Ընտրել տեսանյութը"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Միացման սխալ:"
+
+msgid "IDS_COM_BODY_KB"
+msgstr "ԿԲ"
+
+msgid "IDS_COM_BODY_B"
+msgstr "Բ"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "ՄԲ"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "ԳԲ"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Բեռնված է:"
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Սինխրոնացնլ"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Տառատեսակ"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "Չկա"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Գլխ. հեռախոսներ"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "Կարող եք օգտագործել %s ևս 1 անգամ. սկսե՞լ հիմա:"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "Կարող եք օգտագործել %s ևս 2 անգամ. սկսե՞լ հիմա:"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s ներկայումս կողպված է: Բացե՞լ:"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "Այլևս չեք կարող եք օգտագործել %s. ստանա՞լ այլ արտոնագիր:"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s-ի ժամկետն ավարտվում է. ստանա՞լ այլ արտոնագիր:"
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Sækja"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "1 mappa verður sótt."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "1 myndskeið verður sótt."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Allar möppur verða sóttar."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Öll myndskeið verða sótt."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "%d möppur verða sóttar."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "%d myndskeið verða sótt."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Slökkt er á farsímagögnum. Tengstu Wi-Fi neti í staðinn eða kveiktu á farsímagögnum og reyndu aftur."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Einkamál"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Staðsetning"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Óþekkt"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "Í lagi"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 mappa"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "Eitt myndskeið"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Allt"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "Úr tæki"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "Af Dropbox"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Síðast breytt"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Efni til að birta"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Leita"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Deila"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "Einni möppu verður eytt."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Eyði..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Eftir að þú tekur upp myndskeið með myndavélinni verða þau birt hér."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d myndskeið"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Myndskeið"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "Engin myndskeið"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Upplýsingar"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Mappa"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Listi"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Nýlega bætt við"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Skoðað nýlega"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Endurnefna"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Stærð"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Raða eftir"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Titill"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Gerð"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Skoða sem"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "Öllum myndskeiðum verður eytt."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "%d möppum verður eytt."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "%d myndskeiðum verður eytt."
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "Þessari möppu verður eytt."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d möppur"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Stillingar"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Ekki hægt að spila myndskeið"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Jöfnun"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Leturstærð"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Endurtekningarstilling"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Skjátextar"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "Öllum möppum verður eytt."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Miðja"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Stórt"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Vinstri"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Miðlungs"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Hægri"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Lítið"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "Skráarheitið er þegar í notkun."
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Loka"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Hámarksfjölda stafa hefur verið náð."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Stöðva"
+
+msgid "IDS_COM_SK_OK"
+msgstr "Í lagi"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Slökkt"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Endurnýja"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Staðsetning"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Eytt."
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Fjarlægja úr einkamálum"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Færa í einkamál"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Færsla er tóm."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Snið"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Ekki er hægt að spila vídeó á meðan símtal stendur yfir."
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "Þessi skrá er ekki í boði án nettengingar. Athugaðu nettenginguna og reyndu aftur."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "Valið atriði verður fært í %s."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "Valin atriði verða færð í %s."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Verið er að fjarlægja..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Verið er að flytja..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Mistókst að færa í einkageymslu."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Mistókst að færa í venjulega geymslu."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Skilaboð"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Möppur"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Netfang"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Dags. (nýjasta)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d valið"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Eyða myndskeiðum"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Eyða myndskeiði"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Færa"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Lengdargráða"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Breiddargráða"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "Eftir að þú tekur upp myndskeið með myndavélinni verða myndskeið birt."
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Hætta við"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Stöðva eftir allt"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Endurtaka þetta"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Endurtaka öll"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Upplausn"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Eyða"
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Eyða öllu"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Þessi skrá styður aðeins hljóðgögn. Hljóð er nú í spilun."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Þessi skrá styður aðeins myndgögn. Myndskeið er nú í spilun."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Endurnefna"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Höfuðtól"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Óþekkt"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Villa."
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Rafhlaðan er að tæmast."
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Tenging brást."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Skráin er ekki til."
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "Þú getur notað %s 1 sinni enn. Fá annað leyfi?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Hljóðtæki"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Bætt við."
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Skanna"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Ekki tókst að bæta við."
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Sjálfgefið"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Sækja"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Slökkt"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "Kveikt"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "1 myndskeiði verður eytt."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Ógildur stafur"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "Engar leitarniðurstöður"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Velja"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Síðast breytt"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Lokið"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Dagsetning"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Breiddargráða"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Heiti"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Heiti (A–Ö)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Myndskeið"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Hámarksfjölda viðhengja (%d) hefur verið náð."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Velja allt"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Geymsla tækis"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "SD-kort"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Færa"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "Kveikt"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Deila um"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Netvilla kom upp. Reyndu aftur."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Sp. næsta sj.kr."
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Vinnsla í gangi..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Hámarksfjölda stafa hefur verið náð."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Já"
+
+msgid "IDS_COM_SK_NO"
+msgstr "Nei"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Eyða"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Eyða öllu"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "Engar leitarniðurstöður"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Velja hlut"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Velja hluti"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Hætta v."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "LOKIÐ"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "HÆTTA VIÐ"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "EYÐA"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Geymslustaður"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Dagsetning"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Velja myndskeið"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Villa í tengingu."
+
+msgid "IDS_COM_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Halað niður."
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Samstilla"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Letur"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "Ekkert"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Höfuðtól"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "Þú getur notað %s 1 sinni enn. Byrja núna?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "Þú getur notað %s 2 sinnum enn. Byrja núna?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s er læst sem stendur. Opna?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "Þú getur ekki notað %s oftar. Fá annað leyfi?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s er að renna út. Fá nýtt leyfi?"
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Scarica"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "1 cartella verrà scaricata."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "1 video verrà scaricato."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Tutte le cartelle verranno scaricate."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Tutti i video verranno scaricati."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "%d cartelle verranno scaricate."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "%d video verranno scaricati."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Connessione dati disattivata. Connettetevi a una rete Wi-Fi o attivate la connessione dati e riprovate."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Privato"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Posizione"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Sconosciuto"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 cartella"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 video"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Tutti/e"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "Dal dispositivo"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "Da Dropbox"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Ultima modifica"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Contenuto da visualizzare"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Cerca"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Condividi"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "1 cartella sarà eliminata."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Eliminazione in corso..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Una volta registrati con la fotocamera, i video saranno visualizzati qui."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d video"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Video"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "Nessun video"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Dettagli"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Cartella"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Elenco"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Agg. di recente"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Visti di recente"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Rinomina"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Dimensioni"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Ordina per"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Titolo"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Tipo"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Visualizza come"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "Tutti i video verranno eliminati."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "%d cartelle verranno eliminate."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "%d video saranno eliminati."
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "Questa cartella verrà eliminata."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d cartelle"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Impostaz."
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Impossibile riprodurre video"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Allineamento"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Dimensione carattere"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Ripeti impostazione"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Sottotitoli (CC)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "Tutte le cartelle verranno eliminate."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Centrale"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Grande"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Sinistra"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Medio"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Destra"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Piccolo"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "Il nome del file è già in uso."
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Chiudi"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Raggiunto numero massimo di caratteri."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Ferma"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Non attivo"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Aggiorna"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Posizione"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Eliminato/i."
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Rimuovi da Privato"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Sposta in Privato"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Voce vuota"
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Formato"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Impossibile riprodurre durante chiamata."
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "Questo file non è disponibile se si è offline. Controllate la connessione di rete e riprovate."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "L'elemento selezionato verrà spostato in %s."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "Gli elementi selezionati verranno spostati in %s."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Rimozione..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Spostamento..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Impossibile spostare nella memoria personale."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Impossibile spostare nella memoria normale."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Mess."
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Cartelle"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "E-mail"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Data (più recente)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d selezionato/i"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Elimina video"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Elimina video"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Sposta"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Longitudine"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Latitudine"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "I video verranno visualizzati dopo averli registrati con la fotocamera."
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Ann."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Interrom. dopo tutto"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Ripeti corrente"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Ripeti tutto"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Risoluzione"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Elimina"
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Elimina tutto"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Questo file è in grado di supportare soltanto i dati audio. Audio attualmente in riproduzione."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Questo file è in grado di supportare soltanto i dati video. Video attualmente in riproduzione."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Rinomina"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Cuffie"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Sconosciuto"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Errore."
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Batteria scarica."
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Errore connessione."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "File inesistente."
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "Potete utilizzare %s ancora una volta. Acquistare un'altra licenza?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Dispositivo audio"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Aggiunto."
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Cerca"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Impossibile aggiungere."
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Predefinito"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Scarica"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Non attivo"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "Attivo"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "1 video verrà eliminato."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Carattere non valido"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "Nessun risultato della ricerca"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Seleziona"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Ultima modifica"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Fatto"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Data"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Latitudine"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Nome"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Nome (A-Z)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Video"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Il numero massimo di allegati (%d) è stato superato."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Seleziona tutto"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Memoria dispositivo"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "Scheda SD"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Sposta"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "Attivo"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Condividi con"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Si è verificato un errore di rete. Riprovate."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Riprod. succ. in autom."
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Elaborazione..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Il numero massimo di caratteri è stato raggiunto."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Sì"
+
+msgid "IDS_COM_SK_NO"
+msgstr "No"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Elimina"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Elimina tutto"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "Nessun risultato ricerca"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Selezione elemento"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Seleziona elementi"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Annulla"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "FATTO"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ANNULLA"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "ELIMINA"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Posizione di memoria"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Data"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Seleziona video"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Errore di connessione."
+
+msgid "IDS_COM_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Scaricato."
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Sincronizza"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Carattere"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "Nessuno"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Cuffie"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "Potete utilizzare %s ancora una volta. Avviare adesso?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "Potete utilizzare %s ancora due volte. Avviare adesso?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s è attualmente bloccato. Sbloccarlo?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "Non è più possibile utilizzare %s. Acquistare un'altra licenza?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s sta per scadere. Acquistare un'altra licenza?"
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "ダウンロード"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "1件のフォルダをダウンロードします。"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "1件の動画をダウンロードします。"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "全てのフォルダをダウンロードします。"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "全ての動画をダウンロードします。"
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "%d件のフォルダをダウンロードします。"
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "%d件の動画をダウンロードします。"
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "モバイルデータがOFFになっています。Wi-Fiネットワークに接続するか、モバイルデータをONにしてから再度お試しください。"
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "プライベート"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "場所"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "不明"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1件のフォルダ"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1件の動画"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "全て"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "端末の動画"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "Dropboxの動画"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "最終更新日"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "表示するコンテンツ"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "検索"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "共有"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "1件のフォルダを削除します。"
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "削除中..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "カメラで動画を撮影した後に、動画が表示されます。"
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d件の動画"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "動画"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "動画がありません"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "詳細"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "フォルダ"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "リスト"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "最近追加した順"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "最近閲覧した順"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "名前を変更"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "サイズ"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "並べ替え"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "タイトル"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "タイプ"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "表示形式"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "全ての動画が削除されます。"
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "%d件のフォルダを削除します。"
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "%d件の動画を削除します。"
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "このフォルダを削除します。"
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d件のフォルダ"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "設定"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "動画再生不可"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "配置"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "文字サイズ"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "リピート設定"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "字幕(CC)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "全てのフォルダを削除します。"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "中央"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "大"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "左"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "中"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "右"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "小"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "ファイル名は既に使用されています。"
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "閉じる"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "最大文字数に達しました。"
+
+msgid "IDS_COM_SK_STOP"
+msgstr "停止"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "OFF"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "更新"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "場所"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "削除しました。"
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "プライベートから削除"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "プライベートに移動"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "入力されていません。"
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "ファイル形式"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "通話中はビデオ再生できません"
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "オフラインの間はこのファイルは利用できません。インターネット接続を確認してからやり直してください。"
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "選択したアイテムを%sに移動します。"
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "選択したアイテムを%sに移動します。"
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "削除中..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "移動中..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "パーソナルストレージへの移動に失敗しました。"
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "標準ストレージへの移動に失敗しました。"
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "メッセージ"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "フォルダ"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Eメール"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "日付(新しい順)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d件選択"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "動画を削除"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "動画を削除"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "移動"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "経度"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "緯度"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "カメラで動画を撮影した後に、動画が表示されます。"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "キャンセル"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "終了後に停止"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "現在の動画をリピート"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "全てリピート"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "解像度"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "削除"
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "全て削除"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "このファイルはオーディオデータのみ再生することができます。音声のみ再生します。"
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "このファイルは動画データのみ再生することができます。動画のみ再生します。"
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "名前を変更"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "ヘッドホン"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "不明"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "エラー"
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "バッテリー残量が不足しています。"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "接続に失敗しました。"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "このファイルは存在しません。"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "%sをもう1回使用できます。追加のライセンスを取得しますか?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "オーディオデバイス"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "追加しました。"
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "スキャン"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "追加不可"
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "標準"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "ダウンロード"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "OFF"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "ON"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "1件の動画を削除します。"
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "無効な文字"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "検索結果がありません。"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "選択"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "最終更新日"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "完了"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "日付"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "緯度"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "名前"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "名前(A~Z)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "動画"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "添付ファイルの最大件数(%d件)を超えています。"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "全て選択"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "システムメモリ(本体)"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "外部SDカード"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "移動"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "ON"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "共有"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "ネットワークエラーが発生しました。再度お試しください。"
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "次の動画を自動再生"
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "処理中..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "最大文字数に達しました。"
+
+msgid "IDS_COM_SK_YES"
+msgstr "はい"
+
+msgid "IDS_COM_SK_NO"
+msgstr "いいえ"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "削除"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "全て削除"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "検索結果がありません。"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "アイテムを選択してください。"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "アイテムを選択"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "キャンセル"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "完了"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "キャンセル"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "削除"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "保存場所"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "日付"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "動画を選択"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "接続エラーが発生しました。"
+
+msgid "IDS_COM_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "ダウンロードしました。"
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "同期"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "フォント"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "なし"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "ヘッドホン"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "%sをもう1回使用できます。すぐに実行しますか?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "%sをあと2回使用できます。すぐに実行しますか?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%sは現在ロックされています。 ロックを解除しますか?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "%sはこれ以上使用できません。追加のライセンスを取得しますか?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%sの有効期限が間もなく切れます。追加のライセンスを取得しますか?"
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "ჩამოტვირთვა"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "ჩამოიტვირთება 1 საქაღალდე."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "ჩამოიტვირთება 1 ვიდეო."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "ჩამოიტვირთება ყველა საქაღალდე."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "ჩამოიტვირთება ყველა ვიდეო."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "ჩამოიტვირთება %d საქაღალდე."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "ჩამოიტვირთება %d ვიდეო."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "მობილურ მონაცემთა ქსელი გამორთულია. სანაცვლოდ, დაუკავშირდით Wi-Fi ქსელს, ან ჩართეთ მობილური მონაცემები და ისევ სცადეთ."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "პერსონალური"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "ადგილმდებ."
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "უცნობი"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "კი"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 საქაღალდე"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 ვიდეო"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "ყველა"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "მოწყობილობიდან"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "Dropbox-დან"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "ბოლოს შესწორდა"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "ეკრანზე გამოსაჩენი მასალა"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "ძებნა"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "გაზიარება"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "1 საქაღალდე წაიშლება."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "წაშლა..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "როდესაც ჩაწერთ ვიდეოს კამერით, ისინი გამოჩნდება აქ."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d ვიდეო"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "ვიდეო"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "ვიდეოები არ არის"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "დეტალები"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "საქაღალდე"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "სია"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "ბოლო დამატებული"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "ბოლოს ნანახი"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "ხელახლა დასათაურება"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "ზომა"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "დალაგება კრიტერიუმით"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "სათაური"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "ტიპი"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "ნახეთ როგორც"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "ყველა ვიდეო წაიშლება."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "%d საქაღალდე წაიშლება."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "%d ვიდეო წაიშლება."
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "ეს საქაღალდე წაიშლება."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d საქაღალდე"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "პარამეტრები"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "ვიდეოს დაკვრა შეუძლებელია"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "განაწილება"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "შრიფტის ზომა"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "გამეორების პარამეტრი"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "ტიტრები (სუბტიტრები)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "ყველა საქაღალდე წაიშლება."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "ცენტრი"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "დიდი"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "მარცხნივ"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "საშუალო"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "მარჯვნივ"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "მცირე"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "ფაილის სახელი უკვე გამოყენებულია"
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "დახურვა"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "მიღწეულია სიმბოლოების მაქსიმალური რაოდენობა."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "შეჩერება"
+
+msgid "IDS_COM_SK_OK"
+msgstr "კი"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "გამორთ."
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "განახლება"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "ადგილმდებ."
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "წაშლილია."
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "პერსონალურიდან წაშლა"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "პერსონალურში გადატანა"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "ცარიელი ჩანაწ."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "დაფორმატება"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "ვიდეოს ვერ გაუშვებთ ზარის დროს."
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "ეს ფაილი მიუწვდომელია ინტერნეტის გარეშე. შეამოწმეთ კავშირი ქსელთან და ისევ მოსინჯეთ"
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "შერჩეული ელემენტი გადავა ადგილზე: %s."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "შერჩეული ელემენტები გადავა ადგილზე: %s."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "იშლება..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "გადატანა..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "პერსონალურ საცავში ვერ გადავიდა."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "ნორმალურ საცავში ვერ გადავიდა."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "წერილი"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "საქაღალდეები"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "ელ.ფოსტა"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "თარიღი (უახლესი)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d არჩეულია"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "ვიდეოების წაშლა"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "ვიდეოს წაშლა"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "გადატანა"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "გრძედი"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "განედი"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "როდესაც ჩაწერთ ვიდეოს კამერით, გამოჩნდება ვიდეოები."
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "გაუქმ."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "გაჩერდეს ბოლოში"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "მიმდინარეს გამეორება"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "გაიმეორე ყველა"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "გარჩევადობა"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "წაშლა"
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "ყველას წაშლა"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "ამ ფაილს აქვს მხოლოდ აუდიო მონაცემთა მხარდაჭერა. ახლა ჩართულია აუდიო."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "ამ ფაილს აქვს მხოლოდ ვიდეო მონაცემთა მხარდაჭერა. ახლა ჩართულია ვიდეო."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "გადარქმევა"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "გარნიტურები"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "უცნობი"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "შეცდომა"
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "კვების ელემენტი იცლება."
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "ვერ დაუკავშირდა."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "ფაილი არ არსებობს."
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "%s შეგიძლიათ გამოიყენოთ კიდევ ერთხელ. აიღებთ სხვა ლიცენზიას?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "აუდიო მოწყობილობა"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "დამატებულია."
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "სკანირება"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "ვერ ვამატებ."
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "ნაგულისხმევი"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "ჩამოტვირთვა"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "გამორთ."
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "ჩართვა"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "1 ვიდეო წაიშლება."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "სიმბოლო არასწორია"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "ძიების შედეგი არ არის"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "არჩევა"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "ბოლოს შესწორდა"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "შესრულდა"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "თარიღი"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "განედი"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "სახელი"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "სახელი (ა-ჰ)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "ვიდეოები"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "გადაჭარბებულია დანართების მაქსიმალური რაოდენობა (%d)."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "აირჩიეთ ყველა"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "აპარატის მეხსიერება"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "SD ბარათი"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "გადატანა"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "ჩართვა"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "გაზიარება მეთოდით"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "მოხდა ქსელის შეცდომა. ისევ სცადეთ."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "ავტომატური ტექსტი"
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "მუშავდება..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "მიღწეულია სიმბოლოების მაქსიმალური რაოდენობა."
+
+msgid "IDS_COM_SK_YES"
+msgstr "კი"
+
+msgid "IDS_COM_SK_NO"
+msgstr "არა"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "წაშლა"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "ყველას წაშლა"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "ძიების შედეგი არ არის"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "ელემენტის არჩევა"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "ელემენტების არჩევა"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "გაუქმება"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "მზადაა"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "გაუქმება"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "წაშლა"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "შენახვის ადგილი"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "თარიღი"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "აირჩიეთ ვიდეო"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "კავშირის შეცდომა."
+
+msgid "IDS_COM_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "ჩამოიტვირთა."
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "სინქრონიზაცია"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "ფონტი"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "არც ერთი"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "გარნიტურები"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "%s შეგიძლიათ გამოიყენოთ კიდევ ერთხელ. დაიწყებთ ახლა?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "%s შეგიძლიათ გამოიყენოთ კიდევ ორჯერ. დაიწყებთ ახლა?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s ამჟამად დაბლოკილია. განიბლოკოს?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "%s-ს ვეღარ გამოიყენებთ. აიღებთ სხვა ლიცენზიას?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s-ის ვადა გადის. აიღებთ სხვა ლიცენზიას?"
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Жүктеу"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "1 қалта жойылады."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "1 бейне жүктеледі."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Барлық қалталар жүктеледі."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Барлық бейнелер жүктеледі."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "%d қалта жүктеледі."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "%d бейне жүктеледі."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Ұялы деректер өшірілді. Оның орнына Wi-Fi желісіне қосылыңыз немесе ұялы деректерді қосып, әрекетті қайталаңыз."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Жеке аумақ"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "Б"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "Гбайт"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KБ"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Орналасу орны"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "МБ"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Белгісіз"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 қалта"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 бейне"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Барлығы"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "Құрылғыдан"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "Dropbox қызметінен"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Соңғы өзгертілген"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Көрсетілетін мазмұн"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Іздеу"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Бөлісу"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "1 қалта жойылады."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Жойылуда..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Камераның көмегімен бейнелер жазып алғаннан кейін олар мына жерде көрсетіледі."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d бейне"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Бейне"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "Бейнелер жоқ"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Өзгешеліктері"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Қалта"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Тізім"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Соңғы қосылған"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Соңғы көрсетілген"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Атын өзгерту"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Өлшемі"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Сұрыптау тәртібі"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Тақырыбы"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Түрі"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Басқаша көру"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "Барлық бейнелер жойылады."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "%d қалта жойылады."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "%d бейне жойылады."
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "Бұл қалта жойылады."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d қалталары"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Қондырғылар"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Бейнені ойнату мүмкін емес"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Туралау"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Қаріп өлшемі"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Қайталау параметрі"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Субтитрлер (ЖТ)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "Барлық қалталар жойылады."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Орталық"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Үлкен"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Сол жақ"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Орташа"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Оң жақ"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Кіші"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "Файл атауы бұрыннан пайдаланылуда"
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Жабу"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Таңбалардың ен көп саны артты."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Үзіліс"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Өшірілген"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Жаңарту"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Орналасу орны"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Жойылды"
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Жеке қалтадан жою"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Жеке қалтаға көшіру"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Енгізбе бос."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Пішімдеу"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Қоңырау кезінде бейне ойнатылмайды."
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "Бұл файл желіден тыс болған жағдайда, қол жетімді емес. Желі байланысын тексеріп, әрекетті қайталап көріңіз"
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "Таңдалған элемент %s орнына жылжытылады."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "Таңдалған элементтер %s орнына жылжытылады."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Шығаруда..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Орналастырылды"
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Жеке сақтау орнына жылжыту сәтсіз аяқталды."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Қалыпты сақтау орнына жылжыту сәтсіз аяқталды."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Хабар"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Қалталар"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Элек. пошта"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Күні (соңғы)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d таңдалды"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Бейнелерді жою"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Бейнені жою"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Жылжыту"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Ұзақтық"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Кеңділік"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "Камераны пайдалану арқылы бейнені жазғаннан кейін бейнелер көрсетіледі."
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Тоқт"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Тоқтату"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Ағымдағыны қайталау"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Барлығын қайталау"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Шешім"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Жою"
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Барлық жойылды"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Бұл файл арқылы тек аудио деректер берілген. Қазір ойнатылып жатқап аудио."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Бұл файл арқылы тек бейне деректер берілген. Қазір ойнатылып жатқап бейне."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Атын өзгерту"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Құлаққаптар"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Белгісіз"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Қате"
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Батареяның заряды аз."
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Қосылу үзіліп кетті"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Файл жоқ."
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "Тағы %s 1 рет пайдалануға болады. Басқа лицензия алу керек пе?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Аудио құрылғы"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Қосылды"
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Қарап шығу"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Қосу мүмкін емес."
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Өздігінен"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Жүктеу"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Өшірілген"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "Қосылған"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "1 бейне жойылады."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Қате әріп"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "Іздеу нәтижелері жоқ"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Таңдау"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Соңғы өзгертілген"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Дайын"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Күні"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Кеңділік"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Аты"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Атауы (А-Я)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Бейнежазбалар"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Тіркемелердің ең көп санынан (%d) асып кетті."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Барлығын таңдау"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Құрылғы қоймасы"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "SD картасы"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Орналастыру"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "Қосылған"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Бөлісу құралы"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Желі қатесі пайда болды. Әрекетті қайталаңыз."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Авто ойн. келесі"
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Өңделуде..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Ең көп таңбалар санына жетті."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Иә"
+
+msgid "IDS_COM_SK_NO"
+msgstr "Жоқ"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Жою"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Барлық жойылды"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "Іздеу нәтижелері жоқ"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Элемент таңдау"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Элементтер таңдау"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Тоқтату"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "ДАЙЫН"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "БАС ТАРТУ"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "ЖОЮ"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Сақтау орны"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Күні"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Бейнені таңдау"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Байланыс қатесі"
+
+msgid "IDS_COM_BODY_KB"
+msgstr "KБ"
+
+msgid "IDS_COM_BODY_B"
+msgstr "Б"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "МБ"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "Гбайт"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Жазылды."
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Синхрондау"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Қаріп"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "Жоқ"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Құлаққаптар"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "Тағы %s 1 рет пайдалануға болады. Қазір бастау керек пе?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "Тағы %s 2 рет пайдалануға болады. Қазір бастау керек пе?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "Қазір %s құлыпталды. Құлпын ашу керек пе?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "Тағы %s рет пайдалануға болмайды. Басқа лицензия алу керек пе?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s мерзімі бітуге жақын. Басқа лицензия алу керек пе?"
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "다운로드"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "폴더 1개를 다운로드합니다."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "동영상 1개를 다운로드합니다."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "모든 폴더를 다운로드합니다."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "모든 동영상을 다운로드합니다."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "폴더 %d개를 다운로드합니다."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "동영상 %d개를 다운로드합니다."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "[모바일 데이터]가 해제된 상태입니다. Wi-Fi 네트워크에 연결하거나, [모바일 데이터]를 실행한 후 다시 시도하세요."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "프라이빗"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "위치"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "알 수 없음"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "확인"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "폴더 1개"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "동영상 1개"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "전체"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "디바이스"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "마지막 수정"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "표시할 컨텐츠"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "검색"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "공유"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "폴더 1개를 삭제합니다."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "삭제 중..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "카메라를 사용하여 동영상을 촬영하면 동영상이 여기에 표시됩니다."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "동영상 %d개"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "동영상"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "동영상이 없습니다"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "상세정보"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "폴더"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "목록"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "최근 추가 순"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "최근 본 항목 순"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "이름 변경"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "크기"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "정렬 방식"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "제목"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "종류"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "보기 방식"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "모든 동영상을 삭제합니다."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "폴더 %d개를 삭제합니다."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "동영상 %d개를 삭제합니다."
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "이 폴더를 삭제합니다."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "폴더 %d개"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "설정"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "동영상을 재생할 수 없음"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "정렬"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "글자 크기"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "반복 설정"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "자막(CC)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "모든 폴더를 삭제합니다."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "가운데"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "크게"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "왼쪽"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "중간"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "오른쪽"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "작게"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "사용 중인 파일 이름입니다."
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "종료"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "최대 글자 수에 도달하였습니다."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "중지"
+
+msgid "IDS_COM_SK_OK"
+msgstr "확인"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "해제"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "새로고침"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "위치"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "삭제하였습니다."
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "프라이빗에서 제거"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "프라이빗으로 이동"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "입력된 내용이 없습니다."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "형식"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "통화 중에는 동영상을 재생할 수 없습니다."
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "오프라인에서 사용할 수 없는 파일입니다. 네트워크 연결을 확인한 후 다시 시도하세요."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "선택한 항목을 %s(으)로 이동합니다."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "선택한 항목을 %s(으)로 이동합니다."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "제거 중..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "이동 중..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "퍼스널 저장공간으로 이동하지 못하였습니다."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "일반 저장공간으로 이동하지 못하였습니다."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "메시지"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "폴더"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "이메일"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "날짜(최근 순)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d개 선택"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "동영상 삭제"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "동영상 삭제"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "이동"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "경도"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "위도"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "카메라로 동영상을 녹화하면 동영상이 여기에 표시됩니다."
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "취소"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "모두 재생 후 중지"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "현재 동영상 반복"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "모두 반복"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "해상도"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "삭제"
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "모두 삭제"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "이 파일은 오디오 데이터만 지원합니다. 오디오를 재생합니다."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "이 파일은 동영상 데이터만 지원합니다. 동영상을 재생합니다."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "이름 변경"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "헤드폰"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "알 수 없음"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "오류가 발생하였습니다."
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "블루투스"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "배터리가 부족합니다."
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "연결하지 못하였습니다."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "파일이 존재하지 않습니다."
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "%s을(를) 한 번 더 사용할 수 있습니다. 다른 라이선스를 가져올까요?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "오디오 디바이스"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "추가하였습니다."
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "찾기"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "추가할 수 없습니다."
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "기본"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "다운로드"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "해제"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "사용"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "동영상 1개를 삭제합니다."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "바르지 않은 글자"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "검색 결과가 없습니다"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "선택"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "마지막 수정"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "완료"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "날짜"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "위도"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "이름"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "이름(가나다 순)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "동영상"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "최대 첨부파일 수(%d)를 초과하였습니다."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "모두 선택"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "디바이스 저장공간"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "SD 카드"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "이동"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "사용"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "공유"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "네트워크 오류가 발생하였습니다. 다시 시도하세요."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "다음 파일 자동 재생"
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "진행 중..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "최대 글자 수에 도달하였습니다."
+
+msgid "IDS_COM_SK_YES"
+msgstr "예"
+
+msgid "IDS_COM_SK_NO"
+msgstr "아니요"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "삭제"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "모두 삭제"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "검색 결과가 없습니다"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "항목 선택"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "항목 선택"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "취소"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "완료"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "취소"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "삭제"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "저장 위치"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "날짜"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "동영상 선택"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi 다이렉트"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "연결 오류가 발생하였습니다."
+
+msgid "IDS_COM_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "다운로드하였습니다."
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "동기화"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "글꼴"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "설정 안 함"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "헤드폰"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "%s을(를) 한 번 더 사용할 수 있습니다. 지금 시작할까요?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "%s을(를) 두 번 더 사용할 수 있습니다. 지금 시작할까요?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s은(는) 현재 잠겨 있습니다. 잠금을 해제할까요?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "%s을(를) 더 이상 사용할 수 없습니다. 다른 라이선스를 가져올까요?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s 파일이 곧 만료됩니다. 다른 라이선스를 가져올까요?"
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Atsisiųsti"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "Bus atsiųstas 1 aplankas."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "Bus atsiųstas 1 vaizdo įrašas."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Bus atsiųsti visi aplankai."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Bus atsiųsti visi vaizdo įrašai."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Bus atsiųsta aplankų: %d."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Bus atsiųsta vaizdo įrašų: %d."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Mobilieji duomenys išjungti. Vietoj to prisijunkite prie „Wi-Fi“ tinklo arba įjunkite mobiliuosius duomenis ir bandykite dar kartą."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Privatus"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Vieta"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Nežinomas"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "Gerai"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 aplankas"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 vaizdo įrašas"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Visos"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "Iš įrenginio"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "Iš „Dropbox“"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Paskutinį kartą keista"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Rodytinas turinys"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Paieška"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Dalytis"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "Bus ištrintas 1 aplankas."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Trinama..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Kai fotoaparatu įrašysite vaizdo įrašų, jie bus rodomi čia."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d vaizdo įrašai (-ų)"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Vaizdo įrašas"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "Vaizdo įrašų nėra"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Išsami informacija"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Aplankas"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Sąrašas"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Neseniai prid."
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Neseniai peržiūrėta"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Pervardyti"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Dydis"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Rūšiuoti pagal"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Pavadinimas"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Tipas"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Peržiūrėti kaip"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "Visi vaizdo įrašai bus ištrinti."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "Bus ištrinti aplankai: %d."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "Bus ištrinta vaizdo įrašų: %d."
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "Šis aplankas bus ištrintas."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d aplankai (-ų)"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Nustatymai"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Negalima paleisti vaizdo įrašo"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Lygiavimas"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Šrifto dydis"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Kartoti nustatymą"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Subtitrai (pasirenkami)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "Bus ištrinti visi aplankai."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Centruoti"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Didelis"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Kairė"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Vidutinis"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Dešinė"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Mažas"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "Failo pavadinimas jau naudojamas"
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Uždaryti"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Pasiektas didžiausias simbolių skaičius."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Stabdyti"
+
+msgid "IDS_COM_SK_OK"
+msgstr "Gerai"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Išjungta"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Naujinti"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Vieta"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Ištrinta."
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Pašalinti iš privataus"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Perkelti į asmeninį"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Įrašas tuščias."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Formatas"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Pokalbio metu negalima paleisti vaizdo įrašo."
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "Šio failo neįmanoma pasiekti atsijungus. Patikrinkite tinklo ryšį ir bandykite dar kartą."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "Pasirinktas elementas bus perkeltas į %s."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "Pasirinkti elementai bus perkelti į %s."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Šalinama..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Perkeliama..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Nepavyko perkelti į asmeninę saugyklą."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Nepavyko perkelti į įprastą saugyklą."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Žinutė"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Aplankai"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "El. paštas"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Data (naujausi)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "Pasirinkta: %d"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Trinti vaizdo įrašus"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Trinti vaizdo įrašą"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Perkelti"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Ilguma"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Platuma"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "Kai įrašysite vaizdo įrašus naudodami fotoaparatą, jie bus rodomi."
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Atš."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Stabdyti po visų"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Kartoti dabartinį"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Kartoti viską"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Raiška"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Trinti"
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Trinti viską"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Šis failas palaiko tik garso duomenis. Dabar atkuriamas garsas."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Šis failas palaiko tik vaizdo duomenis. Dabar atkuriamas vaizdas."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Pervardyti"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Ausinės"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Nežinomas"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Klaida"
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Senka akumuliatorius!"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Prisijungti nepavyko."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Tokio failo nėra."
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "%s galite naudoti dar 1 kartą. Gauti kitą licenciją?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Garso įrenginys"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Pridėta."
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Skenuoti"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Negalima pridėti."
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Numatytoji"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Atsisiųsti"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Išjungta"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "Įjungta"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "Bus pašalintas 1 vaizdo įrašas."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Neteisingas simbolis"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "Nėra paieškos rezultatų"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Pasirinkti"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Paskutinį kartą keista"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Atlikta"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Data"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Platuma"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Vardas"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Pavadinimas (A–Z)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Vaizdo įrašai"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Viršytas didžiausias priedų skaičius (%d)."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Rinktis viską"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Įrenginio atmintis"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "SD kortelė"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Perkelti"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "Įjungta"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Bendrinti per"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Įvyko tinklo klaida. Bandykite dar kartą."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Autm. leisti kitą"
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Apdorojama..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Pasiektas didžiausias simbolių skaičius."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Taip"
+
+msgid "IDS_COM_SK_NO"
+msgstr "Ne"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Trinti"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Trinti viską"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "Rezultatų nerasta"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Pasirinkti elementą"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Pasirinkti elementų"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Atšaukti"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "ATLIKTA"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ATŠAUKTI"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "IŠTRINTI"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Saugojimo vieta"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Data"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Pasirinkti vaizdo įrašą"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "„Wi-Fi Direct“"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Ryšio klaida."
+
+msgid "IDS_COM_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Atsisiųsta."
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Sinchronizuoti"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Šriftas"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "Nėra"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Ausinės"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "%s galite naudoti dar 1 kartą. Pradėti dabar?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "%s galite naudoti dar 2 kartus. Pradėti dabar?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s šiuo metu užrakintas. Atrakinti?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "Nebegalite naudotis %s. Gauti kitą licenciją?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s netrukus baigs galioti. Gauti kitą licenciją?"
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Lejupielādēt"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "Tiks lejupielādēta 1 mape."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "Tiks lejupielādēts 1 videoklips."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Tiks lejupielādētas visas mapes."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Tiks lejupielādēti visi videoklipi."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Tiks lejupielādētas %d mapes."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Tiks lejupielādēti %d videoklipi."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Mobilie dati ir izslēgti. Izveidojiet savienojumu ar Wi-Fi tīklu vai ieslēdziet mobilos datus un mēģiniet vēlreiz."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Privāts"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Atrašanās vieta"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Nezināms"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "Labi"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 mape"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 videoklips"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Visas"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "No ierīces"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "No Dropbox"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Pēdējo reizi mainīts"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Parādāmais saturs"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Meklēt"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Kopīgot"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "Tiks izdzēsta 1 mape."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Dzēš..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Kad būsit ierakstījis videoklipus, izmantojot kameru, tie būs redzami šeit."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d videoklipi"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Video"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "Nav videoklipu"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Dati"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Mape"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Saraksts"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Nesen pievien."
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Pēdējie skatītie"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Pārdēvēt"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Lielums"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Kārtot pēc"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Nosaukums"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Veids"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Skatīt kā"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "Visi videoklipi tiks izdzēsti."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "Tiks izdzēstas %d mapes."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "%d videoklipi tiks izdzēsti."
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "Šī mape tiks izdzēsta."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d mapes"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Iestatījumi"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Nevar demonstrēt video"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Līdzinājums"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Fonta lielums"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Atkārtošanas iestatījums"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Subtitri (slēptie titri)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "Tiks izdzēstas visas mapes."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Centrā"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Liels"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Pa kreisi"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Vidējs"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Pa labi"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Mazs"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "Faila nosaukums jau tiek lietots"
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Aizvērt"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Sasniegts maksimālais rakstzīmju skaits."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Apturēt"
+
+msgid "IDS_COM_SK_OK"
+msgstr "Labi"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Izslēgts"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Atsvaidz."
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Atrašanās vieta"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Izdzēsts."
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Noņemt no mapes Privāti"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Pārvietot uz privāto krātuvi"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Ieraksts nav norādīts."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Formāts"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Sarunas laikā nevar demonstrēt video."
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "Šis fails nav pieejams bezsaistē. Pārbaudiet savienojumu ar tīklu un mēģiniet vēlreiz."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "Izvēlētais objekts tiks pārvietots uz %s."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "Izvēlētie objekti tiks pārvietoti uz %s."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Noņem..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Pārvieto..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Neizdevās pārvietot uz privāto krātuvi."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Neizdevās pārvietot uz parasto krātuvi."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Ziņa"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Mapes"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "E-pasts"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Datums (jaunākais)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "Izvēlēti: %d"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Dzēst videoklipus"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Dzēst videoklipu"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Pārvietot"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Garums"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Platums"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "Videoklipi tiks parādīti, kad tie būs ierakstīti ar kameru."
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Atcelt"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Pārtraukt"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Atkārtot pašreizējo"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Atkārtot visu"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Izšķirtspēja"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Dzēst"
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Dzēst visu"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Šis fails atbalsta tikai audio datus. Tagad atskaņo audio."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Šis fails atbalsta tikai video datus. Tagad demonstrē video."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Pārdēvēt"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Austiņas"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Nezināms"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Kļūda."
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Akumulators gandrīz tukšs."
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Savienojums neizdevās."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Šāda faila nav."
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "Failu %s var lietot vēl 1 reizi. Vai vēlaties iegūt citu licenci?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Audioierīce"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Pievienots."
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Meklēt"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Nevar pievienot."
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Noklusējums"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Lejupielādēt"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Izslēgts"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "Ieslēgts"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "Tiks izdzēsts 1 videoklips."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Nederīga rakstzīme"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "Nav meklēšanas rezultātu"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Izvēlēties"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Pēdējo reizi mainīts"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Gatavs"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Datums"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Platums"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Vārds"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Nosaukums (A-Z)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Video"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Pārsniegts maksimālais pielikumu skaits (%d)."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Izvēlēties visu"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Ierīces krātuve"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "SD karte"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Pārvietot"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "Ieslēgts"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Kopīgot, izmantojot"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Radās tīkla kļūda. Mēģiniet vēlreiz."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Autom.dem. nākamo"
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Notiek apstrāde..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Sasniegts maksimālais rakstzīmju skaits."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Jā"
+
+msgid "IDS_COM_SK_NO"
+msgstr "Nē"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Dzēst"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Dzēst visu"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "Rezultāta nav"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Izvēlieties objektu"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Izvēlēties objektus"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Atcelt"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "GATAVS"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ATCELT"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "DZĒST"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Krātuves atrašanās vieta"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Datums"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Izvēlēties video"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Savienojuma kļūda."
+
+msgid "IDS_COM_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Lejupielādēts."
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Sinhronizēt"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Fonts"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "Nav"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Austiņas"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "Failu %s var lietot vēl 1 reizi. Vai sākt tūlīt?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "Failu %s var lietot vēl 2 reizes. Vai sākt tūlīt?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "Fails %s pašlaik ir bloķēts. Vai atbloķēt?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "Failu %s vairs nevar lietot. Vai vēlaties iegūt citu licenci?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "Failam %s drīz beigsies derīguma termiņš. Vai vēlaties iegūt citu licenci?"
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Преземи"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "1 папка ќе се преземе."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "1 видео ќе се преземе."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Ќе се преземат сите папки."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Ќе се преземат сите видеа."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Ќе се преземат %d папки."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Ќе се преземат %d видеа."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Мобилните податоци се исклучени. Поврзете се со мрежа Wi-Fi или вклучете Мобилни податоци и обидете се повторно."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Приватно"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Локација"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Непознато"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 папка"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 видео"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Сите"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "Од уред"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "Од Dropbox"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Последно менување"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Содржина за приказ"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Пребарување"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Сподели"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "1 папка ќе се избрише."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Се брише..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Откако ќе снимите видеа со камерата, ќе се прикажат тука."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d видеа"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Видео-запис"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "Нема видеа"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Детали"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Папка"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Листа"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Послед.додадено"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Последни разгледани"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Преименувај"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Големина"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Подреди според"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Наслов"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Вид"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Преглед како"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "Сите видеа ќе се избришат."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "%d папки ќе се избришат."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "%d видеа ќе се избришат."
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "Папката ќе се избрише."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d папки"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Опции"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Не може да се емитува видеото"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Порамнување"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Големина на букви"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Поставка за повторување"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Титли (CC)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "Сите папки ќе се избришат."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Центар"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Големи"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Лево"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Средни"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Десно"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Мали"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "Името на фајлот се користи."
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Затвори"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Достигнат е максималниот број знаци."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Запри"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Исклучено"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Обнови"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Локација"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Избришано."
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Отстрани од Приватно"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Премести во Приватно"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Записот е празен."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Формат"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Не може да се пушти видео за време на разговор."
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "Овој фајл е недостапен без мрежа. Проверете го мрежното поврзување и обидете се повторно."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "Избраниот запис ќе се премести во %s."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "Избраните записи ќе се преместат во %s."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Отстранување..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Се преместува..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Не можеше да се премести во лична меморија."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Не можеше да се премести во нормална меморија."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Порака"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Папки"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Е-пошта"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Датум (најнов)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "Избрани се %d"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Избриши видеа"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Избриши видео-запис"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Премести"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Географска должина"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Географска широчина"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "Откако ќе снимите видеа со камерата, ќе се прикажат видеа."
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Откажи"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Сопри после сѐ"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Повт. моментална"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Повторувај сè"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Резолуција"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Бриши"
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Избриши сè"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Овој фајл поддржува само аудио податоци. Се емитува звук."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Овој фајл поддржува само видео податоци. Се емитува видео."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Преименувај"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Слушалки"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Непознато"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Грешка."
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Батеријата е празна."
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Неуспешно поврзување."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Фајлот не постои."
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "Може да го употребите %s уште 1 пат. Да се земе друга лиценца?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Аудио уред"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Додадено."
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Скенирај"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Не може да се додаде."
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Основно"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Преземи"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Исклучено"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "Вклучено"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "1 видео ќе се избрише."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Погрешен знак"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "Нема резултати од пребарувањето"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Избери"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Последно менување"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Готово"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Датум"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Географска широчина"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Име"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Име (А-Ш)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Видео-записи"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Надминат е максималниот број прилози (%d)."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Избери ги сите"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Меморија на уредот"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "SD-картичка"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Премести"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "Вклучено"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Сподели преку"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Дојде до мрежна грешка. Обидете се повторно."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Следното автом."
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Обработување..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Достигнат е максималниот број знаци."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Да"
+
+msgid "IDS_COM_SK_NO"
+msgstr "Не"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Избриши"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Избриши сè"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "Нема резултат од пребарувањето"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Избери запис"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Изберете записи"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Откажи"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "ГОТОВО"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ОТКАЖИ"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "ИЗБРИШИ"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Место за меморирање"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Датум"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Избери видео"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Грешка при поврзување."
+
+msgid "IDS_COM_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Преземено."
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Синхронизирај"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Фонт"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "Ништо"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Слушалки"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "Може да го употребите %s уште 1 пат. Да се почне сега?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "Може да го употребите %s уште 2 пати. Да се почне сега?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s е заклучено моментално. Да се отклучи?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "Не може веќе да го користите %s. Да се земе друга лиценца?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s ќе застари. Да се земе друга лиценца?"
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Last ned"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "1 mappe blir lastet ned."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "1 video blir lastet ned."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Alle mapper blir lastet ned."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Alle videoer blir lastet ned."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "%d mapper blir lastet ned."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "%d videoer blir lastet ned."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Mobildata er slått av. Koble til Wi-Fi-nettverk i stedet, eller slå på mobildata, og prøv på nytt."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Privat"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Posisjon"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Ukjent"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 mappe"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 video"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Alle"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "Fra enhet"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "Fra Dropbox"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Sist endret"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Innhold du vil vise"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Søk"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Del"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "1 mappe blir slettet."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Sletter..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Når du har spilt inn videoer med kameraet, vises de her."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d videoer"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Video"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "Ingen videoer"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Detaljer"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Mappe"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Liste"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Nylig lagt til"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Nylig vist"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Endre navn"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Størrelse"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Sorter etter"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Tittel"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Type"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Vis som"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "Alle videoer vil bli slettet."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "%d mapper vil bli slettet."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "%d videoer vil bli slettet."
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "Denne mappen vil bli slettet."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d mapper"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Innstillinger"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Kan ikke spille av video"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Justering"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Skriftstørrelse"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Gjentakelsesinnstilling"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Undertekster (CC)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "Alle mapper vil bli slettet."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Midtstill"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Stor"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Venstre"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Middels"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Høyre"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Liten"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "Filnavnet er allerede i bruk."
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Lukk"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Nådd maksimalt antall tegn."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Stopp"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Av"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Oppdater"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Posisjon"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Slettet."
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Fjern fra Privat"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Flytt til Privat"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Oppføringen er tom."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Format"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Kan ikke spille av video under samtale."
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "Denne filen er ikke tilgjengelig i frakoblet modus. Kontroller nettverkstilkoblingen og prøv på nytt."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "Det valgte elementet vil bli flyttet til %s."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "De valgte elementene vil bli flyttet til %s."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Tar bort..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Flytter..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Kunne ikke flytte til personlig lagring."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Kunne ikke flytte til normal lagring."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Melding"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Mapper"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "E-post"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Dato (nyeste)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d valgt"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Slett videoer"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Slett video"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Flytt"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Lengdegrad"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Breddegrad"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "Når du har spilt inn videoer med kameraet, vises videoene dine."
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Avbryt"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Stopp etter alle"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Gjenta gjeldende"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Gjenta alle"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Oppløsning"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Slett"
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Slett alle"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Bare lyddata støttes av denne filen. Spiller nå av lyd."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Bare videodata støttes av denne filen. Spiller nå av video."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Endre navn"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Hodetelefoner"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Ukjent"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Feil."
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Lavt batterinivå."
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Kunne ikke koble til."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Filen eksisterer ikke."
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "Du kan bruke %s 1 gang til. Skaffe en annen lisens?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Lydenhet"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Lagt til."
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Søk"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Kan ikke legge til."
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Standard"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Last ned"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Av"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "På"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "1 video blir slettet."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Ugyldig tegn"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "Ingen søkeresultater"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Velg"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Sist endret"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Dato"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Breddegrad"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Navn"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Navn (A–Å)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Video"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Maksimalt antall vedlegg (%d) er oversteget."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Merk alt"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Enhetsminne"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "SD-kort"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Flytt"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "På"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Del via"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Det har oppstått en nettverksfeil. Prøv på nytt."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Autospill neste"
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Behandler..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Maksimalt antall tegn er nådd."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Ja"
+
+msgid "IDS_COM_SK_NO"
+msgstr "Nei"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Slett"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Slett alle"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "Ingen søketreff"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Velg objekt"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Merk elementer"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Avbryt"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "FULLFØRT"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "AVBRYT"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "SLETT"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Lagringssted"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Dato"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Velg video"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Tilkoblingsfeil."
+
+msgid "IDS_COM_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Nedlastet."
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Synkroniser"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Skrifttype"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "Ingen"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Hodetelefoner"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "Du kan bruke %s 1 gang til. Starte nå?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "Du kan bruke %s 2 ganger til. Starte nå?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s er for tiden låst. Låse opp?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "Du kan ikke bruke %s flere ganger. Skaffe en annen lisens?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s er i ferd med å utløpe. Skaffe en annen lisens?"
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Downloaden"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "1 map wordt gedownload."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "1 video wordt gedownload."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Alle mappen worden gedownload."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Alle video's worden gedownload."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "%d mappen worden gedownload."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "%d video's worden gedownload."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Mobiele gegevens zijn uitgeschakeld. Maak in plaats daarvan verbinding met een Wi-Fi-netwerk of schakel Mobiele gegevens in en probeer het opnieuw."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Privé"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Locatie"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Onbekend"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 map"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 video"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Alles"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "Van apparaat"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "Van Dropbox"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Laatst gewijzigd op"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Weer te geven inhoud"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Zoeken"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Delen"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "1 map wordt verwijderd."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Verwijderen..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Nadat u video´s hebt opgenomen met de camera, worden ze hier getoond."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d video's"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Video"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "Geen video's"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Gegevens"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Map"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Lijst"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Onlangs toegev"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Onlangs bekeken"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Naam wijzigen"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Grootte"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Sorteren op"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Titel"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Type"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Weergeven als"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "Alle video´s worden verwijderd."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "%d mappen worden verwijderd."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "%d video´s worden verwijderd."
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "Deze map wordt verwijderd."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d mappen"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Instellingen"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Kan deze video niet afspelen"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Uitlijning"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Tekstgrootte"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Instelling herhalen"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Ondertiteling"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "Alle mappen worden verwijderd."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Midden"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Groot"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Links"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Gemiddeld"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Rechts"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Klein"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "Bestandsnaam is al in gebruik."
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Sluiten"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Maximumaantal tekens bereikt."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Stoppen"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Uit"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Vernieuw"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Locatie"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Verwijderd."
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Verwijderen uit Privé"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Verplaatsen naar Privé"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Geen gegevens."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Indeling"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Kan video niet afspelen tijdens gesprek."
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "Dit bestand is offline niet beschikbaar. Controleer de netwerkverbinding en probeer het opnieuw."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "Het geselecteerde item wordt verplaatst naar %s."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "De geselecteerde items worden verplaatst naar %s."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Verwijderen..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Verplaatsen..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Kan niet verplaatsen naar persoonlijke opslag."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Kan niet verplaatsen naar normale opslag."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Bericht"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Mappen"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "E-mail"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Datum (recentst)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d geselecteerd"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Video´s verwijderen"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Video verwijderen"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Verplaatsen"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Lengtegraad"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Breedtegraad"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "Nadat u video´s hebt genomen met de camera, worden de video´s getoond."
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Annul."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Stop na alles"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Huidige herhalen"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Alles herhalen"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Resolutie"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Wissen"
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Alles verwijderen"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Alleen audiogegevens ondersteund door dit bestand. Speelt nu audio af."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Alleen videogegevens ondersteund door dit bestand. Speelt nu video af."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Naam wijzigen"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Koptelefoons"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Onbekend"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Fout."
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Batterij bijna leeg."
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Verbinding mislukt."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Dit bestand bestaat niet."
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "U kunt %s nog 1 keer gebruiken. Nieuwe licentie aanvragen?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Audioapparaat"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Toegevoegd."
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Scannen"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Kan niet toevoegen."
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Standaard"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Downloaden"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Uit"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "Aan"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "1 video wordt verwijderd."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Ongeldig teken"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "Geen zoekresultaten"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Selecteren"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Laatst gewijzigd op"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Gereed"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Datum"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Breedtegraad"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Naam"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Naam (A-Z)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Video's"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Maximumaantal bijlagen (%d) overschreden."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Alles selecteren"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Apparaatopslag"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "SD-kaart"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Verplaatsen"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "Aan"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Delen via"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Er is een netwerkfout opgetreden. Probeer het opnieuw."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Volgende autom. afspelen"
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Verwerken..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Maximumaantal tekens bereikt."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Ja"
+
+msgid "IDS_COM_SK_NO"
+msgstr "Nee"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Wissen"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Alles verwijderen"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "Geen zoekresultaten"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Item selecteren"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Items selecteren"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Annuleer"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "GEREED"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ANNULEREN"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "VERWIJDEREN"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Opslaglocatie"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Datum"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Selecteer video"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Verbindingsfout."
+
+msgid "IDS_COM_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Gedownload."
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Synchroniseren"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Lettertype"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "Geen"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Koptelefoons"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "U kunt %s nog 1 keer gebruiken. Nu beginnen?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "U kunt %s nog 2 keer gebruiken. Nu beginnen?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s is nu vergrendeld. Ontgrendelen?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "U kunt %s niet meer gebruiken. Nieuwe licentie aanvragen?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s verloopt binnenkort. Nieuwe licentie aanvragen?"
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Pobierz"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "1 katalog zostanie pobrany."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "1 film zostanie pobrany."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Wszystkie katalogi zostaną pobrane."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Wszystkie filmy zostaną pobrane."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Zostanie pobranych katalogów: %d."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Zostanie pobranych filmów: %d."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Funkcja Dane komórkowe jest wyłączona. Połącz się z siecią Wi-Fi lub włącz funkcję Dane komórkowe i spróbuj ponownie."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Prywatne"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "kB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Lokalizacja"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Nieznane"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "Katalogów: 1"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "Filmów: 1"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Wszystkie"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "Z urządzenia"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "Z Dropbox"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Ostatnia modyfikacja"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Zawartość do wyświetlenia"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Szukaj"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Udostępniaj"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "Usuniętych zostanie katalogów: 1."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Usuwanie..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Filmy zostaną tutaj wyświetlone po ich nagraniu za pomocą aparatu."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "Filmów: %d"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Film"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "Brak filmów"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Szczegóły"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Katalog"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Lista"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Ostatnio dodane"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Ostatnio wyświetlane"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Zmień nazwę"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Rozmiar"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Sortuj według"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Tytuł"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Typ"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Widok"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "Wszystkie filmy zostaną usunięte."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "Zostanie usuniętych katalogów: %d."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "Filmów wideo do usunięcia: %d."
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "Ten katalog zostanie usunięty."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "Katalogów: %d"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Ustawienia"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Nie można odtworzyć filmu"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Wyrównanie"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Rozmiar tekstu"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Ustawienie powtarzania"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Napisy (kodowane)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "Wszystkie katalogi zostaną usunięte."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Pośrodku"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Duży"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Do lewej"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Średnia"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Do prawej"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Mały"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "Nazwa pliku już w użyciu."
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Zamknij"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Osiągnięto maksymalną liczbę znaków."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Stop"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Wyłączone"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Odśwież"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Miejsce"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Usunięto."
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Usuń z Prywatnych"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Przenieś do Prywatnych"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Wpis jest pusty."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Format"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Nie można odtwarzać wideo podczas połączenia."
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "Ten plik jest niedostępny w trybie offline. Sprawdź połączenie sieciowe i spróbuj ponownie."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "Wybrany element zostanie przeniesiony do lokalizacji %s."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "Wybrane elementy zostaną przeniesione do lokalizacji %s."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Usuwanie..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Przenoszenie..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Przeniesienie do pamięci osobistej nie powiodło się."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Przeniesienie do pamięci zwykłej nie powiodło się."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Wiadom."
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Katalogi"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Email"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Data (najnowsze)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "Wybrano %d"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Usuwanie filmów"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Usuń film"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Przenieś"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Długość geogr."
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Szerokość geogr."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "Filmy zostaną wyświetlone po ich nagraniu za pomocą Aparatu."
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Anul."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Zatrzymaj po wszyst."
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Powtórz bieżący"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Powtórz wszystkie"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Rozdzielczość"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Usuń"
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Usuń wszystko"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Ten plik obsługuje tylko dane audio. Trwa odtwarzanie dźwięku."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Ten plik obsługuje tylko dane wideo. Trwa odtwarzanie wideo."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Zmień nazwę"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Słuchawki"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Nieznane"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Błąd"
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Bateria rozładowana."
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Błąd łączenia"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Plik nie istnieje."
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "Możesz użyć pliku %s jeszcze raz. Uzyskać kolejną licencję?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Urządzenie audio"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Dodano."
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Skanuj"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Nie można dodać."
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Domyślnie"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Pobierz"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Wyłącz"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "Włącz"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "Zostanie usuniętych filmów: 1."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Nieprawidłowy znak"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "Brak wyników wyszukiwania"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Wybór"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Ostatnia modyfikacja"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Gotowe"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Data"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Szerokość geogr."
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Nazwa"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Nazwa (od A do Z)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Filmy"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Przekroczono maksymalną liczbę załączników (%d)."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Zaznacz wszystko"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Pamięć urządzenia"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "Karta pamięci"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Przenieś"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "Włączone"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Udostępnij przez"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Wystąpił błąd sieci. Spróbuj później."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Autom. odt. nast."
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Przetwarzanie..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Osiągnięto maksymalną liczbę znaków."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Tak"
+
+msgid "IDS_COM_SK_NO"
+msgstr "Nie"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Usuń"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Usuń wszystko"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "Brak wyników"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Wybierz element"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Wybierz elementy"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Anuluj"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "GOTOWE"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ANULUJ"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "USUŃ"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Położenie pamięci"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Data"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Wybierz film"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Błąd połączenia"
+
+msgid "IDS_COM_BODY_KB"
+msgstr "kB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Pobrano."
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Synchronizuj"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Czcionka"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "Brak"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Słuchawki"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "Możesz użyć pliku %s jeszcze raz. Rozpocząć teraz?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "Możesz użyć pliku %s jeszcze 2 razy. Rozpocząć teraz?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "Plik %s jest obecnie zablokowany. Odblokować?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "Nie możesz już używać pliku %s. Uzyskać kolejną licencję?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s niedługo wygaśnie. Uzyskać kolejną licencję?"
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Baixar"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "1 pasta será baixada."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "1 vídeo será baixado."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Todas as pastas serão baixadas."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Todos os vídeos serão baixados."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "%d pastas serão baixadas."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "%d vídeos serão baixados."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Dados móveis desligados. Conecte-se a uma rede Wi-Fi em seu lugar ou ligue os Dados móveis e tente novamente."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Privado"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Local"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Desconhecido"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 pasta"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 vídeo"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Todos"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "Do dispositivo"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "Do Dropbox"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Última modificação"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Conteúdo para exibição"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Pesquisar"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Compartilhar"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "1 pasta será excluída."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Excluindo..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Após gravar vídeos usando a câmera, eles serão exibidos aqui."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d vídeos"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Vídeo"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "Nenhum vídeo"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Detalhes"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Pasta"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Lista"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Recém adicion."
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Recém visualizados"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Renomear"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Tamanho"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Ordenar por"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Título"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Tipo"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Visualizar como"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "Todos os vídeos serão excluídos."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "%d pastas serão apagadas."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "%d vídeos serão excluídos."
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "Esta pasta será apagada."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d pastas"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Configurações"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Não é possível reprod. vídeo"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Alinhamento"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Tamanho da fonte"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Repetir configuração"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Legendas"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "Todas as pastas serão excluídas."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Centralizar"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Grande"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Esquerdo"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Média"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Direito"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Pequena"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "O nome do arquivo já está em uso."
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Fechar"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Número máximo de caracteres atingido."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Parar"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Desativado"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Atualizar"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Local"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Excluído."
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Remover do Modo Privado"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Mover para o Modo Privado"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Entrada vazia."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Formato"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Impossível reproduzir vídeo durante chamada."
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "Este arquivo não está disponível offline. Verifique a conexão de rede e tente novamente."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "O item selecionado será movido para %s."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "Os itens selecionados serão movidos para %s."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "A remover..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Movendo…"
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Falha ao mover para o armazenamento pessoal."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Falha ao mover para o armazenamento normal."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Mensagem"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Pastas"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "E-mail"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Data (+ recente)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d selecionado(s)"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Excluir vídeos"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Excluir vídeo"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Mover"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Longitude"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Latitude"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "Após gravar vídeos usando a câmera, os vídeos serão exibidos."
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Canc."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Parar após todos"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Repetir atual"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Repetir todos"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Resolução"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Apagar"
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Apagar tudo"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Somente dados de áudio são suportados por este arquivo. Agora reproduzindo áudio."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Somente dados de vídeo são suportados por este arquivo. Agora reproduzindo vídeo."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Renomear"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Fones de ouvido"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Desconhecido"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Erro"
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Bateria fraca."
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Falha de conexão."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Este arquivo não existe."
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "Você pode usar %s mais 1 vez. Obter outra licença?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Dispositivo de áudio"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Adicionado."
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Pesquisar"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Impossível adicionar."
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Padrão"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Baixar"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Desativado"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "Ativado"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "1 vídeo será excluído."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Caractere inválido"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "Nenhum resultado encontrado"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Selecionar"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Última modificação"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Data"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Latitude"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Nome"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Nome (A a Z)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Vídeos"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Número máximo de anexos (%d) excedido."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Selecionar tudo"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Armazenamento do dispositivo"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "Cartão SD"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Mover"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "Ativado"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Compartilhar via"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Ocorreu um erro de rede. Tente novamente."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Repr. prox. autom."
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Processando…"
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Número máximo de caracteres atingido."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Sim"
+
+msgid "IDS_COM_SK_NO"
+msgstr "Não"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Excluir"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Apagar tudo"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "Sem resultado da busca"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Selecionar item"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Selecionar itens"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Cancelar"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "CONCLUÍDO"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "CANCELAR"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "EXCLUIR"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Local de armazenamento"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Data"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Selecionar vídeo"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Erro de conexão."
+
+msgid "IDS_COM_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Baixado."
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Sincronizar"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Fonte"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "Desativado"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Fones de ouvido"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "Você pode usar %s mais 1 vez. Iniciar agora?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "Você pode usar %s mais 2 vezes. Iniciar agora?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s está bloqueado atualmente. Desbloquear?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "Você não pode usar %s mais nenhuma vez. Obter outra licença?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s está para expirar. Obter outra licença?"
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Transferir"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "1 pasta será transferida."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "1 vídeo será transferido."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Todas as pastas serão transferidas."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Todos os vídeos serão transferidos."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "%d pastas serão transferidas."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "%d vídeos serão transferidos."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Dados móveis desligados. Em alternativa, ligue-se a uma rede Wi-Fi ou ligue os Dados móveis e tente de novo."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Privado"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Localização"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Desconhecido"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 pasta"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 vídeo"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Tudo"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "Do dispositivo"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "Da Dropbox"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Última modificação"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Conteúdo a apresentar"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Procurar"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Enviar"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "1 pasta será eliminada."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "A eliminar..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Depois de gravar vídeos utilizando a câmara, os vídeos serão mostrados aqui."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d vídeos"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Vídeo"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "Sem vídeos"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Detalhes"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Pasta"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Lista"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Adic. recentemente"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Visto recentemente"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Mudar nome"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Tamanho"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Ordenar por"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Título"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Tipo"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Ver como"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "Todos os vídeos serão eliminados."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "%d pastas serão eliminadas."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "%d vídeos serão eliminados."
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "Esta pasta será eliminada."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d pastas"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Definições"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Impossível reproduzir vídeo"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Alinhamento"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Tamanho de fonte"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Repetir definição"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Legendas (CC)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "Todas as pastas serão eliminadas."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Centro"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Grande"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Esquerda"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Média"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Direita"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Pequeno"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "Nome ficheiro já utilizado."
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Fechar"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Número máximo de caracteres atingido."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Parar"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Desligado"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Actualizar"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Localização"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Eliminado."
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Remover de Privado"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Mover para Privado"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Entrada vazia."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Formato"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Impossível reproduzir vídeo durante chamada."
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "Este ficheiro está indisponível offline. Verifique a sua ligação de rede e tente novamente."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "O item seleccionado será movido para %s."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "Os itens seleccionados serão movidos para %s."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "A remover..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "A mover..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Falha na mudança para armazenamento pessoal."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Falha na mudança para armazenamento normal."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Mensagem"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Pastas"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "E-mail"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Data (+ recente)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d seleccionado(s)"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Eliminar vídeos"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Apagar vídeo"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Mover"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Longitude"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Latitude"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "Depois de gravar vídeos utilizando a câmara, os vídeos serão mostrados."
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Canc."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Parar depois de tudo"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Repetir actual"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Repetir tudo"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Resolução"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Elim."
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Eliminar tudo"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Só são suportados por este ficheiro dados de áudio. A reproduzir áudio."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Só são suportados por este ficheiro dados de vídeo. A reproduzir vídeo."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Mudar nome"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Auscultadores"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Desconhecido"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Erro"
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Bateria fraca."
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Falha na ligação."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Ficheiro inexistente."
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "Pode utilizar %s mais 1 vez. Obter outra licença?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Dispositivo de áudio"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Adicionado."
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Pesquisar"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Impossível adicionar."
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Padrão"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Transferir"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Desligado"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "Ligado"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "1 vídeo será eliminado."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Carácter inválido"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "Nenhuns resultados de procura"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Seleccionar"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Última modificação"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Concluir"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Data"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Latitude"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Nome"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Nome (A-Z)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Vídeos"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Número máximo de anexos (%d) excedido."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Seleccionar tudo"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Armazenamento do dispositivo"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "Cartão SD"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Mover"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "Ligado"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Partilhar via"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Ocorreu um erro de rede. Tente novamente."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Reprodução automática"
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "A processar..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Número máximo de caracteres atingido."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Sim"
+
+msgid "IDS_COM_SK_NO"
+msgstr "Não"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Eliminar"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Eliminar tudo"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "S/ resul. pesq."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Seleccionar item"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Seleccionar itens"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Cancelar"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "CONCLUÍDO"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "CANCELAR"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "ELIMINAR"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Localização armazenamento"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Data"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Seleccionar vídeo"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Erro de ligação."
+
+msgid "IDS_COM_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Transferido."
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Sincronizar"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Fonte"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "Desligado"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Auscultadores"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "Pode utilizar %s mais 1 vez. Iniciar agora?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "Pode utilizar %s mais 2 vezes. Iniciar agora?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s está actualmente bloqueado. Desbloquear?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "Já não pode utilizar %s mais vezes. Obter outra licença?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s está prestes a expirar. Obter outra licença?"
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Descărcaţi"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "1 folder va fi descărcat."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "1 videoclip va fi descărcat."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Toate folderele vor fi descărcate."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Toate videoclipurile vor fi descărcate."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "%d foldere vor fi descărcate."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "%d videoclipuri vor fi descărcate."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Datele mobile sunt dezactivate. Conectaţi-vă în schimb la o reţea Wi-Fi sau activaţi Datele mobile şi încercaţi din nou."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Private"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KO"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Locaţie"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MO"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Necunoscut"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 director"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 videoclip"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Toate"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "De pe dispozitiv"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "Din Dropbox"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Ultima modificare"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Conţinut de afişat"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Căutare"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Partajaţi"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "1 folder va fi şters."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Se şterge..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "După ce înregistraţi videoclipuri utilizând camera, acestea se vor afişa aici."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d videoclipuri"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Videoclip"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "Niciun videoclip"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Detalii"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Folder"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Listă"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Adăugate recent"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Vizualizate recent"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Redenumire"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Dimensiune"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Sortare după"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Titlu"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Tip"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Vizualizare ca"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "Toate videoclipurile vor fi şterse."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "%d foldere vor fi şterse."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "%d videoclipuri vor fi şterse."
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "Acest folder va fi şters."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d directoare"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Setări"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Videoclipul nu poate fi redat"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Aliniere"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Dimensiune font"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Setare repetare"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Subtitrări (complexe)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "Toate folderele vor fi şterse."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Centru"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Mare"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Stânga"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Mediu"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Dreapta"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Mic"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "Numele de fişier este deja utilizat."
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Închidere"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Adăugare la marcaje"
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Oprire"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Oprit"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Reîncărc."
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Locaţie"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Şters"
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Eliminare din Private"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Mutare în Private"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Locaţie liberă"
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Formatare"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Imposibil de redat videoclipul în timpul apelului"
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "Acest fişier nu este disponibil offline. Verificaţi conexiunea la reţea şi încercaţi din nou."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "Elementul selectat va fi mutat în %s."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "Elementele selectate vor fi mutate în %s."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Eliminare..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Mutare"
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Nu s-a putut muta în spaţiul de stocare personal."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Nu s-a putut muta în spaţiul de stocare normal."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Mesaj"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Foldere"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "E-mail"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Dată (recente)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d selectate"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Ştergere videoclipuri"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Ştergeţi videoclipul"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Mutare"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Longitudine"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Latitudine"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "După ce înregistraţi videoclipuri utilizând camera, se vor afişa videoclipurile."
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Anul."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Oprire după toate"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Repetare actual"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Repetare globală"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Rezoluţie"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Şterg."
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Ştergere toate"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Doar datele audio sunt acceptate de acest fişier. Se redă conţinut audio."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Doar datele video sunt acceptate de acest fişier. Se redă conţinut video."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Redenumire"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Căşti"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Necunoscut"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Eroare"
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Baterie descărcată"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Conexiune nereuşită"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Acest fişier nu există."
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "Puteţi utiliza %s încă 1 dată. Obţineţi altă licenţă?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Dispozitiv audio"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Adăugat"
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Căutare"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Imposibil de adăugat"
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Implicit"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Descărcare"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Oprit"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "Pornit"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "1 videoclip va fi şters."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Caracter nevalid"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "Nu există rezultate ale căutării"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Selectare"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Ultima modificare"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Efectuat"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Dată"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Latitudine"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Nume"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Nume (de la A la Z)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Videoclipuri"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "S-a depăşit numărul maxim de ataşări (%d)."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Selectare totală"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Spaţiu stocare dispozitiv"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "Card SD"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Mutare"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "Pornit"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Partajare prin"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "A apărut o eroare de reţea. Încercaţi din nou."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Redare auto. urm."
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Se procesează..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "A fost atins numărul maxim de caractere."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Da"
+
+msgid "IDS_COM_SK_NO"
+msgstr "Nu"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Ştergere"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Ştergere toate"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "Nici un rezultat al căutării"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Selectare element"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Selectare elemente"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Anulare"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "EFECTUAT"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ANULARE"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "ŞTERGERE"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Locaţie stocare"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Dată"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Selectare videoclip"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Eroare de conectare"
+
+msgid "IDS_COM_BODY_KB"
+msgstr "KO"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MO"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Descărcat"
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Sincronizare"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Font"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "Niciuna"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Căşti"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "Puteţi utiliza %s încă 1 dată. Începeţi acum?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "Puteţi utiliza %s de încă 2 ori. Începeţi acum?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s este momentan blocat. Deblocaţi?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "Nu mai puteţi utiliza %s. Obţineţi altă licenţă?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s este pe cale să expire. Obţineţi altă licenţă?"
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Загрузить"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "Будет загружена 1 папка."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "Будет загружено 1 видео."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Будут загружены все папки."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Будут загружены все видео."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Будет загружено папок: %d."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Будет загружено видео: %d."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Мобильные данные включены. Подключитесь к сети Wi-Fi или включите мобильные данные и повторите попытку."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Личное"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "б"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "Гб"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "КБ"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Местоположение"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "МБ"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Неизвестно"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "ОК"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 папка"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 видео"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Все"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "С устройства"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "С Dropbox"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Последнее изменение"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Содержимое для просмотра"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Поиск"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Отправить"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "1 папка будет удалена."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Удаление..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Здесь будут отображаться видеозаписи, сделанные с помощью камеры."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "Видеозаписей: %d"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Видео"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "Нет видео"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Свойства"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Папка"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Список"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Недав. добавл."
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Недавно просмотренные"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Переименовать"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Размер"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Сортировать по"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Название"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Тип"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Вид"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "Все видео будут удалены."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "Папки (%d) будут удалены."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "Видео (%d) будут удалены."
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "Эта папка будет удалена."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "Папки: %d"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Настройки"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Невозможно воспроизвести видео"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Выравнивание"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Размер шрифта"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Параметры повторения"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Субтитры"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "Все папки будут удалены."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "По центру"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Крупный"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Слева"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Средний"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Справа"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Мелкий"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "Имя файла уже используется"
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Закрыть"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Достигнуто максимальное число символов."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Стоп"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Выключено"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Обновить"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Местоположение"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Удалено."
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Удалить из приватного режима"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Добавить в приватный режим"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Пустая запись."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Формат"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Воспроизведение видео во время вызова невозможно."
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "Файл недоступен в автономном режиме. Проверьте подключение к сети и повторите попытку"
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "Выбранный элемент будет перемещен в %s."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "Выбранные элементы будут перемещены в %s."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Удаление..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Перемещение..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Не удалось переместить в личное хранилище."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Не удалось переместить в обычное хранилище."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Сообщение"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Папки"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Эл. почта"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Дата (последние)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "Выбрано: %d"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Удалить видео"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Удалить видеозапись"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Переместить"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Долгота"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Широта"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "Здесь будут отображаться видео, снятые с помощью камеры."
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Отмена"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Останов. после всех"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Повторить текущее"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Повторять все"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Разрешение"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Удалить"
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Удалить все"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Только звук, поддерживаемый этим файлом. Текущий воспроизводимый аудиофайл."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Только видео, поддерживаемое этим файлом. Текущий воспроизводимый видеофайл."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Переименовать"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Наушники"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Неизвестно"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Ошибка"
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Аккумулятор разряжен"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Сбой при подключении."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Файл не существует."
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "Вы можете использовать %s еще 1 раз. Получить другую лицензию?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Звуковое устройство"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Добавлено."
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Поиск"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Не удалось добавить."
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "По умолчанию"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Загрузить"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Выключено"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "Включено"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "1 видеозапись будет удалена."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Недопустимый символ"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "Нет результатов поиска"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Выбрать"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Последнее изменение"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Готово"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Дата"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Широта"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Имя"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Имя (от А до Я)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Видео"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Превышено максимальное число вложений (%d)."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Выбрать все"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Память устройства"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "Карта памяти SD"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Переместить"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "Включено"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Отправить через"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Произошла ошибка сети. Повторите попытку."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Автопереход"
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Обработка..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Достигнуто максимальное число символов."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Да"
+
+msgid "IDS_COM_SK_NO"
+msgstr "Нет"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Удалить"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Удалить все"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "Нет результатов"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Выберите элемент"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Выберите элементы"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Отмена"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "ГОТОВО"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ОТМЕНА"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "УДАЛИТЬ"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Место хранения"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Дата"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Выберите видео"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Ошибка подключения"
+
+msgid "IDS_COM_BODY_KB"
+msgstr "КБ"
+
+msgid "IDS_COM_BODY_B"
+msgstr "б"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "МБ"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "Гб"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Загружено."
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Синхронизация"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Шрифт"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "Нет"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Наушники"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "Вы можете использовать %s еще 1 раз. Запустить?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "Вы можете использовать %s еще 2 раза. Запустить?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "Файл %s сейчас заблокирован. Разблокировать?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "Вы больше не можете использовать %s. Получить другую лицензию?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "Срок %s подходит к концу. Получить другую лицензию?"
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Stiahnuť"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "Stiahne sa 1 priečinok."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "Stiahne sa 1 video."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Stiahnu sa všetky priečinky."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Stiahnu sa všetky videá."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Vykoná sa stiahnutie %d priečinkov."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Vykoná sa stiahnutie %d videí."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Mobilné dátové pripojenie je vypnuté. Pripojte sa namiesto toho k sieti Wi-Fi alebo zapnite mobilné dátové pripojenie a skúste to znova."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Súkromné"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "kB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "GPS"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Neznáme"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 priečinok"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 video"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Všetky"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "Zo zariadenia"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "Zo služby Dropbox"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Naposledy upravené"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Obsah na zobrazenie"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Vyhľadávanie"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Zdieľať"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "Odstráni sa 1 priečinok."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Odstraňuje sa..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Po nahratí videí použitím fotoaparátu sa zobrazia tu."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "Počet videí: %d"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Video"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "Žiadne videá"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Podrobnosti"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Priečinok"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Zoznam"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Naposl. pridané"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Nedávno zobrazené"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Premenovať"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Veľkosť"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Zoradiť podľa"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Názov"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Typ"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Zobraziť ako"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "Všetky videá sa odstránia."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "%d priečinky sa odstránia."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "Odstránia sa videá v počte %d."
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "Tento priečinok sa odstráni."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "Počet priečinkov: %d"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Nastavenia"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Nedá sa prehrať video"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Zarovnanie"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Veľkosť písma"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Nastavenie opakovania"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Titulky (skryté)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "Všetky priečinky sa odstránia."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Stred"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Veľké"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Vľavo"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Stredné"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Vpravo"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Malé"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "Názov súboru sa už používa."
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Zavrieť"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Bol dosiahnutý maximálny počet znakov."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Stop"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Vyp."
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Aktualizovať"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "GPS"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Odstránené."
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Odstrániť z priečinka Súkromné"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Premiestniť do priečinka Súkromné"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Prázdna položka."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Formát"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Počas hovoru sa nedá prehrávať video."
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "Tento súbor nie je k dispozícii v režime offline. Skontrolujte sieťové pripojenie a skúste to znova."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "Vybratá položka sa premiestni do priečinka %s."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "Vybraté položky sa premiestnia do priečinka %s."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Odstraňovanie..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Presúvanie..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Nepodarilo sa premiestniť do osobného úložného priestoru."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Nepodarilo sa premiestniť do normálneho úložného priestoru."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Správa"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Priečinky"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "E-mail"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Dátum (najnovšie)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "Vybraté: %d"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Odstrániť videá"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Odstrániť video"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Premiestniť"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Zemepisná dĺžka"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Zemepisná šírka"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "Po nahratí videí použitím fotoaparátu sa zobrazia videá."
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Zruš."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Zastaviť po všetkých"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Opakovať aktuálne"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Opakovať všetko"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Rozlíšenie"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Vymaz."
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Odstrániť všetko"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Tento súbor podporuje iba zvukové údaje. Teraz sa prehráva zvuk."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Tento súbor podporuje iba obrazové údaje. Teraz sa prehráva video."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Premenovať"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Slúchadlá"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Neznáme"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Chyba."
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Batéria vybitá."
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Pripojenie sa nepodarilo."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Súbor neexistuje."
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "Súbor %s môžete použiť ešte 1 raz. Získať ďalšiu licenciu?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Zvukové zariadenie"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Pridané."
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Vyhľadať"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Nedá sa pridať."
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Predvolený"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Stiahnuť"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Vyp."
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "Zap."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "1 video sa odstráni."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Neplatný znak"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "Žiadne výsledky vyhľadávania"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Vyberte"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Naposledy upravené"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Hotovo"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Dátum"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Zemepisná šírka"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Meno"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Názov (A – Z)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Videá"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Prekročil sa maximálny počet príloh (%d)."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Vybrať všetko"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Úložisko zariadenia"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "Karta SD"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Presunúť"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "Zap."
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Zdieľať cez"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Vyskytla sa chyba siete. Skúste to znova."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Aut. preh. ďalšiu"
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Prebieha spracovanie..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Dosiahol sa maximálny počet znakov."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Áno"
+
+msgid "IDS_COM_SK_NO"
+msgstr "Nie"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Odstrániť"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Odstrániť všetko"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "Žiadny výsledok hľadania"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Vybrať položku"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Vybrať položky"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Zrušiť"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "HOTOVO"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ZRUŠIŤ"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "ODSTRÁNIŤ"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Umiest. úlož. priestoru"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Dátum"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Vyberte video"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Chyba pripojenia."
+
+msgid "IDS_COM_BODY_KB"
+msgstr "kB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Stiahnuté."
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Synchronizácia"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Písmo"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "Žiadny"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Slúchadlá"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "Súbor %s môžete použiť ešte 1 raz. Spustiť teraz?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "Súbor %s môžete použiť ešte 2 razy. Spustiť teraz?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "Súbor %s je aktuálne zamknutý. Odomknúť?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "Súbor %s už nemôžete viac použiť. Získať ďalšiu licenciu?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "Blíži sa skončenie platnosti súboru %s. Získať ďalšiu licenciu?"
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Prenos"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "Prenesena bo 1 mapa."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "Prenesen bo 1 videoposnetek."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Prenesene bodo vse mape."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Preneseni bodo vsi videoposnetki."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Prenesenih bo toliko map: %d."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Prenesenih bo toliko videoposnetkov: %d."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Funkcija Prenos podatkov prek mobilnega omrežja je izklopljena. Namesto tega se povežite z omrežjem Wi-Fi, ali pa vklopite funkcijo Prenos podatkov prek mobilnega omrežja in poskusite znova."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Zasebno"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Lokacija"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Neznano"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "V redu"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 mapa"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 video"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Vse"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "Iz naprave"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "Iz storitve Dropbox"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Zadnjič spremenjeno"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Vsebina za prikaz"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Iskanje"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Skupna raba"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "Izbrisana bo 1 mapa."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Brisanje ..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Ko boste s kamero posneli videoposnetke, bodo prikazani tukaj."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d videoposnetkov"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Video"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "Ni videoposnetkov"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Podrobnosti"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Mapa"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Seznam"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Nedavno dodano"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Pred kratkim prikazano"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Preimenuj"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Velikost"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Razvrsti po"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Naslov"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Vrsta"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Prikaži kot"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "Vsi videoposnetki bodo izbrisani."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "%d map bo izbrisanih."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "%d videoposnetkov bo izbrisanih."
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "Ta mapa bo izbrisana."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d map"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Nastavitve"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Videa ni mogoče predvajati"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Poravnava"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Velikost pisave"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Nastavitev ponavljanja"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Podnapisi (CC)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "Vse mape bodo izbrisane."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Sredina"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Velika"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Levo"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Srednja"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Desno"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Majhna"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "Ime datoteke je že v uporabi."
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Zapri"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Doseženo je največje dovoljeno število znakov."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Ustavi"
+
+msgid "IDS_COM_SK_OK"
+msgstr "V redu"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Izključeno"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Osveži"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Lokacija"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Izbrisano."
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Odstrani iz zasebne"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Premaknite v mapo Zasebno"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Prazen vnos."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Format"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Ni mogoče predvajati videa med klicem."
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "Ta datoteka ni na voljo brez povezave. Preverite omrežno povezavo in poskusite znova."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "Izbrani element bo premaknjen v mapo %s."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "Izbrani elementi bodo premaknjeni v mapo %s."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Odstranjujem ..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Premikam"
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Ni uspelo premakniti v osebno shrambo."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Ni uspelo premakniti v običajno shrambo."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Sporoč."
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Mape"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "E-pošta"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Datum (najnovejši)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d izbranih"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Izbrišite videoposnetke"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Izbrišite video"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Premakni"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Zemljepisna dolžina"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Zemljepisna širina"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "Ko boste s kamero posneli videoposnetke, bodo prikazani."
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Prekliči"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Ustavi po vseh"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Ponovi trenutno"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Ponovi vse"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Ločljivost"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Izbris"
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Izbriši vse"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Ta datoteka podpira samo zvočne podatke. Zvok se predvaja."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Ta datoteka podpira samo video podatke. Video se predvaja."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Preimenuj"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Slušalke"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Neznano"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Napaka."
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Baterija prazna."
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Povezava ni uspela."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Ta datoteka ne obstaja."
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "%s lahko uporabite še enkrat. Želite dobiti drugo licenco?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Zvočna naprava"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Dodano."
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Preišči"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Ni mogoče dodati."
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Privzeto"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Prenos"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Izključeno"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "Vključeno"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "1 video bo izbrisan."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Neveljaven znak"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "Ni rezultatov iskanja"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Izberite"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Zadnjič spremenjeno"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Končano"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Datum"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Zemljepisna širina"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Ime"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Ime (A–Z)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Videoposnetki"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Največje dovoljeno število prilog (%d) je preseženo."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Izberite vse"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Shramba naprave"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "Kartica SD"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Premakni"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "Vključeno"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Deli z drugimi prek"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Prišlo je do napake omrežja. Poskusite znova."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Sam. pred. nasl."
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Obdelujem..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Doseženo je največje dovoljeno število znakov."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Da"
+
+msgid "IDS_COM_SK_NO"
+msgstr "Ne"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Izbriši"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Izbriši vse"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "Ni rezultatov iskanja"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Izberi predmet"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Izberi elemente"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Prekliči"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "KONČANO"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "PREKLIČI"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "IZBRIŠI"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Mesto shranjevanja"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Datum"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Izberite videoposnetek"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Napaka povezave."
+
+msgid "IDS_COM_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Preneseno."
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Sinhroniziraj"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Pisava"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "Brez"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Slušalke"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "%s lahko uporabite še enkrat. Želite začeti zdaj?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "%s lahko uporabite še dvakrat. Želite začeti zdaj?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "Datoteka %s je trenutno zaklenjena. Jo želite odkleniti?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "%s ne morete več uporabiti. Želite dobiti drugo licenco?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "Vsebina %s bo kmalu potekla. Želite dobiti drugo licenco?"
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Preuzmi"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "Jedan folder će biti izbrisan."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "Jedan video zapis će biti preuzet."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Svi folderi će biti preuzeti."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Svi video zapisi će biti preuzeti."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Biće preuzet sledeći broj foldera: %d."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Biće preuzet sledeći broj video zapisa: %d."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Prenos podataka putem mobilne telefonije je isključen. Umesto toga, poveži se na Wi-Fi mrežu ili uključi Prenos podataka putem mobilne telefonije i pokušaj ponovo."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Privatni"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Lokacija"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Nepoznato"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 folder(a)"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 video"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Sve"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "U uređaju"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "U Dropbox-u"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Poslednja izmena"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Sadržaj za prikazivanje"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Pretraga"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Podeli"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "Biće izbrisan 1 folder."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Brisanje..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Nakon snimanja video zapisa kamerom, oni će se prikazati ovde."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d video zapisa"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Video zapis"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "Nema video zapisa"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Detalji"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Folder"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Lista"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Nedavno dodato"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Nedavno prikazano"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Preimenuj"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Veličina"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Sortiraj po"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Naslov"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Tip"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Prikaži kao"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "Svi video zapisi će biti izbrisani."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "Biće izbrisano %d foldera."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "%d video zapisi biće izbrisani."
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "Ovaj folder će biti izbrisan."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d foldera"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Podešavanja"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Nemoguća reprodukcija videa"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Poravnanje"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Veličina slova"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Podešavanje ponavljanja"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Titlovi"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "Biće izbrisani svi folderi."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Središnje"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Velika"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Levo"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Srednji"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Desno"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Mala"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "Naziv fajla već u upotrebi."
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Zatvori"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Dostignut maksimalan broj karaktera."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Stop"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Isključeno"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Osveži"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Lokacija"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Obrisano."
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Ukloni iz režima Privatno"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Premesti u folder Privatno"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Unos je prazan."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Format"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Nemoguće reprodukovati video tokom poziva."
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "Ovaj fajl nije dostupan dok si offline. Proveri mrežnu vezu i pokušaj ponovo."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "Izabrana stavka će biti premeštena u %s."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "Izabrane stavke će biti premeštene u %s."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Uklanjanje..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Premeštanje"
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Neuspešno premeštanje u ličnu memoriju."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Neuspešno premeštanje u običnu memoriju."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Poruka"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Folderi"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "E-pošta"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Datum (najnovije)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "Izabrano: %d"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Izbrisati video zapise"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Izbriši video zapis"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Premesti"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Geografska dužina"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Geografska širina"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "Nakon što snimiš video zapise pomoću kamere, oni će se prikazati."
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Otkaži"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Zaustavi nakon svega"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Ponovi aktuelno"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Ponovi sve"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Rezolucija"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Obriši"
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Izbriši sve"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Ovaj fajl podržava samo zvučne podatke. Sada se reprodukuje zvuk."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Ovaj fajl podržava samo video podatke. Sada se reprodukuje video zapis."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Preimenuj"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Slušalice"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Nepoznato"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Greška."
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Baterija prazna."
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Neuspešno povezivanje."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Fajl ne postoji."
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "%s se može koristiti još jednom. Preuzeti drugu licencu?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Audio uređaj"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Dodato."
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Skeniraj"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Nemoguće dodati."
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Podrazumevano"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Preuzmi"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Isključeno"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "Uključeno"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "Jedan video zapis će se izbrisati."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Neispravan karakter"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "Nema rezultata pretrage"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Izaberi"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Poslednja izmena"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Gotovo"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Datum"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Geografska širina"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Ime"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Ime (A-Z)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Video zapisi"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Prekoračen je maksimalan broj priloga (%d)."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Izaberi sve"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Skladišna lokacija uređaja"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "SD kartica"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Premesti"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "Uključeno"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Podeli putem"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Došlo je do greške na mreži. Pokušaj ponovo."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Auto. pusti sled."
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Obrada..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Dostignut je maksimalan broj karaktera."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Da"
+
+msgid "IDS_COM_SK_NO"
+msgstr "Ne"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Izbriši"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Izbriši sve"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "Nema rezultata pretrage"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Izaberi objekat"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Izaberi stavke"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Otkaži"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "GOTOVO"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "OTKAŽI"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "IZBRIŠI"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Skladišna lokacija"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Datum"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Izaberi video zapis"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Greška veze."
+
+msgid "IDS_COM_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Preuzeto."
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Sinhronizuj"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Slova"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "Nema"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Slušalice"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "%s se može koristiti još jednom. Početi odmah?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "%s se može koristiti još dva puta. Početi odmah?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s je trenutno zaključan. Otključati?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "%s se ne može više koristiti. Preuzeti drugu licencu?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s uskoro ističe. Preuzeti drugu licencu?"
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Hämta"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "1 mapp hämtas."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "1 video hämtas."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Alla mappar hämtas."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Alla videor hämtas."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "%d mappar hämtas."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "%d videor hämtas."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Mobildata har slagits av. Anslut till ett Wi-Fi-nätverk istället eller slå på Mobildata och försök igen."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Privat"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "kB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Plats"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Okänd"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 mapp"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 video"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Alla"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "Från enhet"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "Från Dropbox"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Senast ändrad"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Innehåll att visa"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Sök"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Dela"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "1 mapp tas bort."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Tar bort ..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "När du har spelat in videor med kameran visas de här."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d videor"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Videoklipp"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "Inga videor"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Detaljer"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Mapp"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Lista"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Nyligen tillagda"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Senast visade"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Byt namn"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Storlek"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Sortera efter"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Rubrik"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Typ"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Visa som"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "Alla videor kommer att raderas."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "%d mappar kommer att raderas."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "%d videoklipp kommer att raderas."
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "Mappen kommer att tas bort."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d mappar"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Inställningar"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Kan inte spela upp video"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Justering"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Teckenstorlek"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Upprepa inställning"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Textning (CC)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "Alla mappar kommer att raderas."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Centrerat"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Stor"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Vänster"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Medium"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Höger"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Liten"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "Filnamnet används redan."
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Stäng"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Maximalt antal tecken har använts."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Stopp"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Av"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Uppdatera"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Plats"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Raderad."
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Ta bort från Privat"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Flytta till Privat"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Posten är tom."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Format"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Kan inte spela upp videoklipp medan samtal pågår."
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "Den här filen är inte tillgänglig offline. Kontrollera din nätverksanslutning och försök igen."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "Det valda objektet kommer att flyttas till %s."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "De valda objekten kommer att flyttas till %s."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Tar bort..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Flyttar..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Misslyckades med att flytta till privat lagringsutrymme."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Misslyckades med att flytta till vanligt lagringsutrymme."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Medd."
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Mappar"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "E-post"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Datum (senaste)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d valda"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Ta bort videor"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Ta bort video"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Flytta"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Longitud"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Latitud"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "När du har spelat in videoklipp med kameran kommer videoklippen att visas."
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Avbryt"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Stoppa efter alla"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Upprepa nuvarande"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Upprepa alla"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Upplösning"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Radera"
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Ta bort alla"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Endast ljuddata stöds av den här filen. Spelar nu upp ljudet."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Endast videodata stöds av den här filen. Spelar nu upp videon."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Byt namn"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Hörlurar"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Okänd"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Fel."
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Låg batterinivå."
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Anslutningsfel."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Filen finns inte."
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "Du kan använda %s 1 gång till. Hämta en ny licens?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Ljudenhet"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Tillagd."
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Skanna"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Det går inte att lägga till."
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Standard"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Hämta"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Av"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "På"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "1 video kommer att tas bort."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Ogiltigt tecken"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "Inga sökresultat"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Välj"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Senast ändrad"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Klar"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Datum"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Latitud"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Namn"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Namn (A till Ö)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Videoklipp"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Max tillåtna antal bilagor (%d) har överskridits."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Välj alla"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Enhetslagring"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "SD-kort"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Flytta"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "På"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Dela via"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Ett nätverksfel har inträffat. Försök igen."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Spela nästa auto."
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Bearbetar..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Högsta antal tecken har uppnåtts."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Ja"
+
+msgid "IDS_COM_SK_NO"
+msgstr "Nej"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Ta bort"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Ta bort alla"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "Inget sökresultat"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Välj objekt"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Välj objekt"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Avbryt"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "KLAR"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "AVBRYT"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "TA BORT"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Lagringsplats"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Datum"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Välj videoklipp"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Anslutningsfel."
+
+msgid "IDS_COM_BODY_KB"
+msgstr "kB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Nedladdade."
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Synkronisera"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Tecken"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "Ingen"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Hörlurar"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "Du kan använda %s 1 gång till. Starta nu?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "Du kan använda %s 2 gånger till. Starta nu?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s är låst för närvarande. Låsa upp?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "Du kan inte använda %s fler gånger. Hämta en ny licens?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s går snart ut. Hämta en ny licens?"
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "İndir"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "1 klasör indirilecek."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "1 video indirilecek."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Tüm klasörler indirilecek."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Tüm videolar indirilecek."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "%d klasör indirilecek."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "%d video indirilecek."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Mobil veri kapatıldı. Bunun yerine Wi-Fi ağına bağlanın veya Mobil veriyi etkinleştirip tekrar deneyin."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Özel"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Konum"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Bilinmeyen"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "Tamam"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 klasör"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 video"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Hepsi"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "Cihazdan"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "Dropbox'tan"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Son değiştirilme"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Görüntülenecek içerik"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Ara"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Paylaş"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "1 klasör silinecek."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Siliniyor..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Kamerayı kullanarak video çektiğinizde videolar burada görüntülenir."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d video"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Video"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "Video yok"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Ayrıntılar"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Klasör"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Listele"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Son eklenenler"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Son görüntülenenler"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Yeniden adlandır"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Boyut"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Sıralama ölçütü"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Başlık"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Tür"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Farklı görüntüle"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "Tüm videolar silinecek."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "%d klasör silinecek."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "%d video silinecek."
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "%d klasör silinecek."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d klasörleri"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Ayarlar"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Video oynatılamıyor"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Hizalama"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Yazı boyutu"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Ayarı tekrarla"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Altyazılar (CC)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "Tüm klasörler silinecek."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Merkez"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Büyük"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Sol"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Orta"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Sağ"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Küçük"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "Dosya adı kullanılıyor"
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Kapat"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Maksimum karakter sayısına ulaşıldı."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Durdur"
+
+msgid "IDS_COM_SK_OK"
+msgstr "Tamam"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Kapalı"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Yenile"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Konum"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Silindi."
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Özelden Kaldır"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Özel'e taşı"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Girdi yok."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Biçim"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Görüşme sırasında video oynatılamıyor."
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "DropBox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "Bu dosya çevrim dışı durumda kullanılamaz. Ağ bağlantısını kontrol edin ve tekrar deneyin."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "Seçilen öğe %s öğesine taşınacak."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "Seçilen öğeler %s öğesine taşınacak."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Çıkartılıyor..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Taşıyor..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Kişisel belleğe taşınamadı."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Normal belleğe taşınamadı."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Mesaj"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Klasörler"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "E-posta"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Tarih (en yeni)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d seçildi"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Videoları sil"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Videoyu sil"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Taşı"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Boylam"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Enlem"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "Kamera ile video çektikten sonra, videolar gösterilecektir"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "İptal"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Tümünden sonra drdr"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Geçerli ortm tkrarla"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Tümünü tekrarla"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Çözünürlük"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Sil"
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Tümünü sil"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Bu dosya sadece ses verilerini destekliyor. Şu anda ses oynatılıyor."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Bu dosya sadece video verilerini destekliyor. Şu anda video oynatılıyor."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Yeniden adlandır"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Kulaklıklar"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Bilinmeyen"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Hata"
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Düşük pil."
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Bağlantı başarısız."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Dosya yok."
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "%s öğesini 1 kez daha kullanabilirsiniz. Başka lisans alınsın mı?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Ses cihazı"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Eklendi."
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Tara"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Eklenemiyor."
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Varsayılan"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "İndir"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Kapalı"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "Açık"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "1 video silinecek."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Geçersiz karakter"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "Hiç arama sonucu bulunamadı"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Seç"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Son değiştirilme"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Tamam"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Tarih"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Enlem"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "İsim"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Ad (A-Z)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Videolar"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Maksimum ek sayısı (%d) aşıldı."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Tümünü seç"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Cihaz hafızası"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "SD kart"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Taşı"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "Açık"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Paylaşma şekli"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Bir ağ hatası oluştu. Tekrar deneyin."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Sonrakini oto oynat"
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Uygulanıyor..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Maksimum karakter sayısına ulaşıldı."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Evet"
+
+msgid "IDS_COM_SK_NO"
+msgstr "Hayır"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Sil"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Tümünü sil"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "Arama sonucu yok"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Öğe seç"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Öğeleri seç"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "İptal"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "BİTTİ"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "İPTAL"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "SİL"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Saklama yeri"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Tarih"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Video seçin"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Bağlantı hatalı."
+
+msgid "IDS_COM_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "İndirildi."
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Senkronizasyon"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Yazı tipi"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "Hiçbiri"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Kulaklıklar"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "%s öğesini 1 kez daha kullanabilirsiniz. Şimdi başlatılsın mı?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "%s öğesini 2 kez daha kullanabilirsiniz. Şimdi başlatılsın mı?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s şu anda kilitli. Kilit açılsın mı?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "%s öğesini daha fazla kullanamazsınız. Başka lisans alınsın mı?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s süresi dolmak üzere. Başka lisans alınsın mı?"
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Завантажити"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "1 папку буде завантажено."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "1 відео буде завантажено."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Усі папки буде завантажено."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Усі відео буде завантажено."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "%d папок буде завантажено."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "%d відео буде завантажено."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Використання мобільних даних вимкнено. Натомість підключіться до мережі Wi-Fi або ввімкніть використання мобільних даних і спробуйте ще раз."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Особистий"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "Б"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "ГБ"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "КБ"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Розташування"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "МБ"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Невідомо"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 папка"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 відео"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Всі"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "Із пристрою"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "Із Dropbox"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Дата останнього змінення"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Вміст для відображення"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Пошук"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Надати спільний доступ"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "1 папку буде видалено."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Видалення..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Після запису відео за допомогою камери їх буде відображено тут."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "Кількість відео: %d"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Відео"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "Немає відео"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Деталі"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Папка"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Список"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Нещодавно додані"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Останні переглянуті"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Перейменувати"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Розмір"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Вигляд"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Назва"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Тип"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Переглянути як"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "Усі відео буде видалено."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "Буде видалено папок: %d."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "Буде видалено відео: %d"
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "Цю папку буде видалено."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "Папок: %d"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Налаштування"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Неможливо відтворити відео"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Вирівнювання"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Розмір шрифту"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Установка повторення"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Субтитри (приховані)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "Усі папки буде видалено."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Центр"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Великий"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Вліво"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Середній"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Вправо"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Маленький"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "Ім’я файла вже використовується"
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Закрити"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Досягнуто максимальної кількості символів."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Стоп"
+
+msgid "IDS_COM_SK_OK"
+msgstr "ОК"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Вимкнено"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Оновити"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Розташування"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Видалено."
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Видалити з особистого режиму"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Перемістити до особистої папки"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Запис порожній."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Формат"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Неможливо відтворити відео під час виклику."
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "Цей файл недоступний у режимі без зв’язку. Перевірте підключення до мережі та спробуйте ще раз"
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "Вибраний об'єкт буде переміщено до папки %s."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "Вибрані об'єкти буде переміщено до папки %s."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Видалення..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Переміщення..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Не вдалося перемістити до особистого місця збереження."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Не вдалося перемістити до стандартного місця збереження."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Повідом."
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Папки"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Email"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Дата (остання)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "Вибрано %d"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Видалити відео"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Видалити відео"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Перемістити"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Довгота"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Широта"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "Збережені відео відображатимуться в цьому розділі після їх записування за допомогою камери."
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Скасувати"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Зупинити після усіх"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Повт. поточний запис"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Повторити всі"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Роздільна здатність"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Видал."
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Видалити всі"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Цей файл підтримує лише аудіодані. Наразі відтворюється аудіо."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Цей файл підтримує лише відеодані. Наразі відтворюється відео."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Перейменувати"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Навушники"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Невідомо"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Помилка"
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Батарея розряджена."
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Збій з'єднання."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Файл не існує."
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "%s можна використати ще 1 раз. Отримати іншу ліцензію?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Аудіопристрій"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Додано."
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Сканувати"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Неможливо додати."
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Стандартний"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Завантаження"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Вимкнено"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "Увімкнено"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "1 відео буде видалено."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Хибний символ"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "Пошук не дав результатів"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Вибрати"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Дата останньої зміни"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Готово"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Дата"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Широта"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Iм'я"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Ім’я (А–Я)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Відео"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Досягнуто максимальної кількості вкладень: (%d)."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Вибрати всі"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Місце збереження на пристрої"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "Карта пам’яті"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Перемістити"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "Увімкнено"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Надіслати через"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Сталася помилка мережі. Спробуйте ще раз."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Відтвор. наступне"
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Обробка..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Досягнуто максимальної кількості символів."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Так"
+
+msgid "IDS_COM_SK_NO"
+msgstr "Ні"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Видалити"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Видалити всі"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "Немає результату"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Вибір об'єкта"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Виберіть об’єкти"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Скасувати"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "ГОТОВО"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "СКАСУВАТИ"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "ВИДАЛИТИ"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Місце збереження"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Дата"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Вибір відео"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Помилка з’єднання."
+
+msgid "IDS_COM_BODY_KB"
+msgstr "КБ"
+
+msgid "IDS_COM_BODY_B"
+msgstr "Б"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "МБ"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "ГБ"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Завантажено."
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Синхронізувати"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Шрифт"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "Немає"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Навушники"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "%s можна використати ще 1 раз. Розпочати зараз?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "%s можна використати ще 2 рази. Розпочати зараз?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s зараз заблоковано. Розблокувати?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "%s більше не можна використовувати. Отримати іншу ліцензію?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "Термін дії %s скоро мине. Отримати іншу ліцензію?"
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Yuklab olish"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "1 ta jild yuklab olinadi."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "1 ta video yuklab olinadi."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Barcha jildlar yuklab olinadi."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Barcha videolar yuklab olinadi."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "%d ta jild yuklab olinadi."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "%d ta video yuklab olinadi."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Mobil ma’lumot o‘chirilgan. Uning o‘rniga Wi-Fi tarmoqqa ulaning yoki Mobil ma’lumotni yoqing va qayta urinib ko‘ring."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Maxfiy"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "Gb"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Joylashuv"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "Mb"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Noma’lum"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 jild"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1ta video"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Barchasi"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "Qurilmadan"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "Dropbox-dan"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Oxirgi o‘zgartirilgan"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Ko‘rsatiladigan tarkib"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Qidirish"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Ulashish"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "1ta jild joy yo‘q qilinadi."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Yo‘q qilinmoqda..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Kamera yordamida videoga olganingizdan so‘ng, ular bu yerda ko‘rsatiladi."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d video"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Video"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "Videolar yo‘q"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Tafsilotlar"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Jild"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Ro‘yxat"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Oxir/qo‘shilgan"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Oxirgi ko‘rb chiqilgan"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Nom o‘zgartirish"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "O‘lcham"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Quyidagi bo‘y. saral"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Sarlavha"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Tur"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Quyidagi sifatida ko‘rib chiqish"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "Barcha videolar yo‘q qilinadi."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "%d ta jild o'chiriladi."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "%d videolar o'chiriladi."
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "Ushbu jild o'chiriladi."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d jild"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Parametrlar"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Videoni o‘ynatib bo‘lmaydi"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Tenglashtirish"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Shrift o‘lchami"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Takrorlash parametri"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Subtitrlar (CC)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "Barcha jildlar o'chiriladi."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Markaz"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Katta"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Chap"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "O‘rta"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "O‘ng"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Kichik"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "Fayl nomi avvaldan foydalanilmoqda"
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Yopish"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Belgilar soni ruxsat etilgan maksimal miqdorga yetdi."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "To‘xtatish"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "O‘ch."
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Yangilash"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Joylashuv"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "O'chirildi."
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Maxfiydan olib tashlash"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Maxfiyga ko‘chirish"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Kiritish bo‘sh."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Format"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Qo‘ng‘iroq mobaynida video o‘ynatib bo‘lmaydi."
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "Offlayn rejimda fayldan foydalanib bo‘lmaydi. Tarmoq ulanishini tekshiring va qayta urinib ko‘ring"
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "Tanlangan element %sga ko‘chiriladi."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "Tanlangan elementlar %sga ko‘chiriladi."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Olib tashlanmoqda..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Ko‘chirilmoqda..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Shaxsiy xotiraga ko‘chirib bo‘lmadi."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Normal xotiraga ko‘chirib bo‘lmadi."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Xabar"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Jildlar"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "E-pochta"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Sana (eng oxirgi)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d tanlangan"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Videolarni yo‘q qilish"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Videoni yo‘q qilish"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Ko‘chirish"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Uzunlik"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Kenglik"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "Kamera yordamida videolar yozib olingandan so‘ng videolar ko‘rsatiladi."
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Bek/q."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Baridan keyin to‘xta"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Joriyni takrorlash"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Barini takrorlash"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Rezolyutsiya"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Yo‘q/q"
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Barchasi o'chirish"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Faqat audio ma’lumot ushbu fayl tomonidan qo‘llab-quvvatlanadi. Hozirda o‘ynayotgan audio."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Faqat video ma’lumot ushbu fayl tomonidan qo‘llab-quvvatlanadi. Hozirda o‘ynayotgan video."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Nom o‘zgartirish"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Quloqliklar"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Noma’lum"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Xato"
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Batareya quvvati kam."
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Ulanib bo‘lmadi."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Ushbu fayl mavjud emas."
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "%sni yana 1 marta ishlatishingiz mumkin. Boshqa litsenziya olinsinmi?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Audio qurilma"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Qo‘shildi."
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Qidirish"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Qo‘shib bo‘lmaydi."
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Birlamchi"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Yuklab olish"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "O‘ch."
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "Yoq."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "1ta video yo‘q qilinadi."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Noto‘g‘ri belgi"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "Qidirish natijalari yo‘q"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Tanlash"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Oxirgi o‘zgartirilgan"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Sana"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Kenglik"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Ism"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Nom (A-Z)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Videolar"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Teglar soni maksimal miqdordan (%d) oshib ketdi."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Barchasini tanlash"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Qurilma xotirasi"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "SD-karta"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Ko‘chirish"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "Yoq."
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Quyidagi orqali ulashish"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Tarmoq xatosi yuz berdi. Qayta urinib ko‘ring."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Key. avto-o‘ynat."
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Bajarilmoqda..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Belgilar soni maksimal miqdorga yetdi."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Ha"
+
+msgid "IDS_COM_SK_NO"
+msgstr "Yo‘q"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Yo‘q qilish"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Barchasi o'chirish"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "Qidiruv natijalari yo‘q"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Element tanlang"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Elementlarni tanlang"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Bekor qilish"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "BAJARILDI"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "BEKOR QILISH"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "O‘CHIRISH"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Xotira joylashuvi"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Sana"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Videoi tanlash"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Ulanish xatosi."
+
+msgid "IDS_COM_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "Mb"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "Gb"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Yuklandi."
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Sinxronlash"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Shrift"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "Hech qaysi"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Quloqliklar"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "%sni yana 1 marta ishlatishingiz mumkin. Hozir boshlansinmi?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "%sni yana 2 marta ishlatishingiz mumkin. Hozir boshlansinmi?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s hozirda bloklangan. Blokdan chiqarilsinmi?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "%sni boshqa ishlata oplmaysiz. Boshqa litsenziya olinsinmi?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%sning muddati o‘tish arafasida. Boshqa litsenziya olinsinmi?"
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "下载"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "将下载 1 个文件夹。"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "将下载 1 个视频。"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "将下载所有文件夹。"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "将下载所有视频。"
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "将下载 %d 个文件夹。"
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "将下载 %d 个视频。"
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "移动数据已关闭。改为连接至 Wi-Fi 网络或打开移动数据并重试。"
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "私人"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "位置"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "未知"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "确定"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1个文件夹"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 个视频"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "全部"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "从设备"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "从 Dropbox"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "上次修改"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "要显示的内容"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "搜索"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "共享"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "将删除 1 个文件夹。"
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "正在删除..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "在您使用照相机录制视频后,其将显示在此处。"
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d 个视频"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "视频"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "无视频"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "详情"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "文件夹"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "列表"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "最近添加"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "最近浏览"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "重命名"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "大小"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "排序方式"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "标题"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "类型"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "查看方式"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "将删除所有视频。"
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "%d个文件夹将被删除。"
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "将删除 %d 个视频。"
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "该文件夹将被删除"
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d 个文件夹"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "设定"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "无法播放视频"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "校准"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "字体大小"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "重复设定"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "字幕(CC)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "全部文件夹将被删除"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "居中"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "大"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "左"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "中等"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "右"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "小"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "文件名已被使用"
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "关闭"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "已达到最大字符限制"
+
+msgid "IDS_COM_SK_STOP"
+msgstr "停止"
+
+msgid "IDS_COM_SK_OK"
+msgstr "确定"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "关"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "刷新"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "位置"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "已删除"
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "从私密模式移除"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "移动至私密模式"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "空记录。"
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "格式"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "通话中无法播放视频。"
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "离线时该文件不可用。检查网络连接并重试。"
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "选定项目将移动至 %s。"
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "选定项目将移动至 %s。"
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "正在移除..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "移动中..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "移至个人存储失败"
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "移至普通存储失败"
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "信息"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "文件夹"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "电子邮件"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "日期(最近)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d 已选择"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "删除视频"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "删除视频"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "移动"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "经度"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "纬度"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "在您使用照相机录制视频后,将显示视频。"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "取消"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "播放全部后停止"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "重复当前"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "重复全部"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "分辨率"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "删除"
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "全部删除"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "该文件仅支持音频数据。正在播放音频。"
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "该文件仅支持视频数据。正在播放视频。"
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "重命名"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "耳机"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "未知"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "出错"
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "蓝牙"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "电量不足。"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "连接失败"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "此文件不存在"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "您还可使用%s 1 次。获取另一许可证?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "音频设备"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "已添加"
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "扫描"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "无法添加。"
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "默认"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "下载"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "关"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "开"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "将删除 1 个视频。"
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "无效字符"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "无搜索结果"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "选择"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "上次修改"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "完成"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "日期"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "纬度"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "名称"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "名称 (A-Z)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "视频"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "已超过最大附件数 (%d)"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "全选"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "设备存储"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "SD 卡"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "移动"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "开"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "共享通过"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "网络出错。请重试。"
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "自动播放下一个"
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "处理中..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "已达到最大字符数"
+
+msgid "IDS_COM_SK_YES"
+msgstr "是"
+
+msgid "IDS_COM_SK_NO"
+msgstr "否"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "删除"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "全部删除"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "无搜索结果"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "选择项目"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "选择项目"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "取消"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "完成"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "取消"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "删除"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "存储位置"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "日期"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "选择视频"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi直连"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "连接错误"
+
+msgid "IDS_COM_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "已下载"
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "同步"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "字体"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "无"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "耳机"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "您还可使用%s 1 次。现在开始?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "您还可使用%s 2 次。现在开始?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s当前已锁定。是否解锁?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "您无法再使用%s。获取另一许可证?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s将过期。获取另一许可证?"
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "下載"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "將下載 1 個資料夾。"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "將下載 1 個影片。"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "將下載所有資料夾。"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "將下載所有影片。"
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "將下載 %d 個資料夾。"
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "將下載 %d 個影片。"
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "流動數據已關閉。改為連接至 Wi-Fi 網絡或開啟流動數據並重試。"
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "私人資料夾"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "位置"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "未知"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "確定"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 個資料夾"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 個影片"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "全部"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "從裝置"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "從 Dropbox"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "上次修改"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "要顯示的內容"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "搜尋"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "分享"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "1 個資料夾將被刪除。"
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "正在刪除..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "使用相機錄製影片後,將顯示於此。"
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d 個影片"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "影片"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "無影片"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "詳細資料"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "資料夾"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "清單"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "最近加入"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "最近檢視"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "重新命名"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "大小"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "排序方式"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "標題"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "類型"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "檢視方式"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "所有影片將被刪除。"
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "%d 個資料夾將被刪除。"
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "%d 個影片將被刪除。"
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "此資料夾將被刪除。"
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d 個資料夾"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "設定"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "無法播放影片"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "校準"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "字體大小"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "重複設定"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "字幕 (CC)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "所有資料夾將被刪除。"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "置中"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "大"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "靠左"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "中"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "靠右"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "小"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "檔案名稱已被使用"
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "關閉"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "字元數目已達上限。"
+
+msgid "IDS_COM_SK_STOP"
+msgstr "停止"
+
+msgid "IDS_COM_SK_OK"
+msgstr "確定"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "關"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "重新整理"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "位置"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "已刪除。"
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "從私人資料夾中移除"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "移動至私人資料夾"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "空白記錄。"
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "格式"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "通話期間無法播放影片。"
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "離線時無法使用此檔案。檢查網絡連線並重試一次。"
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "選擇的項目將被移至 %s。"
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "選擇的項目將被移至 %s。"
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "正在移除..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "正在移動..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "無法移至個人儲存空間。"
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "無法移至一般儲存空間。"
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "訊息"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "資料夾"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "電子郵件"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "日期(最近)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d 已選擇"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "刪除影片"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "刪除影片"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "移動"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "經度"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "緯度"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "使用相機錄製影片後,將顯示影片。"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "取消"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "全部播放後停止"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "重複目前的"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "重複全部"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "解像度"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "刪除"
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "全部刪除"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "此檔案僅支援音訊數據。現正播放音訊。"
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "此檔案僅支援影片數據。現正播放影片。"
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "重新命名"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "耳機"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "未知"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "錯誤"
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "藍牙"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "電量不足"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "連接失敗"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "此檔案不存在。"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "可再使用%s一次。要取得另一個許可嗎?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "音訊裝置"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "已加入"
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "掃描"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "無法加入。"
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "預設"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "下載"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "關"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "開"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "1 個影片將被刪除。"
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "無效字元"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "無搜尋結果"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "選擇"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "上次修改"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "完成"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "日期"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "緯度"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "名稱"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "名稱 (A-Z)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "影片"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "已超過附件數量上限 (%d)。"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "選擇全部"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "裝置記憶體"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "SD 卡"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "移動"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "開"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "分享透過"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "發生網絡錯誤。請重試。"
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "自動播放下一個"
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "正在處理..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "已達字元數量上限。"
+
+msgid "IDS_COM_SK_YES"
+msgstr "是"
+
+msgid "IDS_COM_SK_NO"
+msgstr "否"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "刪除"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "全部刪除"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "無搜尋結果"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "選擇項目"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "選擇項目"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "取消"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "完成"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "取消"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "刪除"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "儲存裝置位置"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "日期"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "選擇影片"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "連接錯誤"
+
+msgid "IDS_COM_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "已下載"
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "同步"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "字體"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "無"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "耳機"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "可再使用%s一次。現在開始嗎?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "可再使用%s兩次。現在開始嗎?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s目前已鎖定。解鎖嗎?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "您無法再使用%s。要取得另一個許可嗎?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s即將到期。要取得另一個許可嗎?"
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "下載"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "將下載 1 個資料夾。"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "將下載 1 個影片。"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "將下載所有資料夾。"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "將下載所有影片。"
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "將下載 %d 個資料夾。"
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "將下載 %d 個影片。"
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "行動數據已關閉。請連接 Wi-Fi 網路,或開啟行動數據並重試。"
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "隱私"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "位置"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "未知"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "確認"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 個資料夾"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 個影片"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "全部"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "自裝置"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "自 Dropbox"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "最後一次修改"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "要顯示的內容"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "搜尋"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "分享"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "將刪除 1 個資料夾。"
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "正在刪除..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "使用相機錄製影片後,將顯示於此。"
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d 個影片"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "影片"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "無影片"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "詳細資料"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "資料夾"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "清單"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "最近新增"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "最近瀏覽"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "重新命名"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "大小"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "排序依"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "標題"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "類型"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "檢視方式"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "所有影片將會被刪除。"
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "將刪除 %d 個資料夾。"
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "%d 個影片將被刪除。"
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "此資料夾將被刪除。"
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d 個資料夾"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "設定"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "無法播放影片"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "校準"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "字型大小"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "重複設定"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "字幕 (CC)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "將刪除所有資料夾。"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "置中"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "大"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "靠左對齊"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "中等"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "靠右對齊"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "小"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "檔案名稱已被使用"
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "關閉"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "已達字元數上限。"
+
+msgid "IDS_COM_SK_STOP"
+msgstr "停止"
+
+msgid "IDS_COM_SK_OK"
+msgstr "確定"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "關"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "重新整理"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "位置"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "已刪除。"
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "從隱私資料夾中移除"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "移動至隱私資料夾"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "項目為空。"
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "格式"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "無法在通話期間播放影片。"
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "離線時無法使用此檔案。檢查網路連線並重試一次。"
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "選取的項目將被移至 %s。"
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "選取的項目將被移至 %s。"
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "正在移除..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "正在移動..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "無法移至個人儲存空間。"
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "無法移至一般儲存空間。"
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "訊息"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "資料夾"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "電子郵件"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "日期 (最近的)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d已選擇"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "刪除影片"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "刪除影片"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "移動"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "經度"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "緯度"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "使用相機錄製影片後,將顯示影片。"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "取消"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "全部播放後停止"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "重複目前影片"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "重複全部"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "解析度"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "刪除"
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "全部刪除"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "此檔案僅支援音訊資料。現正播放音訊。"
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "此檔案僅支援影片資料。現正播放影片。"
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "重新命名"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "耳機"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "未知"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "錯誤"
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "藍牙"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "電量不足。"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "連線失敗"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "此檔案不存在。"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "可再使用%s一次。要取得另一個授權嗎?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "自動裝置"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "已新增。"
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "掃描"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "無法加入。"
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "預設"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "下載"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "關"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "開"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "將刪除 1 個影片。"
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "字元無效"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "無搜尋結果"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "選擇"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "上次修改"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "完成"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "日期"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "緯度"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "名稱"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "名稱 (A-Z)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "影片"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "已超過最多附件數目 (%d)。"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "選擇全部"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "裝置儲存空間"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "SD 卡"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "移動"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "開"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "分享方式"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "發生網路錯誤。請重試。"
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "自動播放下一個"
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "正在處理..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "已達字元數量上限。"
+
+msgid "IDS_COM_SK_YES"
+msgstr "是"
+
+msgid "IDS_COM_SK_NO"
+msgstr "否"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "刪除"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "全部刪除"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "無搜尋結果"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "選擇項目"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "選擇項目"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "取消"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "完成"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "取消"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "刪除"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "儲存裝置位置"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "日期"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "選擇影片"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "連線時發生錯誤"
+
+msgid "IDS_COM_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "已下載"
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "同步"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "字型"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "無"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "耳機"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "可再使用%s一次。立即啟動嗎?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "可再使用%s兩次。立即啟動嗎?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s目前被鎖定。解鎖嗎?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "已無法再使用%s。要取得另一個授權嗎?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s即將到期。要取得另一個授權嗎?"
+
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+collections {
+ group {
+ name: "effect";
+
+ parts {
+ part {
+ name: "bg";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ color: 21 108 148 255;
+ }
+ }
+ part {
+ name: "naviframe";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel2.relative: 1.0 0.0;
+ align: 0.5 0.0;
+ min: 0 96;
+ fixed: 0 1;
+ color: 21 108 148 255;
+ }
+ }
+ }
+ }
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifdef ENABLE_DRM_FEATURE
+
+#include <glib.h>
+#ifdef ENABLE_DRM_FEATURE
+#include <drm_client.h>
+#include <drm_client_types.h>
+#endif
+
+#include "mp-util.h"
+#include "mp-video-log.h"
+#include "video-player.h"
+#include "mp-video-string-define.h"
+#include "mp-drm-ctrl.h"
+#include "mp-external-ug.h"
+
+#define ACCUMULATED_DATE 86400
+#define RO_MESSAGE_LEN 1024
+#define MOUNTH_COUNT 12
+#define DAY_COUNT 30
+#define HOUR_COUNT 24
+
+static bool bCheckIntervalConstraint = FALSE;
+static bool bCanPlayDrmContents = FALSE;
+
+static drm_file_type_e nDrmFileType = DRM_TYPE_UNDEFINED;
+static st_MpConstraintsInfo pMpConstraintsInfo;
+
+static char *g_szMediaUri = NULL;
+
+
+
+
+void mp_drm_check_remain_ro(void *pUserData, char *szTitle);
+
+
+bool mp_drm_is_itpossible_to_play_drm_content(void)
+{
+ return bCanPlayDrmContents;
+}
+
+bool mp_drm_is_drm_file(char *szPath)
+{
+
+ if (!szPath) {
+ VideoLogInfo("[ERR] It is not existed file url.");
+ return FALSE;
+ }
+
+ int nRet = DRM_RETURN_SUCCESS;
+ drm_bool_type_e is_drm = DRM_FALSE;
+
+ nRet = drm_is_drm_file(szPath, &is_drm);
+ if (nRet != DRM_RETURN_SUCCESS) {
+ VideoLogError("[ERR]Fail to get whether drm file or not : %d",
+ nRet);
+ return FALSE;
+ }
+
+ if (is_drm != DRM_TRUE) {
+ VideoLogError("It's not drm file.");
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+bool mp_drm_is_oma_file_type(char *szPath)
+{
+ if (!szPath) {
+ VideoLogInfo("[ERR] It is not existed file url.");
+ return FALSE;
+ }
+
+ drm_file_type_e nDrmType = DRM_TYPE_UNDEFINED;
+
+ int nRet = drm_get_file_type(szPath, &nDrmType);
+ if (nRet != DRM_RETURN_SUCCESS) {
+ VideoLogWarning("[ERR] Fail to get file type : %d", nRet);
+ return FALSE;
+ }
+
+ if (nDrmType != DRM_TYPE_OMA_V1 && nDrmType != DRM_TYPE_OMA_V2) {
+ VideoLogInfo("It's not OMA drm file : %d", nDrmType);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+bool mp_drm_check_license(char *szPath)
+{
+ if (!szPath) {
+ VideoLogInfo
+ ("[ERR] szPath is not existed for checking drm license.");
+ return FALSE;
+ }
+
+ drm_license_status_e nLicenseStatus = DRM_LICENSE_STATUS_UNDEFINED;
+ int nRet = drm_get_license_status(szPath, DRM_PERMISSION_TYPE_PLAY,
+ &nLicenseStatus);
+
+ if (nRet != DRM_RETURN_SUCCESS) {
+ VideoLogWarning("[ERR]Fail to get license info : %d", nRet);
+ return FALSE;
+ }
+
+ if (nLicenseStatus != DRM_LICENSE_STATUS_VALID) {
+ VideoLogInfo("Invalid license status : %d", nLicenseStatus);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+bool mp_drm_check_expiration(char *szPath, bool bExpired)
+{
+ if (!szPath) {
+ VideoLogError("[ERR] szPath is not existed.");
+ return FALSE;
+ }
+
+ if (mp_drm_is_drm_file(szPath)) {
+ VideoLogError("It's not drm file.");
+ return FALSE;
+ }
+
+ drm_file_info_s st_DrmFileInfo;
+ memset(&st_DrmFileInfo, 0x0, sizeof(drm_file_info_s));
+
+ int nRet = drm_get_file_info(szPath, &st_DrmFileInfo);
+ if (nRet == DRM_RETURN_SUCCESS) {
+ if (st_DrmFileInfo.oma_info.method ==
+ DRM_METHOD_TYPE_COMBINED_DELIVERY
+ || st_DrmFileInfo.oma_info.method ==
+ DRM_METHOD_TYPE_FORWARD_LOCK) {
+ VideoLogInfo
+ ("st_DrmFileInfo.oma_info.method == DRM_METHOD_TYPE_COMBINED_DELIVERY || st_DrmFileInfo.oma_info.method == DRM_METHOD_TYPE_FORWARD_LOCK");
+ return TRUE;
+ }
+ }
+
+ return FALSE;
+}
+
+bool mp_drm_check_foward_lock(char *szPath)
+{
+ if (!szPath) {
+ VideoLogInfo("[ERR] szPath is not existed.");
+ return FALSE;
+ }
+
+ if (mp_drm_is_drm_file(szPath)) {
+ VideoLogInfo("It's not drm file.");
+ return FALSE;
+ }
+
+ drm_file_info_s st_DrmFileInfo;
+ memset(&st_DrmFileInfo, 0x0, sizeof(drm_file_info_s));
+
+ int nRet = drm_get_file_info(szPath, &st_DrmFileInfo);
+ if (nRet == DRM_RETURN_SUCCESS) {
+ if (st_DrmFileInfo.oma_info.method == DRM_METHOD_TYPE_FORWARD_LOCK) {
+ VideoLogInfo
+ ("st_DrmFileInfo.oma_info.method == DRM_METHOD_TYPE_FORWARD_LOCK");
+ return TRUE;
+ }
+ }
+
+ return FALSE;
+}
+
+bool mp_drm_is_initialized(char *szPath)
+{
+ if (!szPath) {
+ VideoLogError
+ ("[ERR] szPath is not existed for checking drm license.");
+ return FALSE;
+ }
+
+ return mp_drm_check_license(szPath);
+}
+
+bool mp_drm_get_left_ro_info(char *szPath,
+ st_MpConstraintsInfo * pLeftRoInfo,
+ bool * pbHasValidRo)
+{
+ if (!szPath) {
+ VideoLogError("[ERR]szPath is not existed.");
+ return FALSE;
+ }
+
+ if (!pLeftRoInfo) {
+ VideoLogError("[ERR]pLeftRoInfo is not existed.");
+ return FALSE;
+ }
+
+ if (!mp_drm_check_license(szPath)) {
+ VideoLogInfo("[ERR]Invalid drm file.");
+ *pbHasValidRo = FALSE;
+ return FALSE;
+ } else {
+ VideoLogInfo("Valid drm file.");
+ *pbHasValidRo = TRUE;
+ }
+
+ static drm_constraint_info_s st_pDrmConstraintInfo;
+
+ memset(pLeftRoInfo, 0x0, sizeof(st_MpConstraintsInfo));
+ memset(&st_pDrmConstraintInfo, 0x0, sizeof(drm_constraint_info_s));
+
+ int nRes = drm_get_constraint_info(szPath, DRM_PERMISSION_TYPE_PLAY,
+ &st_pDrmConstraintInfo);
+ if (nRes == DRM_RETURN_SUCCESS) {
+ if (st_pDrmConstraintInfo.const_type.is_unlimited) {
+ VideoLogInfo("UNLIMITED");
+ pLeftRoInfo->constraints = MP_DRM_CONSTRAINT_UNLIMITED;
+ return true;
+ }
+
+ if (st_pDrmConstraintInfo.const_type.is_count) {
+ VideoLogInfo("DRM_COUNT [%d]",
+ st_pDrmConstraintInfo.remaining_count);
+ pLeftRoInfo->constraints |= MP_DRM_CONSTRAINT_COUNT;
+ pLeftRoInfo->remaining_count =
+ st_pDrmConstraintInfo.remaining_count;
+ }
+
+ if (st_pDrmConstraintInfo.const_type.is_datetime) {
+ pLeftRoInfo->constraints |= MP_DRM_CONSTRAINT_DATE_TIME;
+ VideoLogInfo("%d.%d.%d %d:%d~%d.%d.%d %d:%d",
+ st_pDrmConstraintInfo.start_time.tm_mday,
+ st_pDrmConstraintInfo.start_time.tm_mon + 1,
+ st_pDrmConstraintInfo.start_time.tm_year + 1900,
+ st_pDrmConstraintInfo.start_time.tm_hour,
+ st_pDrmConstraintInfo.start_time.tm_min,
+ st_pDrmConstraintInfo.end_time.tm_mday,
+ st_pDrmConstraintInfo.end_time.tm_mon + 1,
+ st_pDrmConstraintInfo.end_time.tm_year + 1900,
+ st_pDrmConstraintInfo.end_time.tm_hour,
+ st_pDrmConstraintInfo.end_time.tm_min);
+
+ struct timeval tv;
+ gettimeofday(&tv, NULL);
+ struct tm *ptm = NULL;
+ ptm = localtime(&tv.tv_sec);
+
+ if (ptm->tm_year >= st_pDrmConstraintInfo.start_time.tm_year
+ && ptm->tm_mon >= st_pDrmConstraintInfo.start_time.tm_mon
+ && ptm->tm_mday >=
+ st_pDrmConstraintInfo.start_time.tm_mday
+ && ptm->tm_hour >=
+ st_pDrmConstraintInfo.start_time.tm_hour
+ && ptm->tm_min >= st_pDrmConstraintInfo.start_time.tm_min
+ && ptm->tm_mon <= st_pDrmConstraintInfo.end_time.tm_mon
+ && ptm->tm_mday <= st_pDrmConstraintInfo.end_time.tm_mday
+ && ptm->tm_hour <= st_pDrmConstraintInfo.end_time.tm_hour
+ && ptm->tm_min <= st_pDrmConstraintInfo.end_time.tm_min) {
+ /* not expired */
+ pLeftRoInfo->date_time_expired = false;
+ } else {
+ pLeftRoInfo->date_time_expired = true;
+ }
+ }
+
+ if (st_pDrmConstraintInfo.const_type.is_interval) {
+ pLeftRoInfo->constraints |= MP_DRM_CONSTRAINT_INTERVAL;
+ VideoLogInfo("Remain... %d.%d.%d %d:%d",
+ st_pDrmConstraintInfo.interval_time.tm_mon,
+ st_pDrmConstraintInfo.interval_time.tm_mday,
+ st_pDrmConstraintInfo.interval_time.tm_year,
+ st_pDrmConstraintInfo.interval_time.tm_hour,
+ st_pDrmConstraintInfo.interval_time.tm_min);
+
+ pLeftRoInfo->remaining_interval_sec =
+ st_pDrmConstraintInfo.interval_time.tm_sec +
+ st_pDrmConstraintInfo.interval_time.tm_min * 60 +
+ st_pDrmConstraintInfo.interval_time.tm_hour * 3600;
+ pLeftRoInfo->remaining_interval_sec +=
+ (st_pDrmConstraintInfo.interval_time.tm_mday +
+ st_pDrmConstraintInfo.interval_time.tm_mon * 30 +
+ st_pDrmConstraintInfo.interval_time.tm_year * 365) *
+ (3600 * 24);
+ }
+
+ if (st_pDrmConstraintInfo.const_type.is_timedcount) {
+ VideoLogInfo("%d left (%d sec)",
+ st_pDrmConstraintInfo.timed_remaining_count,
+ st_pDrmConstraintInfo.timed_count_timer);
+ pLeftRoInfo->constraints |= MP_DRM_CONSTRAINT_TIMED_COUNT;
+ pLeftRoInfo->remaining_timed_count =
+ st_pDrmConstraintInfo.timed_remaining_count;
+ }
+
+ if (st_pDrmConstraintInfo.const_type.is_accumulated) {
+ VideoLogInfo("DRM_ACCUMULATED [%d]",
+ st_pDrmConstraintInfo.accumulated_remaining_seconds);
+ pLeftRoInfo->constraints |= MP_DRM_CONSTRAINT_ACCUMLATED_TIME;
+ pLeftRoInfo->remaining_acc_sec =
+ st_pDrmConstraintInfo.accumulated_remaining_seconds;
+ }
+
+ if (st_pDrmConstraintInfo.const_type.is_individual) {
+ VideoLogInfo("DRM_INDIVISUAL_ID [%s]",
+ st_pDrmConstraintInfo.individual_id);
+ }
+
+ if (st_pDrmConstraintInfo.const_type.is_system) {
+ VideoLogInfo("DRM_SYSTEM [ID:%s, type:%d]",
+ st_pDrmConstraintInfo.system_id,
+ st_pDrmConstraintInfo.system_identity_type);
+ }
+ } else {
+ VideoLogWarning("drm_get_constraint_info().. 0x%x", nRes);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+bool mp_drm_get_content_info(char *szPath,
+ MpVideoDrmContentInfoType nFirstInfoType, ...)
+{
+ /* return info shoud be free */
+ VideoLogInfo("");
+
+ drm_content_info_s st_pDrmContenInfo;
+ memset(&st_pDrmContenInfo, 0x0, sizeof(drm_content_info_s));
+
+ int nRes = drm_get_content_info(szPath, &st_pDrmContenInfo);
+ if (nRes != DRM_RETURN_SUCCESS) {
+ VideoLogWarning("[Err] drm_get_content_info().. [0x%x]", nRes);
+ return FALSE;
+ }
+
+ va_list var_args;
+ MpVideoDrmContentInfoType nAttrInfoType;
+
+ nAttrInfoType = nFirstInfoType;
+ va_start(var_args, nFirstInfoType);
+ char **ret_val = NULL;
+ char *value = NULL;
+
+ while (nAttrInfoType > DRM_CONTENT_INFO_NULL) {
+ ret_val = va_arg((var_args), char **);
+
+ switch (nAttrInfoType) {
+ case DRM_CONTENT_INFO_AUTHOR:
+ value = st_pDrmContenInfo.author;
+ break;
+
+ case DRM_CONTENT_INFO_RIGHTS_URL:
+ value = st_pDrmContenInfo.rights_url;
+ break;
+
+ case DRM_CONTENT_INFO_DESCRIPTION:
+ value = st_pDrmContenInfo.description;
+ break;
+
+ default:
+ VideoLogInfo("Not defined [%d]", nAttrInfoType);
+ value = NULL;
+ break;
+ }
+
+ /* output */
+ *ret_val = g_strdup(value);
+
+ nAttrInfoType = va_arg(var_args, MpVideoDrmContentInfoType);
+ }
+
+ va_end(var_args);
+
+ return TRUE;
+}
+
+static void mp_drm_popup_unlock_drm_yes_button_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ if (!pUserData) {
+ VideoLogInfo("[ERR] No exist pUserData");
+ return;
+ }
+
+ mp_util_delete_popup_handle();
+
+ if (bCanPlayDrmContents) {
+ mp_drm_check_remain_ro(pUserData, NULL);
+ } else {
+ char *szRightsUrl = NULL;
+ bool bRet = mp_drm_get_content_info(g_szMediaUri,
+ DRM_CONTENT_INFO_RIGHTS_URL,
+ &szRightsUrl, -1);
+
+ if (bRet && szRightsUrl) {
+ VideoSecureLogInfo("szRightsUrl : %s", szRightsUrl);
+
+ if (!mp_external_ug_launch_browser(szRightsUrl)) {
+ VideoLogInfo("[ERR] Fail to launch browser!!!");
+ }
+
+ free(szRightsUrl);
+ szRightsUrl = NULL;
+ } else {
+ VideoLogInfo("[ERR] Fail to get right url.");
+ }
+ }
+}
+
+static void mp_drm_popup_unlock_drm_no_button_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ if (!pUserData) {
+ VideoLogInfo("[ERR] No exist pUserData");
+ return;
+ }
+
+ mp_util_delete_popup_handle();
+}
+
+void mp_drm_check_remain_ro(void *pUserData, char *szTitle)
+{
+ if (szTitle) {
+ VideoLogWarning("[ERR] No exist szTitle");
+ szTitle = "NO TITLE";
+ }
+
+ if (!pUserData) {
+ VideoLogInfo("[ERR] No exist pUserData");
+ return;
+ }
+
+ char *szFormat = NULL;
+ char *szMessage = NULL;
+
+ if (pMpConstraintsInfo.constraints & MP_DRM_CONSTRAINT_COUNT
+ && pMpConstraintsInfo.remaining_count <= 2) {
+ int nRemain = pMpConstraintsInfo.remaining_count - 1;
+ if (nRemain == 1) {
+ szFormat =
+ MP_VPL_DRM_PS_CAN_USE_1_MORE_TIME_GET_ANOTHER_LICENCE_Q;
+ szMessage = g_strdup_printf(szFormat, szTitle);
+ } else if (nRemain == 0) {
+ szFormat =
+ MP_VPL_DRM_PS_CANNOT_USE_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q;
+ szMessage = g_strdup_printf(szFormat, szTitle);
+ }
+ } else if (pMpConstraintsInfo.constraints &
+ MP_DRM_CONSTRAINT_ACCUMLATED_TIME) {
+ if (pMpConstraintsInfo.remaining_acc_sec / ACCUMULATED_DATE <= 1) {
+ szFormat =
+ MP_VPL_DRM_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q;
+ szMessage = g_strdup_printf(szFormat, szTitle);
+ }
+ }
+
+ if (szMessage) {
+ bCanPlayDrmContents = FALSE;
+ mp_util_yes_no_popup(pUserData, NULL, szMessage,
+ mp_drm_popup_unlock_drm_yes_button_cb,
+ mp_drm_popup_unlock_drm_no_button_cb);
+ free(szMessage);
+ }
+}
+
+bool mp_drm_check_left_ro(char *szPath, char *szTitle, void *pUserData)
+{
+ if (!szPath) {
+ VideoLogWarning
+ ("[ERR]szPath is not existed for checking drm license.");
+ return FALSE;
+ }
+
+ if (!szTitle) {
+ VideoLogWarning("szTitle is not existed.");
+ return FALSE;
+ }
+
+ if (!pUserData) {
+ VideoLogWarning("pUserData is not existed.");
+ return FALSE;
+ }
+
+ VideoLogInfo("");
+
+ bool bHasValidRo = FALSE;
+ bool bWapLaunch = FALSE;
+ bool bExpired = FALSE;
+
+ char *szFormat = NULL;
+ char *szMessage = NULL;
+
+ bCanPlayDrmContents = FALSE;
+
+ memset(&pMpConstraintsInfo, 0, sizeof(st_MpConstraintsInfo));
+
+ if (!mp_drm_get_left_ro_info
+ (szPath, &pMpConstraintsInfo, &bHasValidRo)) {
+ VideoLogWarning("Fail to get left ro info.");
+ return FALSE;
+ }
+
+ if (bHasValidRo) {
+ while (pMpConstraintsInfo.constraints) {
+ if (pMpConstraintsInfo.constraints & MP_DRM_CONSTRAINT_COUNT) {
+ if (pMpConstraintsInfo.remaining_count == 2) {
+ szFormat = MP_VPL_DRM_PS_2_MORE_TIME_START_NOW_Q;
+ szMessage = g_strdup_printf(szFormat, szTitle);
+ } else if (pMpConstraintsInfo.remaining_count == 1) {
+ szFormat = MP_VPL_DRM_PS_1_MORE_TIME_START_NOW_Q;
+ szMessage = g_strdup_printf(szFormat, szTitle);
+ } else if (pMpConstraintsInfo.remaining_count == 0) {
+ bWapLaunch = TRUE;
+ break;
+ }
+ }
+
+ if (pMpConstraintsInfo.constraints &
+ MP_DRM_CONSTRAINT_DATE_TIME) {
+ if (pMpConstraintsInfo.date_time_expired) {
+ bWapLaunch = TRUE;
+ break;
+ }
+ }
+
+ if (pMpConstraintsInfo.constraints &
+ MP_DRM_CONSTRAINT_INTERVAL) {
+ if (pMpConstraintsInfo.remaining_interval_sec == 0) {
+ bWapLaunch = TRUE;
+ break;
+ } else if (!bCheckIntervalConstraint) {
+ bCheckIntervalConstraint = TRUE;
+ int nDays =
+ pMpConstraintsInfo.remaining_interval_sec /
+ ACCUMULATED_DATE + 1;
+ szFormat = MP_VPL_DRM_PS_FOR_PD_DAYS_START_NOW_Q;
+ szMessage = g_strdup_printf(szFormat, szTitle, nDays);
+ }
+ }
+
+ if (pMpConstraintsInfo.constraints &
+ MP_DRM_CONSTRAINT_TIMED_COUNT) {
+ if (pMpConstraintsInfo.remaining_timed_count == 2) {
+ szFormat = MP_VPL_DRM_PS_2_MORE_TIME_START_NOW_Q;
+ szMessage = g_strdup_printf(szFormat, szTitle);
+ } else if (pMpConstraintsInfo.remaining_timed_count == 1) {
+ szFormat = MP_VPL_DRM_PS_1_MORE_TIME_START_NOW_Q;
+ szMessage = g_strdup_printf(szFormat, szTitle);
+ } else if (pMpConstraintsInfo.remaining_timed_count == 0) {
+ bWapLaunch = TRUE;
+ break;
+ }
+ }
+
+ if (pMpConstraintsInfo.constraints &
+ MP_DRM_CONSTRAINT_ACCUMLATED_TIME) {
+ if (pMpConstraintsInfo.remaining_acc_sec == 0) {
+ bWapLaunch = TRUE;
+ break;
+ }
+ }
+
+ bCanPlayDrmContents = TRUE;
+ break;
+ }
+
+ if (pMpConstraintsInfo.constraints == MP_DRM_CONSTRAINT_UNLIMITED) {
+ bCanPlayDrmContents = TRUE;
+ }
+ }
+
+ if (!bHasValidRo
+ || (bWapLaunch && !mp_drm_check_expiration(szPath, bExpired))) {
+ VideoLogWarning("have no valid ro");
+
+ szFormat = MP_VPL_DRM_PS_CURRENTLY_LOCKED_UNLOCK_Q;
+ szMessage = g_strdup_printf(szFormat, szTitle);
+ mp_util_yes_no_popup(pUserData, NULL, szMessage,
+ mp_drm_popup_unlock_drm_yes_button_cb,
+ mp_drm_popup_unlock_drm_no_button_cb);
+
+ if (szMessage) {
+ free(szMessage);
+ szMessage = NULL;
+ }
+
+ return FALSE;
+ } else if (szMessage) {
+ VideoLogWarning("warning popup=[%s]", szMessage);
+
+ mp_util_yes_no_popup(pUserData, NULL, szMessage,
+ mp_drm_popup_unlock_drm_yes_button_cb,
+ mp_drm_popup_unlock_drm_no_button_cb);
+
+ if (szMessage) {
+ free(szMessage);
+ szMessage = NULL;
+ }
+
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/* DivX DRM*/
+
+bool mp_drm_is_divx(char *szPath)
+{
+
+ if (!szPath) {
+ VideoLogInfo("[ERR]");
+ return FALSE;
+ }
+
+
+ int nRet = DRM_RETURN_SUCCESS;
+ drm_bool_type_e is_drm = DRM_FALSE;
+
+ nRet = drm_is_drm_file(szPath, &is_drm);
+ if (nRet != DRM_RETURN_SUCCESS) {
+ VideoLogError("[ERR]drm_is_drm_file : %d", nRet);
+ return FALSE;
+ }
+
+ if (is_drm != DRM_TRUE) {
+ VideoLogError("It's not drm file.");
+ return FALSE;
+ }
+
+ drm_file_type_e drm_type = DRM_TYPE_UNDEFINED;
+
+ nRet = drm_get_file_type(szPath, &drm_type);
+ if (nRet != DRM_RETURN_SUCCESS) {
+ VideoLogError("[ERR]drm_get_file_type : %d", nRet);
+ return FALSE;
+ }
+
+ nDrmFileType = drm_type;
+
+ if (drm_type != DRM_TYPE_DIVX) {
+ VideoLogError("It's not DivX drm file : %d", drm_type);
+ return FALSE;
+ }
+
+ return TRUE;
+
+}
+
+bool mp_drm_check_divx_rental_expired(char *szPath, int *use_count,
+ int *total_count)
+{
+ VideoLogInfo("");
+
+ if (!szPath) {
+ VideoLogError("[ERR]");
+ return FALSE;
+ }
+
+ int nRet = DRM_RETURN_SUCCESS;
+ drm_constraint_info_s constraint_info;
+ memset(&constraint_info, 0, sizeof(drm_constraint_info_s));
+ nRet =
+ drm_get_constraint_info(szPath, DRM_PERMISSION_TYPE_PLAY,
+ &constraint_info);
+ if (nRet != DRM_RETURN_SUCCESS) {
+ VideoLogError("[ERR]drm_get_file_info : %d", nRet);
+ return FALSE;
+ }
+
+ VideoLogError("[TYPE]\n"
+ "unlimied : %d\n"
+ "is_count : %d\n"
+ "is_datetime : %d\n"
+ "is_interval : %d\n"
+ "is_timedcount : %d\n"
+ "is_accumulated : %d\n"
+ "is_individual : %d\n"
+ "is_system : %d\n"
+ "constraint_type : %d",
+ constraint_info.const_type.is_unlimited,
+ constraint_info.const_type.is_count,
+ constraint_info.const_type.is_datetime,
+ constraint_info.const_type.is_interval,
+ constraint_info.const_type.is_timedcount,
+ constraint_info.const_type.is_accumulated,
+ constraint_info.const_type.is_individual,
+ constraint_info.const_type.is_system,
+ constraint_info.const_type.constraint_type);
+
+ if (constraint_info.const_type.is_unlimited) {
+ VideoLogError("unlimited");
+ *use_count = DIVX_DRM_UNLIMIT_VALUE;
+ *total_count = DIVX_DRM_UNLIMIT_VALUE;
+ } else if (constraint_info.const_type.is_count) {
+
+ *use_count =
+ constraint_info.original_count -
+ constraint_info.remaining_count;
+ *total_count = constraint_info.original_count;
+
+ if (constraint_info.remaining_count <= 0) {
+ VideoLogError("[ERR]over");
+ return FALSE;
+ }
+ } else if (constraint_info.const_type.is_datetime) {
+ VideoLogError("[ERR]is_datetime");
+ } else if (constraint_info.const_type.is_interval) {
+ VideoLogError("[ERR]is_interval");
+ } else if (constraint_info.const_type.is_timedcount) {
+ VideoLogError("[ERR]is_timedcount");
+ } else if (constraint_info.const_type.is_accumulated) {
+ VideoLogError("[ERR]is_accumulated");
+ } else if (constraint_info.const_type.is_individual) {
+ VideoLogError("[ERR]is_individual");
+ } else if (constraint_info.const_type.is_system) {
+ VideoLogError("[ERR]is_system");
+ }
+
+ return TRUE;
+}
+
+void mp_drm_get_file_extension(char *szPath, char *szContentType,
+ int nContentTypeStrSize)
+{
+ if (!szContentType) {
+ VideoLogError("[ERR]");
+ return;
+ }
+
+ if (!szPath) {
+ VideoLogError("[ERR]");
+ return;
+ }
+
+ memset(szContentType, 0, nContentTypeStrSize);
+
+ drm_content_info_s content_info;
+ int nRet = DRM_RETURN_SUCCESS;
+ memset(&content_info, 0, sizeof(drm_content_info_s));
+
+ nRet = drm_get_content_info(szPath, &content_info);
+
+
+ VideoLogInfo("nRet : [%d] contentType: %s", nRet,
+ content_info.mime_type);
+
+ strncpy(szContentType, content_info.mime_type,
+ nContentTypeStrSize - 1);
+}
+#endif
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#include <Elementary.h>
+
+#include "mp-util.h"
+#include "mp-video-log.h"
+#include "mp-rotate-ctrl.h"
+#include "mp-video-list-view-main.h"
+
+
+static VideosRotateStatus_t nCurrentRotateStatus = VIDEOS_ROTATE_NONE;
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+void mp_rotate_ctrl_changed_cb(void *pUserData, Evas_Object * pObject,
+ void *pEventInfo)
+{
+ VideoLogInfo("Rotate state before changing : %d",
+ nCurrentRotateStatus);
+
+ switch (elm_win_rotation_get((Evas_Object *) pObject)) {
+ case 0:
+ nCurrentRotateStatus = VIDEOS_ROTATE_NONE;
+ break;
+ case 90:
+ nCurrentRotateStatus = VIDEOS_ROTATE_90;
+ break;
+ case 180:
+ nCurrentRotateStatus = VIDEOS_ROTATE_180;
+ break;
+ case 270:
+ nCurrentRotateStatus = VIDEOS_ROTATE_270;
+ break;
+ default:
+ nCurrentRotateStatus = VIDEOS_ROTATE_NONE;
+ }
+
+ /* If check top view, when back to main view from item view.
+ preview could not be updated. So we could not keep new preview item.
+ */
+ mp_list_view_rotate_view(LIST_UPDATE_TYPE_VIEW);
+
+}
+
+
+/*///////////////////////////////////////////////////////////////*/
+/* External APIs*/
+
+/**
+ *
+ */
+void mp_rotate_ctrl_init(void)
+{
+ VideoLogInfo("");
+
+ void *pWindowHandle = mp_util_get_main_window_handle();
+
+ if (pWindowHandle) {
+ if (elm_win_wm_rotation_supported_get(pWindowHandle)) {
+ /*int nRotateType[4] = { 0, 90, 180, 270 }; */
+ const int nRotateType[4] = { 0, 90, 180, 270 };
+ elm_win_wm_rotation_available_rotations_set(pWindowHandle,
+ nRotateType, 4);
+ }
+
+ nCurrentRotateStatus = VIDEOS_ROTATE_NONE;
+ }
+}
+
+/**
+ *
+ */
+void mp_rotate_ctrl_destroy(void)
+{
+ VideoLogInfo("");
+ nCurrentRotateStatus = VIDEOS_ROTATE_NONE;
+}
+
+/**
+ *
+ * @return
+ */
+VideosRotateStatus_t mp_rotate_ctrl_get_current_state(void)
+{
+
+ bool bValid = true;
+
+#ifdef ENABLE_LANDSCAPE
+ bValid = true;
+#endif
+ if (!bValid) {
+ VideoLogInfo("don't support rotated operation.");
+ return 0;
+ }
+
+ VideoLogInfo("Current rotate status : %d", nCurrentRotateStatus);
+
+ return nCurrentRotateStatus;
+}
+
+/**
+ *
+ * @return
+ */
+bool mp_rotate_ctrl_check_landspace()
+{
+ bool bLandSpace = FALSE;
+ if (nCurrentRotateStatus == VIDEOS_ROTATE_90
+ || nCurrentRotateStatus == VIDEOS_ROTATE_270) {
+ bLandSpace = TRUE;
+ }
+ return bLandSpace;
+}
+
+/**
+ *
+ * @param pWin
+ * @return
+ */
+bool mp_rotate_ctrl_check_landspace_by_win(Evas_Object * pWin)
+{
+ if (!pWin) {
+ VideoLogError("win is NULL.");
+ return FALSE;
+ }
+ bool bLandSpace = FALSE;
+ int bROtation = elm_win_rotation_get(pWin);
+ if (bROtation == 90 || bROtation == 270) {
+ bLandSpace = TRUE;
+ }
+ return bLandSpace;
+}
+
+/**
+ *
+ * @param nAngle
+ */
+void mp_rotate_ctrl_set_state(int nAngle)
+{
+ switch (nAngle) {
+ case 0:
+ nCurrentRotateStatus = VIDEOS_ROTATE_NONE;
+ break;
+ case 90:
+ nCurrentRotateStatus = VIDEOS_ROTATE_90;
+ break;
+ case 180:
+ nCurrentRotateStatus = VIDEOS_ROTATE_180;
+ break;
+ case 270:
+ nCurrentRotateStatus = VIDEOS_ROTATE_270;
+ break;
+ default:
+ nCurrentRotateStatus = VIDEOS_ROTATE_NONE;
+ }
+
+ VideoLogInfo("CHANGE ROTATE : %d", nCurrentRotateStatus);
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#include <app_preference.h>
+#include "mp-util.h"
+#ifdef ENABLE_DRM_FEATURE
+#include "mp-drm-ctrl.h"
+#endif
+#include "mp-video-log.h"
+#include "mp-util-config.h"
+
+#define PREF_MP_MULTI_PLAY_FLAG "preference/org.tizen.videos/multi_play"
+#define MP_UTIL_PREFERENCE_KEY_PREVIEW_URL_VIDEOS "preference/org.tizen.videos/preview_url_videos"
+
+/**
+ *
+ * @param bMultiPlay
+ * @return
+ */
+bool mp_util_config_set_multi_play_status(bool bMultiPlay)
+{
+ int nErr = 0;
+
+ nErr = preference_set_boolean(PREF_MP_MULTI_PLAY_FLAG, bMultiPlay);
+ if (nErr != 0) {
+ VideoLogError("SET PREF_MP_MULTI_PLAY_FLAG is fail [0x%x]", nErr);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param bMultiPlay
+ * @return
+ */
+bool mp_util_config_get_multi_play_status(bool * bMultiPlay)
+{
+ int nErr = 0;
+ bool nVal = 0;
+
+ nErr = preference_get_boolean(PREF_MP_MULTI_PLAY_FLAG, &nVal);
+ if (nErr != 0) {
+ VideoLogError("GET PREF_MP_MULTI_PLAY_FLAG is fail [0x%x]", nErr);
+ return FALSE;
+ }
+
+ *bMultiPlay = (nVal == 0) ? FALSE : TRUE;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param szPreviewUrl
+ * @return
+ */
+bool mp_util_config_set_preview(char *szPreviewUrl)
+{
+ VideoSecureLogInfo("szPreviewUrl : %s", szPreviewUrl);
+
+ bool bRet = FALSE;
+
+ if (szPreviewUrl) {
+ if (preference_set_string
+ (MP_UTIL_PREFERENCE_KEY_PREVIEW_URL_VIDEOS, szPreviewUrl)) {
+ VideoLogError("Fail to write szPreviewUrl.");
+ bRet = FALSE;
+ } else {
+ bRet = TRUE;
+ }
+ } else {
+ if (preference_set_string
+ (MP_UTIL_PREFERENCE_KEY_PREVIEW_URL_VIDEOS, "")) {
+ VideoLogError("Fail to write szPreviewUrl.");
+ bRet = FALSE;
+ } else {
+ bRet = TRUE;
+ }
+ }
+
+ return bRet;
+}
+
+/**
+ *
+ * @return
+ */
+char *mp_util_config_get_preview(void)
+{
+ char *pTmpVideoUrl = NULL;
+ int nErr = 0;
+
+ nErr =
+ preference_get_string(MP_UTIL_PREFERENCE_KEY_PREVIEW_URL_VIDEOS,
+ &pTmpVideoUrl);
+ if (nErr != 0 || !pTmpVideoUrl) {
+ VideoLogError("fail to retrive url [0x%x]", nErr);
+ return NULL;
+ }
+
+ if (strlen(pTmpVideoUrl) < 1) {
+ free(pTmpVideoUrl);
+ pTmpVideoUrl = NULL;
+ }
+
+ return pTmpVideoUrl;
+}
+
+/**
+ *
+ * @param callback
+ * @param pUserData
+ * @return
+ */
+bool mp_util_config_preview_key_changed_cb(preference_changed_cb callback,
+ void *pUserData)
+{
+ int nErr = 0;
+ nErr =
+ preference_set_changed_cb
+ (MP_UTIL_PREFERENCE_KEY_PREVIEW_URL_VIDEOS, callback, pUserData);
+ if (nErr != 0) {
+ VideoLogError("failed to register callback [0x%x]", nErr);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @return
+ */
+bool mp_util_config_ignore_preview_key_changed_cb()
+{
+ int nErr = 0;
+ nErr =
+ preference_unset_changed_cb
+ (MP_UTIL_PREFERENCE_KEY_PREVIEW_URL_VIDEOS);
+ if (nErr != 0) {
+ VideoLogError("failed to unregister [0x%x]", nErr);
+ return FALSE;
+ }
+
+ return TRUE;
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <glib.h>
+#include <Elementary.h>
+#include <media_content.h>
+
+#include <metadata_extractor.h>
+#include <image_util.h>
+#include <storage.h>
+
+#include "mp-util.h"
+#include "mp-video-log.h"
+#include "mp-video-value-define.h"
+#include "mp-util-media-service.h"
+#include "mp-video-view-popup-ctrl.h"
+#include "vp-util.h"
+
+#define CAMERA_FOLDER_PATH "/opt/usr/media/Camera"
+#define MEDIA_LAST_PLAYED_TIME "last_played_time"
+
+typedef struct _storage_rec_t storage_rec_s;
+
+struct _storage_rec_t {
+ int storage_id;
+ char *file_url;
+};
+
+
+static Eina_List *VideoFolderList = NULL;
+static Eina_List *VideoItemList = NULL;
+static Eina_List *RecentPlayedItemList = NULL;
+static int nWhatFileType = MP_MEDIA_VIDEO_FILE_TYPE;
+static int nTotalVideoTypeFiles = 0;
+static int nNumberOfVideoItemByType = 0;
+static media_content_noti_h noti_handle = NULL;
+
+/**
+ * Called to get information once for each supported storage.
+ * @param storage_id : The unique storage ID
+ * @param type : The type of the storage
+ * @param state : The current state of the storage
+ * @param path : The absolute path to the root directory of the storage
+ * @param user_data : The user data passed from the foreach function
+ * @return
+ */
+static bool _storage_device_supported_cb(int storage_id, storage_type_e type,
+ storage_state_e state, const char *path, void *user_data)
+{
+ storage_rec_s *storage_rec = (storage_rec_s *)user_data;
+
+ if (!(storage_rec && storage_rec->file_url && path)) {
+ return true;
+ }
+
+ if (strncmp(path, storage_rec->file_url, strlen(path)) == 0) {
+ storage_rec->storage_id = storage_id;
+ return false;
+ }
+ return true;
+}
+
+/**
+* Check if the give file is of 3gp format
+* @param szFileUri : file string
+* @return true/false
+*/
+bool mp_util_svc_is_3gp_file(char *szFileUri)
+{
+
+ int nRet = FALSE;
+ char *szTmpUriPath = szFileUri;
+
+ if (szTmpUriPath) {
+ char *szExt = NULL;
+ szExt = strrchr(szTmpUriPath, '.');
+
+ if ((szExt != NULL) && ((szExt + 1) != NULL)) {
+ if (!strcmp(szExt + 1, "3gp")) {
+ nRet = TRUE;
+ } else {
+ nRet = FALSE;
+ }
+ } else {
+ VideoLogError("No exist extension.");
+ nRet = FALSE;
+ }
+ } else {
+ VideoLogError("No exist file uri.");
+ nRet = FALSE;
+ }
+
+ return nRet;
+}
+
+/**
+* Iterate callback function to get media item
+* @param pVideoItem : media info
+* @param pUserData : folder item
+* @return result
+*/
+static bool mp_util_svc_iterate_for_get_video_item_cb(media_info_h
+ pVideoItem,
+ void *pUserData)
+{
+
+ media_info_h *pAssignFolderItem = (media_info_h *) pUserData;
+
+ if (pVideoItem != NULL) {
+ char *szTmpStr = NULL;
+ media_info_clone(pAssignFolderItem, pVideoItem);
+ media_info_get_display_name(*pAssignFolderItem, &szTmpStr);
+ MP_FREE_STRING(szTmpStr);
+ }
+
+ return FALSE;
+}
+
+/**
+* Iterate callback function to get media item
+* @param pMediaItem : media info
+* @param pUserData : folder item
+* @return result
+*/
+static bool mp_util_svc_iterate_for_video_item_list_view_cb(media_info_h
+ pMediaItem,
+ void
+ *pUserData)
+{
+ media_info_h pAssignMediaItem = NULL;
+ media_content_type_e nMediaType = MEDIA_CONTENT_TYPE_OTHERS;
+ if (!pMediaItem) {
+ return TRUE;
+ }
+ media_info_get_media_type(pMediaItem, &nMediaType);
+
+ if (nMediaType == MEDIA_CONTENT_TYPE_VIDEO) {
+ char *szTmpItemFilePath = NULL;
+ char szItemFilePath[STR_LEN_MAX] = { 0, };
+
+ media_info_get_file_path(pMediaItem, &szTmpItemFilePath);
+
+ if (szTmpItemFilePath == NULL) {
+ VideoLogError("Fail to get file path of media item.");
+ return TRUE;
+ }
+ strncpy(szItemFilePath, szTmpItemFilePath, STR_LEN_MAX - 1);
+
+ free(szTmpItemFilePath);
+ szTmpItemFilePath = NULL;
+
+ nTotalVideoTypeFiles++;
+
+ switch (nWhatFileType) {
+ case MP_MEDIA_VIDEO_FILE_TYPE:
+ if (mp_util_svc_is_3gp_file(szItemFilePath) == TRUE) {
+ return TRUE;
+ }
+ break;
+
+ case MP_MEDIA_CAMERA_FILE_TYPE:
+ if (mp_util_svc_is_3gp_file(szItemFilePath) == FALSE) {
+ return TRUE;
+ }
+ break;
+
+ case MP_MEDIA_ALL_FILE_TYPE:
+ break;
+ }
+
+ nNumberOfVideoItemByType++;
+
+ media_info_clone(&pAssignMediaItem, pMediaItem);
+ Eina_List **pList = (Eina_List **) pUserData;
+ *pList = eina_list_append(*pList, pAssignMediaItem);
+ }
+
+ return TRUE;
+}
+
+
+/**
+* Iterate callback function to get media item
+* @param pMediaItem : media info
+* @param pUserData : media item
+* @return result
+*/
+static bool mp_util_svc_iterate_cb(media_info_h pMediaItem,
+ void *pUserData)
+{
+ media_info_h pAssignMediaItem = NULL;
+ media_content_type_e nMediaType = MEDIA_CONTENT_TYPE_OTHERS;
+ if (!pMediaItem) {
+ return FALSE;
+ }
+ media_info_get_media_type(pMediaItem, &nMediaType);
+
+ if (nMediaType == MEDIA_CONTENT_TYPE_VIDEO) {
+ media_info_clone(&pAssignMediaItem, pMediaItem);
+ Eina_List **pList = (Eina_List **) pUserData;
+ *pList = eina_list_append(*pList, pAssignMediaItem);
+
+ nTotalVideoTypeFiles++;
+ nNumberOfVideoItemByType++;
+ }
+
+ return TRUE;
+}
+
+/**
+* Iterate callback function to get media item
+* @param pFolderItem : media info
+* @param pUserData : folder item
+* @return result
+*/
+static bool mp_util_svc_iterate_for_get_folder_cb(media_folder_h
+ pFolderItem,
+ void *pUserData)
+{
+ media_folder_h *pAssignFolderItem = (media_folder_h *) pUserData;
+
+ if (pFolderItem != NULL) {
+ char *szTmpStr = NULL;
+ media_folder_clone(pAssignFolderItem, pFolderItem);
+ media_folder_get_name(*pAssignFolderItem, &szTmpStr);
+
+ if (szTmpStr) {
+ free(szTmpStr);
+ szTmpStr = NULL;
+ }
+ }
+
+ return TRUE;
+}
+
+/**
+* callback function to compare and sort folders
+* @param pFolder1 : media folder
+* @param pFolder2 : media folder
+* @return result
+*/
+static int mp_util_svc_sort_for_folder_list_cb(const void *pFolder1,
+ const void *pFolder2)
+{
+ media_folder_h pFolderType1 = (media_folder_h) pFolder1;
+ media_folder_h pFolderType2 = (media_folder_h) pFolder2;
+
+ char *folderName1 = NULL;
+ char *folderName2 = NULL;
+
+ int nRet = 0;
+
+ media_folder_get_name(pFolderType1, &folderName1);
+ media_folder_get_name(pFolderType2, &folderName2);
+
+ if (!folderName1) {
+ MP_FREE_STRING(folderName2);
+ return (1);
+ }
+
+ if (!folderName2) {
+ MP_FREE_STRING(folderName1);
+ return (-1);
+ }
+
+ nRet = strcmp(folderName1, folderName2);
+
+ MP_FREE_STRING(folderName1);
+ MP_FREE_STRING(folderName2);
+
+ return nRet;
+}
+
+/**
+* iterate callback function for folders list items
+* @param pFolderItem : media folder
+* @param pUserData : folder item
+* @return result
+*/
+static bool mp_util_svc_iterate_for_folder_list_cb(media_folder_h
+ pFolderItem,
+ void *pUserData)
+{
+ media_folder_h pAssignFolderItem = NULL;
+ Eina_Compare_Cb pCmpFunc =
+ (Eina_Compare_Cb) mp_util_svc_sort_for_folder_list_cb;
+
+ media_folder_clone(&pAssignFolderItem, pFolderItem);
+ Eina_List **pList = (Eina_List **) pUserData;
+ *pList = eina_list_append(*pList, pAssignFolderItem);
+ *pList = eina_list_sort(*pList, eina_list_count(*pList), pCmpFunc);
+
+ return TRUE;
+}
+
+/**
+* iterate callback function for personal folders list items
+* @param pFolderItem : media folder
+* @param pUserData : folder item
+* @return result
+*/
+static bool mp_util_svc_iterate_for_personal_folder_list_cb(media_folder_h
+ pFolderItem,
+ void
+ *pUserData)
+{
+ media_folder_h pAssignFolderItem = NULL;
+ media_folder_clone(&pAssignFolderItem, pFolderItem);
+ Eina_List **pList = (Eina_List **) pUserData;
+ Eina_Compare_Cb pCmpFunc =
+ (Eina_Compare_Cb) mp_util_svc_sort_for_folder_list_cb;
+
+ char *szFolderPath = NULL;
+ if (pAssignFolderItem) {
+ media_folder_get_path(pAssignFolderItem, &szFolderPath);
+
+ if (szFolderPath) {
+ if (!strcmp(szFolderPath, VIDEO_UTIL_PERSONAL_HEAD_STR)) {
+ //Skip "/opt/storage/PersonalStorage" folder
+ MP_FREE_STRING(szFolderPath);
+
+ media_folder_destroy(pAssignFolderItem);
+ pAssignFolderItem = NULL;
+
+ return TRUE;
+ }
+ MP_FREE_STRING(szFolderPath);
+ }
+ }
+
+ *pList = eina_list_append(*pList, pAssignFolderItem);
+ *pList = eina_list_sort(*pList, eina_list_count(*pList), pCmpFunc);
+
+ return TRUE;
+}
+
+//
+// Internal function
+//
+
+//
+// External function
+//
+
+/**
+* Connect to media content
+*/
+void mp_util_svc_init_session(void)
+{
+ if (media_content_connect() != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogInfo("Fail to connect to media content db.");
+ } else {
+ VideoLogInfo("Success to connect to media content db.");
+ }
+}
+
+/**
+* Disconnect from media content
+*/
+void mp_util_svc_finish_session(void)
+{
+
+ if (media_content_disconnect() != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogInfo("Fail to disconnect from media content db.");
+ return;
+ }
+
+
+ VideoLogInfo("Success to disconnect from media content db.");
+ return;
+}
+
+/**
+* Free video items list
+* @return result
+*/
+bool mp_util_svc_destory_video_item_list(void)
+{
+ if (!VideoItemList) {
+ VideoLogError("VideoItemList is empty already.");
+ return FALSE;
+ }
+
+ media_info_h pTmpVideoItem = NULL;
+ EINA_LIST_FREE(VideoItemList, pTmpVideoItem) {
+ if (pTmpVideoItem) {
+ media_info_destroy(pTmpVideoItem);
+ }
+ }
+ nNumberOfVideoItemByType = 0;
+ VideoItemList = NULL;
+
+ return TRUE;
+}
+
+/**
+* Get list of videos from folder
+* @param szFolderPath : string
+* @param nSortType : sort type
+* @param nItemType : list view type
+* @return result
+*/
+bool mp_util_svc_extract_video_list_from_folder(char *szFolderPath,
+ int nSortType,
+ int nItemType)
+{
+ if (VideoItemList) {
+ VideoLogError("Already exist video list.");
+ return FALSE;
+ }
+
+ if (!szFolderPath) {
+ VideoLogError("[ERR]");
+ return FALSE;
+ }
+
+ filter_h m_FilterHandle = NULL;
+ media_folder_h m_FolderHandle = NULL;
+ media_content_order_e nOrderType = MEDIA_CONTENT_ORDER_ASC;
+
+ char *szFolderID = NULL;
+ char szTmpStr[STR_LEN_MAX] = { 0, };
+ char szOrderObj[STR_LEN_MAX] = { 0, };
+
+ nTotalVideoTypeFiles = 0;
+ nNumberOfVideoItemByType = 0;
+
+ switch (nSortType) {
+ case MP_MEDIA_SORT_BY_NONE:
+ case MP_MEDIA_SORT_BY_RECENTLY_VIEWED:
+ nOrderType = MEDIA_CONTENT_ORDER_DESC;
+ strncpy(szOrderObj, MEDIA_LAST_PLAYED_TIME, STR_LEN_MAX - 1);
+ break;
+
+ case MP_MEDIA_SORT_BY_RECENTLY_ADDED:
+ nOrderType = MEDIA_CONTENT_ORDER_DESC;
+ strncpy(szOrderObj, MEDIA_ADDED_TIME, STR_LEN_MAX - 1);
+ break;
+
+ case MP_MEDIA_SORT_BY_NAME:
+ nOrderType = MEDIA_CONTENT_ORDER_ASC;
+ strncpy(szOrderObj, MEDIA_DISPLAY_NAME, STR_LEN_MAX - 1);
+ break;
+
+ case MP_MEDIA_SORT_BY_SIZE:
+ nOrderType = MEDIA_CONTENT_ORDER_DESC;
+ strncpy(szOrderObj, MEDIA_SIZE, STR_LEN_MAX - 1);
+ break;
+
+ case MP_MEDIA_SORT_BY_TYPE:
+ nOrderType = MEDIA_CONTENT_ORDER_ASC;
+ strncpy(szOrderObj, MEDIA_MIME_TYPE, STR_LEN_MAX - 1);
+ break;
+
+ default:
+ nOrderType = MEDIA_CONTENT_ORDER_ASC;
+ strncpy(szOrderObj, MEDIA_LAST_PLAYED_TIME, STR_LEN_MAX - 1);
+ }
+
+ switch (nItemType) {
+ case MP_LIST_VIEW_ALL:
+ if (!mp_util_get_personal_status()) {
+ snprintf(szTmpStr, STR_LEN_MAX,
+ "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1 OR MEDIA_STORAGE_TYPE=101) and FOLDER_PATH = \"%s\" and FOLDER_PATH NOT LIKE \"%s%%\"",
+ szFolderPath, VIDEO_UTIL_PERSONAL_HEAD_STR);
+ } else {
+ snprintf(szTmpStr, STR_LEN_MAX,
+ "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1) and FOLDER_PATH = \"%s\"",
+ szFolderPath);
+ }
+ break;
+
+ case MP_LIST_VIEW_PHONE:
+ if (!mp_util_get_personal_status()) {
+ snprintf(szTmpStr, STR_LEN_MAX,
+ "MEDIA_TYPE = 1 and (MEDIA_STORAGE_TYPE = 0 OR MEDIA_STORAGE_TYPE=1) and FOLDER_PATH = \"%s\" and FOLDER_PATH NOT LIKE \"%s%%\"",
+ szFolderPath, VIDEO_UTIL_PERSONAL_HEAD_STR);
+ } else {
+ snprintf(szTmpStr, STR_LEN_MAX,
+ "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1) and FOLDER_PATH = \"%s\"",
+ szFolderPath);
+ }
+ break;
+
+ case MP_LIST_VIEW_CLOUD:
+ if (!mp_util_get_personal_status()) {
+ snprintf(szTmpStr, STR_LEN_MAX,
+ "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1 OR MEDIA_STORAGE_TYPE=101) and MEDIA_STORAGE_TYPE = 101 and FOLDER_PATH = \"%s\" and FOLDER_PATH NOT LIKE \"%s%%\"",
+ szFolderPath, VIDEO_UTIL_PERSONAL_HEAD_STR);
+ } else {
+ snprintf(szTmpStr, STR_LEN_MAX,
+ "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1) and MEDIA_STORAGE_TYPE = 101 and FOLDER_PATH = \"%s\"",
+ szFolderPath);
+ }
+ break;
+
+ default:
+ if (!mp_util_get_personal_status()) {
+ snprintf(szTmpStr, STR_LEN_MAX,
+ "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1 OR MEDIA_STORAGE_TYPE=101) and FOLDER_PATH = \"%s\" and FOLDER_PATH NOT LIKE \"%s%%\"",
+ szFolderPath, VIDEO_UTIL_PERSONAL_HEAD_STR);
+ } else {
+ snprintf(szTmpStr, STR_LEN_MAX,
+ "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1) and FOLDER_PATH = \"%s\"",
+ szFolderPath);
+ }
+ break;
+ }
+
+ if (media_filter_create(&m_FilterHandle) != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("Fail to create media filter handle.");
+ return FALSE;
+ }
+
+ if (media_filter_set_condition
+ (m_FilterHandle, szTmpStr,
+ MEDIA_CONTENT_COLLATE_DEFAULT) != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("Fail to set filter condition.");
+ media_filter_destroy(m_FilterHandle);
+ return FALSE;
+ }
+
+ if (media_folder_foreach_folder_from_db
+ (m_FilterHandle, mp_util_svc_iterate_for_get_folder_cb,
+ &m_FolderHandle) != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("Fail media_folder_foreach_folder_from_db().");
+ media_filter_destroy(m_FilterHandle);
+ return FALSE;
+ }
+
+ if (!m_FolderHandle) {
+ VideoLogError("Fail to get folder handle.");
+ media_filter_destroy(m_FilterHandle);
+ return FALSE;
+ }
+
+ memset(szTmpStr, 0, STR_LEN_MAX);
+ snprintf(szTmpStr, STR_LEN_MAX,
+ "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1 OR MEDIA_STORAGE_TYPE=101)");
+ if (media_filter_set_condition
+ (m_FilterHandle, szTmpStr,
+ MEDIA_CONTENT_COLLATE_DEFAULT) != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("Fail to set filter condition.");
+ media_filter_destroy(m_FilterHandle);
+ return FALSE;
+ }
+
+ if (media_filter_set_order
+ (m_FilterHandle, nOrderType, szOrderObj,
+ MEDIA_CONTENT_COLLATE_NOCASE) != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("Fail to set order.");
+ media_filter_destroy(m_FilterHandle);
+
+ return FALSE;
+ }
+
+ if (media_folder_get_folder_id(m_FolderHandle, &szFolderID) !=
+ MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("Fail to get folder id.");
+ media_filter_destroy(m_FilterHandle);
+
+ MP_FREE_STRING(szFolderID);
+ return FALSE;
+ }
+
+ if (media_folder_foreach_media_from_db
+ (szFolderID, m_FilterHandle, mp_util_svc_iterate_cb,
+ &VideoItemList) != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("Fail to set order.");
+ media_filter_destroy(m_FilterHandle);
+
+ MP_FREE_STRING(szFolderID);
+ return FALSE;
+ }
+
+ if (media_filter_destroy(m_FilterHandle) != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("Fail to destroy media filter handle.");
+ }
+
+ MP_FREE_STRING(szFolderID);
+
+ return TRUE;
+}
+
+/**
+* Get thumbnail for folder
+* @param nVideoFolderIndex : folder index
+* @param nSortType : sort type
+* @return thumbnail path
+*/
+char *mp_util_get_folder_thumbnail(int nVideoFolderIndex, int nSortType)
+{
+ if (!VideoFolderList) {
+ VideoLogError("[ERR]");
+ return NULL;
+ }
+
+ media_folder_h m_FolderHandle = NULL;
+ m_FolderHandle =
+ (media_folder_h) eina_list_nth(VideoFolderList, nVideoFolderIndex);
+ if (!m_FolderHandle) {
+ VideoLogError("Fail to get folder handle.");
+ return NULL;
+ }
+
+ media_info_h pVideoItem = NULL;
+ char *szThumbnailPath = NULL;
+ filter_h m_FilterHandle = NULL;
+ media_content_order_e nOrderType = MEDIA_CONTENT_ORDER_ASC;
+ char *szFolderID = NULL;
+ char szOrderObj[STR_LEN_MAX] = { 0, };
+ char szTmpStr[STR_LEN_MAX] = { 0, };
+
+ switch (nSortType) {
+ case MP_MEDIA_SORT_BY_NONE:
+ case MP_MEDIA_SORT_BY_RECENTLY_VIEWED:
+ nOrderType = MEDIA_CONTENT_ORDER_DESC;
+ strncpy(szOrderObj, MEDIA_LAST_PLAYED_TIME, STR_LEN_MAX - 1);
+ break;
+
+ case MP_MEDIA_SORT_BY_RECENTLY_ADDED:
+ nOrderType = MEDIA_CONTENT_ORDER_DESC;
+ strncpy(szOrderObj, MEDIA_ADDED_TIME, STR_LEN_MAX - 1);
+ break;
+
+ case MP_MEDIA_SORT_BY_NAME:
+ nOrderType = MEDIA_CONTENT_ORDER_ASC;
+ strncpy(szOrderObj, MEDIA_DISPLAY_NAME, STR_LEN_MAX - 1);
+ break;
+
+ case MP_MEDIA_SORT_BY_SIZE:
+ nOrderType = MEDIA_CONTENT_ORDER_DESC;
+ strncpy(szOrderObj, MEDIA_SIZE, STR_LEN_MAX - 1);
+ break;
+
+ case MP_MEDIA_SORT_BY_TYPE:
+ nOrderType = MEDIA_CONTENT_ORDER_ASC;
+ strncpy(szOrderObj, MEDIA_MIME_TYPE, STR_LEN_MAX - 1);
+ break;
+
+ default:
+ nOrderType = MEDIA_CONTENT_ORDER_ASC;
+ strncpy(szOrderObj, MEDIA_LAST_PLAYED_TIME, STR_LEN_MAX - 1);
+ }
+
+ if (media_filter_create(&m_FilterHandle) != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("Fail to create media filter handle.");
+ return NULL;
+ }
+
+ memset(szTmpStr, 0, STR_LEN_MAX);
+ snprintf(szTmpStr, STR_LEN_MAX,
+ "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1 OR MEDIA_STORAGE_TYPE=101 OR MEDIA_STORAGE_TYPE=121)");
+ if (media_filter_set_condition
+ (m_FilterHandle, szTmpStr,
+ MEDIA_CONTENT_COLLATE_DEFAULT) != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("Fail to set filter condition.");
+ media_filter_destroy(m_FilterHandle);
+ return NULL;
+ }
+
+ if (media_filter_set_order
+ (m_FilterHandle, nOrderType, szOrderObj,
+ MEDIA_CONTENT_COLLATE_NOCASE) != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("Fail to set order.");
+ media_filter_destroy(m_FilterHandle);
+
+ return NULL;
+ }
+
+ if (media_folder_get_folder_id(m_FolderHandle, &szFolderID) !=
+ MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("Fail to get folder id.");
+ media_filter_destroy(m_FilterHandle);
+
+ MP_FREE_STRING(szFolderID);
+ return NULL;
+ }
+
+ if (media_folder_foreach_media_from_db
+ (szFolderID, m_FilterHandle,
+ mp_util_svc_iterate_for_get_video_item_cb,
+ &pVideoItem) != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("Fail to set order.");
+ media_filter_destroy(m_FilterHandle);
+
+ MP_FREE_STRING(szFolderID);
+ return NULL;
+ }
+
+ if (media_filter_destroy(m_FilterHandle) != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("Fail to destroy media filter handle.");
+ }
+
+ if (pVideoItem) {
+ media_info_get_thumbnail_path(pVideoItem, &szThumbnailPath);
+ VideoSecureLogInfo("Video thumbnail file path : %s",
+ szThumbnailPath);
+ media_info_destroy(pVideoItem);
+ }
+
+ MP_FREE_STRING(szFolderID);
+
+ return szThumbnailPath;
+}
+
+/**
+* Get video list by item type
+* @param nSortType : sort type
+* @param nItemType : list view type
+* @return result
+*/
+bool mp_util_svc_extract_video_list_by_item_type(int nSortType,
+ int nItemType)
+{
+ if (VideoItemList) {
+ VideoLogError("Already exist video list.");
+ return FALSE;
+ }
+
+ nWhatFileType = MP_MEDIA_ALL_FILE_TYPE;
+
+ filter_h m_FilterHandle = NULL;
+ media_content_order_e nOrderType = MEDIA_CONTENT_ORDER_ASC;
+ char szTmpStr[STR_LEN_MAX] = { 0, };
+ char szOrderObj[STR_LEN_MAX] = { 0, };
+
+ nNumberOfVideoItemByType = 0;
+
+ switch (nSortType) {
+ case MP_MEDIA_SORT_BY_NONE:
+ case MP_MEDIA_SORT_BY_RECENTLY_VIEWED:
+ nOrderType = MEDIA_CONTENT_ORDER_DESC;
+ strncpy(szOrderObj, MEDIA_LAST_PLAYED_TIME, STR_LEN_MAX - 1);
+ break;
+
+ case MP_MEDIA_SORT_BY_RECENTLY_ADDED:
+ nOrderType = MEDIA_CONTENT_ORDER_DESC;
+ strncpy(szOrderObj, MEDIA_ADDED_TIME, STR_LEN_MAX - 1);
+ break;
+
+ case MP_MEDIA_SORT_BY_NAME:
+ nOrderType = MEDIA_CONTENT_ORDER_ASC;
+ strncpy(szOrderObj, MEDIA_DISPLAY_NAME, STR_LEN_MAX - 1);
+ break;
+
+ case MP_MEDIA_SORT_BY_SIZE:
+ nOrderType = MEDIA_CONTENT_ORDER_DESC;
+ strncpy(szOrderObj, MEDIA_SIZE, STR_LEN_MAX - 1);
+ break;
+
+ case MP_MEDIA_SORT_BY_TYPE:
+ nOrderType = MEDIA_CONTENT_ORDER_ASC;
+ strncpy(szOrderObj, MEDIA_MIME_TYPE, STR_LEN_MAX - 1);
+ break;
+
+ default:
+ nOrderType = MEDIA_CONTENT_ORDER_ASC;
+ strncpy(szOrderObj, MEDIA_LAST_PLAYED_TIME, STR_LEN_MAX - 1);
+ }
+
+ switch (nItemType) {
+ case MP_LIST_VIEW_ALL:
+ if (!mp_util_get_personal_status()) {
+ snprintf(szTmpStr, STR_LEN_MAX,
+ "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1 OR MEDIA_STORAGE_TYPE=101 OR MEDIA_STORAGE_TYPE=121) and MEDIA_PATH not like \"%s%%\"",
+ VIDEO_UTIL_PERSONAL_HEAD_STR);
+ } else {
+ snprintf(szTmpStr, STR_LEN_MAX,
+ "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1 OR MEDIA_STORAGE_TYPE=101 OR MEDIA_STORAGE_TYPE=121)");
+ }
+ break;
+
+ case MP_LIST_VIEW_PHONE:
+ if (!mp_util_get_personal_status()) {
+ snprintf(szTmpStr, STR_LEN_MAX,
+ "MEDIA_TYPE = 1 and (MEDIA_STORAGE_TYPE = 0 OR MEDIA_STORAGE_TYPE=1) and MEDIA_PATH not like \"%s%%\"",
+ VIDEO_UTIL_PERSONAL_HEAD_STR);
+ } else {
+ snprintf(szTmpStr, STR_LEN_MAX,
+ "MEDIA_TYPE = 1 and (MEDIA_STORAGE_TYPE = 0 OR MEDIA_STORAGE_TYPE=1)");
+ }
+
+ break;
+
+ case MP_LIST_VIEW_CLOUD:
+ if (!mp_util_get_personal_status()) {
+ snprintf(szTmpStr, STR_LEN_MAX,
+ "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1 OR MEDIA_STORAGE_TYPE=101) and MEDIA_STORAGE_TYPE = 101 and MEDIA_PATH not like \"%s%%\"",
+ VIDEO_UTIL_PERSONAL_HEAD_STR);
+ } else {
+ snprintf(szTmpStr, STR_LEN_MAX,
+ "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1 OR MEDIA_STORAGE_TYPE=101) and MEDIA_STORAGE_TYPE = 101");
+ }
+
+ break;
+
+ default:
+ if (!mp_util_get_personal_status()) {
+ snprintf(szTmpStr, STR_LEN_MAX,
+ "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1 OR MEDIA_STORAGE_TYPE=101 OR MEDIA_STORAGE_TYPE=121) and MEDIA_PATH not like \"%s%%\"",
+ VIDEO_UTIL_PERSONAL_HEAD_STR);
+ } else {
+ snprintf(szTmpStr, STR_LEN_MAX,
+ "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1 OR MEDIA_STORAGE_TYPE=101 OR MEDIA_STORAGE_TYPE=121)");
+ }
+ break;
+ }
+ VideoLogInfo("MEDIA_PATH not like %s", szTmpStr);
+
+ if (media_filter_create(&m_FilterHandle) != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogInfo("Fail to create media filter handle.");
+ return FALSE;
+ }
+ if (media_filter_set_condition
+ (m_FilterHandle, szTmpStr,
+ MEDIA_CONTENT_COLLATE_DEFAULT) != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("Fail to set filter condition.");
+ media_filter_destroy(m_FilterHandle);
+ return FALSE;
+ }
+
+ if (media_filter_set_order
+ (m_FilterHandle, nOrderType, szOrderObj,
+ MEDIA_CONTENT_COLLATE_NOCASE) != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("Fail to set order.");
+ media_filter_destroy(m_FilterHandle);
+ return FALSE;
+ }
+
+ if (media_info_foreach_media_from_db
+ (m_FilterHandle, mp_util_svc_iterate_for_video_item_list_view_cb,
+ &VideoItemList) != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError
+ ("Fail to get video item list with filter condition.");
+ media_filter_destroy(m_FilterHandle);
+ return FALSE;
+ }
+
+ if (media_filter_destroy(m_FilterHandle) != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("Fail to destroy media filter handle.");
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+* Get display name of video items
+* @param keyword : keyword to match
+* @param index_list : resulting list
+* @return result
+*/
+bool mp_util_svc_index_list_for_search_view(const char *keyword,
+ void **index_list)
+{
+ media_info_h pVideoItem = NULL;
+ Eina_List *pIterateList = NULL;
+ Eina_List *pSearchList = NULL;
+ int index = 0;
+
+ if (!VideoItemList) {
+ VideoLogError("VideoItemList IS null");
+ return FALSE;
+ }
+
+ if (!keyword) {
+ VideoLogError("keyword IS null");
+ return FALSE;
+ }
+
+ if (!index_list) {
+ VideoLogError("List IS null");
+ return FALSE;
+ }
+
+ EINA_LIST_FOREACH(VideoItemList, pIterateList, pVideoItem) {
+ if (pVideoItem) {
+ char *szTitle = NULL;
+ media_info_get_display_name(pVideoItem, &szTitle);
+ if (szTitle && mp_util_str_str_same_case(szTitle, keyword)) {
+ pSearchList =
+ eina_list_append(pSearchList, (const void *) index);
+ }
+ MP_FREE_STRING(szTitle);
+ }
+ index++;
+ }
+ *index_list = pSearchList;
+
+ return TRUE;
+}
+
+/**
+* Free video list
+*/
+void mp_util_svc_destory_video_list(void)
+{
+
+ if (VideoFolderList) {
+ mp_util_svc_destory_video_folder_list();
+ VideoFolderList = NULL;
+ }
+
+ if (VideoItemList) {
+ mp_util_svc_destory_video_item_list();
+ VideoItemList = NULL;
+ }
+
+ if (RecentPlayedItemList) {
+ mp_util_svc_destory_last_played_item_list();
+ RecentPlayedItemList = NULL;
+ }
+
+ nTotalVideoTypeFiles = 0;
+ nNumberOfVideoItemByType = 0;
+}
+
+/**
+* Remove item from video list
+* @param nVideoItemIndex : index to remove
+* @return result
+*/
+bool mp_util_svc_remove_item_by_list_index(int nVideoItemIndex)
+{
+
+ if (!VideoItemList) {
+ VideoLogError("pList is empty already.");
+ return FALSE;
+ }
+
+ media_info_h pItem = eina_list_nth(VideoItemList, nVideoItemIndex);
+
+ if (pItem) {
+ char *szMediaID = NULL;
+ char *szMediaPath = NULL;
+ media_info_get_media_id(pItem, &szMediaID);
+ if (szMediaID) {
+ mp_util_delete_wall_file(szMediaID);
+ media_info_get_file_path(pItem, &szMediaPath);
+ media_content_scan_file(szMediaPath);
+ VideoItemList = eina_list_remove(VideoItemList, pItem);
+ free(szMediaID);
+ free(szMediaPath);
+ media_info_destroy(pItem);
+ nNumberOfVideoItemByType--;
+ } else {
+ VideoLogError("No exist media ID in index %d of list.",
+ nVideoItemIndex);
+ return FALSE;
+ }
+ } else {
+ VideoLogError("Fail to remove item in media svc and list.");
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+
+/**
+* Remove item from db
+* @param nVideoItemIndex : index to remove
+* @return result
+*/
+bool mp_util_svc_remove_item_from_db_by_list_index(int nVideoItemIndex)
+{
+
+ if (!VideoItemList) {
+ VideoLogError("pList is empty already.");
+ return FALSE;
+ }
+
+ media_info_h pItem = eina_list_nth(VideoItemList, nVideoItemIndex);
+
+ if (pItem) {
+ char *szMediaID = NULL;
+ char *szMediaPath = NULL;
+ media_info_get_media_id(pItem, &szMediaID);
+ if (szMediaID) {
+ mp_util_delete_wall_file(szMediaID);
+ media_info_get_file_path(pItem, &szMediaPath);
+ media_content_scan_file(szMediaPath);
+ free(szMediaID);
+ free(szMediaPath);
+ } else {
+ VideoLogError("No exist media ID in index %d of list.",
+ nVideoItemIndex);
+ return FALSE;
+ }
+ } else {
+ VideoLogError("Fail to remove item in media svc and list.");
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+* Get ID of the video item with specified url
+* @param szPath : path of video
+* @param szVideoID : resulting ID
+* @return result
+*/
+
+bool mp_util_svc_get_video_id_by_video_url(const char *szPath,
+ char **szVideoID)
+{
+ media_info_h pVideoItem = NULL;
+ filter_h m_FilterHandle = NULL;
+ char szTmpStr[STR_LEN_MAX] = { 0, };
+ bool bRet = FALSE;
+ int ret = -1;
+
+ if (media_filter_create(&m_FilterHandle) != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogInfo("Fail to create media filter handle.");
+ bRet = FALSE;
+ }
+
+ snprintf(szTmpStr, STR_LEN_MAX, "MEDIA_PATH = \"%s\"", szPath);
+ if (media_filter_set_condition(m_FilterHandle,
+ szTmpStr,
+ MEDIA_CONTENT_COLLATE_DEFAULT) !=
+ MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("Fail to set filter condition.");
+ media_filter_destroy(m_FilterHandle);
+ m_FilterHandle = NULL;
+ bRet = FALSE;
+ }
+
+ if (media_info_foreach_media_from_db(m_FilterHandle,
+ mp_util_svc_iterate_for_get_video_item_cb,
+ &pVideoItem) !=
+ MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError
+ ("Fail to get video item list with filter condition.");
+ if (m_FilterHandle) {
+ media_filter_destroy(m_FilterHandle);
+ m_FilterHandle = NULL;
+ }
+ bRet = FALSE;
+ }
+
+ if (m_FilterHandle) {
+ ret = media_filter_destroy(m_FilterHandle);
+ if (ret != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("Fail to destroy media filter handle.");
+ m_FilterHandle = NULL;
+ }
+ bRet = FALSE;
+ }
+
+ if (pVideoItem) {
+ char *szMediaID = NULL;
+ media_info_get_media_id(pVideoItem, &szMediaID);
+ *szVideoID = szMediaID;
+ media_info_destroy(pVideoItem);
+ bRet = TRUE;
+ } else {
+ bRet = FALSE;
+ }
+
+ return bRet;
+}
+
+/**
+* Get thumbnail of the video with specified url
+* @param szMediaUri : path of video
+* @return thumbnail path
+*/
+char *mp_util_svc_get_video_Thumbnail_by_video_url(const char *szMediaUri)
+{
+ if (!szMediaUri) {
+ VideoLogError("No exist video path.");
+ return NULL;
+ }
+
+ media_info_h pVideoItem = NULL;
+ filter_h m_FilterHandle = NULL;
+ char *szThumbnailPath = NULL;
+ char szTmpStr[STR_LEN_MAX] = { 0, };
+
+ if (media_filter_create(&m_FilterHandle) != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("Fail to create media filter handle.");
+ return FALSE;
+ }
+
+ memset(szTmpStr, 0, STR_LEN_MAX);
+ snprintf(szTmpStr, STR_LEN_MAX,
+ "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1 OR MEDIA_STORAGE_TYPE=101 OR MEDIA_STORAGE_TYPE=121) AND MEDIA_PATH = \"%s\"",
+ szMediaUri);
+ if (media_filter_set_condition
+ (m_FilterHandle, szTmpStr,
+ MEDIA_CONTENT_COLLATE_DEFAULT) != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("Fail to set filter condition.");
+ media_filter_destroy(m_FilterHandle);
+ return FALSE;
+ }
+
+ if (media_info_foreach_media_from_db
+ (m_FilterHandle, mp_util_svc_iterate_for_get_video_item_cb,
+ &pVideoItem) != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError
+ ("Fail to get video item list with filter condition.");
+ media_filter_destroy(m_FilterHandle);
+ return FALSE;
+ }
+
+ if (media_filter_destroy(m_FilterHandle) != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("Fail to destroy media filter handle.");
+ return FALSE;
+ }
+
+ if (pVideoItem) {
+ media_info_get_thumbnail_path(pVideoItem, &szThumbnailPath);
+ VideoSecureLogInfo("Video thumbnail file path : %s",
+ szThumbnailPath);
+ media_info_destroy(pVideoItem);
+ }
+
+ return szThumbnailPath;
+}
+
+/**
+* Set last played time of video with specified url
+* @param szMediaUri : path of video
+* @param nPosition : last played time
+* @return
+*/
+
+void mp_util_svc_set_video_last_played_time_by_url(char *szMediaUri,
+ unsigned int nPosition)
+{
+ if (!szMediaUri) {
+ VideoLogError("No exist media uri.");
+ return;
+ }
+
+ VideoSecureLogInfo("szMediaUri : %s, nLastPlayedTime : %d", szMediaUri,
+ nPosition);
+
+ media_info_h pVideoItem = NULL;
+ filter_h m_FilterHandle = NULL;
+ char szTmpStr[STR_LEN_MAX] = { 0, };
+
+ if (media_filter_create(&m_FilterHandle) != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("Fail to create media filter handle.");
+ return;
+ }
+
+ snprintf(szTmpStr, STR_LEN_MAX,
+ "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1 OR MEDIA_STORAGE_TYPE=101 OR MEDIA_STORAGE_TYPE=121) AND MEDIA_PATH = \"%s\"",
+ szMediaUri);
+ if (media_filter_set_condition
+ (m_FilterHandle, szTmpStr,
+ MEDIA_CONTENT_COLLATE_DEFAULT) != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("Fail to set filter condition.");
+ media_filter_destroy(m_FilterHandle);
+ return;
+ }
+
+ if (media_info_foreach_media_from_db
+ (m_FilterHandle, mp_util_svc_iterate_for_get_video_item_cb,
+ &pVideoItem) != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError
+ ("Fail to get video item list with filter condition.");
+ media_filter_destroy(m_FilterHandle);
+ return;
+ }
+
+ if (media_filter_destroy(m_FilterHandle) != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("Fail to destroy media filter handle.");
+ return;
+ }
+
+ video_meta_h pVideoMetaHandle = NULL;
+
+ if (pVideoItem) {
+ if (media_info_get_video(pVideoItem, &pVideoMetaHandle) !=
+ MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("Fail to get pVideoMetaHandle.");
+ } else {
+ if (pVideoMetaHandle) {
+ // video_meta_update_to_db(pVideoMetaHandle); // Deprecated API, Parent function not called.
+ video_meta_destroy(pVideoMetaHandle);
+ } else {
+ VideoLogError("No exist pVideoMetaHandle");
+ }
+ }
+ media_info_destroy(pVideoItem);
+ }
+}
+
+
+/**
+* Get video path
+* @param nVideoItemIndex : index of the video
+* @return path of the video
+*/
+char *mp_util_svc_get_video_url(const int nVideoItemIndex)
+{
+ if (!VideoItemList) {
+ VideoLogError("Not exist video item list handle.");
+ return NULL;
+ }
+
+ if (nVideoItemIndex < 0
+ || nVideoItemIndex >=
+ mp_util_svc_get_video_list_size_for_checking_index()) {
+ VideoLogError("Error number of list item.");
+ return NULL;
+ }
+
+ char *szVideoItemFilePath = NULL;
+ media_info_h pVideoItem =
+ (media_info_h) eina_list_nth(VideoItemList, nVideoItemIndex);
+
+ if (pVideoItem) {
+ media_info_get_file_path(pVideoItem, &szVideoItemFilePath);
+ VideoSecureLogInfo("szVideoItemFilePath : %s",
+ szVideoItemFilePath);
+ }
+
+ return szVideoItemFilePath;
+}
+
+/**
+* Get video thumbnail
+* @param nVideoItemIndex : index of the video
+* @return path of the video thumbnail
+*/
+char *mp_util_svc_get_video_thumbnail(const int nVideoItemIndex)
+{
+ if (!VideoItemList) {
+ VideoLogError("Not exist video item list handle.");
+ return NULL;
+ }
+
+ if (nVideoItemIndex < 0
+ || nVideoItemIndex >=
+ mp_util_svc_get_video_list_size_for_checking_index()) {
+ VideoLogError("Error number of list item.");
+ return NULL;
+ }
+
+ char *szVideoItemThumbnailPath = NULL;
+
+ media_info_h pVideoItem =
+ (media_info_h) eina_list_nth(VideoItemList, nVideoItemIndex);
+
+ if (pVideoItem) {
+ media_info_get_thumbnail_path(pVideoItem,
+ &szVideoItemThumbnailPath);
+ }
+
+ VideoSecureLogInfo("pThumbIconUri = %s", szVideoItemThumbnailPath);
+
+ return szVideoItemThumbnailPath;
+}
+
+
+/**
+* Get video title
+* @param nVideoItemIndex : index of the video
+* @return title of the video
+*/
+char *mp_util_svc_get_video_title(const int nVideoItemIndex)
+{
+ if (!VideoItemList) {
+ VideoLogError("Not exist video item list handle.");
+ return NULL;
+ }
+
+ char *szTitle = NULL;
+
+ if (!szTitle) {
+ media_info_h pVideoItem =
+ (media_info_h) eina_list_nth(VideoItemList, nVideoItemIndex);
+
+ if (pVideoItem) {
+ media_info_get_display_name(pVideoItem, &szTitle);
+ }
+ }
+
+ return szTitle;
+}
+
+/**
+* Get video duration
+* @param nVideoItemIndex : index of the video
+* @return duration of the video
+*/
+int mp_util_svc_get_video_duration_time(const int nVideoItemIndex)
+{
+ if (!VideoItemList) {
+ VideoLogError("Not exist video item list handle.");
+ return 0;
+ }
+
+ if (nVideoItemIndex < 0
+ || nVideoItemIndex >=
+ mp_util_svc_get_video_list_size_for_checking_index()) {
+ VideoLogError("Error number of list item.");
+ return 0;
+ }
+
+ int nDurationTime = 0;
+ media_info_h pVideoItem =
+ (media_info_h) eina_list_nth(VideoItemList, nVideoItemIndex);
+
+ if (pVideoItem) {
+ video_meta_h pVideoMetaHandle = NULL;
+ if (media_info_get_video(pVideoItem, &pVideoMetaHandle) ==
+ MEDIA_CONTENT_ERROR_NONE) {
+ if (video_meta_get_duration(pVideoMetaHandle, &nDurationTime)
+ != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("fail to get duration of video metadata");
+ }
+
+ video_meta_destroy(pVideoMetaHandle);
+ }
+ }
+
+ return nDurationTime;
+}
+
+/**
+* Get video item size
+* @param nVideoItemIndex : index of the video
+* @return video file size
+*/
+unsigned long long mp_util_svc_get_video_item_size(const int
+ nVideoItemIndex)
+{
+ if (!VideoItemList) {
+ VideoLogError("Not exist video item list handle.");
+ return 0;
+ }
+
+ if (!VideoItemList) {
+ VideoLogError("Not exist video item list handle.");
+ return 0;
+ }
+
+ unsigned long long nSize = 0;
+
+ media_info_h pVideoItem =
+ (media_info_h) eina_list_nth(VideoItemList, nVideoItemIndex);
+ if (pVideoItem) {
+ media_info_get_size(pVideoItem, &nSize);
+ }
+
+ return nSize;
+
+}
+
+/**
+* Get video item width
+* @param nVideoItemIndex : index of the video
+* @return video width
+*/
+int mp_util_svc_get_video_item_width(const int nVideoItemIndex)
+{
+ if (!VideoItemList) {
+ VideoLogError("Not exist video item list handle.");
+ return 0;
+ }
+
+ int nWidth = 0;
+ media_info_h pVideoItem =
+ (media_info_h) eina_list_nth(VideoItemList, nVideoItemIndex);
+ video_meta_h pVideoMetaHandle = NULL;
+
+ if (pVideoItem) {
+ if (media_info_get_video(pVideoItem, &pVideoMetaHandle) !=
+ MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("Fail to get pVideoMetaHandle.");
+ } else {
+ if (pVideoMetaHandle) {
+
+ video_meta_get_width(pVideoMetaHandle, &nWidth);
+ video_meta_destroy(pVideoMetaHandle);
+ } else {
+ VideoLogError("No exist pVideoMetaHandle");
+ }
+ }
+ }
+
+ return nWidth;
+}
+
+/**
+* Get video item height
+* @param nVideoItemIndex : index of the video
+* @return video height
+*/
+int mp_util_svc_get_video_item_height(const int nVideoItemIndex)
+{
+ if (!VideoItemList) {
+ VideoLogError("Not exist video item list handle.");
+ return 0;
+ }
+
+ int nHeight = 0;
+ media_info_h pVideoItem =
+ (media_info_h) eina_list_nth(VideoItemList, nVideoItemIndex);
+ video_meta_h pVideoMetaHandle = NULL;
+
+ if (pVideoItem) {
+ if (media_info_get_video(pVideoItem, &pVideoMetaHandle) !=
+ MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("Fail to get pVideoMetaHandle.");
+ } else {
+ if (pVideoMetaHandle) {
+
+ video_meta_get_height(pVideoMetaHandle, &nHeight);
+ video_meta_destroy(pVideoMetaHandle);
+ } else {
+ VideoLogError("No exist pVideoMetaHandle");
+ }
+ }
+ }
+
+ return nHeight;
+}
+
+/**
+* Get video item modified time
+* @param nVideoItemIndex : index of the video
+* @return modified time string
+*/
+char *mp_util_svc_get_video_item_modified_time(const int nVideoItemIndex)
+{
+ if (!VideoItemList) {
+ VideoLogError("Not exist video item list handle.");
+ return 0;
+ }
+
+ VideoLogInfo("");
+
+ time_t pModifiedTime;
+ struct tm sModifiedTime;
+ char szModifiedTime[STR_LEN_MAX] = { 0, };
+ media_info_h pVideoItem =
+ (media_info_h) eina_list_nth(VideoItemList, nVideoItemIndex);
+ if (pVideoItem) {
+ int nRet = MEDIA_CONTENT_ERROR_NONE;
+ nRet = media_info_get_modified_time(pVideoItem, &pModifiedTime);
+ if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("media_info_get_modified_time failed : [%d]!!!",
+ nRet);
+ return 0;
+ }
+ gmtime_r(&pModifiedTime, &sModifiedTime);
+ strftime(szModifiedTime, STR_LEN_MAX - 1, "%d %b. %Y. %H:%M",
+ &sModifiedTime);
+
+ return g_strdup(szModifiedTime);
+ }
+ return NULL;
+}
+
+/**
+* Get video list size
+* @return video list size
+*/
+int mp_util_svc_get_video_list_size_for_checking_index(void)
+{
+ if (!VideoItemList) {
+ VideoLogError("Not exist video item list handle.");
+ return 0;
+ }
+
+ return (int) eina_list_count(VideoItemList);
+}
+
+/**
+* Get video items size by type
+* @return video items size
+*/
+int mp_util_svc_get_number_of_video_item_by_type(void)
+{
+
+ return nNumberOfVideoItemByType;
+}
+
+/**
+* Get video folder list from db by type
+* @param nSortType : sort type
+* @param nItemType : list view type
+* @return result
+*/
+bool mp_util_svc_extract_video_folder_list_by_type(int nSortType,
+ int nItemType)
+{
+ filter_h m_FilterHandle = NULL;
+ char szTmpStr[STR_LEN_MAX] = { 0, };
+
+ switch (nItemType) {
+ case MP_LIST_VIEW_ALL:
+ snprintf(szTmpStr, STR_LEN_MAX,
+ "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1 OR MEDIA_STORAGE_TYPE=101 OR MEDIA_STORAGE_TYPE=121)");
+ break;
+
+ case MP_LIST_VIEW_PHONE:
+ snprintf(szTmpStr, STR_LEN_MAX,
+ "MEDIA_TYPE = 1 and (MEDIA_STORAGE_TYPE = 0 OR MEDIA_STORAGE_TYPE=1)");
+
+ break;
+
+ case MP_LIST_VIEW_CLOUD:
+ snprintf(szTmpStr, STR_LEN_MAX,
+ "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1 OR MEDIA_STORAGE_TYPE=101) and MEDIA_STORAGE_TYPE = 101");
+
+ break;
+
+ default:
+ snprintf(szTmpStr, STR_LEN_MAX,
+ "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1 OR MEDIA_STORAGE_TYPE=101 OR MEDIA_STORAGE_TYPE=121)");
+
+ break;
+ }
+
+ if (media_filter_create(&m_FilterHandle) != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("Fail to create media filter handle.");
+ return FALSE;
+ }
+
+ if (media_filter_set_condition
+ (m_FilterHandle, szTmpStr,
+ MEDIA_CONTENT_COLLATE_DEFAULT) != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("Fail to set filter condition.");
+ media_filter_destroy(m_FilterHandle);
+ return FALSE;
+ }
+
+ if (media_folder_foreach_folder_from_db
+ (m_FilterHandle, mp_util_svc_iterate_for_folder_list_cb,
+ &VideoFolderList) != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("Fail media_folder_foreach_folder_from_db().");
+ media_filter_destroy(m_FilterHandle);
+ return FALSE;
+ }
+
+ if (media_filter_destroy(m_FilterHandle) != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("Fail to destroy media filter handle.");
+ }
+
+ return TRUE;
+}
+
+/**
+* Get personal video folder list
+* @param nSortType : sort type
+* @param bPersonal : true/false
+* @return result
+*/
+bool mp_util_svc_extract_personal_video_folder_list(int nSortType,
+ bool bPersonal)
+{
+ filter_h m_FilterHandle = NULL;
+ char szTmpStr[STR_LEN_MAX] = { 0, };
+
+ if (media_filter_create(&m_FilterHandle) != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("Fail to create media filter handle.");
+ return FALSE;
+ }
+
+ if (bPersonal == FALSE) {
+ snprintf(szTmpStr, STR_LEN_MAX,
+ "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1) and MEDIA_PATH NOT LIKE \"%s%%\"",
+ VIDEO_UTIL_PERSONAL_HEAD_STR);
+ } else {
+ snprintf(szTmpStr, STR_LEN_MAX,
+ "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1) and MEDIA_PATH LIKE \"%s%%\"",
+ VIDEO_UTIL_PERSONAL_HEAD_STR);
+ }
+ if (media_filter_set_condition
+ (m_FilterHandle, szTmpStr,
+ MEDIA_CONTENT_COLLATE_DEFAULT) != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("Fail to set filter condition.");
+ media_filter_destroy(m_FilterHandle);
+ return FALSE;
+ }
+
+ if (media_folder_foreach_folder_from_db
+ (m_FilterHandle, mp_util_svc_iterate_for_personal_folder_list_cb,
+ &VideoFolderList) != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("Fail media_folder_foreach_folder_from_db().");
+ media_filter_destroy(m_FilterHandle);
+ return FALSE;
+ }
+
+ if (media_filter_destroy(m_FilterHandle) != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("Fail to destroy media filter handle.");
+ }
+
+ return TRUE;
+}
+
+/**
+* Free video folder list
+* @return result
+*/
+bool mp_util_svc_destory_video_folder_list(void)
+{
+ if (!VideoFolderList) {
+ VideoLogError("VideoFolderList is empty already.");
+ return FALSE;
+ }
+
+ media_folder_h pTmpFolderItem = NULL;
+ EINA_LIST_FREE(VideoFolderList, pTmpFolderItem) {
+ if (pTmpFolderItem) {
+ media_folder_destroy(pTmpFolderItem);
+ }
+ }
+
+ VideoFolderList = NULL;
+
+ return TRUE;
+}
+
+/**
+* Get video folder size
+* @return result
+*/
+int mp_util_svc_get_video_folder_size(void)
+{
+ if (!VideoFolderList) {
+ VideoLogError("Not exist video item list handle.");
+ return 0;
+ }
+
+ if (VideoFolderList) {
+ return (int) eina_list_count(VideoFolderList);
+ }
+
+ return 0;
+}
+
+/**
+* Get Video folder name
+* @param nVideoFolderIndex : index of the folder
+* @return folder name
+*/
+char *mp_util_svc_get_video_folder_name(int nVideoFolderIndex)
+{
+ if (!VideoFolderList) {
+ VideoLogError("Not exist video folder list handle.");
+ return 0;
+ }
+
+ if (nVideoFolderIndex < 0
+ || nVideoFolderIndex >= mp_util_svc_get_video_folder_size()) {
+ VideoLogError("Error number of list item.");
+ return NULL;
+ }
+
+ char *szFolderName = NULL;
+ media_folder_h pFolderItem =
+ (media_folder_h) eina_list_nth(VideoFolderList, nVideoFolderIndex);
+ if (pFolderItem) {
+ media_folder_get_name(pFolderItem, &szFolderName);
+
+ if (szFolderName) {
+ VideoLogError("szFolderName : %s", szFolderName);
+ return szFolderName;
+ }
+ }
+
+ return NULL;
+}
+
+/**
+* Get Video folder url
+* @param nVideoFolderIndex : index of the folder
+* @return folder url string
+*/
+
+char *mp_util_svc_get_video_folder_url(int nVideoFolderIndex)
+{
+ if (!VideoFolderList) {
+ VideoLogError("Not exist video item list handle.");
+ return NULL;
+ }
+
+ if (nVideoFolderIndex < 0
+ || nVideoFolderIndex >= mp_util_svc_get_video_folder_size()) {
+ VideoLogError("Error number of list item.");
+ return NULL;
+ }
+
+ char *szFolderPath = NULL;
+ media_folder_h pFolderItem =
+ (media_folder_h) eina_list_nth(VideoFolderList, nVideoFolderIndex);
+ if (pFolderItem) {
+ media_folder_get_path(pFolderItem, &szFolderPath);
+
+ if (szFolderPath) {
+ VideoSecureLogInfo("szFolderPath : %s", szFolderPath);
+ return szFolderPath;
+ }
+ }
+
+ return NULL;
+}
+
+/**
+* Get Video folder id
+* @param nVideoFolderIndex : index of the folder
+* @return folder id string
+*/
+char *mp_util_svc_get_video_folder_id(int nVideoFolderIndex)
+{
+ if (!VideoFolderList) {
+ VideoLogError("Not exist video item list handle.");
+ return NULL;
+ }
+
+ if (nVideoFolderIndex < 0
+ || nVideoFolderIndex >= mp_util_svc_get_video_folder_size()) {
+ VideoLogError("Error number of list item.");
+ return NULL;
+ }
+
+ char *szFolderId = NULL;
+ media_folder_h pFolderItem =
+ (media_folder_h) eina_list_nth(VideoFolderList, nVideoFolderIndex);
+ if (pFolderItem) {
+ media_folder_get_folder_id(pFolderItem, &szFolderId);
+
+ if (szFolderId) {
+ VideoLogInfo("szFolderId : %s", szFolderId);
+ return szFolderId;
+ }
+ }
+
+ return NULL;
+}
+
+/**
+* Assing thumbnail update callback function
+* @param nVideoItemIndex : index of the video
+* @param pUserCallbackFunc : callback function to register
+* @param pUserData : user data for callback argument
+* @return folder name
+*/
+void mp_util_svc_register_thumbnail_update_func(int nVideoItemIndex,
+ void *pUserCallbackFunc,
+ void *pUserData)
+{
+ if (!pUserCallbackFunc) {
+ VideoLogError("[ERR]");
+ return;
+ }
+
+ if (nVideoItemIndex < 0
+ || nVideoItemIndex >=
+ mp_util_svc_get_video_list_size_for_checking_index()) {
+ VideoLogError("Error number of list item.");
+ return;
+ }
+
+ media_info_h pVideoItem =
+ (media_info_h) eina_list_nth(VideoItemList, nVideoItemIndex);
+
+ if (media_info_create_thumbnail
+ (pVideoItem, pUserCallbackFunc,
+ pUserData) != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogWarning("media_info_create_thumbnail is Fail");
+ }
+}
+
+/**
+* Cancel thumbnail update
+* @param nVideoItemIndex : index of the video
+*/
+void mp_util_svc_cancel_thumbnail_update(int nVideoItemIndex)
+{
+ VideoLogInfo("nVideoItemIndex : %d", nVideoItemIndex);
+
+ if (nVideoItemIndex < 0
+ || nVideoItemIndex >=
+ mp_util_svc_get_video_list_size_for_checking_index()) {
+ VideoLogError("Error number of list item.");
+ return;
+ }
+
+ media_info_h pVideoItem =
+ (media_info_h) eina_list_nth(VideoItemList, nVideoItemIndex);
+
+ if (pVideoItem) {
+ if (media_info_cancel_thumbnail(pVideoItem) !=
+ MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogWarning("media_info_cancel_thumbnail is Fail");
+ return;
+ }
+ } else {
+ VideoLogError("[ERR] pVideoItem is not existed.");
+ }
+}
+
+/**
+* Update thumbnail info to DB
+* @param nVideoItemIndex : index of the video
+*/
+void mp_util_svc_update_thumbnail_info(const int nVideoItemIndex)
+{
+ if (!VideoItemList) {
+ VideoLogError("Not exist video item list handle.");
+ return;
+ }
+
+ char *szMediaUri = mp_util_svc_get_video_url(nVideoItemIndex);
+
+ if (!szMediaUri) {
+ VideoLogError("No exist video path.");
+ return;
+ }
+
+ VideoSecureLogInfo("szMediaUri : %s", szMediaUri);
+
+ media_info_h pUpdatedVideoItem = NULL;
+ filter_h m_FilterHandle = NULL;
+ char szTmpStr[STR_LEN_MAX] = { 0, };
+
+ if (media_filter_create(&m_FilterHandle) != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogInfo("Fail to create media filter handle.");
+ return;
+ }
+
+ memset(szTmpStr, 0, STR_LEN_MAX);
+ snprintf(szTmpStr, STR_LEN_MAX,
+ "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1 OR MEDIA_STORAGE_TYPE=101 OR MEDIA_STORAGE_TYPE=121) AND MEDIA_PATH = \"%s\"",
+ szMediaUri);
+ if (media_filter_set_condition
+ (m_FilterHandle, szTmpStr,
+ MEDIA_CONTENT_COLLATE_DEFAULT) != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("Fail to set filter condition.");
+ media_filter_destroy(m_FilterHandle);
+ if (szMediaUri) {
+ free(szMediaUri);
+ szMediaUri = NULL;
+ }
+ return;
+ }
+
+ if (media_info_foreach_media_from_db
+ (m_FilterHandle, mp_util_svc_iterate_for_get_video_item_cb,
+ &pUpdatedVideoItem) != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError
+ ("Fail to get video item list with filter condition.");
+ media_filter_destroy(m_FilterHandle);
+ if (szMediaUri) {
+ free(szMediaUri);
+ szMediaUri = NULL;
+ }
+ return;
+ }
+
+ if (media_filter_destroy(m_FilterHandle) != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("Fail to destroy media filter handle.");
+ if (szMediaUri) {
+ free(szMediaUri);
+ szMediaUri = NULL;
+ }
+ return;
+ }
+
+ if (pUpdatedVideoItem) {
+ char *szTmpStr = NULL;
+ media_info_get_thumbnail_path(pUpdatedVideoItem, &szTmpStr);
+ VideoSecureLogDebug("pUpdatedVideoItem - thumbnail path : %s",
+ szTmpStr);
+ if (szTmpStr) {
+ free(szTmpStr);
+ szTmpStr = NULL;
+ }
+
+ media_info_get_display_name(pUpdatedVideoItem, &szTmpStr);
+ VideoSecureLogDebug("pUpdatedVideoItem - title : %s", szTmpStr);
+ if (szTmpStr) {
+ free(szTmpStr);
+ szTmpStr = NULL;
+ }
+
+ int nCounter = 0;
+ Eina_List *pCurList = NULL;
+ media_info_h pTmpVideoItem = NULL;
+ EINA_LIST_FOREACH(VideoItemList, pCurList, pTmpVideoItem) {
+ if (nCounter == nVideoItemIndex) {
+ VideoLogError("nCounter : %d", nCounter);
+ if (pTmpVideoItem) {
+ media_info_destroy(pTmpVideoItem);
+ }
+ pCurList->data = pUpdatedVideoItem;
+ break;
+ }
+ ++nCounter;
+ }
+ } else {
+ VideoLogError("Fail to get video item from db..");
+ }
+
+ if (szMediaUri) {
+ free(szMediaUri);
+ szMediaUri = NULL;
+ }
+}
+
+/**
+* Get Video item ID
+* @param nVideoItemIndex : index of the video
+* @return video id string
+*/
+char *mp_util_svc_get_video_id_by_index(const int nVideoItemIndex)
+{
+ if (!VideoItemList) {
+ VideoLogError("Not exist video item list handle.");
+ return NULL;
+ }
+
+ if (nVideoItemIndex < 0
+ || nVideoItemIndex >=
+ mp_util_svc_get_video_list_size_for_checking_index()) {
+ VideoLogError("Error number of list item.");
+ return NULL;
+ }
+
+ media_info_h pVideoItem =
+ (media_info_h) eina_list_nth(VideoItemList, nVideoItemIndex);
+
+ char *szMediaId = NULL;
+ if (pVideoItem) {
+ int ret = media_info_get_media_id(pVideoItem, &szMediaId);
+ VideoLogInfo("VideoID : %s, %d", szMediaId, ret);
+ }
+
+ return szMediaId;
+}
+
+/**
+* Get folder storage of the video folder
+* @param nVideoFolderIndex : index of the video folder
+* @return storage type
+*/
+
+MpMediaStorageType mp_util_svc_get_folder_storage(const int
+ nVideoFolderIndex)
+{
+
+ MpMediaStorageType storage_local = MP_MEDIA_TYPE_STORAGE_UNKNOWN;
+ char *folder_path;
+ int ret = -1;
+
+ if (!VideoFolderList) {
+ VideoLogError("Not exist video folder list handle.");
+ return storage_local;
+ }
+
+ if (nVideoFolderIndex < 0
+ || nVideoFolderIndex >= mp_util_svc_get_video_folder_size()) {
+ VideoLogError("Error number of list item.");
+ return storage_local;
+ }
+
+ media_folder_h pFolderItem =
+ (media_folder_h) eina_list_nth(VideoFolderList, nVideoFolderIndex);
+
+ if (media_folder_get_path(pFolderItem, &folder_path) !=
+ MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("Get folder path failed!");
+ return storage_local;
+ }
+
+ storage_rec_s storage_rec;
+ storage_rec.storage_id = -1;
+ storage_rec.file_url = folder_path;
+ storage_type_e storage_type = 0;
+
+ ret = storage_foreach_device_supported(_storage_device_supported_cb, &storage_rec);
+ if (ret != STORAGE_ERROR_NONE || storage_rec.storage_id == -1) {
+ VideoLogError("Get storage id failed!");
+ return storage_local;
+ }
+
+ ret = storage_get_type(storage_rec.storage_id, &storage_type);
+ if (ret != STORAGE_ERROR_NONE) {
+ VideoLogError("Get storage type failed!");
+ return storage_local;
+ }
+
+ if (storage_type == STORAGE_TYPE_INTERNAL) {
+ storage_local = MP_MEDIA_TYPE_STORAGE_INTERNAL;
+ } else if (storage_type == STORAGE_TYPE_EXTERNAL) {
+ storage_local = MP_MEDIA_TYPE_STORAGE_EXTERNAL;
+ }
+
+ return storage_local;
+}
+
+
+/**
+* Get folder storage of the video
+* @param nVideoItemIndex : index of the video
+* @return storage type
+*/
+MpMediaStorageType mp_util_svc_get_video_storage(const int nVideoItemIndex)
+{
+ MpMediaStorageType storage_local = MP_MEDIA_TYPE_STORAGE_UNKNOWN;
+
+ if (!VideoItemList) {
+ VideoLogError("Not exist video item list handle.");
+ return storage_local;
+ }
+
+ if (nVideoItemIndex < 0
+ || nVideoItemIndex >=
+ mp_util_svc_get_video_list_size_for_checking_index()) {
+ VideoLogError("Error number of list item.");
+ return storage_local;
+ }
+
+ return storage_local;
+}
+
+/**
+* Is cloud storage
+* @param nVideoItemIndex : index of the video
+* @return true/false
+*/
+bool mp_util_svc_is_cloud_storage(const int nVideoItemIndex)
+{
+ VideoLogInfo("disable cloud module.");
+ return FALSE;
+}
+
+/**
+* Callback function for DB update
+* @param nError : error code from content
+* @param nPid : process ID
+* @param nUpdateItem : file or directory
+* @param nMediaType : type of the media (video/image)
+* @param szUuid : ID of the media
+* @param szPath : path of the media
+* @param szMimeType : Mime type of the media
+* @param pUserData : user data
+*/
+void mp_util_svc_update_database_cb(media_content_error_e nError, int nPid,
+ media_content_db_update_item_type_e
+ nUpdateItem,
+ media_content_db_update_type_e
+ nUpdateType,
+ media_content_type_e nMediaType,
+ char *szUuid, char *szPath,
+ char *szMimeType, void *pUserData)
+{
+ if (nError) {
+ VideoLogError("error occured! : %d", nError);
+ return;
+ }
+
+ if (nPid == mp_util_get_pid()) {
+ VideoLogError("It is same processor");
+ return;
+ }
+
+ UpdateDatabaseCbFunc pUpdateDbCbFunc = pUserData;
+
+ if (nUpdateItem == MEDIA_ITEM_FILE) {
+
+ if (nMediaType != MEDIA_CONTENT_TYPE_VIDEO) {
+ VideoLogError("Updated contents are not video items.");
+ return;
+ }
+ } else if (nUpdateItem == MEDIA_ITEM_DIRECTORY) {
+ VideoLogInfo("MEDIA_ITEM_DIRECTORY");
+ ///////////////////////////////////////////////////////////////////
+ // UPDATE ALL because It is not possible to extract video items. //
+ ///////////////////////////////////////////////////////////////////
+ } else {
+ VideoLogInfo("Nothing item type.");
+ }
+
+ if (nUpdateType == MEDIA_CONTENT_INSERT) {
+ VideoLogInfo("MEDIA_CONTENT_INSERT");
+ } else if (nUpdateType == MEDIA_CONTENT_DELETE) {
+ VideoLogInfo("MEDIA_CONTENT_DELETE");
+ } else if (nUpdateType == MEDIA_CONTENT_UPDATE) {
+ VideoLogInfo("MEDIA_CONTENT_UPDATE");
+ } else {
+ VideoLogInfo("Nothing update type.");
+ }
+
+ if (pUpdateDbCbFunc) {
+ VideoLogInfo("Update List View. = %d,%d", nUpdateItem,
+ nUpdateType);
+ pUpdateDbCbFunc((void *) nUpdateType, 1.0, nUpdateType);
+ }
+}
+
+
+/**
+* Register Callback function for DB update
+* @param pUpdateDbCbFunc : callback function
+* @return result
+*/
+bool mp_util_svc_set_update_db_cb_func(UpdateDatabaseCbFunc
+ pUpdateDbCbFunc)
+{
+ if (!pUpdateDbCbFunc) {
+ VideoLogError("No exsited pUpdateDbCbFunc.");
+ return FALSE;
+ }
+ bool bRet = TRUE;
+ mp_util_svc_unset_update_db_cb_func();
+
+ if (media_content_add_db_updated_cb
+ ((void *) mp_util_svc_update_database_cb, pUpdateDbCbFunc,
+ ¬i_handle) != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogInfo("Fail to registe update database callback function.");
+ bRet = FALSE;
+ }
+
+ return bRet;
+}
+
+
+/**
+* unregister Callback function for DB update
+*/
+void mp_util_svc_unset_update_db_cb_func(void)
+{
+
+ if (media_content_remove_db_updated_cb(noti_handle) !=
+ MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogInfo
+ ("Fail to unregiste media_content_remove_db_updated_cb.");
+ }
+}
+
+///////////////////////////////////////////////////////
+// For livebox list
+
+/**
+ *
+ * @return
+ */
+bool mp_util_svc_destory_last_played_item_list(void)
+{
+ if (!RecentPlayedItemList) {
+ VideoLogError("VideoItemList is empty already.");
+ return FALSE;
+ }
+
+ media_info_h pTmpRecentPlayedItem = NULL;
+ EINA_LIST_FREE(RecentPlayedItemList, pTmpRecentPlayedItem) {
+ if (pTmpRecentPlayedItem) {
+ media_info_destroy(pTmpRecentPlayedItem);
+ }
+ }
+
+ RecentPlayedItemList = NULL;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param nVideoItemIndex
+ * @return
+ */
+char *mp_util_svc_get_duration_str_time(int nVideoItemIndex)
+{
+ char szTmpStr[STR_LEN_MAX] = { 0, };
+ char szTmpStrDurationTime[STR_LEN_MAX] = { 0, };
+
+ unsigned int nVideoInfoDuration =
+ mp_util_svc_get_video_duration_time(nVideoItemIndex);
+
+ if (nVideoInfoDuration > 0) {
+
+ mp_util_convert_time(nVideoInfoDuration, szTmpStrDurationTime,
+ FALSE);
+
+ snprintf(szTmpStr, STR_LEN_MAX, "%s", szTmpStrDurationTime);
+ } else {
+ snprintf(szTmpStr, STR_LEN_MAX, "--:--:--");
+ }
+
+ return strdup(szTmpStr);
+}
+
+/**
+ *
+ * @param szPath
+ * @param nWidth
+ * @param nHeight
+ * @param szTitle
+ * @param nDuration
+ * @param nPlayedTime
+ * @return
+ */
+bool mp_util_svc_get_video_detail_by_video_url(const char *szPath,
+ int *nWidth, int *nHeight,
+ char **szTitle,
+ unsigned int *nDuration,
+ unsigned int *nPlayedTime)
+{
+ if (!szPath) {
+ VideoLogError("No exist video path.");
+ return FALSE;
+ }
+
+ VideoSecureLogDebug("szPath : %s", szPath);
+
+ media_info_h pVideoItem = NULL;
+ filter_h m_FilterHandle = NULL;
+ char szTmpStr[STR_LEN_MAX] = { 0, };
+
+ if (media_filter_create(&m_FilterHandle) != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("Fail to create media filter handle.");
+ return FALSE;
+ }
+
+ snprintf(szTmpStr, STR_LEN_MAX,
+ "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1 OR MEDIA_STORAGE_TYPE=101 OR MEDIA_STORAGE_TYPE=121) AND MEDIA_PATH = \"%s\"",
+ szPath);
+ if (media_filter_set_condition
+ (m_FilterHandle, szTmpStr,
+ MEDIA_CONTENT_COLLATE_DEFAULT) != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("Fail to set filter condition.");
+ media_filter_destroy(m_FilterHandle);
+ return FALSE;
+ }
+
+ if (media_info_foreach_media_from_db
+ (m_FilterHandle, mp_util_svc_iterate_for_get_video_item_cb,
+ &pVideoItem) != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError
+ ("Fail to get video item list with filter condition.");
+ media_filter_destroy(m_FilterHandle);
+ return FALSE;
+ }
+
+ if (media_filter_destroy(m_FilterHandle) != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("Fail to destroy media filter handle.");
+ return FALSE;
+ }
+
+ if (pVideoItem) {
+ video_meta_h pVideoMetaHandle = NULL;
+ if (media_info_get_video(pVideoItem, &pVideoMetaHandle) ==
+ MEDIA_CONTENT_ERROR_NONE) {
+ //last played time
+ *nPlayedTime = 0;
+
+ //Duratiom time
+ int duration = 0;
+ video_meta_get_duration(pVideoMetaHandle, &duration);
+ *nDuration = (unsigned int) duration;
+
+ //get width
+ int width = 0;
+ video_meta_get_width(pVideoMetaHandle, &width);
+ *nWidth = width;
+
+ //get height
+ int height = 0;
+ video_meta_get_height(pVideoMetaHandle, &height);
+ *nHeight = height;
+
+ video_meta_destroy(pVideoMetaHandle);
+ }
+ //display name
+ char *szName = NULL;
+ media_info_get_display_name(pVideoItem, &szName);
+ *szTitle = szName;
+ media_info_destroy(pVideoItem);
+ }
+ VideoSecureLogDebug("Last Played Time : %s,%d:%d,%d,%d", *szTitle,
+ *nPlayedTime, *nDuration, *nWidth, *nHeight);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param szFolderPath
+ * @param nSortType
+ * @param nItemType
+ * @param nViewType
+ * @return
+ */
+bool mp_util_svc_extract_video_list_from_folder_by_personal(char
+ *szFolderPath,
+ int nSortType,
+ int nItemType,
+ int nViewType)
+{
+ if (VideoItemList) {
+ VideoLogError("Already exist video list.");
+ return FALSE;
+ }
+
+ if (!szFolderPath) {
+ VideoLogError("[ERR]");
+ return FALSE;
+ }
+
+ filter_h m_FilterHandle = NULL;
+ media_folder_h m_FolderHandle = NULL;
+ media_content_order_e nOrderType = MEDIA_CONTENT_ORDER_ASC;
+
+ char *szFolderID = NULL;
+ char szTmpStr[STR_LEN_MAX] = { 0, };
+ char szOrderObj[STR_LEN_MAX] = { 0, };
+
+ nTotalVideoTypeFiles = 0;
+ nNumberOfVideoItemByType = 0;
+
+ switch (nSortType) {
+ case MP_MEDIA_SORT_BY_NONE:
+ case MP_MEDIA_SORT_BY_RECENTLY_VIEWED:
+ nOrderType = MEDIA_CONTENT_ORDER_DESC;
+ strncpy(szOrderObj, MEDIA_LAST_PLAYED_TIME, STR_LEN_MAX - 1);
+ break;
+
+ case MP_MEDIA_SORT_BY_RECENTLY_ADDED:
+ nOrderType = MEDIA_CONTENT_ORDER_DESC;
+ strncpy(szOrderObj, MEDIA_ADDED_TIME, STR_LEN_MAX - 1);
+ break;
+
+ case MP_MEDIA_SORT_BY_NAME:
+ nOrderType = MEDIA_CONTENT_ORDER_ASC;
+ strncpy(szOrderObj, MEDIA_DISPLAY_NAME, STR_LEN_MAX - 1);
+ break;
+
+ case MP_MEDIA_SORT_BY_SIZE:
+ nOrderType = MEDIA_CONTENT_ORDER_DESC;
+ strncpy(szOrderObj, MEDIA_SIZE, STR_LEN_MAX - 1);
+ break;
+
+ case MP_MEDIA_SORT_BY_TYPE:
+ nOrderType = MEDIA_CONTENT_ORDER_ASC;
+ strncpy(szOrderObj, MEDIA_MIME_TYPE, STR_LEN_MAX - 1);
+ break;
+
+ default:
+ nOrderType = MEDIA_CONTENT_ORDER_ASC;
+ strncpy(szOrderObj, MEDIA_LAST_PLAYED_TIME, STR_LEN_MAX - 1);
+ }
+
+ switch (nItemType) {
+ case MP_LIST_VIEW_ALL:
+ if (nViewType == 0) {
+ snprintf(szTmpStr, STR_LEN_MAX,
+ "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1) and FOLDER_PATH = \"%s\" and MEDIA_PATH NOT LIKE \"%s%%\"",
+ szFolderPath, VIDEO_UTIL_PERSONAL_HEAD_STR);
+ } else {
+ snprintf(szTmpStr, STR_LEN_MAX,
+ "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1) and FOLDER_PATH = \"%s\" and MEDIA_PATH LIKE \"%s%%\"",
+ szFolderPath, VIDEO_UTIL_PERSONAL_HEAD_STR);
+ }
+ break;
+
+ case MP_LIST_VIEW_PHONE:
+ if (nViewType == 0) {
+ snprintf(szTmpStr, STR_LEN_MAX,
+ "MEDIA_TYPE = 1 and (MEDIA_STORAGE_TYPE = 0 OR MEDIA_STORAGE_TYPE=1) and FOLDER_PATH = \"%s\" and MEDIA_PATH NOT LIKE \"%s%%\"",
+ szFolderPath, VIDEO_UTIL_PERSONAL_HEAD_STR);
+ } else {
+ snprintf(szTmpStr, STR_LEN_MAX,
+ "MEDIA_TYPE = 1 and (MEDIA_STORAGE_TYPE = 0 OR MEDIA_STORAGE_TYPE=1) and FOLDER_PATH = \"%s\" and MEDIA_PATH LIKE \"%s%%\"",
+ szFolderPath, VIDEO_UTIL_PERSONAL_HEAD_STR);
+ }
+ break;
+
+ case MP_LIST_VIEW_CLOUD:
+ if (nViewType == 0) {
+ snprintf(szTmpStr, STR_LEN_MAX,
+ "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1) and FOLDER_PATH = \"%s\" and MEDIA_PATH NOT LIKE \"%s%%\"",
+ szFolderPath, VIDEO_UTIL_PERSONAL_HEAD_STR);
+ } else {
+ snprintf(szTmpStr, STR_LEN_MAX,
+ "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1) and FOLDER_PATH = \"%s\" and MEDIA_PATH LIKE \"%s%%\"",
+ szFolderPath, VIDEO_UTIL_PERSONAL_HEAD_STR);
+ }
+ break;
+
+ default:
+ if (nViewType == 0) {
+ snprintf(szTmpStr, STR_LEN_MAX,
+ "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1) and FOLDER_PATH = \"%s\" and MEDIA_PATH NOT LIKE \"%s%%\"",
+ szFolderPath, VIDEO_UTIL_PERSONAL_HEAD_STR);
+ } else {
+ snprintf(szTmpStr, STR_LEN_MAX,
+ "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1) and FOLDER_PATH = \"%s\" and MEDIA_PATH LIKE \"%s%%\"",
+ szFolderPath, VIDEO_UTIL_PERSONAL_HEAD_STR);
+ }
+ break;
+ }
+
+ if (media_filter_create(&m_FilterHandle) != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("Fail to create media filter handle.");
+ return FALSE;
+ }
+
+ if (media_filter_set_condition
+ (m_FilterHandle, szTmpStr,
+ MEDIA_CONTENT_COLLATE_DEFAULT) != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("Fail to set filter condition.");
+ media_filter_destroy(m_FilterHandle);
+ return FALSE;
+ }
+
+ if (media_folder_foreach_folder_from_db
+ (m_FilterHandle, mp_util_svc_iterate_for_get_folder_cb,
+ &m_FolderHandle) != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("Fail media_folder_foreach_folder_from_db().");
+ media_filter_destroy(m_FilterHandle);
+ return FALSE;
+ }
+
+ if (!m_FolderHandle) {
+ VideoLogError("Fail to get folder handle.");
+ media_filter_destroy(m_FilterHandle);
+ return FALSE;
+ }
+
+ snprintf(szTmpStr, STR_LEN_MAX, "MEDIA_TYPE = 1");
+ if (media_filter_set_condition
+ (m_FilterHandle, szTmpStr,
+ MEDIA_CONTENT_COLLATE_DEFAULT) != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("Fail to set filter condition.");
+ media_filter_destroy(m_FilterHandle);
+ return FALSE;
+ }
+
+ if (media_filter_set_order
+ (m_FilterHandle, nOrderType, szOrderObj,
+ MEDIA_CONTENT_COLLATE_NOCASE) != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("Fail to set order.");
+ media_filter_destroy(m_FilterHandle);
+ return FALSE;
+ }
+
+ if (media_folder_get_folder_id(m_FolderHandle, &szFolderID) !=
+ MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("Fail to get folder id.");
+ media_filter_destroy(m_FilterHandle);
+ return FALSE;
+ }
+
+ if (media_folder_foreach_media_from_db
+ (szFolderID, m_FilterHandle, mp_util_svc_iterate_cb,
+ &VideoItemList) != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("Fail to set order.");
+ media_filter_destroy(m_FilterHandle);
+
+ if (szFolderID) {
+ free(szFolderID);
+ szFolderID = NULL;
+ }
+ return FALSE;
+ }
+
+ if (media_filter_destroy(m_FilterHandle) != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("Fail to destroy media filter handle.");
+ }
+
+ if (szFolderID) {
+ free(szFolderID);
+ szFolderID = NULL;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param nSortType
+ * @param nItemType
+ * @param nViewType
+ * @return
+ */
+bool mp_util_svc_extract_video_list_by_personal(int nSortType,
+ int nItemType,
+ int nViewType)
+{
+ if (VideoItemList) {
+ VideoLogError("Already exist video list.");
+ return FALSE;
+ }
+
+ nWhatFileType = MP_MEDIA_ALL_FILE_TYPE;
+
+ filter_h m_FilterHandle = NULL;
+ media_content_order_e nOrderType = MEDIA_CONTENT_ORDER_ASC;
+ char szTmpStr[STR_LEN_MAX] = { 0, };
+ char szOrderObj[STR_LEN_MAX] = { 0, };
+
+ nTotalVideoTypeFiles = 0;
+ nNumberOfVideoItemByType = 0;
+
+ switch (nSortType) {
+ case MP_MEDIA_SORT_BY_NONE:
+ case MP_MEDIA_SORT_BY_RECENTLY_VIEWED:
+ nOrderType = MEDIA_CONTENT_ORDER_DESC;
+ strncpy(szOrderObj, MEDIA_LAST_PLAYED_TIME, STR_LEN_MAX - 1);
+ break;
+
+ case MP_MEDIA_SORT_BY_RECENTLY_ADDED:
+ nOrderType = MEDIA_CONTENT_ORDER_DESC;
+ strncpy(szOrderObj, MEDIA_ADDED_TIME, STR_LEN_MAX - 1);
+ break;
+
+ case MP_MEDIA_SORT_BY_NAME:
+ nOrderType = MEDIA_CONTENT_ORDER_ASC;
+ strncpy(szOrderObj, MEDIA_DISPLAY_NAME, STR_LEN_MAX - 1);
+ break;
+
+ case MP_MEDIA_SORT_BY_SIZE:
+ nOrderType = MEDIA_CONTENT_ORDER_DESC;
+ strncpy(szOrderObj, MEDIA_SIZE, STR_LEN_MAX - 1);
+ break;
+
+ case MP_MEDIA_SORT_BY_TYPE:
+ nOrderType = MEDIA_CONTENT_ORDER_ASC;
+ strncpy(szOrderObj, MEDIA_MIME_TYPE, STR_LEN_MAX - 1);
+ break;
+
+ default:
+ nOrderType = MEDIA_CONTENT_ORDER_ASC;
+ strncpy(szOrderObj, MEDIA_LAST_PLAYED_TIME, STR_LEN_MAX - 1);
+ }
+
+ switch (nItemType) {
+ case MP_LIST_VIEW_ALL:
+ if (nViewType == 0) {
+ snprintf(szTmpStr, STR_LEN_MAX,
+ "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1) and MEDIA_PATH NOT LIKE \"%s%%\"",
+ VIDEO_UTIL_PERSONAL_HEAD_STR);
+ } else {
+ snprintf(szTmpStr, STR_LEN_MAX,
+ "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1) and MEDIA_PATH LIKE \"%s%%\"",
+ VIDEO_UTIL_PERSONAL_HEAD_STR);
+ }
+ break;
+
+ case MP_LIST_VIEW_PHONE:
+ if (nViewType == 0) {
+ snprintf(szTmpStr, STR_LEN_MAX,
+ "MEDIA_TYPE = 1 and (MEDIA_STORAGE_TYPE = 0 OR MEDIA_STORAGE_TYPE=1) and MEDIA_PATH NOT LIKE \"%s%%\"",
+ VIDEO_UTIL_PERSONAL_HEAD_STR);
+ } else {
+ snprintf(szTmpStr, STR_LEN_MAX,
+ "MEDIA_TYPE = 1 and (MEDIA_STORAGE_TYPE = 0 OR MEDIA_STORAGE_TYPE=1) and MEDIA_PATH LIKE \"%s%%\"",
+ VIDEO_UTIL_PERSONAL_HEAD_STR);
+ }
+
+ break;
+
+ case MP_LIST_VIEW_CLOUD:
+ if (nViewType == 0) {
+ snprintf(szTmpStr, STR_LEN_MAX,
+ "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1) and MEDIA_PATH NOT LIKE \"%s%%\"",
+ VIDEO_UTIL_PERSONAL_HEAD_STR);
+ } else {
+ snprintf(szTmpStr, STR_LEN_MAX,
+ "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1) and MEDIA_PATH LIKE \"%s%%\"",
+ VIDEO_UTIL_PERSONAL_HEAD_STR);
+ }
+
+ break;
+
+ default:
+ if (nViewType == 0) {
+ snprintf(szTmpStr, STR_LEN_MAX,
+ "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1) and MEDIA_PATH NOT LIKE \"%s%%\"",
+ VIDEO_UTIL_PERSONAL_HEAD_STR);
+ } else {
+ snprintf(szTmpStr, STR_LEN_MAX,
+ "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1) and MEDIA_PATH LIKE \"%s%%\"",
+ VIDEO_UTIL_PERSONAL_HEAD_STR);
+ }
+ break;
+ }
+ VideoLogInfo("MEDIA_PATH not like %s", szTmpStr);
+
+ if (media_filter_create(&m_FilterHandle) != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogInfo("Fail to create media filter handle.");
+ return FALSE;
+ }
+ if (media_filter_set_condition
+ (m_FilterHandle, szTmpStr,
+ MEDIA_CONTENT_COLLATE_DEFAULT) != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("Fail to set filter condition.");
+ media_filter_destroy(m_FilterHandle);
+ return FALSE;
+ }
+
+ if (media_filter_set_order
+ (m_FilterHandle, nOrderType, szOrderObj,
+ MEDIA_CONTENT_COLLATE_NOCASE) != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("Fail to set order.");
+ media_filter_destroy(m_FilterHandle);
+ return FALSE;
+ }
+
+ if (media_info_foreach_media_from_db
+ (m_FilterHandle, mp_util_svc_iterate_for_video_item_list_view_cb,
+ &VideoItemList) != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError
+ ("Fail to get video item list with filter condition.");
+ media_filter_destroy(m_FilterHandle);
+ return FALSE;
+ }
+
+ if (media_filter_destroy(m_FilterHandle) != MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("Fail to destroy media filter handle.");
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param nVideoItemIndex
+ * @param szVideoPath
+ */
+void mp_util_svc_move_to_db(const int nVideoItemIndex,
+ const char *szVideoPath)
+{
+ if (!VideoItemList) {
+ VideoLogError("Not exist video item list handle.");
+ return;
+ }
+
+ if (nVideoItemIndex < 0
+ || nVideoItemIndex >=
+ mp_util_svc_get_video_list_size_for_checking_index()) {
+ VideoLogError("Error number of list item.");
+ return;
+ }
+
+ media_info_h pVideoItem =
+ (media_info_h) eina_list_nth(VideoItemList, nVideoItemIndex);
+
+ if (pVideoItem) {
+ if (media_info_move_to_db(pVideoItem, szVideoPath) !=
+ MEDIA_CONTENT_ERROR_NONE) {
+ VideoLogError("Failed move to db");
+ }
+ }
+
+}
+
+/**
+ *
+ * @param nVideoItemIndex
+ * @return
+ */
+bool mp_util_svc_remove_list_item_from_list(int nVideoItemIndex)
+{
+
+ if (!VideoItemList) {
+ VideoLogError("pList is empty already.");
+ return FALSE;
+ }
+
+ media_info_h pItem = eina_list_nth(VideoItemList, nVideoItemIndex);
+
+ if (pItem) {
+ VideoItemList = eina_list_remove(VideoItemList, pItem);
+ media_info_destroy(pItem);
+ nNumberOfVideoItemByType--;
+ } else {
+ VideoLogError("Fail to remove item in media svc and list.");
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param nVideoItemIndex
+ * @return
+ */
+bool mp_util_svc_remove_folder_list_item_from_list(int nVideoItemIndex)
+{
+ if (!VideoFolderList) {
+ VideoLogError("pList is empty already.");
+ return FALSE;
+ }
+
+ media_folder_h pItem = eina_list_nth(VideoFolderList, nVideoItemIndex);
+
+ if (pItem) {
+ VideoFolderList = eina_list_remove(VideoFolderList, pItem);
+ media_folder_destroy(pItem);
+ } else {
+ VideoLogError("Fail to remove item in media svc and list.");
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+#ifdef ENABLE_DRM_FEATURE
+bool mp_util_svc_filter_drm_video_item_list(void)
+{
+ if (!VideoItemList) {
+ VideoLogError("VideoItemList is empty already.");
+ return FALSE;
+ }
+
+ char *szVideoItemFilePath = NULL;
+ int nVideoIndex = 0;
+ for (nVideoIndex = 0; nVideoIndex < nNumberOfVideoItemByType;
+ nVideoIndex++) {
+
+ szVideoItemFilePath = mp_util_svc_get_video_url(nVideoIndex);
+ bool bDRMLock = FALSE;
+ mp_util_check_drm_lock((const char *) szVideoItemFilePath,
+ &bDRMLock);
+
+ if (bDRMLock) {
+ mp_util_svc_remove_list_item_from_list(nVideoIndex);
+
+ nVideoIndex--;
+ }
+
+ if (szVideoItemFilePath) {
+ free(szVideoItemFilePath);
+ szVideoItemFilePath = NULL;
+ }
+
+
+ }
+
+ return TRUE;
+}
+#endif
+
+/**
+ *
+ * @param nVideoItemIndex
+ * @return
+ */
+bool mp_util_svc_is_device_storage(const int nVideoItemIndex)
+{
+ MpMediaStorageType storage_type =
+ mp_util_svc_get_video_storage(nVideoItemIndex);
+ if ((storage_type == MP_MEDIA_TYPE_STORAGE_INTERNAL)
+ || (storage_type == MP_MEDIA_TYPE_STORAGE_EXTERNAL)) {
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+/**
+ *
+ * @param szFilePath
+ * @return
+ */
+bool mp_util_svc_scan_file(const char *szFilePath)
+{
+ if (!szFilePath) {
+ VideoLogError("szFilePath is NULL.");
+ return FALSE;
+ }
+ media_content_scan_file(szFilePath);
+ return TRUE;
+}
+
+
+/*----------------sort video list-----------------------------*/
+
+/**
+ *
+ * @param pMediaId
+ * @param style
+ * @param nMediaIndex
+ * @return
+ */
+bool mp_util_svc_check_valid_media_id(char *pMediaId, int style,
+ int *nMediaIndex)
+{
+ if (!pMediaId) {
+ return FALSE;
+ }
+
+ Eina_List *pIterateList = NULL;
+ char *szMediaId = NULL;
+ int nIndex = 0;
+
+ if (style == MEDIA_TYPE_FILE) {
+ if (!VideoItemList) {
+ return FALSE;
+ }
+ media_info_h pVideoItem = NULL;
+ nIndex = 0;
+
+ EINA_LIST_FOREACH(VideoItemList, pIterateList, pVideoItem) {
+ if (pVideoItem) {
+ media_info_get_media_id(pVideoItem, &szMediaId);
+
+ if (szMediaId && (g_strcmp0(szMediaId, pMediaId) == 0)) {
+ MP_FREE_STRING(szMediaId);
+ *nMediaIndex = nIndex;
+ return TRUE;
+ }
+ nIndex++;
+ MP_FREE_STRING(szMediaId);
+ }
+ }
+ } else if (style == MEDIA_TYPE_DIRECTORY) {
+ if (!VideoFolderList) {
+ return FALSE;
+ }
+ nIndex = 0;
+ media_folder_h pFolderItem = NULL;
+
+ EINA_LIST_FOREACH(VideoFolderList, pIterateList, pFolderItem) {
+ if (pFolderItem) {
+ media_folder_get_folder_id(pFolderItem, &szMediaId);
+ if (g_strcmp0(szMediaId, pMediaId) == 0) {
+ MP_FREE_STRING(szMediaId);
+ *nMediaIndex = nIndex;
+
+ return TRUE;
+ }
+ MP_FREE_STRING(szMediaId);
+ nIndex++;
+ }
+ }
+
+ }
+
+ return FALSE;
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "mp-util-preference.h"
+#include "vp-play-log.h"
+#include "mp-video-value-define.h"
+
+/* keys */
+#define MP_UTIL_PREFERENCE_KEY_MULTI_PLAY_FLAG "preference/org.tizen.videos/multi_play"
+#define MP_UTIL_PREFERENCE_KEY_PREVIEW_URL_VIDEOS "preference/org.tizen.videos/preview_url_videos"
+
+/* storage */
+/**
+ *
+ * @param set
+ * @return
+ */
+bool mp_util_preference_set_multi_play_status(bool set)
+{
+ int nErr = 0;
+ nErr = preference_set_boolean(MP_UTIL_PREFERENCE_KEY_MULTI_PLAY_FLAG,
+ set);
+ if (nErr != 0) {
+ VideoLogError
+ ("SET MP_UTIL_PREFERENCE_KEY_MULTI_PLAY_FLAG is fail [0x%x]",
+ nErr);
+ return FALSE;
+ }
+ return TRUE;
+}
+
+/**
+ *
+ * @param bMultiPlay
+ * @return
+ */
+bool mp_util_preference_get_multi_play_status(bool * bMultiPlay)
+{
+ int nErr = 0;
+ bool nVal = false;
+
+ nErr = preference_get_boolean(MP_UTIL_PREFERENCE_KEY_MULTI_PLAY_FLAG,
+ &nVal);
+ if (nErr != 0) {
+ VideoLogError
+ ("GET MP_UTIL_PREFERENCE_KEY_MULTI_PLAY_FLAG is fail [0x%x]",
+ nErr);
+ return FALSE;
+ }
+
+ *bMultiPlay = (nVal == 0) ? FALSE : TRUE;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @return
+ */
+char *mp_util_preference_get_preview(void)
+{
+ char *szPreview = NULL;
+ int nErr = 0;
+
+ nErr = preference_get_string(MP_UTIL_PREFERENCE_KEY_PREVIEW_URL_VIDEOS,
+ &szPreview);
+ if (nErr != 0) {
+ VideoLogError("fail to retrieve preview url [0x%x]", nErr);
+ }
+ VideoSecureLogInfo("szPreviewUrl : %s", szPreview);
+
+ if (szPreview) {
+ if (strlen(szPreview) < 1) {
+ free(szPreview);
+ szPreview = NULL;
+ }
+ }
+ return szPreview;
+}
+
+/**
+ *
+ * @param szPreview
+ * @return
+ */
+bool mp_util_preference_set_preview(char *szPreview)
+{
+ VideoSecureLogInfo("szPreviewUrl : %s", szPreview);
+
+ bool bRet = FALSE;
+
+ if (szPreview) {
+ if (preference_set_string
+ (MP_UTIL_PREFERENCE_KEY_PREVIEW_URL_VIDEOS, szPreview)) {
+ VideoLogError("Fail to write url.");
+ bRet = FALSE;
+ } else {
+ bRet = TRUE;
+ }
+ } else {
+ if (preference_set_string
+ (MP_UTIL_PREFERENCE_KEY_PREVIEW_URL_VIDEOS, "")) {
+ VideoLogError("Fail to write url.");
+ bRet = FALSE;
+ } else {
+ bRet = TRUE;
+ }
+ }
+
+ return bRet;
+}
+
+/**
+ *
+ * @param callback
+ * @param pUserData
+ * @return
+ */
+bool mp_util_preference_set_preview_change(preference_changed_cb callback,
+ void *pUserData)
+{
+
+ bool bRet = FALSE;
+ int nErr = 0;
+
+ nErr = preference_set_changed_cb
+ (MP_UTIL_PREFERENCE_KEY_PREVIEW_URL_VIDEOS, callback, pUserData);
+ if (nErr != 0) {
+ VideoLogError("Failed to register callback [0x%x]", nErr);
+ } else {
+ bRet = TRUE;
+ }
+
+ return bRet;
+}
+
+/**
+ *
+ * @return
+ */
+bool mp_util_preference_unset_preview_change()
+{
+ bool bRet = FALSE;
+ int nErr = 0;
+
+ nErr = preference_unset_changed_cb
+ (MP_UTIL_PREFERENCE_KEY_PREVIEW_URL_VIDEOS);
+ if (nErr != 0) {
+ VideoLogError("failed to unregister [0x%x]", nErr);
+ } else {
+ bRet = TRUE;
+ }
+
+ return bRet;
+}
+
+/**
+ *
+ */
+void mp_util_preference_init()
+{
+ /*if add preference key. it is necessary to init new preference here. */
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#include <glib.h>
+#include <Elementary.h>
+
+#include <notification.h>
+#include <metadata_extractor.h>
+#include <app_preference.h>
+
+#include <sys/statvfs.h>
+
+#include <net_connection.h>
+#include <telephony.h>
+
+#include "mp-util.h"
+#include "mp-video-log.h"
+#include "mp-util-media-service.h"
+#include "mp-video-value-define.h"
+#include "mp-video-string-define.h"
+#include "mp-video-info-ctrl.h"
+#ifdef ENABLE_DRM_FEATURE
+#include "vp-drm.h"
+#endif
+#include "vp-file-util.h"
+
+enum VIDEO_PLAYER_FILE_SIZE_TYPE {
+ SIZE_BYTE = 0,
+ SIZE_KB,
+ SIZE_MB,
+ SIZE_GB
+};
+
+
+#define MP_UTIL_PHONE_PATH "/opt/usr/media"
+#define MP_UTIL_SD_PATH "/opt/storage/sdcard"
+#define MP_UTIL_USB_PATH "/opt/storage/usb"
+#define MP_UTIL_MEDIA_DIR "/opt/usr/media/Videos"
+
+#define MP_UTIL_FILE_PREFIX "file://"
+
+#define FILE_SIZE_LEN_MAX 64
+#define BASIC_SIZE 1024 /*used for file size check */
+
+#define VIDEO_TIME_MSEC_PER_SEC 1000
+#define VIDEO_TIME_SEC_PER_MIN 60
+#define VIDEO_TIME_MIN_PER_HOUR 60
+#define VIDEO_TIME_SEC_PER_HOUR (VIDEO_TIME_MIN_PER_HOUR * VIDEO_TIME_SEC_PER_MIN)
+
+#define PREF_MP_UTIL_MAIN_TAB_TYPE "preference/org.tizen.videos/main_display_tab"
+
+
+static Evas_Object *pPopUpHandle = NULL;
+static Evas_Object *pMainWindowHandle = NULL;
+static Evas_Object *pMainConformant = NULL;
+
+mpColorThemeChangedCb g_fThemeChangedCb = NULL;
+static bool auto_play = false;
+
+/**
+ *
+ * @return
+ */
+bool vp_is_auto_play_on()
+{
+ VideoLogInfo("");
+ int nErr = 0;
+ bool nVal = 0;
+ nErr = preference_get_boolean(PREF_MP_VIDEO_AUTO_PLAY_TYPE_KEY, &nVal);
+ if (nErr != 0) {
+ VideoLogError("failed to get MULTI PLAY FLAG [0x%x]", nErr);
+ return FALSE;
+ }
+ if (nVal)
+ return TRUE;
+ else
+ return false;
+}
+
+/**
+ *
+ * @param val
+ */
+void vp_set_auto_play(bool val)
+{
+ auto_play = val;
+ int nErr = 0;
+ nErr = preference_set_boolean(PREF_MP_VIDEO_AUTO_PLAY_TYPE_KEY, val);
+ if (nErr != 0) {
+ VideoLogError("failed to set MULTI PLAY FLAG [0x%x]", nErr);
+ }
+}
+
+/**
+ *
+ * @param fChanged
+ */
+void mp_util_set_color_theme_changed_cb(mpColorThemeChangedCb fChanged)
+{
+ g_fThemeChangedCb = fChanged;
+}
+
+/**
+ *
+ */
+void mp_util_create_main_theme(void)
+{
+ mp_util_free_main_theme();
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje", VIDEO_CUSTOM_THEME);
+ free(path);
+ elm_theme_extension_add(NULL, edj_path);
+}
+
+/**
+ *
+ */
+void mp_util_free_main_theme(void)
+{
+ const Eina_List *pExtensionThemeList = NULL;
+ Eina_List *l = NULL;
+ char *pItem = NULL;
+
+ pExtensionThemeList = elm_theme_extension_list_get(NULL);
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje", VIDEO_CUSTOM_THEME);
+ free(path);
+ if (pExtensionThemeList) {
+ EINA_LIST_FOREACH((Eina_List *) pExtensionThemeList, l, pItem) {
+ if (pItem != NULL && strcmp(pItem, edj_path) == 0) {
+ elm_theme_extension_del(NULL, edj_path);
+ }
+ }
+ }
+}
+
+/**
+ *
+ * @return
+ */
+int mp_util_get_main_tab_type()
+{
+ int nType = 0;
+
+ if (preference_get_int(PREF_MP_UTIL_MAIN_TAB_TYPE, &nType) !=
+ PREFERENCE_ERROR_NONE) {
+ VideoLogError("[ERR] PREF_MP_UTIL_MAIN_TAB_TYPE fail!!!");
+ }
+
+ return nType;
+}
+
+/**
+ *
+ * @param nType
+ */
+void mp_util_set_main_tab_type(int nType)
+{
+ if (preference_set_int(PREF_MP_UTIL_MAIN_TAB_TYPE, nType) !=
+ PREFERENCE_ERROR_NONE) {
+ VideoLogError("[ERR] PREF_MP_UTIL_MAIN_TAB_TYPE fail!!!");
+ }
+}
+
+/**
+ *
+ */
+void mp_util_reset_for_relauching(void)
+{
+ pPopUpHandle = NULL;
+ pMainWindowHandle = NULL;
+ pMainConformant = NULL;
+}
+
+/**
+ *
+ */
+void mp_util_show_indicator(void)
+{
+ if (!pMainConformant || !pMainWindowHandle) {
+ VideoLogError
+ ("[ERR] No exist pMainConformant, pMainWindowHandle.");
+ return;
+ }
+
+ elm_win_indicator_mode_set((Evas_Object *) pMainWindowHandle,
+ ELM_WIN_INDICATOR_SHOW);
+ elm_win_indicator_opacity_set((Evas_Object *) pMainWindowHandle,
+ ELM_WIN_INDICATOR_OPAQUE);
+ elm_object_signal_emit((Evas_Object *) pMainConformant,
+ "elm,state,indicator,nooverlap", "");
+ evas_object_data_set((Evas_Object *) pMainConformant, "overlap", NULL);
+}
+
+/**
+ *
+ */
+void mp_util_hide_indicator(void)
+{
+ if (!pMainConformant || !pMainWindowHandle) {
+ VideoLogError
+ ("[ERR] No exist pMainConformant, pMainWindowHandle.");
+ return;
+ }
+
+ elm_win_indicator_mode_set((Evas_Object *) pMainWindowHandle,
+ ELM_WIN_INDICATOR_SHOW);
+ elm_win_indicator_opacity_set((Evas_Object *) pMainWindowHandle,
+ ELM_WIN_INDICATOR_TRANSPARENT);
+ elm_object_signal_emit((Evas_Object *) pMainConformant,
+ "elm,state,indicator,overlap", "");
+ evas_object_data_set((Evas_Object *) pMainConformant, "overlap",
+ (void *) EINA_TRUE);
+}
+
+/**
+ *
+ * @param pWindowHandle
+ */
+void mp_util_set_main_window_handle(void *pWindowHandle)
+{
+ pMainWindowHandle = pWindowHandle;
+}
+
+/**
+ *
+ * @param pConformant
+ */
+void mp_util_set_main_conformat(void *pConformant)
+{
+ pMainConformant = pConformant;
+}
+
+/**
+ *
+ */
+void *mp_util_get_main_conformat(void)
+{
+
+ if (!pMainConformant) {
+ VideoLogError("[ERR] No exist pMainConformant.");
+ return NULL;
+ }
+
+ return pMainConformant;
+}
+
+/**
+ *
+ */
+void *mp_util_get_main_window_handle(void)
+{
+
+ if (!pMainWindowHandle) {
+ VideoLogError("[ERR] No exist main window handle.");
+ return NULL;
+ }
+
+ return pMainWindowHandle;
+}
+
+/**
+ *
+ * @param pParent
+ * @param icon_path
+ * @param pFunc
+ * @param pUserData
+ */
+void *mp_util_create_title_icon_btn(void *pParent, const char *icon_path,
+ Evas_Smart_Cb pFunc, void *pUserData)
+{
+ if (!pParent || !icon_path) {
+ VideoLogError("invalid parent and icon path");
+ return NULL;
+ }
+ Evas_Object *pIcon = NULL;
+ Evas_Object *pTitleBtn = NULL;
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VIDEO_PLAYER_IMAGE_NAME_EDJ);
+ free(path);
+ pIcon = elm_image_add((Evas_Object *) pParent);
+ elm_image_file_set(pIcon, edj_path, icon_path);
+ evas_object_size_hint_aspect_set(pIcon, EVAS_ASPECT_CONTROL_BOTH, 1,
+ 1);
+
+ pTitleBtn = elm_button_add((Evas_Object *) pParent);
+ elm_object_style_set(pTitleBtn, "naviframe/title_icon");
+ elm_object_part_content_set(pTitleBtn, "icon", pIcon);
+ evas_object_smart_callback_add(pTitleBtn, "clicked", pFunc, pUserData);
+
+ return pTitleBtn;
+}
+
+/*///////////////////////////////////////*/
+/* Popup utility*/
+
+/**
+ *
+ */
+void mp_util_delete_popup_handle(void)
+{
+
+ if (pPopUpHandle) {
+ evas_object_del(pPopUpHandle);
+ pPopUpHandle = NULL;
+ } else {
+ VideoLogInfo("No exist popup.");
+ }
+}
+
+/**
+ *
+ * @param data
+ * @param pObj
+ * @param event_info
+ */
+static void __mp_util_popup_back_cb(void *data, Evas_Object * pObj,
+ void *event_info)
+{
+ mp_util_delete_popup_handle();
+}
+
+/**
+ *
+ * @param pUserData
+ * @param szTitle
+ * @param szContents
+ * @param PopupButtonCallbackFunc
+ * @return
+ */
+bool mp_util_notify_popup(void *pUserData, char *szTitle,
+ char *szContents, void *PopupButtonCallbackFunc)
+{
+ if (!szContents) {
+ VideoLogError("No have popup message is null.");
+ return FALSE;
+ }
+ mp_util_delete_popup_handle();
+
+ pPopUpHandle = elm_popup_add(mp_util_get_main_window_handle());
+ eext_object_event_callback_add(pPopUpHandle, EEXT_CALLBACK_BACK,
+ PopupButtonCallbackFunc, NULL);
+ evas_object_smart_callback_add(pPopUpHandle, "block,clicked",
+ __mp_util_popup_back_cb,
+ (void *) pUserData);
+
+ evas_object_size_hint_weight_set(pPopUpHandle, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ elm_object_text_set(pPopUpHandle, szContents);
+ if (szTitle && (szTitle == VIDEOS_COMMON_HEADER_ERROR)) {
+ elm_object_domain_translatable_part_text_set(pPopUpHandle,
+ "title,text",
+ MP_SYS_STRING,
+ szTitle);
+ }
+ elm_popup_timeout_set(pPopUpHandle, 3.0);
+
+ if (PopupButtonCallbackFunc) {
+ evas_object_smart_callback_add(pPopUpHandle, "timeout",
+ PopupButtonCallbackFunc, pUserData);
+ } else {
+ evas_object_smart_callback_add(pPopUpHandle, "timeout",
+ __mp_util_popup_back_cb, pUserData);
+ }
+ evas_object_show(pPopUpHandle);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param szLabel
+ * @param response_cb
+ * @param focus_cb
+ * @param pUserData
+ * @param szDomain
+ * @return
+ */
+bool mp_util_info_popup(char *szLabel, Evas_Smart_Cb response_cb,
+ Evas_Event_Cb focus_cb, void *pUserData,
+ const char *szDomain)
+{
+ VideoLogInfo("");
+
+ if (!szLabel) {
+ VideoLogError("No have popup message or pUserData is null.");
+ return FALSE;
+ }
+
+ mp_util_delete_popup_handle();
+
+ pPopUpHandle = elm_popup_add(mp_util_get_main_window_handle());
+
+ eext_object_event_callback_add(pPopUpHandle, EEXT_CALLBACK_BACK,
+ response_cb, pUserData);
+
+ Evas_Object *obj_ok = elm_button_add(pPopUpHandle);
+ elm_object_style_set(obj_ok, "popup");
+ elm_object_domain_translatable_text_set(obj_ok, MP_SYS_STRING,
+ VIDEOS_COMMON_BUTTON_OK_IDS);
+ elm_object_part_content_set(pPopUpHandle, "button1", obj_ok);
+ evas_object_smart_callback_add(obj_ok, "clicked", response_cb,
+ pPopUpHandle);
+
+ if (szLabel) {
+ elm_object_domain_translatable_text_set(pPopUpHandle, szDomain,
+ szLabel);
+ }
+
+ evas_object_show(pPopUpHandle);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pParent
+ * @param szLabel
+ * @param response_cb
+ * @param focus_cb
+ * @param pUserData
+ * @param szDomain
+ * @return
+ */
+bool mp_util_info_second_popup(Evas_Object * pParent, char *szLabel,
+ Evas_Smart_Cb response_cb,
+ Evas_Event_Cb focus_cb, void *pUserData,
+ const char *szDomain)
+{
+ VideoLogInfo("");
+
+ if (!szLabel) {
+ VideoLogError("No have popup message or pUserData is null.");
+ return FALSE;
+ }
+
+ mp_util_delete_popup_handle();
+
+ pPopUpHandle = elm_popup_add(pParent);
+
+ eext_object_event_callback_add(pPopUpHandle, EEXT_CALLBACK_BACK,
+ response_cb, pUserData);
+
+ Evas_Object *obj_ok = elm_button_add(pPopUpHandle);
+ elm_object_style_set(obj_ok, "popup");
+ elm_object_domain_translatable_text_set(obj_ok, MP_SYS_STRING,
+ VIDEOS_COMMON_BUTTON_OK_IDS);
+ elm_object_part_content_set(pPopUpHandle, "button1", obj_ok);
+ evas_object_smart_callback_add(obj_ok, "clicked", response_cb,
+ pPopUpHandle);
+
+ if (szLabel) {
+ elm_object_domain_translatable_text_set(pPopUpHandle, szDomain,
+ szLabel);
+ }
+
+ evas_object_show(pPopUpHandle);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param response_cb
+ * @param cancel_cb
+ * @param ok_cb
+ * @param check_changed_cb
+ * @param szLabel
+ * @param pUserData
+ */
+void mp_util_text_and_check_popup(Evas_Smart_Cb response_cb,
+ void *cancel_cb, void *ok_cb,
+ void *check_changed_cb, char *szLabel,
+ void *pUserData)
+{
+ if (!szLabel) {
+ VideoLogError("No have popup message or pUserData is null.");
+ return;
+ }
+ Evas_Object *pCheck = NULL;
+ Evas_Object *pLayout = NULL;
+ Evas_Object *pLabel = NULL;
+ Evas_Object *pBtn1 = NULL;
+ Evas_Object *pBtn2 = NULL;
+
+ mp_util_delete_popup_handle();
+
+ pPopUpHandle = elm_popup_add(mp_util_get_main_window_handle());
+
+ eext_object_event_callback_add(pPopUpHandle, EEXT_CALLBACK_BACK,
+ response_cb, pUserData);
+
+ pLabel = elm_label_add(pPopUpHandle);
+ elm_label_line_wrap_set(pLabel, ELM_WRAP_MIXED);
+ elm_object_text_set(pLabel, szLabel);
+ evas_object_size_hint_weight_set(pLabel, EVAS_HINT_EXPAND, 0.0);
+ evas_object_size_hint_align_set(pLabel, EVAS_HINT_FILL,
+ EVAS_HINT_FILL);
+ evas_object_show(pLabel);
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VIDEO_PLAYER_POPUP_PROGRESSBAR_EDJ);
+ free(path);
+ pLayout = elm_layout_add(pPopUpHandle);
+ elm_layout_file_set(pLayout, edj_path, "popup_checkview");
+ evas_object_size_hint_weight_set(pLayout, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+
+ pCheck = elm_check_add(pPopUpHandle);
+ elm_object_style_set(pCheck, "multiline");
+ evas_object_smart_callback_add(pCheck, "changed", check_changed_cb,
+ pUserData);
+ elm_check_state_set(pCheck, FALSE);
+ elm_object_text_set(pCheck, MP_PERSONAL_DONT_ASK_AGAIN);
+ evas_object_size_hint_align_set(pCheck, EVAS_HINT_FILL,
+ EVAS_HINT_FILL);
+ evas_object_size_hint_weight_set(pCheck, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_show(pCheck);
+
+ elm_object_part_content_set(pLayout, "elm.swallow.content", pLabel);
+ elm_object_part_content_set(pLayout, "elm.swallow.end", pCheck);
+
+ evas_object_show(pLayout);
+ elm_object_content_set(pPopUpHandle, pLayout);
+
+ pBtn1 = elm_button_add(pPopUpHandle);
+ elm_object_style_set(pBtn1, "popup");
+ elm_object_text_set(pBtn1, VIDEOS_COMMON_BUTTON_CANCEL);
+ elm_object_part_content_set(pPopUpHandle, "button1", pBtn1);
+ evas_object_smart_callback_add(pBtn1, "clicked", cancel_cb,
+ pPopUpHandle);
+
+ pBtn2 = elm_button_add(pPopUpHandle);
+ elm_object_style_set(pBtn2, "popup");
+ elm_object_text_set(pBtn2, VIDEOS_COMMON_BUTTON_OK);
+ elm_object_part_content_set(pPopUpHandle, "button2", pBtn2);
+ evas_object_smart_callback_add(pBtn2, "clicked", ok_cb, pPopUpHandle);
+ evas_object_show(pPopUpHandle);
+}
+
+/**
+ *
+ */
+void *mp_util_get_current_popup_object()
+{
+ return (void *) pPopUpHandle;
+}
+
+/**
+ *
+ * @param style
+ * @param szLabel
+ * @param response_cb
+ * @param pUserData
+ * @return
+ */
+bool mp_util_loading_popup(MpLoadingPopUpType style, char *szLabel,
+ Evas_Smart_Cb response_cb, void *pUserData)
+{
+ VideoLogInfo("");
+ Evas_Object *pLayout = NULL;
+ Evas_Object *pCancelButton = NULL;
+
+ if (!szLabel) {
+ VideoLogError("No have popup message or pUserData is null.");
+ return FALSE;
+ }
+
+ mp_util_delete_popup_handle();
+
+ pPopUpHandle = elm_popup_add(mp_util_get_main_window_handle());
+
+ eext_object_event_callback_add(pPopUpHandle, EEXT_CALLBACK_BACK,
+ response_cb, pUserData);
+
+ evas_object_size_hint_weight_set(pPopUpHandle, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+
+ Evas_Object *progressbar = NULL;
+
+ progressbar = elm_progressbar_add(pPopUpHandle);
+ elm_object_style_set(progressbar, "process_large");
+ elm_progressbar_pulse(progressbar, EINA_TRUE);
+ evas_object_size_hint_align_set(progressbar, EVAS_HINT_FILL, 0.5);
+ evas_object_size_hint_weight_set(progressbar, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ elm_progressbar_pulse(progressbar, EINA_TRUE);
+ evas_object_show(progressbar);
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VIDEO_PLAYER_POPUP_PROGRESSBAR_EDJ);
+ free(path);
+ pLayout = elm_layout_add(pPopUpHandle);
+ elm_layout_file_set(pLayout, edj_path, "popup_processing_1button");
+ evas_object_size_hint_weight_set(pLayout, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+
+ elm_object_part_content_set(pLayout, "elm.swallow.content",
+ progressbar);
+ elm_object_part_text_set(pLayout, "elm.text", szLabel);
+
+ elm_object_content_set(pPopUpHandle, pLayout);
+ if (style == POPUP_PROCESSING_ONE_BUTTON) {
+ pCancelButton = elm_button_add(pPopUpHandle);
+ elm_object_style_set(pCancelButton, "popup");
+ elm_object_domain_translatable_text_set(pCancelButton,
+ VIDEOS_STRING,
+ VIDEOS_COMMON_BUTTON_CANCEL_IDS);
+ elm_object_part_content_set(pPopUpHandle, "button1",
+ pCancelButton);
+ evas_object_smart_callback_add(pCancelButton, "clicked",
+ response_cb, pPopUpHandle);
+ evas_object_show(pCancelButton);
+ }
+
+ evas_object_show(pPopUpHandle);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param style
+ * @param szLabel
+ * @param response_cb
+ * @param pUserData
+ * @return
+ */
+bool mp_util_loading_left_text_popup(MpLoadingPopUpType style,
+ char *szLabel,
+ Evas_Smart_Cb response_cb,
+ void *pUserData)
+{
+ VideoLogInfo("");
+ Evas_Object *pLayout = NULL;
+ Evas_Object *pCancelButton = NULL;
+
+ if (!szLabel) {
+ VideoLogError("No have popup message or pUserData is null.");
+ return FALSE;
+ }
+
+ mp_util_delete_popup_handle();
+
+ pPopUpHandle = elm_popup_add(mp_util_get_main_window_handle());
+
+ eext_object_event_callback_add(pPopUpHandle, EEXT_CALLBACK_BACK,
+ response_cb, pUserData);
+
+ evas_object_size_hint_weight_set(pPopUpHandle, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+
+ Evas_Object *progressbar = NULL;
+
+ progressbar = elm_progressbar_add(pPopUpHandle);
+ elm_object_style_set(progressbar, "process_large");
+ elm_progressbar_pulse(progressbar, EINA_TRUE);
+ evas_object_size_hint_align_set(progressbar, EVAS_HINT_FILL, 0.5);
+ evas_object_size_hint_weight_set(progressbar, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ elm_progressbar_pulse(progressbar, EINA_TRUE);
+ evas_object_show(progressbar);
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VIDEO_PLAYER_POPUP_PROGRESSBAR_EDJ);
+ free(path);
+ pLayout = elm_layout_add(pPopUpHandle);
+ elm_layout_file_set(pLayout, edj_path, "popup_processingview_1button");
+ evas_object_size_hint_weight_set(pLayout, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+
+ elm_object_part_content_set(pLayout, "elm.swallow.content",
+ progressbar);
+ elm_object_part_text_set(pLayout, "elm.text", szLabel);
+
+ elm_object_content_set(pPopUpHandle, pLayout);
+ if (style == POPUP_PROCESSING_ONE_BUTTON) {
+ pCancelButton = elm_button_add(pPopUpHandle);
+ elm_object_style_set(pCancelButton, "popup");
+ elm_object_domain_translatable_text_set(pCancelButton,
+ VIDEOS_STRING,
+ VIDEOS_COMMON_BUTTON_CANCEL_IDS);
+ elm_object_part_content_set(pPopUpHandle, "button1",
+ pCancelButton);
+ evas_object_smart_callback_add(pCancelButton, "clicked",
+ response_cb, pPopUpHandle);
+ evas_object_show(pCancelButton);
+ }
+
+ evas_object_show(pPopUpHandle);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param szTitle
+ * @param szContents
+ * @param PopupYesButtonCallbackFunc
+ * @param PopupNoButtonCallbackFunc
+ * @return
+ */
+bool mp_util_yes_no_popup(void *pUserData, char *szTitle,
+ char *szContents,
+ void *PopupYesButtonCallbackFunc,
+ void *PopupNoButtonCallbackFunc)
+{
+
+ if (!szTitle || !szContents) {
+ VideoLogError("No have popup message or pUserData is null.");
+ return FALSE;
+ }
+
+ Evas_Object *pButton = NULL;
+
+ mp_util_delete_popup_handle();
+
+ pPopUpHandle = elm_popup_add(mp_util_get_main_window_handle());
+
+ eext_object_event_callback_add(pPopUpHandle, EEXT_CALLBACK_BACK,
+ PopupNoButtonCallbackFunc, NULL);
+
+ evas_object_size_hint_weight_set(pPopUpHandle, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ elm_object_text_set(pPopUpHandle, szContents);
+ elm_object_part_text_set(pPopUpHandle, "title,text", szTitle);
+
+ pButton = elm_button_add(pPopUpHandle);
+ elm_object_style_set(pButton, "popup");
+ elm_object_domain_translatable_text_set(pButton, MP_SYS_STRING,
+ VIDEOS_COMMON_BUTTON_YES_IDS);
+ elm_object_part_content_set(pPopUpHandle, "button1", pButton);
+
+ if (PopupYesButtonCallbackFunc) {
+ evas_object_smart_callback_add(pButton, "clicked",
+ PopupYesButtonCallbackFunc,
+ pUserData);
+ }
+
+ pButton = elm_button_add(pPopUpHandle);
+ elm_object_domain_translatable_text_set(pButton, MP_SYS_STRING,
+ VIDEOS_COMMON_BUTTON_NO_IDS);
+ elm_object_style_set(pButton, "popup");
+ elm_object_part_content_set(pPopUpHandle, "button2", pButton);
+
+ if (PopupNoButtonCallbackFunc) {
+ evas_object_smart_callback_add(pButton, "clicked",
+ PopupNoButtonCallbackFunc,
+ pUserData);
+ }
+
+ evas_object_show(pPopUpHandle);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param viewType
+ * @param PopupDeleteButtonCallbackFunc
+ * @param PopupCancelButtonCallbackFunc
+ * @param PopupHWMouseBackUpCbFunc
+ * @param PopupHWKeyBackCbFunc
+ * @return
+ */
+bool mp_util_remove_all_videos_question_popup(void *pUserData,
+ MpListViewAsType viewType,
+ void
+ *PopupDeleteButtonCallbackFunc,
+ void
+ *PopupCancelButtonCallbackFunc,
+ void
+ *PopupHWMouseBackUpCbFunc,
+ void *PopupHWKeyBackCbFunc)
+{
+ Evas_Object *pButton = NULL;
+
+ char *tmpTitle = NULL;
+ char *tmpStr = NULL;
+
+ mp_util_delete_popup_handle();
+
+ pPopUpHandle = elm_popup_add(mp_util_get_main_window_handle());
+
+ eext_object_event_callback_add(pPopUpHandle, EEXT_CALLBACK_BACK,
+ PopupCancelButtonCallbackFunc, NULL);
+
+ evas_object_size_hint_weight_set(pPopUpHandle, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+
+ tmpTitle = g_strdup_printf(VIDEOS_DELETEPOP_HEADER_DELETE);
+ elm_object_part_text_set(pPopUpHandle, "title,text", tmpTitle);
+ if (tmpTitle) {
+ free(tmpTitle);
+ tmpTitle = NULL;
+
+ }
+
+ if (viewType == MP_LIST_VIEW_AS_FOLDER_LIST) {
+ VideoLogInfo("All folders are selected to delete");
+ tmpStr =
+ g_strdup_printf
+ (VIDEOS_DELETEPOP_MSG_ALL_FOLDERS_WILL_BE_DELETED);
+ } else {
+ VideoLogInfo("All videos are selected to delete");
+ tmpStr =
+ g_strdup_printf
+ (VIDEOS_DELETEPOP_MSG_ALL_VIDEOS_WILL_BE_DELETED);
+ }
+
+ elm_object_part_text_set(pPopUpHandle, "default", tmpStr);
+ if (tmpStr) {
+ free(tmpStr);
+ tmpStr = NULL;
+ }
+
+ pButton = elm_button_add(pPopUpHandle);
+ elm_object_domain_translatable_text_set(pButton, VIDEOS_STRING,
+ VIDEOS_COMMON_BUTTON_CANCEL);
+ elm_object_style_set(pButton, "popup");
+ elm_object_part_content_set(pPopUpHandle, "button1", pButton);
+
+ if (PopupCancelButtonCallbackFunc) {
+ evas_object_smart_callback_add(pButton, "clicked",
+ PopupCancelButtonCallbackFunc,
+ pUserData);
+ }
+
+ pButton = elm_button_add(pPopUpHandle);
+
+ elm_object_domain_translatable_text_set(pButton, VIDEOS_STRING,
+ VIDEOS_DELETEPOP_BUTTON_DELETE_ALL);
+
+ elm_object_style_set(pButton, "popup");
+ elm_object_part_content_set(pPopUpHandle, "button2", pButton);
+
+ if (PopupDeleteButtonCallbackFunc) {
+ evas_object_smart_callback_add(pButton, "clicked",
+ PopupDeleteButtonCallbackFunc,
+ pUserData);
+ }
+
+ if (PopupHWMouseBackUpCbFunc) {
+ evas_object_event_callback_add(pPopUpHandle,
+ EVAS_CALLBACK_MOUSE_UP,
+ PopupHWMouseBackUpCbFunc,
+ pUserData);
+ }
+
+ if (PopupHWKeyBackCbFunc) {
+ }
+
+ evas_object_show(pPopUpHandle);
+
+ return TRUE;
+}
+
+
+/**
+ *
+ * @param pUserData
+ * @param viewType
+ * @param PopupDeleteButtonCallbackFunc
+ * @param PopupCancelButtonCallbackFunc
+ * @param PopupHWMouseBackUpCbFunc
+ * @param PopupHWKeyBackCbFunc
+ * @return
+ */
+bool mp_util_remove_question_popup(int pUserData,
+ MpListViewAsType viewType,
+ void *PopupDeleteButtonCallbackFunc,
+ void *PopupCancelButtonCallbackFunc,
+ void *PopupHWMouseBackUpCbFunc,
+ void *PopupHWKeyBackCbFunc)
+{
+ Evas_Object *pButton = NULL;
+
+ int nSelected = (int) pUserData;
+ char *tmpTitle = NULL;
+ char *tmpStr = NULL;
+
+ mp_util_delete_popup_handle();
+
+ pPopUpHandle = elm_popup_add(mp_util_get_main_window_handle());
+
+ eext_object_event_callback_add(pPopUpHandle, EEXT_CALLBACK_BACK,
+ PopupCancelButtonCallbackFunc, NULL);
+
+ evas_object_size_hint_weight_set(pPopUpHandle, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+
+ tmpTitle = g_strdup_printf(VIDEOS_DELETEPOP_HEADER_DELETE);
+ elm_object_part_text_set(pPopUpHandle, "title,text", tmpTitle);
+ if (tmpTitle) {
+ free(tmpTitle);
+ tmpTitle = NULL;
+ }
+
+ if (nSelected < -1) { /* select videos */
+ if (viewType == MP_LIST_VIEW_AS_FOLDER_LIST) {
+ VideoLogInfo("%d folders are selected to delete", -nSelected);
+ tmpStr =
+ g_strdup_printf
+ (VIDEOS_DELETEPOP_MSG_PD_FOLDERS_WILL_BE_DELETED,
+ -nSelected);
+ } else {
+ VideoLogInfo("%d videos are selected to delete", -nSelected);
+ tmpStr =
+ g_strdup_printf
+ (VIDEOS_DELETEPOP_MSG_PD_VIDEOS_WILL_BE_DELETED,
+ -nSelected);
+ }
+ } else {
+ /* select a video */
+ if (viewType == MP_LIST_VIEW_AS_FOLDER_LIST) {
+ VideoLogInfo("The folder is selected to delete. Index: %d.",
+ nSelected);
+ tmpStr =
+ g_strdup_printf
+ (VIDEOS_DELETEPOP_MSG_THIS_FOLDER_WILL_BE_DELETED_IDS);
+ } else {
+ VideoLogInfo("The video is selected to delete. Index: %d.",
+ nSelected);
+ tmpStr =
+ g_strdup_printf
+ (VIDEOS_DELETEPOP_MSG_ONE_VIDEO_WILL_BE_DELETED);
+ }
+ }
+ elm_object_part_text_set(pPopUpHandle, "default", tmpStr);
+ if (tmpStr) {
+ free(tmpStr);
+ tmpStr = NULL;
+ }
+
+ pButton = elm_button_add(pPopUpHandle);
+ elm_object_domain_translatable_text_set(pButton, VIDEOS_STRING,
+ VIDEOS_COMMON_BUTTON_CANCEL);
+ elm_object_style_set(pButton, "popup");
+ elm_object_part_content_set(pPopUpHandle, "button1", pButton);
+
+ if (PopupCancelButtonCallbackFunc) {
+ evas_object_smart_callback_add(pButton, "clicked",
+ PopupCancelButtonCallbackFunc,
+ (void *) pUserData);
+ }
+
+ pButton = elm_button_add(pPopUpHandle);
+
+ elm_object_domain_translatable_text_set(pButton, VIDEOS_STRING,
+ VIDEOS_DELETEPOP_BUTTON_DELETE);
+
+ elm_object_style_set(pButton, "popup");
+ elm_object_part_content_set(pPopUpHandle, "button2", pButton);
+
+ if (PopupDeleteButtonCallbackFunc) {
+ evas_object_smart_callback_add(pButton, "clicked",
+ PopupDeleteButtonCallbackFunc,
+ (void *) pUserData);
+ }
+
+ if (PopupHWMouseBackUpCbFunc) {
+ evas_object_event_callback_add(pPopUpHandle,
+ EVAS_CALLBACK_MOUSE_UP,
+ PopupHWMouseBackUpCbFunc,
+ (void *) pUserData);
+ }
+
+ if (PopupHWKeyBackCbFunc) {
+ }
+
+ evas_object_show(pPopUpHandle);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param PopupDeleteButtonCallbackFunc
+ * @param PopupCancelButtonCallbackFunc
+ * @param PopupHWMouseBackUpCbFunc
+ * @param PopupHWKeyBackCbFunc
+ * @return
+ */
+bool mp_util_remove_folder_question_popup(void *pUserData,
+ void
+ *PopupDeleteButtonCallbackFunc,
+ void
+ *PopupCancelButtonCallbackFunc,
+ void *PopupHWMouseBackUpCbFunc,
+ void *PopupHWKeyBackCbFunc)
+{
+ Evas_Object *pButton = NULL;
+
+ mp_util_delete_popup_handle();
+
+ pPopUpHandle = elm_popup_add(mp_util_get_main_window_handle());
+
+ eext_object_event_callback_add(pPopUpHandle, EEXT_CALLBACK_BACK,
+ PopupCancelButtonCallbackFunc, NULL);
+
+ evas_object_size_hint_weight_set(pPopUpHandle, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+
+ elm_object_part_text_set(pPopUpHandle, "title,text",
+ VIDEOS_DELETEPOP_HEADER_DELETE);
+ elm_object_domain_translatable_text_set(pPopUpHandle, VIDEOS_STRING,
+ VIDEOS_DELETEPOP_MSG_THIS_FOLDER_WILL_BE_DELETED_IDS);
+
+ pButton = elm_button_add(pPopUpHandle);
+ elm_object_domain_translatable_text_set(pButton, VIDEOS_STRING,
+ VIDEOS_COMMON_BUTTON_CANCEL_IDS);
+ elm_object_style_set(pButton, "popup_button/default");
+ elm_object_part_content_set(pPopUpHandle, "button1", pButton);
+
+ if (PopupCancelButtonCallbackFunc) {
+ evas_object_smart_callback_add(pButton, "clicked",
+ PopupCancelButtonCallbackFunc,
+ pUserData);
+ }
+
+ pButton = elm_button_add(pPopUpHandle);
+ elm_object_domain_translatable_text_set(pButton, VIDEOS_STRING,
+ VIDEOS_DELETEPOP_BUTTON_DELETE);
+ elm_object_style_set(pButton, "popup_button/default");
+ elm_object_part_content_set(pPopUpHandle, "button2", pButton);
+
+ if (PopupDeleteButtonCallbackFunc) {
+ evas_object_smart_callback_add(pButton, "clicked",
+ PopupDeleteButtonCallbackFunc,
+ pUserData);
+ }
+
+ if (PopupHWMouseBackUpCbFunc) {
+ evas_object_event_callback_add(pPopUpHandle,
+ EVAS_CALLBACK_MOUSE_UP,
+ PopupHWMouseBackUpCbFunc,
+ pUserData);
+ }
+
+ evas_object_show(pPopUpHandle);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param szTitle
+ * @param szContents
+ * @param PopupCancelBtnCallbackFunc
+ * @param PopupDownloadBtnCallbackFunc
+ * @return
+ */
+bool mp_util_download_question_popup(void *pUserData, char *szTitle,
+ char *szContents,
+ void *PopupCancelBtnCallbackFunc,
+ void *PopupDownloadBtnCallbackFunc)
+{
+ Evas_Object *pButton = NULL;
+
+ mp_util_delete_popup_handle();
+
+ pPopUpHandle = elm_popup_add(mp_util_get_main_window_handle());
+
+ evas_object_size_hint_weight_set(pPopUpHandle, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+
+ if (szContents)
+ elm_object_text_set(pPopUpHandle, szContents);
+
+ if (szTitle)
+ elm_object_part_text_set(pPopUpHandle, "title,text", szTitle);
+
+ pButton = elm_button_add(pPopUpHandle);
+ elm_object_domain_translatable_text_set(pButton, VIDEOS_STRING,
+ VIDEOS_COMMON_BUTTON_CANCEL_IDS);
+ elm_object_style_set(pButton, "popup");
+ elm_object_part_content_set(pPopUpHandle, "button1", pButton);
+
+ if (PopupCancelBtnCallbackFunc) {
+ evas_object_smart_callback_add(pButton, "clicked",
+ PopupCancelBtnCallbackFunc,
+ pUserData);
+ eext_object_event_callback_add(pPopUpHandle, EEXT_CALLBACK_BACK,
+ PopupCancelBtnCallbackFunc, NULL);
+ }
+
+ pButton = elm_button_add(pPopUpHandle);
+ elm_object_domain_translatable_text_set(pButton, VIDEOS_STRING,
+ VIDEOS_DELETEPOP_BUTTON_DELETE);
+ elm_object_style_set(pButton, "popup");
+ elm_object_part_content_set(pPopUpHandle, "button2", pButton);
+
+ if (PopupDownloadBtnCallbackFunc) {
+ evas_object_smart_callback_add(pButton, "clicked",
+ PopupDownloadBtnCallbackFunc,
+ pUserData);
+ }
+
+ evas_object_show(pPopUpHandle);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pBox
+ * @param szString
+ */
+void mp_util_set_label_for_detail(Evas_Object * pBox, char *szString)
+{
+
+ Evas_Object *pLabel = NULL;
+ if (!pBox) {
+ VideoLogError("error pBox");
+ return;
+ }
+ pLabel = elm_label_add(pBox);
+ elm_object_style_set(pLabel, "popup/default");
+ elm_object_text_set(pLabel, szString);
+ elm_label_line_wrap_set(pLabel, EINA_TRUE);
+ elm_label_wrap_width_set(pLabel,
+ VIDEO_POPUP_DETAIL_ITEM_W *
+ elm_config_scale_get());
+ evas_object_size_hint_weight_set(pLabel, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_size_hint_min_set(pLabel, VIDEO_POPUP_DETAIL_ITEM_W,
+ 35 * elm_config_scale_get());
+
+ elm_box_pack_end(pBox, pLabel);
+ evas_object_show(pLabel);
+
+}
+
+/**
+ *
+ * @param szLabel
+ * @return
+ */
+bool mp_util_progress_popup(char *szLabel)
+{
+ VideoLogInfo("");
+
+ if (!szLabel) {
+ VideoLogError("No have popup message or pUserData is null.");
+ return FALSE;
+ }
+
+ mp_util_delete_popup_handle();
+
+ pPopUpHandle = elm_popup_add(mp_util_get_main_window_handle());
+
+ eext_object_event_callback_add(pPopUpHandle, EEXT_CALLBACK_BACK,
+ __mp_util_popup_back_cb, NULL);
+
+ evas_object_size_hint_weight_set(pPopUpHandle, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ Evas_Object *progressbar, *box, *label;
+
+ label = elm_label_add(pPopUpHandle);
+ elm_object_text_set(label, szLabel);
+ evas_object_show(label);
+
+ progressbar = elm_progressbar_add(pPopUpHandle);
+ elm_object_style_set(progressbar, "pending_list");
+ elm_progressbar_pulse(progressbar, EINA_TRUE);
+ evas_object_size_hint_align_set(progressbar, EVAS_HINT_FILL, 0.5);
+ evas_object_size_hint_weight_set(progressbar, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ elm_progressbar_pulse(progressbar, EINA_TRUE);
+ evas_object_show(progressbar);
+
+ box = elm_box_add(pPopUpHandle);
+ elm_box_pack_end(box, label);
+ elm_box_pack_end(box, progressbar);
+ evas_object_show(box);
+ elm_object_content_set(pPopUpHandle, box);
+
+ evas_object_show(pPopUpHandle);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param szStr
+ */
+void mp_util_status_bar_noti_popup_show(const char *szStr)
+{
+ if (!szStr) {
+ VideoLogInfo("szStr is NULL.");
+ return;
+ }
+
+ int nRet = notification_status_message_post(szStr);
+
+ if (nRet != 0) {
+ VideoLogInfo("notification_status_message_post() : [0x%x]", nRet);
+ }
+}
+
+void *mp_util_create_button_icon(void *pParent, const char *szIconPath,
+ bool bSizeUp, bool bSizeDown,
+ int nAspectWidth, int nAspectHeight,
+ void *pUserData, char *szButtonStyle,
+ void *func)
+{
+ Evas_Object *pButton = NULL;
+ Evas_Object *pIcon = NULL;
+
+ pButton = elm_button_add(pParent);
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VIDEO_PLAYER_IMAGE_NAME_EDJ);
+ free(path);
+ if (szIconPath) {
+ pIcon = elm_icon_add(pParent);
+ elm_image_file_set(pIcon, edj_path, szIconPath);
+ evas_object_size_hint_aspect_set(pIcon,
+ EVAS_ASPECT_CONTROL_NEITHER,
+ nAspectWidth, nAspectHeight);
+ }
+
+ if (szButtonStyle) {
+ elm_object_style_set(pButton, szButtonStyle);
+ }
+
+ if (pIcon) {
+ elm_object_part_content_set(pButton, PART_BUTTON_ICON, pIcon);
+ }
+
+ if (func) {
+ evas_object_smart_callback_add(pButton, "clicked", func,
+ (void *) pUserData);
+ }
+
+ elm_object_focus_allow_set(pButton, EINA_FALSE);
+ evas_object_size_hint_weight_set(pButton, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_show(pButton);
+
+ return (void *) pButton;
+}
+
+/**
+ *
+ * @param pParent
+ * @param szButtonText
+ * @param pUserData
+ * @param szButtonStyle
+ * @param func
+ */
+void *mp_util_create_style_button(void *pParent, const char *szButtonText,
+ const void *pUserData,
+ char *szButtonStyle, void *func)
+{
+ Evas_Object *pButton = NULL;
+
+ pButton = elm_button_add(pParent);
+
+ if (szButtonStyle) {
+ elm_object_style_set(pButton, szButtonStyle);
+ }
+
+ if (szButtonText) {
+ elm_object_text_set(pButton, szButtonText);
+ }
+
+ if (func) {
+ evas_object_smart_callback_add(pButton, "clicked", func,
+ pUserData);
+ }
+
+ elm_object_focus_allow_set(pButton, EINA_FALSE);
+ evas_object_size_hint_weight_set(pButton, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_show(pButton);
+
+ return (void *) pButton;
+}
+
+/**
+ *
+ * @return
+ */
+bool mp_util_call_off(void)
+{
+ telephony_handle_list_s tel_list;
+ telephony_call_h *call_list_sim;
+ telephony_call_status_e status = TELEPHONY_CALL_STATUS_IDLE;
+ unsigned int count_sim[2] = {0};
+ int ret = TELEPHONY_ERROR_NONE;
+
+ int tel_valid = telephony_init(&tel_list);
+ if (tel_valid != TELEPHONY_ERROR_NONE) {
+ VideoLogError("telephony is not initialized. ERROR Code is %d",
+ tel_valid);
+ return TRUE;
+ }
+
+ for (int i = 0; i < tel_list.count; i++) {
+ ret =
+ telephony_call_get_call_list(tel_list.handle[i], &count_sim[i],
+ &call_list_sim);
+ if (ret != TELEPHONY_ERROR_NONE || call_list_sim == NULL) {
+ VideoLogError("Cannot get call list information for the sim");
+ return TRUE;
+ }
+ if (call_list_sim) {
+ ret = telephony_call_get_status(*call_list_sim, &status);
+ if (ret != TELEPHONY_ERROR_NONE) {
+ VideoLogError("getting call status failed");
+ return TRUE;
+ }
+ }
+ VideoLogDebug("call status = %d", status);
+
+ telephony_call_release_call_list(count_sim[i], &call_list_sim);
+ }
+ telephony_deinit(&tel_list);
+
+ if (ret == TELEPHONY_ERROR_NONE) {
+ if (status != TELEPHONY_CALL_STATUS_IDLE) {
+ return FALSE;
+ }
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param uri
+ * @return
+ */
+bool mp_util_check_local_file_exist(char *uri)
+{
+ if (!uri) {
+ VideoLogError("[ERR]");
+ return FALSE;
+ }
+
+ if (strstr(uri, MP_UTIL_FILE_PREFIX)) {
+ if (!g_file_test
+ (uri + strlen(MP_UTIL_FILE_PREFIX),
+ G_FILE_TEST_EXISTS | G_FILE_TEST_IS_REGULAR)) {
+ return FALSE;
+ }
+ return TRUE;
+ } else {
+ if (!g_file_test(uri, G_FILE_TEST_EXISTS | G_FILE_TEST_IS_REGULAR)) {
+ return FALSE;
+ }
+ return TRUE;
+ }
+}
+
+/**
+ *
+ * @param size
+ * @return
+ */
+char *mp_util_get_file_size(unsigned long long size)
+{
+ int nCount = 0;
+
+ char *pTmp = (char *) calloc(1, sizeof(char) * FILE_SIZE_LEN_MAX + 1);
+ if (!pTmp) {
+ return NULL;
+ }
+
+ double nSize_t = 0;
+
+ if (size >= (BASIC_SIZE)) {
+ nSize_t = (double) size / BASIC_SIZE;
+ nCount++;
+ }
+
+ while (nSize_t >= (BASIC_SIZE)) {
+ nSize_t /= BASIC_SIZE;
+ nCount++;
+ }
+
+ if (nCount == SIZE_BYTE) {
+ snprintf(pTmp, FILE_SIZE_LEN_MAX, "%0.1lf%s", nSize_t,
+ VIDEOS_DETAILVIEW_BODY_B);
+ } else if (nCount == SIZE_KB) {
+ snprintf(pTmp, FILE_SIZE_LEN_MAX, "%0.1lf%s", nSize_t,
+ VIDEOS_DETAILVIEW_BODY_KB);
+ } else if (nCount == SIZE_MB) {
+ snprintf(pTmp, FILE_SIZE_LEN_MAX, "%0.1lf%s", nSize_t,
+ VIDEOS_DETAILVIEW_BODY_MB);
+ } else if (nCount == SIZE_GB) {
+ snprintf(pTmp, FILE_SIZE_LEN_MAX, "%0.1lf%s", nSize_t,
+ VIDEOS_DETAILVIEW_BODY_GB);
+ } else {
+ snprintf(pTmp, FILE_SIZE_LEN_MAX, "%zu%s", (size_t) 0,
+ VIDEOS_DETAILVIEW_BODY_MB);
+ }
+
+ return pTmp;
+}
+
+/**
+ *
+ * @param szFilepath
+ * @param szTitle
+ * @param nLengthTitle
+ * @return
+ */
+bool mp_util_get_file_title_from_file_path(char *szFilepath,
+ char *szTitle, int nLengthTitle)
+{
+ if (!szFilepath || !szTitle) {
+ VideoLogError("[ERR]");
+ return FALSE;
+ }
+
+ char *szTitleName = NULL;
+ char *szExt = NULL;
+
+ memset(szTitle, 0, nLengthTitle);
+
+ szTitleName = strrchr(szFilepath, '/');
+
+ if (szTitleName) {
+ szTitleName++;
+ } else {
+ szTitleName = szFilepath;
+ }
+
+ szExt = strrchr(szTitleName, '.');
+
+ if (szExt) {
+ int nTmpStringSize = szExt - szTitleName;
+ strncpy(szTitle, szTitleName, nTmpStringSize);
+ } else {
+ strncpy(szTitle, szTitleName, STR_LEN_MAX - 1);
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param szFilePath
+ * @return
+ */
+char *mp_util_get_file_name_from_file_path(const char *szFilePath)
+{
+ if (!szFilePath) {
+ VideoLogError("File Path is NULL");
+ return NULL;
+ }
+ char *szFile = NULL;
+ char *szTitleName = NULL;
+ int nLength = 0;
+
+ nLength = strlen(szFilePath);
+
+ if (nLength <= 0) {
+ VideoLogError("Invalid buffer length");
+ return NULL;
+ }
+
+ szTitleName = strrchr(szFilePath, '/');
+
+ if (szTitleName) {
+ szTitleName++;
+ } else {
+ szTitleName = (char *) szFilePath;
+ }
+
+ szFile = calloc(1, strlen(szTitleName) + 1);
+ if (szFile) {
+ strncpy(szFile, szTitleName, strlen(szTitleName) + 1);
+ }
+
+ return szFile;
+}
+
+/**
+ *
+ * @param szFilePath
+ * @param szTitle
+ * @return
+ */
+char *mp_util_get_display_name_from_path_and_title(const char *szFilePath,
+ const char *szTitle)
+{
+ if (!szFilePath || !szTitle) {
+ VideoLogError("File Path is NULL");
+ return NULL;
+ }
+ char *szDisplayName = NULL;
+ char *szExt = NULL;
+ int nLength = 0;
+
+ szExt = strrchr(szFilePath, '.');
+ if (szExt) {
+ nLength = strlen(szTitle) + strlen(szExt) + 1;
+ } else {
+ nLength = strlen(szTitle) + 1;
+ }
+
+ szDisplayName = calloc(1, nLength);
+ if (szDisplayName) {
+ if (szExt) {
+ snprintf(szDisplayName, nLength, "%s%s", szTitle, szExt);
+ } else {
+ snprintf(szDisplayName, nLength, "%s", szTitle);
+ }
+ }
+ return szDisplayName;
+}
+
+/**
+ *
+ * @param szMediaURL
+ * @param szIconURL
+ * @return
+ */
+bool mp_util_get_icon_path_from_thumbnail(const char *szMediaURL,
+ char **szIconURL)
+{
+ if (!szMediaURL) {
+ VideoLogError("szMediaURL is NULL");
+ return FALSE;
+ }
+
+ if (strlen(szMediaURL) < 1) {
+ VideoLogError("szMediaURL is invalid Length");
+ return FALSE;
+ }
+
+ *szIconURL = NULL;
+ char *szExt = strrchr(szMediaURL, '.');
+ int nLen = 0;
+ if (szExt) {
+ nLen = strlen(szExt);
+ }
+
+ if (nLen == 4) {
+ if (vp_file_exists(szMediaURL)) {
+ VideoLogWarning("Success finding icon file. - %s", szMediaURL);
+ *szIconURL = strdup(szMediaURL);
+ }
+ return TRUE;
+ }
+
+ int nCount = 0;
+ int nStrLength = 0;
+ int nOutputLen = 0;
+
+ char szExtWildkey[3][5] = { ".jpg", ".png", ".bmp" };
+ char *szCheckFilePath = NULL;
+
+ nOutputLen = strlen(szMediaURL) + 5;
+ szCheckFilePath = calloc(1, sizeof(char) * nOutputLen);
+ if (szCheckFilePath) {
+ nStrLength = strlen(szMediaURL);
+
+ for (nCount = 0; nCount < 3; nCount++) {
+ memset(szCheckFilePath, 0, nOutputLen);
+ strncpy(szCheckFilePath, szMediaURL, nStrLength + 1);
+ strncat(szCheckFilePath, szExtWildkey[nCount], 5);
+
+ VideoLogWarning("%s", szCheckFilePath);
+
+ if (vp_file_exists(szCheckFilePath)) {
+ VideoLogWarning("Success finding icon file. - %d, %s",
+ nCount, szCheckFilePath);
+ *szIconURL = strdup(szCheckFilePath);
+ break;
+ }
+ }
+ }
+ if (szCheckFilePath) {
+ free(szCheckFilePath);
+ szCheckFilePath = NULL;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param nVideoTime
+ * @param szRetTime
+ * @param bIsHideHour
+ */
+void mp_util_convert_time(int nVideoTime, char *szRetTime,
+ bool bIsHideHour)
+{
+ if (!szRetTime) {
+ VideoLogError("[ERR] No exist szRetTime pointer.");
+ return;
+ } else {
+ memset(szRetTime, 0, STR_LEN_MAX);
+ }
+
+ if (nVideoTime <= 0) {
+ VideoLogInfo("nVideoTime : %d", nVideoTime);
+ }
+
+ int nTime = floor(nVideoTime / VIDEO_TIME_MSEC_PER_SEC);
+ int nHour = 0;
+ int nMin = 0;
+ int nSec = 0;
+ int nTmp = 0;
+
+ if (nTime >= VIDEO_TIME_SEC_PER_HOUR) {
+ nSec = nTime % VIDEO_TIME_SEC_PER_MIN;
+ nTmp = floor(nTime / VIDEO_TIME_SEC_PER_MIN);
+ nMin = nTmp % VIDEO_TIME_MIN_PER_HOUR;
+ nHour = floor(nTmp / VIDEO_TIME_MIN_PER_HOUR);
+ } else if (nTime >= VIDEO_TIME_SEC_PER_MIN) {
+ nHour = 0;
+ nMin = floor(nTime / VIDEO_TIME_SEC_PER_MIN);
+ nSec = nTime % VIDEO_TIME_SEC_PER_MIN;
+ } else {
+ nHour = 0;
+ nMin = 0;
+ nSec = nTime % VIDEO_TIME_SEC_PER_MIN;
+ }
+
+ if (bIsHideHour) {
+ if (nHour) {
+ snprintf(szRetTime, STR_LEN_MAX - 1, "%02d:%02d:%02d", nHour,
+ nMin, nSec);
+ } else {
+ snprintf(szRetTime, STR_LEN_MAX - 1, "00:%02d:%02d", nMin,
+ nSec);
+ }
+ } else {
+ snprintf(szRetTime, STR_LEN_MAX - 1, "%02d:%02d:%02d", nHour,
+ nMin, nSec);
+ }
+
+ szRetTime[strlen(szRetTime)] = '\0';
+}
+
+/**
+ *
+ * @param nVideoTime
+ * @param szRetTime
+ * @param bIsHideHour
+ */
+void mp_util_convert_sec_time(int nVideoTime, char *szRetTime,
+ bool bIsHideHour)
+{
+ if (!szRetTime) {
+ VideoLogError("[ERR] No exist szRetTime pointer.");
+ return;
+ } else {
+ memset(szRetTime, 0, STR_LEN_MAX);
+ }
+
+ if (nVideoTime <= 0) {
+ VideoLogInfo("nVideoTime : %d", nVideoTime);
+ }
+
+ int nTime = nVideoTime;
+ int nHour = 0;
+ int nMin = 0;
+ int nSec = 0;
+ int nTmp = 0;
+
+ if (nTime >= VIDEO_TIME_SEC_PER_HOUR) {
+ nSec = nTime % VIDEO_TIME_SEC_PER_MIN;
+ nTmp = floor(nTime / VIDEO_TIME_SEC_PER_MIN);
+ nMin = nTmp % VIDEO_TIME_MIN_PER_HOUR;
+ nHour = floor(nTmp / VIDEO_TIME_MIN_PER_HOUR);
+ } else if (nTime >= VIDEO_TIME_SEC_PER_MIN) {
+ nHour = 0;
+ nMin = floor(nTime / VIDEO_TIME_SEC_PER_MIN);
+ nSec = nTime % VIDEO_TIME_SEC_PER_MIN;
+ } else {
+ nHour = 0;
+ nMin = 0;
+ nSec = nTime % VIDEO_TIME_SEC_PER_MIN;
+ }
+
+ if (bIsHideHour) {
+ if (nHour) {
+ snprintf(szRetTime, STR_LEN_MAX - 1, "%02d:%02d:%02d", nHour,
+ nMin, nSec);
+ } else {
+ snprintf(szRetTime, STR_LEN_MAX - 1, "%02d:%02d", nMin, nSec);
+ }
+ } else {
+ snprintf(szRetTime, STR_LEN_MAX - 1, "%02d:%02d:%02d", nHour,
+ nMin, nSec);
+ }
+
+ szRetTime[strlen(szRetTime)] = '\0';
+
+}
+
+/**
+ *
+ * @return
+ */
+int mp_util_get_pid(void)
+{
+ return syscall(__NR_gettid);
+}
+
+/**
+ *
+ * @param str
+ * @param subStr
+ * @return
+ */
+const char *mp_util_str_str_same_case(const char *str, const char *subStr)
+{
+ if (!str || !subStr) {
+ return NULL;
+ }
+
+ int len = strlen(subStr);
+ const char *strcpy = str;
+ if (len == 0) {
+ return NULL;
+ }
+
+ while (*strcpy) {
+ if (strncasecmp(strcpy, subStr, len) == 0) {
+ return strcpy;
+ }
+ ++strcpy;
+ }
+ return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param event_info
+ */
+void mp_util_toast_popup_clicked_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *event_info)
+{
+ evas_object_del(pObject);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param event_info
+ */
+void mp_util_toast_popup_timeout_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *event_info)
+{
+ evas_object_del(pObject);
+}
+
+/**
+ *
+ * @param text
+ * @param info_style
+ * @param bottom
+ * @return
+ */
+bool mp_util_ticker_toast_popup(const char *text, bool info_style,
+ bool bottom)
+{
+ if (!text) {
+ return false;
+ }
+
+ /*************************************************************************************
+ * app control infomaiton
+ * Key Value Description
+ * 0 "default", "info" Tickernoti style, (default: "default")
+ * 1 "text" Text to use for the tickernoti description
+ * 2 "0", "1" Orientation of tickernoti. (0: top, 1:bottom, default: top)
+ * 3 "1", "2", �� ,"999" Timeout (1: 1 second, default: -1 means infinite)
+ *************************************************************************************/
+ Evas_Object *pToastPopup = NULL;
+ Evas_Object *pWindow = mp_util_get_main_window_handle();
+
+ pToastPopup = elm_popup_add(pWindow);
+ elm_popup_align_set(pToastPopup, ELM_NOTIFY_ALIGN_FILL, 1.0);
+ evas_object_size_hint_weight_set(pToastPopup, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ eext_object_event_callback_add(pToastPopup, EEXT_CALLBACK_BACK,
+ eext_popup_back_cb, NULL);
+ elm_object_text_set(pToastPopup, text);
+ evas_object_smart_callback_add(pToastPopup, "block,clicked",
+ mp_util_toast_popup_clicked_cb,
+ pWindow);
+ elm_popup_timeout_set(pToastPopup, 2.0);
+ evas_object_smart_callback_add(pToastPopup, "timeout",
+ mp_util_toast_popup_timeout_cb, NULL);
+
+ evas_object_show(pToastPopup);
+
+ return true;
+}
+
+/**
+ *
+ * @param text
+ * @param timeout_func
+ * @return
+ */
+bool mp_util_ticker_toast_with_timeout_cb_popup(const char *text,
+ Evas_Smart_Cb timeout_func)
+{
+ if (!text) {
+ return false;
+ }
+
+ Evas_Object *pToastPopup = NULL;
+ Evas_Object *pWindow = mp_util_get_main_window_handle();
+
+ pToastPopup = elm_popup_add(pWindow);
+ elm_popup_align_set(pToastPopup, ELM_NOTIFY_ALIGN_FILL, 1.0);
+ evas_object_size_hint_weight_set(pToastPopup, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ eext_object_event_callback_add(pToastPopup, EEXT_CALLBACK_BACK,
+ eext_popup_back_cb, NULL);
+ elm_object_text_set(pToastPopup, text);
+ evas_object_smart_callback_add(pToastPopup, "block,clicked",
+ mp_util_toast_popup_clicked_cb,
+ pWindow);
+ elm_popup_timeout_set(pToastPopup, 2.0);
+ evas_object_smart_callback_add(pToastPopup, "timeout", timeout_func,
+ NULL);
+
+ evas_object_show(pToastPopup);
+
+ return true;
+}
+
+/**
+ *
+ * @return
+ */
+bool mp_util_get_network_result()
+{
+ connection_h connection = NULL;
+ connection_type_e net_state;
+ bool bSuccessful = true;
+ int err = 0;
+
+ err = connection_create(&connection);
+ if (err != CONNECTION_ERROR_NONE) {
+ VideoLogWarning("connection_create error. err is [%d]", err);
+ bSuccessful = false;
+ }
+
+ if (connection) {
+ err = connection_get_type(connection, &net_state);
+ connection_destroy(connection);
+
+ if (err != CONNECTION_ERROR_NONE) {
+ VideoLogWarning("connection_get_type error. err is [%d]", err);
+ bSuccessful = false;
+ }
+ VideoLogInfo("net_state is [%d]", net_state);
+
+ if (net_state == CONNECTION_TYPE_DISCONNECTED) {
+ bSuccessful = false;
+ }
+ }
+
+ return bSuccessful;
+}
+
+/**
+ *
+ * @param file_path
+ * @return
+ */
+char *mp_util_get_dir_by_path(const char *file_path)
+{
+ if (!file_path) {
+ return NULL;
+ }
+ char *result = NULL;
+ char *dir_path = NULL;
+ int location_index = 0;
+ const char *location = NULL;;
+ const char *head_dir = NULL;
+ dir_path = vp_dir_get(file_path);
+
+ if (!dir_path)
+ return NULL;
+
+ if (!strncmp(dir_path, MP_UTIL_PHONE_PATH, strlen(MP_UTIL_PHONE_PATH))) {
+ head_dir = MP_UTIL_PHONE_PATH;
+ location = VIDEOS_FOLDERVIEW_BODY_DEVICE_MEMORY;
+ } else
+ if (!strncmp(dir_path, MP_UTIL_SD_PATH, strlen(MP_UTIL_SD_PATH))) {
+ head_dir = MP_UTIL_SD_PATH;
+ location = VIDEOS_FOLDERVIEW_BODY_SD_CARD;
+ } else if (!strncmp
+ (dir_path, MP_UTIL_USB_PATH, strlen(MP_UTIL_USB_PATH))) {
+ head_dir = MP_UTIL_USB_PATH;
+ location = VIDEOS_FOLDERVIEW_BODY_USB_MEMORY;
+ } else {
+ result = strdup(dir_path);
+ }
+
+ if (head_dir) {
+ location_index = strlen(head_dir) + 1;
+ }
+ if (location) {
+ MP_FREE_STRING(result);
+ result =
+ g_strdup_printf("/%s/%s", location,
+ (file_path + location_index));
+ }
+ VideoLogInfo("dir_path=%s, resul=%s", dir_path, result);
+
+ MP_FREE_STRING(dir_path);
+
+ return result;
+}
+
+/**
+ *
+ * @param nVideoFolderIndex
+ * @return
+ */
+char *mp_util_get_folder_icon_path(int nVideoFolderIndex)
+{
+ char *result = strdup(VIDEO_LIST_VIEW_ICON_FOLDER_PHONE);
+ char *dir_path = NULL;
+
+ char *file_path = mp_util_svc_get_video_folder_url(nVideoFolderIndex);
+ if (!file_path) {
+ VideoSecureLogError("file_path is NULL");
+ return result;
+ }
+ MpMediaStorageType storage_type =
+ mp_util_svc_get_folder_storage(nVideoFolderIndex);
+
+ if (storage_type == MP_MEDIA_TYPE_STORAGE_INTERNAL) {
+ if (result) {
+ free(result);
+ result = NULL;
+ }
+
+ result = strdup(VIDEO_LIST_VIEW_ICON_FOLDER_PHONE);
+ } else if (storage_type == MP_MEDIA_TYPE_STORAGE_EXTERNAL) {
+ dir_path = vp_dir_get(file_path);
+
+ if (!dir_path) {
+ MP_FREE_STRING(file_path);
+ VideoSecureLogError("dir_path is NULL");
+ return result;
+ }
+
+ if (!strncmp(dir_path, MP_UTIL_SD_PATH, strlen(MP_UTIL_SD_PATH))) {
+ if (result) {
+ free(result);
+ result = NULL;
+ }
+
+ result = strdup(VIDEO_LIST_VIEW_ICON_FOLDER_SDCARD);
+ } else if (!strncmp
+ (dir_path, MP_UTIL_USB_PATH,
+ strlen(MP_UTIL_USB_PATH))) {
+ if (result) {
+ free(result);
+ result = NULL;
+ }
+
+ result = strdup(VIDEO_LIST_VIEW_ICON_FOLDER_EXTERNAL);
+
+ }
+ } else if (storage_type == MP_MEDIA_TYPE_STORAGE_DROPBOX) {
+ if (result) {
+ free(result);
+ result = NULL;
+ }
+
+ result = strdup(VIDEO_LIST_VIEW_ICON_FOLDER_DROPBOX);
+ } else {
+ if (result) {
+ free(result);
+ result = NULL;
+ }
+
+ result = strdup(VIDEO_LIST_VIEW_ICON_FOLDER_PHONE);
+ }
+
+ MP_FREE_STRING(dir_path);
+ MP_FREE_STRING(file_path);
+
+ return result;
+}
+
+/**
+ *
+ * @return
+ */
+bool mp_util_get_personal_status(void)
+{
+ return FALSE;
+}
+
+/**
+ *
+ * @param szPreviewUrl
+ * @return
+ */
+bool mp_util_check_video_personal_status(const char *szPreviewUrl)
+{
+ return FALSE;
+}
+
+/**
+ *
+ * @param fullpath
+ * @return
+ */
+static int __mp_util_is_file_exist(const char *fullpath)
+{
+ if (!fullpath) {
+ return -1;
+ }
+ struct stat stFileInfo;
+
+ int intStat;
+
+ intStat = stat(fullpath, &stFileInfo);
+ if (intStat == 0) {
+ return 0;
+ }
+
+ return -1;
+}
+
+/**
+ *
+ * @param old_path
+ * @param new_path
+ * @param szNewestPath
+ * @return
+ */
+int mp_util_rename_file(const char *old_path, const char *new_path,
+ char **szNewestPath)
+{
+ int nCount = 0;
+ char *szNewPath = NULL;
+ char *szExt = NULL;
+ char *szNewPathTmp = NULL;
+
+ if (!old_path || !new_path) {
+ VideoLogError("Error path");
+ return -1;
+ }
+
+ if (!vp_file_exists(old_path)) {
+ VideoLogInfo("Error : file does not exist");
+ return -1;
+ }
+
+ szNewPath = g_strdup(new_path);
+ szExt = strrchr(new_path, '.');
+
+ if (szExt) {
+ int nStrlen = strlen(new_path) - strlen(szExt);
+ szNewPathTmp = g_strndup(new_path, nStrlen);
+ } else {
+ szNewPathTmp = g_strdup(new_path);
+ }
+
+ /*rename new file when name is existed */
+ while (__mp_util_is_file_exist(szNewPath) == 0) {
+ nCount++;
+ MP_FREE_STRING(szNewPath);
+ if (szExt) {
+ szNewPath =
+ g_strdup_printf("%s_%d%s", szNewPathTmp, nCount, szExt);
+ } else {
+ szNewPath = g_strdup_printf("%s_%d", szNewPathTmp, nCount);
+ }
+ }
+ VideoSecureLogInfo("%s:%s", old_path, szNewPath);
+ MP_FREE_STRING(szNewPathTmp);
+ *szNewestPath = g_strdup(szNewPath);
+
+ if (!vp_file_mv(old_path, szNewPath)) {
+ VideoLogError("move false %d", errno);
+ MP_FREE_STRING(szNewPath);
+ return -1;
+ }
+ MP_FREE_STRING(szNewPath);
+
+ return 0;
+}
+
+/**
+ *
+ * @param pDestPath
+ * @return
+ */
+int mp_util_set_dest_file(const char *pDestPath)
+{
+ if (!pDestPath) {
+ VideoLogError("pDestPath is NULL");
+ return -1;
+ }
+
+ int nRet = 0;
+
+ if (!vp_file_exists(pDestPath)) {
+ if (!vp_mkpath(pDestPath)) {
+ VideoLogError("Make directory Fail : %s", pDestPath);
+ nRet = -1;
+ } else {
+ nRet = 0;
+ }
+ }
+
+ return nRet;
+}
+
+
+#ifdef ENABLE_DRM_FEATURE
+bool mp_util_check_drm_lock(const char *szMediaURL, bool * bLock)
+{
+ if (!szMediaURL) {
+ VideoLogError("szMediaURL is NULL");
+ return FALSE;
+ }
+
+ bool bIsDrm = FALSE;
+
+ *bLock = FALSE;
+
+ if (vp_drm_is_drm_file(szMediaURL, &bIsDrm)) {
+ if (bIsDrm) {
+ bool bIsFWLock = FALSE;
+ bool bIsDivX = FALSE;
+ bool bIsPlayReadyDRM = FALSE;
+
+ if (vp_drm_is_check_forward_lock(szMediaURL, &bIsFWLock)) {
+ if (bIsFWLock) {
+ *bLock = TRUE;
+ }
+ }
+ if (vp_drm_is_divx_drm_file(szMediaURL, &bIsDivX)) {
+ if (bIsDivX) {
+ *bLock = TRUE;
+ }
+ }
+
+ if (vp_drm_is_playready_drm_file(szMediaURL, &bIsPlayReadyDRM)) {
+ if (bIsPlayReadyDRM) {
+ *bLock = TRUE;
+ }
+ }
+ }
+ }
+
+ return TRUE;
+}
+#endif
+
+/**
+ *
+ * @param szFilePath
+ * @return
+ */
+char *mp_util_get_title_from_path(char *szFilePath)
+{
+ if (!szFilePath || strlen(szFilePath) <= 0) {
+ VideoLogError("File Path is NULL");
+ return NULL;
+ }
+
+ char *szTitle = NULL;
+ const char *filename = vp_file_get(szFilePath);
+ if (!filename) {
+ return NULL;
+ }
+ szTitle = vp_strip_ext(filename);
+
+ return szTitle;
+}
+
+/**
+ *
+ * @param old_path
+ * @param szNewestPath
+ * @return
+ */
+int mp_util_rename_the_same_file(const char *old_path, char **szNewestPath)
+{
+ int nCount = 0;
+ char *szNewPath = NULL;
+ char *szExt = NULL;
+ char *szNewPathTmp = NULL;
+
+ if (!old_path) {
+ VideoLogError("Error path");
+ return -1;
+ }
+
+ szNewPath = g_strdup(old_path);
+ szExt = strrchr(old_path, '.');
+
+ if (szExt) {
+ int nStrlen = strlen(old_path) - strlen(szExt);
+ szNewPathTmp = g_strndup(old_path, nStrlen);
+ } else {
+ szNewPathTmp = g_strdup(old_path);
+ }
+
+ /*rename new file when name is existed */
+ while (__mp_util_is_file_exist(szNewPath) == 0) {
+ nCount++;
+ MP_FREE_STRING(szNewPath);
+ if (szExt) {
+ szNewPath =
+ g_strdup_printf("%s_%d%s", szNewPathTmp, nCount, szExt);
+ } else {
+ szNewPath = g_strdup_printf("%s_%d", szNewPathTmp, nCount);
+ }
+ }
+ VideoSecureLogInfo("%s", szNewPath);
+ MP_FREE_STRING(szNewPathTmp);
+ *szNewestPath = g_strdup(szNewPath);
+
+ MP_FREE_STRING(szNewPath);
+
+ return 0;
+}
+
+/**
+ *
+ * @param szFullPath
+ * @return
+ */
+bool mp_util_check_video_file(const char *szFullPath)
+{
+ bool bVideo = FALSE;
+ char *szExt = NULL;
+ if (!szFullPath) {
+ VideoLogError("INVALID PATH");
+ return FALSE;
+ }
+ char *szPath = g_strdup(szFullPath);
+ szExt = mp_info_ctrl_get_file_extension(szPath);
+
+ MP_FREE_STRING(szPath);
+
+ if (!szExt) {
+ return FALSE;
+ }
+ if (!strcasecmp("AVI", szExt)) {
+ bVideo = TRUE;
+ } else if (!strcasecmp("ASF", szExt)) {
+ bVideo = TRUE;
+ } else if (!strcasecmp("MP4", szExt)) {
+ bVideo = TRUE;
+ } else if (!strcasecmp("MPEG", szExt)) {
+ bVideo = TRUE;
+ } else if (!strcasecmp("MKV", szExt)) {
+ bVideo = TRUE;
+ } else if (!strcasecmp("SDP", szExt)) {
+ bVideo = TRUE;
+ } else if (!strcasecmp("WMV", szExt)) {
+ bVideo = TRUE;
+ } else if (!strcasecmp("3GP", szExt)) {
+ bVideo = TRUE;
+ } else if (!strcasecmp("3GPP", szExt)) {
+ bVideo = TRUE;
+ } else if (!strcasecmp("3G2", szExt)) {
+ bVideo = TRUE;
+ } else if (!strcasecmp("FLV", szExt)) {
+ bVideo = TRUE;
+ } else if (!strcasecmp("DIVX", szExt)) {
+ bVideo = TRUE;
+ } else if (!strcasecmp("CRDOWNLOAD", szExt)) {
+ bVideo = TRUE;
+ } else if (!strcasecmp("Unknown", szExt)) {
+ bVideo = TRUE;
+ } else {
+ bVideo = FALSE;
+ }
+ VideoLogInfo("format = %s:%d", szExt, bVideo);
+ MP_FREE_STRING(szExt);
+ return bVideo;
+}
+
+/**
+ *
+ * @param szDir
+ * @return
+ */
+bool mp_util_check_empty_dir(const char *szDir)
+{
+ if (!szDir) {
+ VideoLogError("INVALID PATH");
+ return FALSE;
+ }
+ int nRet = vp_is_dir_empty(szDir);
+ if (nRet == 1) {
+ return TRUE;
+ }
+ return FALSE;
+}
+
+/**
+ *
+ * @param szMediaURL
+ * @param szSubtitle
+ * @return
+ */
+bool mp_util_get_subtitle_path(const char *szMediaURL, char **szSubtitle)
+{
+ if (!szMediaURL) {
+ VideoLogError("szMediaURL is NULL");
+ return FALSE;
+ }
+
+ if (strlen(szMediaURL) < 1) {
+ VideoLogError("szMediaURL is invalid Length");
+ return FALSE;
+ }
+
+ struct stat buf;
+ int nCount = 0;
+ int nStrLength = 0;
+ int nOutputLen = 0;
+
+ char *szExt = NULL;
+ char szExtWildkey[6][5] = { ".srt", ".sub", ".smi", ".SRT", ".SUB",
+ ".SMI"
+ };
+ char *szCheckFilePath = NULL;
+
+ *szSubtitle = NULL;
+
+ nOutputLen = strlen(szMediaURL) + 5;
+ szCheckFilePath = calloc(1, sizeof(char) * nOutputLen);
+ if (!szCheckFilePath) {
+ VideoLogError("faile dto allocate memory");
+ return FALSE;
+ }
+
+ szExt = strrchr(szMediaURL, '.');
+ if (szExt) {
+ nStrLength = strlen(szMediaURL) - strlen(szExt);
+ } else {
+ nStrLength = strlen(szMediaURL);
+ }
+
+ for (nCount = 0; nCount < 6; nCount++) {
+ memset(szCheckFilePath, 0, nOutputLen);
+ strncpy(szCheckFilePath, szMediaURL, nStrLength);
+ strncat(szCheckFilePath, szExtWildkey[nCount], 5);
+ if (!stat(szCheckFilePath, &buf)) {
+ VideoLogWarning("Success finding subtitle file. - %d, %s",
+ nCount, szCheckFilePath);
+ *szSubtitle = g_strdup(szCheckFilePath);
+ break;
+ }
+ }
+
+ MP_FREE_STRING(szCheckFilePath);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param szMediaURL
+ * @param nSize
+ * @return
+ */
+bool mp_util_get_file_size_by_path(const char *szMediaURL,
+ unsigned long long *nSize)
+{
+ if (!szMediaURL) {
+ VideoLogError("szMediaURL is NULL");
+ return FALSE;
+ }
+
+ if (strlen(szMediaURL) < 1) {
+ VideoLogError("szMediaURL is invalid Length");
+ return FALSE;
+ }
+ struct stat src_info;
+ if (stat(szMediaURL, &src_info)) {
+ VideoLogInfo("error");
+ return FALSE;
+ } else {
+ *nSize = (unsigned long long) src_info.st_size;
+ }
+ return TRUE;
+}
+
+/**
+ *
+ * @param parent
+ * @param path
+ * @param nIconWidth
+ * @return
+ */
+Evas_Object *mp_util_create_preload_image(Evas_Object * parent,
+ const char *path, int nIconWidth)
+{
+ if (!parent || !path) {
+ VideoLogError("Invalid parent");
+ return NULL;
+ }
+
+ Evas_Object *thumb = NULL;
+ int nWidth = 0;
+ int nHeight = 0;
+
+ thumb = elm_image_add(parent);
+
+ elm_image_preload_disabled_set(thumb, EINA_FALSE);
+ elm_image_smooth_set(thumb, EINA_FALSE);
+
+ elm_image_prescale_set(thumb, nIconWidth);
+
+
+ elm_image_file_set(thumb, path, NULL);
+
+ elm_image_object_size_get(thumb, &nWidth, &nHeight);
+
+ if (nWidth > nHeight) {
+ elm_image_aspect_fixed_set(thumb, EINA_FALSE);
+ }
+
+ return thumb;
+}
+
+/**
+ *
+ * @param parent
+ * @param nIconWidth
+ * @return
+ */
+Evas_Object *mp_util_create_wall_preload_image(Evas_Object * parent,
+ int nIconWidth)
+{
+ if (!parent) {
+ VideoLogError("Invalid parent");
+ return NULL;
+ }
+
+ Evas_Object *thumb = NULL;
+
+ thumb = elm_image_add(parent);
+
+ elm_image_preload_disabled_set(thumb, EINA_FALSE);
+ elm_image_smooth_set(thumb, EINA_FALSE);
+
+ elm_image_prescale_set(thumb, nIconWidth);
+
+ return thumb;
+}
+
+/**
+ *
+ * @param pParent
+ * @param szMediaURL
+ * @param nWidth
+ * @param nHeight
+ * @return
+ */
+bool mp_util_get_image_size(Evas_Object * pParent, const char *szMediaURL,
+ int *nWidth, int *nHeight)
+{
+ if (!szMediaURL || !pParent) {
+ VideoLogError("szMediaURL or pParent is NULL");
+ return FALSE;
+ }
+
+ int nWidth_t = 0;
+ int nHeight_t = 0;
+
+ Evas *pObject = evas_object_evas_get(pParent);
+ if (!pObject) {
+ return FALSE;
+ }
+ Evas_Object *pImage = evas_object_image_add(pObject);
+ if (!pImage) {
+ return FALSE;
+ }
+ evas_object_image_file_set(pImage, szMediaURL, NULL);
+ evas_object_image_size_get(pImage, &nWidth_t, &nHeight_t);
+
+ VideoLogInfo("Image Width %d, Height %d", nWidth_t, nHeight_t);
+ *nWidth = nWidth_t;
+ *nHeight = nHeight_t;
+ MP_DEL_OBJ(pImage);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param szFilePath
+ * @return
+ */
+char *mp_util_get_preview_image_path(const char *szFilePath)
+{
+ if (!szFilePath) {
+ VideoLogError("[ERR] No exist szFilePath.");
+ return NULL;
+ }
+
+ char *szFileName = NULL;
+
+ szFileName =
+ mp_util_svc_get_video_Thumbnail_by_video_url(szFilePath);
+ return szFileName;
+}
+
+/**
+ *
+ * @param data
+ * @param e
+ * @param obj
+ * @param event_info
+ */
+static void
+__mp_util_progress_resize_cb(void *data, Evas * e, Evas_Object * obj,
+ void *event_info)
+{
+ int w = 0;
+ int h = 0;
+
+ if (!data) {
+ VideoLogError("data = NULL !!!");
+ return;
+ }
+
+ evas_object_geometry_get(mp_util_get_main_window_handle(), NULL, NULL,
+ &w, &h);
+ evas_object_resize((Evas_Object *) data, w, h);
+}
+
+/**
+ *
+ * @param data
+ * @param e
+ * @param obj
+ * @param event_info
+ */
+static void
+__mp_util_progress_del_cb(void *data, Evas * e, Evas_Object * obj,
+ void *event_info)
+{
+ if (!obj) {
+ VideoLogError("obj = NULL !!!");
+ return;
+ }
+
+ evas_object_event_callback_del(mp_util_get_main_window_handle(),
+ EVAS_CALLBACK_RESIZE,
+ __mp_util_progress_resize_cb);
+ evas_object_event_callback_del(obj, EVAS_CALLBACK_RESIZE,
+ __mp_util_progress_del_cb);
+}
+
+/**
+ *
+ * @return
+ */
+Evas_Object *mp_util_create_embedded_progress()
+{
+ Evas_Object *progressbar = NULL;
+ Evas_Object *layout = NULL;
+
+ int w = 0;
+ int h = 0;
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VIDEO_PLAYER_POPUP_PROGRESSBAR_EDJ);
+ free(path);
+ layout = elm_layout_add(mp_util_get_main_window_handle());
+ Eina_Bool r = FALSE;
+ r = elm_layout_file_set(layout, edj_path, "popup_embeded_processing");
+ if (!r) {
+ evas_object_del(layout);
+ VideoLogError("layout = NULL !!!");
+ return NULL;
+ }
+ evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(layout, EVAS_HINT_FILL,
+ EVAS_HINT_FILL);
+
+ evas_object_geometry_get(mp_util_get_main_window_handle(), NULL, NULL,
+ &w, &h);
+
+ evas_object_resize(layout, w, h);
+
+ evas_object_event_callback_add(mp_util_get_main_window_handle(),
+ EVAS_CALLBACK_RESIZE,
+ __mp_util_progress_resize_cb,
+ (const void *) layout);
+ evas_object_event_callback_add(layout, EVAS_CALLBACK_DEL,
+ __mp_util_progress_del_cb,
+ (const void *) layout);
+
+ evas_object_show(layout);
+
+ progressbar = elm_progressbar_add(layout);
+ elm_object_style_set(progressbar, "process_large");
+ elm_progressbar_pulse(progressbar, EINA_TRUE);
+ evas_object_size_hint_align_set(progressbar, EVAS_HINT_FILL, 0.5);
+ evas_object_size_hint_weight_set(progressbar, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_show(progressbar);
+
+ elm_object_part_content_set(layout, "elm.swallow.content",
+ progressbar);
+
+ evas_object_propagate_events_set(layout, EINA_FALSE);
+
+ return layout;
+}
+
+/**
+ *
+ * @param pProgress
+ */
+void mp_util_destroy_embedded_progress(Evas_Object * pProgress)
+{
+ if (!pProgress) {
+ VideoLogError("pProgress == NULL");
+ return;
+ }
+
+ evas_object_del(pProgress);
+ pProgress = NULL;
+}
+
+/**
+ *
+ * @param szFilePath
+ * @param nWidth
+ * @param nHeight
+ * @return
+ */
+bool mp_util_meta_get_width_and_height(const char *szFilePath,
+ int *nWidth, int *nHeight)
+{
+ if (!szFilePath) {
+ VideoLogError("szFilePath is NULL");
+ return FALSE;
+ }
+
+ metadata_extractor_h pMetadata = NULL;
+ char *szWidth = NULL;
+ char *szHeight = NULL;
+
+ int nRet = METADATA_EXTRACTOR_ERROR_NONE;
+
+ nRet = metadata_extractor_create(&pMetadata);
+ if (nRet != METADATA_EXTRACTOR_ERROR_NONE) {
+ VideoLogError("metadata_extractor_create is fail : 0x%x", nRet);
+ goto Exception;
+ }
+
+ nRet = metadata_extractor_set_path(pMetadata, szFilePath);
+ if (nRet != METADATA_EXTRACTOR_ERROR_NONE) {
+ VideoLogError("metadata_extractor_set_path is fail : 0x%x", nRet);
+ goto Exception;
+ }
+
+ nRet =
+ metadata_extractor_get_metadata(pMetadata, METADATA_VIDEO_WIDTH,
+ &szWidth);
+ if (nRet != METADATA_EXTRACTOR_ERROR_NONE) {
+ VideoLogError("metadata_extractor_get_metadata is fail : 0x%x",
+ nRet);
+ goto Exception;
+ }
+
+ nRet =
+ metadata_extractor_get_metadata(pMetadata, METADATA_VIDEO_HEIGHT,
+ &szHeight);
+ if (nRet != METADATA_EXTRACTOR_ERROR_NONE) {
+ VideoLogError("metadata_extractor_get_metadata is fail : 0x%x",
+ nRet);
+ goto Exception;
+ }
+ if (szWidth) {
+ *nWidth = atoi(szWidth);
+ } else {
+ *nWidth = 0;
+ }
+
+ if (szHeight) {
+ *nHeight = atoi(szHeight);
+ } else {
+ *nHeight = 0;
+ }
+
+ MP_FREE_STRING(szWidth);
+ MP_FREE_STRING(szHeight);
+
+ if (pMetadata) {
+ metadata_extractor_destroy(pMetadata);
+ pMetadata = NULL;
+ }
+
+ return TRUE;
+ Exception:
+
+ MP_FREE_STRING(szWidth);
+ MP_FREE_STRING(szHeight);
+
+ if (pMetadata) {
+ metadata_extractor_destroy(pMetadata);
+ pMetadata = NULL;
+ }
+
+ return FALSE;
+}
+
+/**
+ *
+ * @param szVideoId
+ * @return
+ */
+bool mp_util_delete_wall_file(char *szVideoId)
+{
+ if (!szVideoId) {
+ return FALSE;
+ }
+ char *szWallDir = NULL;
+ bool bRet = TRUE;
+ szWallDir = g_strdup_printf("%s/%s", MP_VIDEO_WALL_DIR, szVideoId);
+ if (vp_is_dir(szWallDir)) {
+ bRet = vp_file_recursive_rm(szWallDir);
+ }
+
+ VideoSecureLogInfo("delete video folder= %s:%d", szWallDir, bRet);
+ MP_FREE_STRING(szWallDir);
+ return TRUE;
+}
+
+/**
+ *
+ * @param parent
+ * @param nWidth
+ * @param nHeight
+ * @param bHorizontal
+ * @return
+ */
+Evas_Object *mp_util_create_gengrid(Evas_Object * parent, int nWidth,
+ int nHeight, bool bHorizontal)
+{
+ Evas_Object *pGengrid = elm_gengrid_add(parent);
+ if (!pGengrid) {
+ VideoLogError("pVideoGrid is not existed.");
+ return NULL;
+ }
+ evas_object_size_hint_weight_set(pGengrid, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(pGengrid, EVAS_HINT_FILL,
+ EVAS_HINT_FILL);
+ elm_gengrid_item_size_set(pGengrid, nWidth, nHeight);
+ elm_gengrid_align_set(pGengrid, 0.0, 0.0);
+ elm_gengrid_horizontal_set(pGengrid, bHorizontal);
+
+ return pGengrid;
+}
+
+/**
+ *
+ * @param pParent
+ * @param icon_path
+ * @return
+ */
+Evas_Object *mp_util_create_folder_icon(void *pParent,
+ const char *icon_path)
+{
+ if (!pParent || !icon_path) {
+ VideoLogError("invalid parent and icon path");
+ return NULL;
+ }
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VIDEO_PLAYER_IMAGE_NAME_EDJ);
+ free(path);
+ Evas_Object *pIcon = elm_image_add(pParent);
+ elm_image_file_set(pIcon, edj_path, (const char *) icon_path);
+ evas_object_size_hint_align_set(pIcon, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_size_hint_weight_set(pIcon, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ if (!g_strcmp0(VIDEO_LIST_VIEW_ICON_FOLDER_DROPBOX, icon_path)) {
+ evas_object_color_set(pIcon, 50, 129, 194, 255);
+ } else {
+ evas_object_color_set(pIcon, 255, 255, 255, 255);
+ }
+ evas_object_show(pIcon);
+
+ return pIcon;
+}
+
+/**
+ *
+ * @param pLayout
+ * @param nVideoFolderIndex
+ * @return
+ */
+bool mp_util_create_folder_sub_icon(void *pLayout, int nVideoFolderIndex)
+{
+ if (!pLayout) {
+ VideoLogError("invalid parent");
+ return FALSE;
+ }
+
+ Evas_Object *pTempLayout = (Evas_Object *) pLayout;
+ Evas_Object *pIcon = elm_image_add(pLayout);
+ Evas_Object *pSubIcon = elm_image_add(pLayout);
+
+ MpMediaStorageType storageType =
+ mp_util_svc_get_folder_storage(nVideoFolderIndex);
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VIDEO_PLAYER_IMAGE_NAME_EDJ);
+ free(path);
+ if (storageType == MP_MEDIA_TYPE_STORAGE_INTERNAL) {
+ elm_image_file_set(pIcon, edj_path,
+ VIDEO_LIST_VIEW_ICON_FOLDER_PHONE);
+ elm_image_file_set(pSubIcon, edj_path,
+ VIDEO_LIST_VIEW_ICON_FOLDER_PHONE_EF);
+ } else if (storageType == MP_MEDIA_TYPE_STORAGE_DROPBOX) {
+ elm_image_file_set(pIcon, edj_path,
+ VIDEO_LIST_VIEW_ICON_FOLDER_DROPBOX);
+ elm_image_file_set(pSubIcon, edj_path,
+ VIDEO_LIST_VIEW_ICON_FOLDER_DROPBOX_EF);
+ } else if (storageType == MP_MEDIA_TYPE_STORAGE_EXTERNAL) {
+ } else {
+ VideoLogInfo("Unknown Storage type or not folder item.");
+ return FALSE;
+ }
+
+ evas_object_size_hint_align_set(pIcon, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_size_hint_weight_set(pIcon, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(pSubIcon, EVAS_HINT_FILL,
+ EVAS_HINT_FILL);
+ evas_object_size_hint_weight_set(pSubIcon, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+
+ elm_layout_content_set(pTempLayout, "elm.folder.icon", pIcon);
+ elm_layout_content_set(pTempLayout, "elm.folder.icon.ef", pSubIcon);
+
+ evas_object_show(pIcon);
+ evas_object_show(pSubIcon);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pLayout
+ * @param nVideoItemIndex
+ * @return
+ */
+bool mp_util_create_video_sub_icon(void *pLayout, int nVideoItemIndex)
+{
+ if (!pLayout) {
+ VideoLogError("invalid parent");
+ return FALSE;
+ }
+
+ Evas_Object *pTempLayout = (Evas_Object *) pLayout;
+ Evas_Object *pIcon = elm_image_add(pLayout);
+ Evas_Object *pSubIcon = elm_image_add(pLayout);
+
+ MpMediaStorageType storageType =
+ mp_util_svc_get_video_storage(nVideoItemIndex);
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VIDEO_PLAYER_IMAGE_NAME_EDJ);
+ free(path);
+ if (storageType == MP_MEDIA_TYPE_STORAGE_DROPBOX) {
+ elm_image_file_set(pIcon, edj_path,
+ VIDEO_LIST_VIEW_ICON_FOLDER_DROPBOX);
+ elm_image_file_set(pSubIcon, edj_path,
+ VIDEO_LIST_VIEW_ICON_FOLDER_DROPBOX_EF);
+ } else if (storageType == MP_MEDIA_TYPE_STORAGE_EXTERNAL) {
+ } else {
+ VideoLogInfo
+ ("Unknown storage or internal storage item. nVideoItemIndex: %d.",
+ nVideoItemIndex);
+ return FALSE;
+ }
+
+ evas_object_size_hint_align_set(pIcon, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_size_hint_weight_set(pIcon, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(pSubIcon, EVAS_HINT_FILL,
+ EVAS_HINT_FILL);
+ evas_object_size_hint_weight_set(pSubIcon, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+
+ elm_layout_content_set(pTempLayout, "elm.folder.icon", pIcon);
+ elm_layout_content_set(pTempLayout, "elm.folder.icon.ef", pSubIcon);
+
+ evas_object_show(pIcon);
+ evas_object_show(pSubIcon);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param szFilePath
+ */
+unsigned long long mp_util_get_disk_available_space(const char
+ *szFilePath)
+{
+ if (!szFilePath) {
+ VideoLogError("szFilePath is NULL");
+ return 0;
+ }
+ int nRet = 0;
+ struct statvfs info;
+ if (szFilePath
+ && 0 == strncmp(szFilePath, MP_UTIL_SD_PATH,
+ strlen(MP_UTIL_SD_PATH))) {
+ if (-1 == statvfs(MP_UTIL_SD_PATH, &info)) {
+ return 0;
+ }
+ } else {
+ if (vp_is_dir(szFilePath)) {
+ nRet = statvfs(szFilePath, &info);
+ VideoLogInfo("this is folder");
+ } else {
+ nRet = statvfs(MP_UTIL_MEDIA_DIR, &info);
+ }
+ if (nRet < 0) {
+ return 0;
+ }
+ }
+
+ return (info.f_bsize) * ((unsigned long long) info.f_bavail);
+}
+
+/**
+ *
+ * @param bDisabled
+ */
+void mp_util_virtual_keypad_disabled_set(Eina_Bool bDisabled)
+{
+ if (!pMainConformant) {
+ VideoLogError("[ERR] No exist pMainConformant.");
+ return;
+ }
+
+ if (bDisabled) {
+ VideoLogInfo("Virtual keypad will not compress the layout.");
+ elm_object_signal_emit(pMainConformant,
+ "elm,state,clipboard,disable", "");
+ elm_object_signal_emit(pMainConformant,
+ "elm,state,virtualkeypad,disable", "");
+ } else {
+ VideoLogInfo("Virtual keypad will compress the layout.");
+ elm_object_signal_emit(pMainConformant,
+ "elm,state,clipboard,enable", "");
+ elm_object_signal_emit(pMainConformant,
+ "elm,state,virtualkeypad,enable", "");
+ }
+}
+
+/**
+ *
+ * @param obj
+ * @param str
+ * @return
+ */
+int mp_util_set_translate_str(Evas_Object * obj, const char *str)
+{
+ if (!obj || !str) {
+ VideoLogError("[ERR] Invalid input data.");
+ return -1;
+ }
+
+ char *domain = NULL;
+
+ elm_object_domain_translatable_text_set(obj, domain, str);
+
+ return 0;
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#include <metadata_extractor.h>
+#include <stdlib.h>
+#include <mime_type.h>
+
+#include <unicode/utmscale.h>
+#include <system_settings.h>
+
+#include "mp-util.h"
+#ifdef ENABLE_DRM_FEATURE
+#include "mp-drm-ctrl.h"
+#endif
+#include "mp-video-log.h"
+#include "mp-video-info-ctrl.h"
+#include "utils_i18n.h"
+
+enum VIDEO_PLAYER_FILE_SIZE_TYPE {
+ SIZE_BYTE = 0,
+ SIZE_KB,
+ SIZE_MB,
+ SIZE_GB
+};
+
+/**
+ *
+ * @param szUriPath
+ * @param dLongitude
+ * @param dLatitude
+ * @return
+ */
+bool mp_info_ctrl_get_gps(char *szUriPath, double *dLongitude,
+ double *dLatitude)
+{
+ if (!szUriPath) {
+ VideoLogInfo("[ERR] No exist szUriPath.");
+ return FALSE;
+ }
+#ifdef ENABLE_DRM_FEATURE
+ if (mp_drm_is_drm_file(szUriPath)) {
+ VideoLogInfo("It's drm file.");
+ return FALSE;
+ }
+#endif
+ metadata_extractor_h pMetadata;
+
+ char *szTmp = NULL;
+
+ *dLatitude = 0.0;
+ *dLongitude = 0.0;
+
+ if (metadata_extractor_create(&pMetadata) !=
+ METADATA_EXTRACTOR_ERROR_NONE) {
+ VideoLogInfo("[ERR] - metadata_extractor_create()");
+ goto Execption;
+ }
+
+ if (metadata_extractor_set_path(pMetadata, szUriPath) !=
+ METADATA_EXTRACTOR_ERROR_NONE) {
+ VideoLogInfo("[ERR] - metadata_extractor_set_path()");
+ goto Execption;
+ }
+
+ if (metadata_extractor_get_metadata
+ (pMetadata, METADATA_LATITUDE,
+ &szTmp) != METADATA_EXTRACTOR_ERROR_NONE) {
+ VideoLogInfo
+ ("[ERR] - metadata_extractor_get_metadata() - METADATA_LATITUDE");
+ goto Execption;
+ } else {
+ if (szTmp) {
+ VideoLogInfo("METADATA_LATITUDE : %s", szTmp);
+ *dLatitude = atof(szTmp);
+
+ free(szTmp);
+ szTmp = NULL;
+ } else {
+ *dLatitude = 0.0;
+ }
+
+
+ }
+
+ if (metadata_extractor_get_metadata
+ (pMetadata, METADATA_LONGITUDE,
+ &szTmp) != METADATA_EXTRACTOR_ERROR_NONE) {
+ VideoLogInfo
+ ("[ERR] - metadata_extractor_get_metadata() - METADATA_LONGITUDE");
+ if (szTmp) {
+ free(szTmp);
+ szTmp = NULL;
+ }
+ *dLongitude = 0.0;
+ goto Execption;
+ } else {
+ if (szTmp) {
+ VideoLogInfo("METADATA_LONGITUDE : %s", szTmp);
+ *dLongitude = atof(szTmp);
+ free(szTmp);
+ szTmp = NULL;
+ } else {
+ *dLongitude = 0.0;
+ }
+ }
+
+ if (pMetadata) {
+ metadata_extractor_destroy(pMetadata);
+ pMetadata = NULL;
+ }
+
+ return TRUE;
+
+ Execption:
+ if (pMetadata) {
+ metadata_extractor_destroy(pMetadata);
+ pMetadata = NULL;
+ }
+ return FALSE;
+}
+
+/**
+ *
+ * @param szWidthResolution
+ * @param szHeightResolution
+ * @param pUserData
+ * @return
+ */
+bool mp_info_ctrl_get_resolution(char *szWidthResolution,
+ char *szHeightResolution, void *pUserData)
+{
+ if (!pUserData) {
+ VideoLogError("[ERR] No exist pUserData.");
+ return FALSE;
+ }
+ // TO-DO : It is possible to get resolution size from media service.
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param szLocale
+ * @param szCustomSkeleton
+ * @param szTimezone
+ * @param st_Date
+ * @return
+ */
+static char *mp_info_ctrl_converting_string(const char *szLocale,
+ const char *szCustomSkeleton,
+ const char *szTimezone,
+ UDate st_Date)
+{
+#define UG_ICU_ARR_LENGTH 256
+
+ // Copy a byte string encoded in the default codepage to a ustring.
+ // Copies at most n characters. The result will be null terminated if the length of src is less than n.
+ // Performs a host byte to UChar conversion.
+
+ i18n_uchar ucustomSkeleton[UG_ICU_ARR_LENGTH] = { 0, };
+
+ if (i18n_ustring_copy_ua_n
+ (ucustomSkeleton, szCustomSkeleton, UG_ICU_ARR_LENGTH) == NULL) {
+ VideoLogError("i18n_ustring_copy_au_n() error.");
+ return NULL;
+ }
+
+ i18n_uchar utimezone[UG_ICU_ARR_LENGTH] = { 0, };
+
+ if (i18n_ustring_copy_ua_n(utimezone, szTimezone, UG_ICU_ARR_LENGTH) ==
+ NULL) {
+ VideoLogError("i18n_ustring_copy_au_n() error.");
+ return NULL;
+ }
+
+ i18n_error_code_e status = I18N_ERROR_NONE;
+ i18n_udatepg_h generator;
+ i18n_udate_format_h formatter;
+
+ i18n_uchar bestPattern[UG_ICU_ARR_LENGTH] = { 0, };
+ i18n_uchar formatted[UG_ICU_ARR_LENGTH] = { 0, };
+ char formattedString[UG_ICU_ARR_LENGTH] = { 0, };
+ int32_t bestPatternLength, formattedLength;
+
+ status = i18n_ucalendar_set_default_timezone(utimezone);
+ if (status != I18N_ERROR_NONE) {
+ VideoLogError("i18n_timezone_set_default() is failed.");
+ return NULL;
+ }
+
+ status = i18n_ulocale_set_default(getenv("LC_TIME"));
+ if (status != I18N_ERROR_NONE) {
+ VideoLogError("i18n_timezone_set_default() is failed.");
+ return NULL;
+ }
+
+ status = i18n_udatepg_create(szLocale, &generator);
+ if (generator == NULL || status != I18N_ERROR_NONE) {
+ return NULL;
+ }
+
+ status =
+ i18n_udatepg_get_best_pattern(generator, ucustomSkeleton,
+ i18n_ustring_get_length
+ (ucustomSkeleton), bestPattern,
+ UG_ICU_ARR_LENGTH,
+ &bestPatternLength);
+ if (bestPatternLength <= 0 || status != I18N_ERROR_NONE) {
+ i18n_udatepg_destroy(generator);
+ return NULL;
+ }
+
+
+ char buffer[UG_ICU_ARR_LENGTH] = { 0, };
+
+ i18n_ustring_copy_au(buffer, bestPattern);
+ VideoLogInfo("bestPattern = %s", buffer);
+
+ int i = 0;
+ int len = strlen(buffer);
+ for (i = 0; i < len; i++) {
+ if (buffer[i] == 'K') {// K is 0~11, it is used at japan icu
+ buffer[i] = 'h'; // h is 1~12
+ }
+ }
+
+ VideoLogInfo("buffer = %s", buffer);
+
+ i18n_uchar ubestpattern[UG_ICU_ARR_LENGTH] = { 0, };
+ if (i18n_ustring_copy_ua_n(ubestpattern, buffer, UG_ICU_ARR_LENGTH) ==
+ NULL) {
+ i18n_udatepg_destroy(generator);
+ VideoLogError("i18n_ustring_copy_au_n() error.");
+ return NULL;
+ }
+
+ status =
+ i18n_udate_create(I18N_UDATE_MEDIUM, I18N_UDATE_MEDIUM, szLocale,
+ NULL, -1, ubestpattern, -1, &formatter);
+ if (formatter == NULL || status != I18N_ERROR_NONE) {
+ i18n_udatepg_destroy(generator);
+ return NULL;
+ }
+
+ status =
+ i18n_udate_format_date(formatter, st_Date, formatted,
+ UG_ICU_ARR_LENGTH, NULL, &formattedLength);
+ if (formattedLength <= 0 || status != I18N_ERROR_NONE) {
+ i18n_udatepg_destroy(generator);
+ i18n_udate_destroy(formatter);
+ return NULL;
+ }
+
+ i18n_ustring_copy_au(formattedString, formatted);
+ status = i18n_udatepg_destroy(generator);
+ status = i18n_udate_destroy(formatter);
+
+ if (strlen(formattedString) == 0) {
+ return NULL;
+ }
+
+ return strdup(formattedString);
+}
+
+/**
+ *
+ * @param mtime
+ * @return
+ */
+char *mp_info_ctrl_get_data_of_file(time_t mtime)
+{
+#define UG_DATE_FORMAT_12 "yMMMdhms"
+#define UG_DATE_FORMAT_24 "yMMMdHms"
+
+ VideoLogInfo("");
+
+ char *szSkeleton = NULL;
+
+ bool hours_24 = false;
+ int ret = -1;
+
+ ret =
+ system_settings_get_value_bool
+ (SYSTEM_SETTINGS_KEY_LOCALE_TIMEFORMAT_24HOUR, &hours_24);
+ if (ret != SYSTEM_SETTINGS_ERROR_NONE) {
+ VideoLogError("Cannot get 24 hours format");
+ return NULL;
+ }
+
+ if (hours_24 == true) {
+ szSkeleton = UG_DATE_FORMAT_24;
+ } else {
+ szSkeleton = UG_DATE_FORMAT_12;
+ }
+
+ char *szLocale = NULL; // eg en_US.UTF-8
+ int retcode =
+ system_settings_get_value_string
+ (SYSTEM_SETTINGS_KEY_LOCALE_COUNTRY, &szLocale);
+ if ((retcode != SYSTEM_SETTINGS_ERROR_NONE) || (szLocale == NULL)) {
+ VideoLogInfo("Cannot get region format.");
+ szLocale = strdup("en_US"); // Default value.
+ } else {
+ char *find = strstr(szLocale, "UTF-8");
+ if (find) {
+ int diff = find - szLocale;
+ if (diff > 0) {
+ szLocale[diff - 1] = '\0';
+ }
+ }
+ }
+
+ char *szTimezone = NULL;
+ retcode =
+ system_settings_get_value_string
+ (SYSTEM_SETTINGS_KEY_LOCALE_TIMEZONE, &szTimezone);
+ if ((retcode != SYSTEM_SETTINGS_ERROR_NONE) || (szTimezone == NULL)) {
+ VideoLogError("Cannot get time zone.");
+ MP_FREE_STRING(szLocale);
+ return strdup("N/A");
+ }
+
+ VideoLogInfo("Locale : %s TimeZone : %s TimeFormat : %s", szLocale,
+ szSkeleton, szTimezone);
+
+ char *szDatestr = NULL;
+ szDatestr =
+ mp_info_ctrl_converting_string(szLocale, szSkeleton, szTimezone,
+ (UDate) mtime * 1000);
+ if (!szDatestr) {
+ VideoLogError("Cannot get time string.");
+ MP_FREE_STRING(szLocale);
+ MP_FREE_STRING(szTimezone);
+ return strdup("N/A");
+ }
+
+ VideoLogInfo("ICU Date : %s", szDatestr);
+
+ MP_FREE_STRING(szLocale);
+ MP_FREE_STRING(szTimezone);
+
+ return szDatestr;
+}
+
+#ifdef ENABLE_DRM_FEATURE
+static char *mp_info_ctrl_get_drm_file_extension(char *szPath)
+{
+#define EXT_SIZE 128
+#define EXT_SPLITTER '.'
+
+ if (!szPath) {
+ VideoLogInfo("[ERR] No exist szPath.");
+ return NULL;
+ }
+
+ char szDrmContentType[STR_LEN_MAX] = { 0, };
+
+ mp_drm_get_file_extension(szPath, szDrmContentType, STR_LEN_MAX);
+ VideoLogInfo("szDrmContentType : %s", szDrmContentType);
+
+ char **dTempExt = NULL;
+ char *szExt = NULL;
+ char *pFileExtention = NULL;
+
+ int nArrayLen = 0;
+ int nErr = -1;
+
+ nErr =
+ mime_type_get_file_extension(szDrmContentType, &dTempExt,
+ &nArrayLen);
+
+ if (nErr == MIME_TYPE_ERROR_NONE && nArrayLen > 0) {
+ if (dTempExt[0] != NULL) {
+ szExt = strrchr(dTempExt[0], EXT_SPLITTER);
+ }
+
+ if (szExt != NULL && szExt + 1 != NULL) {
+ pFileExtention = strdup(szExt + 1);
+ }
+ }
+
+ int i = 0;
+ for (; i < nArrayLen; i++) {
+ MP_FREE_STRING(dTempExt[i]);
+ }
+
+ MP_FREE_STRING(dTempExt);
+
+ return pFileExtention;
+}
+#endif
+
+/**
+ *
+ * @param szPath
+ * @return
+ */
+char *mp_info_ctrl_get_file_extension(char *szPath)
+{
+ if (!szPath) {
+ VideoLogError("Cannot get file extension. path is NULL");
+ return strdup("Unknown");
+ }
+#ifdef ENABLE_DRM_FEATURE
+ if (mp_drm_is_drm_file(szPath)) {
+
+ char *szFileExtension =
+ mp_info_ctrl_get_drm_file_extension(szPath);
+ if (szFileExtension) {
+ VideoLogInfo("Drm file extension. - %s", szFileExtension);
+ return szFileExtension;
+ } else {
+ VideoLogInfo("No have file extension.");
+ return strdup("Unknown");
+ }
+ } else
+#endif
+ {
+ char *szExt = NULL;
+ szExt = strrchr(szPath, '.');
+
+ if ((szExt != NULL) && ((szExt + 1) != NULL)) {
+ return strdup(szExt + 1);
+ }
+ }
+
+ return strdup("Unknown");
+}
+
+/**
+ *
+ * @param szUriPath
+ * @param szFileDate
+ * @param nFileDateSize
+ * @param szFileExtension
+ * @param nFileExtensionSize
+ * @param szFileSize
+ * @param nFilesizeSize
+ * @return
+ */
+bool mp_info_ctrl_get_file_info(char *szUriPath, char *szFileDate,
+ int nFileDateSize, char *szFileExtension,
+ int nFileExtensionSize, char *szFileSize,
+ int nFilesizeSize)
+{
+ if (!szUriPath) {
+ VideoLogInfo("[ERR] No exist szUriPath.");
+ return FALSE;
+ }
+
+ struct stat statbuf;
+
+ if (stat(szUriPath, &statbuf) == -1) {
+ VideoLogInfo("%s file is NULL", szUriPath);
+ return FALSE;
+ }
+
+ memset(szFileDate, 0, nFileDateSize);
+ memset(szFileExtension, 0, nFileExtensionSize);
+ memset(szFileSize, 0, nFilesizeSize);
+
+ char *szTmpDateOfFile =
+ mp_info_ctrl_get_data_of_file(statbuf.st_mtime);
+ char *szTmpFileExtension = mp_info_ctrl_get_file_extension(szUriPath);
+ char *szTmpFileSize =
+ mp_util_get_file_size((unsigned long long) statbuf.st_size);
+
+ if (szTmpDateOfFile) {
+ VideoLogInfo("szTmpDateOfFile : %s", szTmpDateOfFile);
+ strncpy(szFileDate, szTmpDateOfFile, nFileDateSize);
+ free(szTmpDateOfFile);
+ }
+
+ if (szTmpFileExtension) {
+ VideoLogInfo("szTmpFileExtension : %s", szTmpFileExtension);
+ strncpy(szFileExtension, szTmpFileExtension, nFileExtensionSize);
+ free(szTmpFileExtension);
+ }
+
+ if (szTmpFileSize) {
+ VideoLogInfo("szTmpFileSize : %s", szTmpFileSize);
+ strncpy(szFileSize, szTmpFileSize, nFilesizeSize);
+ free(szTmpFileSize);
+ }
+
+ return TRUE;
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifdef ENABLE_DRM_FEATURE
+#include "mp-drm-ctrl.h"
+#endif
+#include "mp-video-log.h"
+#include "mp-video-value-define.h"
+#include "mp-video-util-db-controller.h"
+
+/*used after mediadb update*/
+static MpDbUpdateCbFunc g_pDbUpdateFun[MP_DB_UPDATE_LEV_MAX] = {
+ NULL, NULL,
+ NULL, NULL,
+ NULL
+};
+
+/*used before mediadb update*/
+static MpDbUpdateCbFunc g_pDbBackupFun[MP_DB_UPDATE_LEV_MAX] = {
+ NULL, NULL,
+ NULL, NULL,
+ NULL
+};
+
+/**
+ *
+ * @param nLev
+ * @param pUpdateFun
+ * @return
+ */
+bool mp_util_db_set_update_fun(MpDbUpdateViewLev nLev,
+ MpDbUpdateCbFunc pUpdateFun)
+{
+ if ((nLev < MP_DB_UPDATE_LEV_0) || (nLev >= MP_DB_UPDATE_LEV_MAX)) {
+ VideoLogError("invalid lev = %d", nLev);
+ return FALSE;
+ }
+ g_pDbUpdateFun[nLev] = pUpdateFun;
+ return TRUE;
+}
+
+/**
+ *
+ * @param nLev
+ */
+void mp_util_db_reset_update_fun_up_self(MpDbUpdateViewLev nLev)
+{
+ MpDbUpdateViewLev nIndex = nLev;
+ while (nIndex < MP_DB_UPDATE_LEV_MAX) {
+ g_pDbUpdateFun[nIndex] = NULL;
+ nIndex++;
+ }
+}
+
+/**
+ *
+ */
+void mp_util_db_reset_update_fun_except_lev0(void)
+{
+ g_pDbUpdateFun[MP_DB_UPDATE_LEV_1] = NULL;
+ g_pDbUpdateFun[MP_DB_UPDATE_LEV_2] = NULL;
+ g_pDbUpdateFun[MP_DB_UPDATE_LEV_3] = NULL;
+ g_pDbUpdateFun[MP_DB_UPDATE_LEV_4] = NULL;
+}
+
+/**
+ *
+ */
+void mp_util_db_reset_all_update_fun(void)
+{
+ g_pDbUpdateFun[MP_DB_UPDATE_LEV_0] = NULL;
+ g_pDbUpdateFun[MP_DB_UPDATE_LEV_1] = NULL;
+ g_pDbUpdateFun[MP_DB_UPDATE_LEV_2] = NULL;
+ g_pDbUpdateFun[MP_DB_UPDATE_LEV_3] = NULL;
+ g_pDbUpdateFun[MP_DB_UPDATE_LEV_4] = NULL;
+}
+
+/**
+ *
+ * @param nLev
+ * @param pUserData
+ * @return
+ */
+bool mp_util_db_run_update_fun(MpDbUpdateViewLev nLev, void *pUserData)
+{
+ if ((nLev < MP_DB_UPDATE_LEV_0) || (nLev >= MP_DB_UPDATE_LEV_MAX)) {
+ VideoLogError("invalid lev = %d", nLev);
+ return FALSE;
+ }
+ VideoLogInfo("update lev = %d", nLev);
+
+ if (g_pDbUpdateFun[nLev]) {
+ g_pDbUpdateFun[nLev] (pUserData);
+ }
+ return FALSE;
+}
+
+/**
+ *
+ * @param pUserData0
+ * @param pUserData1
+ * @param pUserData2
+ * @param pUserData3
+ * @param pUserData4
+ * @return
+ */
+bool mp_util_db_run_all_update_fun(void *pUserData0, void *pUserData1,
+ void *pUserData2, void *pUserData3,
+ void *pUserData4)
+{
+ if (g_pDbUpdateFun[MP_DB_UPDATE_LEV_0]) {
+ g_pDbUpdateFun[MP_DB_UPDATE_LEV_0] (pUserData0);
+ }
+ if (g_pDbUpdateFun[MP_DB_UPDATE_LEV_1]) {
+ g_pDbUpdateFun[MP_DB_UPDATE_LEV_1] (pUserData1);
+ }
+ if (g_pDbUpdateFun[MP_DB_UPDATE_LEV_2]) {
+ g_pDbUpdateFun[MP_DB_UPDATE_LEV_2] (pUserData2);
+ }
+ if (g_pDbUpdateFun[MP_DB_UPDATE_LEV_3]) {
+ g_pDbUpdateFun[MP_DB_UPDATE_LEV_3] (pUserData3);
+ }
+ if (g_pDbUpdateFun[MP_DB_UPDATE_LEV_4]) {
+ g_pDbUpdateFun[MP_DB_UPDATE_LEV_4] (pUserData4);
+ }
+ VideoLogInfo("update successfully");
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pUserData1
+ * @param pUserData2
+ * @param pUserData3
+ * @param pUserData4
+ * @return
+ */
+bool mp_util_db_run_update_fun_except_lev0(void *pUserData1,
+ void *pUserData2,
+ void *pUserData3,
+ void *pUserData4)
+{
+ if (g_pDbUpdateFun[MP_DB_UPDATE_LEV_1]) {
+ g_pDbUpdateFun[MP_DB_UPDATE_LEV_1] (pUserData1);
+ }
+ if (g_pDbUpdateFun[MP_DB_UPDATE_LEV_2]) {
+ g_pDbUpdateFun[MP_DB_UPDATE_LEV_2] (pUserData2);
+ }
+ if (g_pDbUpdateFun[MP_DB_UPDATE_LEV_3]) {
+ g_pDbUpdateFun[MP_DB_UPDATE_LEV_3] (pUserData3);
+ }
+ if (g_pDbUpdateFun[MP_DB_UPDATE_LEV_4]) {
+ g_pDbUpdateFun[MP_DB_UPDATE_LEV_4] (pUserData4);
+ }
+ VideoLogInfo("update successfully");
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param nLev
+ */
+void mp_util_db_reset_backup_fun_up_self(MpDbUpdateViewLev nLev)
+{
+ MpDbUpdateViewLev nIndex = nLev;
+ while (nIndex < MP_DB_UPDATE_LEV_MAX) {
+ g_pDbBackupFun[nIndex] = NULL;
+ nIndex++;
+ }
+}
+
+/**
+ *
+ */
+void mp_util_db_reset_backup_fun_except_lev0(void)
+{
+ g_pDbBackupFun[MP_DB_UPDATE_LEV_1] = NULL;
+ g_pDbBackupFun[MP_DB_UPDATE_LEV_2] = NULL;
+ g_pDbBackupFun[MP_DB_UPDATE_LEV_3] = NULL;
+ g_pDbBackupFun[MP_DB_UPDATE_LEV_4] = NULL;
+}
+
+/**
+ *
+ */
+void mp_util_db_reset_all_backup_fun(void)
+{
+ g_pDbBackupFun[MP_DB_UPDATE_LEV_0] = NULL;
+ g_pDbBackupFun[MP_DB_UPDATE_LEV_1] = NULL;
+ g_pDbBackupFun[MP_DB_UPDATE_LEV_2] = NULL;
+ g_pDbBackupFun[MP_DB_UPDATE_LEV_3] = NULL;
+ g_pDbBackupFun[MP_DB_UPDATE_LEV_4] = NULL;
+}
+
+/**
+ *
+ * @param nLev
+ * @param pUpdateFun
+ * @return
+ */
+bool mp_util_db_set_backup_fun(MpDbUpdateViewLev nLev,
+ MpDbUpdateCbFunc pUpdateFun)
+{
+ if ((nLev < MP_DB_UPDATE_LEV_0) || (nLev >= MP_DB_UPDATE_LEV_MAX)) {
+ VideoLogError("invalid lev = %d", nLev);
+ return FALSE;
+ }
+ g_pDbBackupFun[nLev] = pUpdateFun;
+ return TRUE;
+}
+
+/**
+ *
+ * @param pUserData1
+ * @param pUserData2
+ * @param pUserData3
+ * @param pUserData4
+ * @return
+ */
+bool mp_util_db_run_backup_fun_except_lev0(void *pUserData1,
+ void *pUserData2,
+ void *pUserData3,
+ void *pUserData4)
+{
+ if (g_pDbBackupFun[MP_DB_UPDATE_LEV_1]) {
+ g_pDbBackupFun[MP_DB_UPDATE_LEV_1] (pUserData1);
+ }
+ if (g_pDbBackupFun[MP_DB_UPDATE_LEV_2]) {
+ g_pDbBackupFun[MP_DB_UPDATE_LEV_2] (pUserData2);
+ }
+ if (g_pDbBackupFun[MP_DB_UPDATE_LEV_3]) {
+ g_pDbBackupFun[MP_DB_UPDATE_LEV_3] (pUserData3);
+ }
+ if (g_pDbBackupFun[MP_DB_UPDATE_LEV_4]) {
+ g_pDbBackupFun[MP_DB_UPDATE_LEV_4] (pUserData4);
+ }
+ VideoLogInfo("backup successfully");
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pUserData0
+ * @param pUserData1
+ * @param pUserData2
+ * @param pUserData3
+ * @param pUserData4
+ * @return
+ */
+bool mp_util_db_run_all_backup_fun(void *pUserData0, void *pUserData1,
+ void *pUserData2, void *pUserData3,
+ void *pUserData4)
+{
+ if (g_pDbBackupFun[MP_DB_UPDATE_LEV_0]) {
+ g_pDbBackupFun[MP_DB_UPDATE_LEV_0] (pUserData0);
+ }
+ if (g_pDbBackupFun[MP_DB_UPDATE_LEV_1]) {
+ g_pDbBackupFun[MP_DB_UPDATE_LEV_1] (pUserData1);
+ }
+ if (g_pDbBackupFun[MP_DB_UPDATE_LEV_2]) {
+ g_pDbBackupFun[MP_DB_UPDATE_LEV_2] (pUserData2);
+ }
+ if (g_pDbBackupFun[MP_DB_UPDATE_LEV_3]) {
+ g_pDbBackupFun[MP_DB_UPDATE_LEV_3] (pUserData3);
+ }
+ if (g_pDbBackupFun[MP_DB_UPDATE_LEV_4]) {
+ g_pDbBackupFun[MP_DB_UPDATE_LEV_4] (pUserData4);
+ }
+ VideoLogInfo("backup successfully");
+
+ return TRUE;
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <app.h>
+#include <unistd.h>
+#include <stdbool.h>
+#include <Ecore_Evas.h>
+#include <Elementary.h>
+#include <Eina.h>
+
+#include "vp-play-log.h"
+#include "mp-util.h"
+#include "mp-video-log.h"
+#include "vp-play-view.h"
+#include "mp-video-value-define.h"
+#include "mp-launching-video-displayer.h"
+#include "mp-video-list-view-as-ctrl.h"
+#include "mp-util-config.h"
+
+/*"g_pLaunchTimer" use for check launch time between twice click.
+ If click two videos between 1 sec. Only play the first video.*/
+/* it will be auto free after 1 sec. it will auto free alse after
+ video process is killed.*/
+/* if this timer is not free. not create it again.*/
+static Ecore_Timer *g_pLaunchTimer = NULL;
+
+/**
+ *
+ * @param pRequest
+ * @param pReply
+ * @param nResult
+ * @param pUserData
+ */
+static void __mp_launch_video_reply_cb(app_control_h pRequest,
+ app_control_h pReply,
+ app_control_result_e nResult,
+ void *pUserData)
+{
+
+ if (pRequest) {
+ char *appId;
+ app_control_get_app_id(pRequest, &appId);
+ VideoLogWarning("Request : %s", appId);
+ if (appId) {
+ free(appId);
+ appId = NULL;
+ }
+ }
+
+ if (pReply) {
+ char *appId;
+ app_control_get_app_id(pReply, &appId);
+ VideoLogWarning("Reply : %s", appId);
+ if (appId) {
+ free(appId);
+ appId = NULL;
+ }
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @return
+ */
+static Eina_Bool __mp_launch_video_timer_cb(void *pUserData)
+{
+ g_pLaunchTimer = NULL;
+
+ return FALSE;
+}
+
+/*////////////////////////////////////////////////////////////////////////*/
+/* External APIs*/
+/*used together with mp_launch_video_play. if first to check, then to play,
+use below API*/
+
+/**
+ *
+ * @return
+ */
+bool mp_launch_video_allow_check(void)
+{
+ if (g_pLaunchTimer) {
+ bool bMultiPlay = FALSE;
+ mp_util_config_get_multi_play_status(&bMultiPlay);
+ if (bMultiPlay) {
+ return TRUE;
+ }
+ return FALSE;
+ }
+ return TRUE;
+}
+
+/**
+ *
+ * @param szMediaUrl
+ * @param nPlayerType
+ * @param szDeviceID
+ */
+void mp_launch_video_play(char *szMediaUrl, MpPlayerType nPlayerType,
+ char *szDeviceID)
+{
+
+ if (!szMediaUrl) {
+ VideoLogError("[ERR] No existed szMediaUrl.");
+ return;
+ }
+ bool bMultiPlay = FALSE;
+ mp_util_config_get_multi_play_status(&bMultiPlay);
+
+ if (!bMultiPlay) {
+ if (!g_pLaunchTimer) {
+ g_pLaunchTimer =
+ ecore_timer_add(1.0, __mp_launch_video_timer_cb, NULL);
+ } else {
+ VideoLogWarning("need more than 1.0 sec between twice click");
+ return;
+ }
+ }
+
+ app_control_h pService = NULL;
+
+ bool bAutoPlay = vp_is_auto_play_on();
+ VideoLogError("vp_is_auto_play_on= %d", bAutoPlay);
+ VideoSecureLogInfo("start play:%s,%d,%s,%d", szMediaUrl, nPlayerType,
+ szDeviceID, bMultiPlay);
+
+ int nRet = 0;
+ nRet = app_control_create(&pService);
+ if (nRet != APP_CONTROL_ERROR_NONE) {
+ VideoLogError("app_control_create is fail [0x%x]", nRet);
+ }
+
+ nRet = app_control_set_operation(pService, APP_CONTROL_OPERATION_VIEW);
+ if (nRet != APP_CONTROL_ERROR_NONE) {
+ VideoLogError("app_control_set_operation is fail [0x%x]", nRet);
+ }
+
+ nRet = app_control_set_uri(pService, szMediaUrl);
+ if (nRet != APP_CONTROL_ERROR_NONE) {
+ VideoLogError("app_control_set_uri is fail [0x%x]", nRet);
+ }
+
+ if (bAutoPlay == TRUE) {
+ nRet = app_control_add_extra_data(pService, "auto_play_setting",
+ "TRUE");
+ if (nRet != APP_CONTROL_ERROR_NONE) {
+ VideoLogError("app_control_add_extra_data is fail [0x%x]",
+ nRet);
+ }
+ } else {
+ nRet = app_control_add_extra_data(pService, "auto_play_setting",
+ "FALSE");
+ if (nRet != APP_CONTROL_ERROR_NONE) {
+ VideoLogError("app_control_add_extra_data is fail [0x%x]",
+ nRet);
+ }
+ }
+
+ if (nPlayerType == MP_PLAYER_TYPE_VIDEO) {
+ nRet =
+ app_control_add_extra_data(pService, "launching_application",
+ "list");
+ if (nRet != APP_CONTROL_ERROR_NONE) {
+ VideoLogError("app_control_add_extra_data is fail [0x%x]",
+ nRet);
+ }
+ }
+
+ if (szDeviceID) {
+ VideoLogWarning("== Device ID : %s ==", szDeviceID);
+ nRet =
+ app_control_add_extra_data(pService, "Device id", szDeviceID);
+ if (nRet != APP_CONTROL_ERROR_NONE) {
+ VideoLogError("app_control_add_extra_data is fail [0x%x]",
+ nRet);
+ }
+ }
+#ifdef VS_FEATURE_FOLDER_VIEW /**/
+ int nViewType = mp_view_as_ctrl_get_type();
+
+ if (nViewType == MP_LIST_VIEW_AS_FOLDER_LIST) {
+ VideoLogInfo("folder view");
+ nRet =
+ app_control_add_extra_data(pService, "video_list_type",
+ "folder");
+ if (nRet != APP_CONTROL_ERROR_NONE) {
+ VideoLogError("app_control_add_extra_data is fail [0x%x]",
+ nRet);
+ }
+ }
+#endif /**/
+ nRet = app_control_add_extra_data(pService, "path", szMediaUrl);
+ if (nRet != APP_CONTROL_ERROR_NONE) {
+ VideoLogError("app_control_add_extra_data is fail [0x%x]", nRet);
+ }
+
+ nRet = app_control_set_app_id(pService, "org.tizen.video-player");
+ if (nRet != APP_CONTROL_ERROR_NONE) {
+ VideoLogError("app_control_set_app_id is fail [0x%x]", nRet);
+ }
+
+ nRet =
+ app_control_send_launch_request(pService,
+ __mp_launch_video_reply_cb, NULL);
+ if (nRet != APP_CONTROL_ERROR_NONE) {
+ if (nRet == APP_CONTROL_ERROR_INVALID_PARAMETER) {
+ VideoLogError
+ ("app_control_send_launch_request is fail APP_CONTROL_ERROR_INVALID_PARAMETER [0x%x]",
+ nRet);
+ } else if (nRet == APP_CONTROL_ERROR_OUT_OF_MEMORY) {
+ VideoLogError
+ ("app_control_send_launch_request is fail APP_CONTROL_ERROR_OUT_OF_MEMORY [0x%x]",
+ nRet);
+ } else if (nRet == APP_CONTROL_ERROR_APP_NOT_FOUND) {
+ VideoLogError
+ ("app_control_send_launch_request is fail APP_CONTROL_ERROR_APP_NOT_FOUND [0x%x]",
+ nRet);
+ } else if (nRet == APP_CONTROL_ERROR_KEY_NOT_FOUND) {
+ VideoLogError
+ ("app_control_send_launch_request is fail APP_CONTROL_ERROR_KEY_NOT_FOUND [0x%x]",
+ nRet);
+ } else if (nRet == APP_CONTROL_ERROR_KEY_REJECTED) {
+ VideoLogError
+ ("app_control_send_launch_request is fail APP_CONTROL_ERROR_KEY_REJECTED [0x%x]",
+ nRet);
+ } else if (nRet == APP_CONTROL_ERROR_INVALID_DATA_TYPE) {
+ VideoLogError
+ ("app_control_send_launch_request is fail APP_CONTROL_ERROR_INVALID_DATA_TYPE [0x%x]",
+ nRet);
+ } else if (nRet == APP_CONTROL_ERROR_LAUNCH_REJECTED) {
+ VideoLogError
+ ("app_control_send_launch_request is fail APP_CONTROL_ERROR_LAUNCH_REJECTED [0x%x]",
+ nRet);
+ }
+ }
+
+ if (pService) {
+ app_control_destroy(pService);
+ pService = NULL;
+ }
+
+}
+
+/**
+ *
+ */
+void mp_launch_video_stop(void)
+{
+ VideoLogInfo("");
+ /*if needed, to do */
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <stdio.h>
+#include <glib.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <stdlib.h>
+#include <errno.h>
+#include <string.h>
+#include <sys/syscall.h>
+#include <unistd.h>
+#include <ftw.h>
+#include <Ecore_Evas.h>
+#include <sys/stat.h>
+#include <sys/statfs.h>
+
+
+#include "mp-util.h"
+#include "mp-video-log.h"
+#include "mp-util-media-service.h"
+#include "mp-video-value-define.h"
+#include "mp-video-string-define.h"
+#include "mp-util-move.h"
+#include "vp-file-util.h"
+
+#define MSG_REPORT_PERIOD (1)
+#define DEF_ALLLOC_SIZE 16384 /*((4)*(1024)) */
+#define DIR_MODE_BIT (01777)
+#define FILE_MODE_BIT (S_IRWXU | S_IRWXG | S_IRWXO)
+#define PER_HANDLE_MAX_SIZE (10*1024*1204)
+#define PER_HANDLE_MIN_SIZE (1024*1024)
+#define MP_VISUAL_FOLDER_SIZE 16
+
+typedef struct __MpUtilDirListInfo MpUtilDirListInfo;
+
+struct __MpUtilDirListInfo {
+ char *ftw_path;
+ unsigned long long size;
+ int type;
+};
+
+GSList *g_copy_list = NULL;
+bool g_do_cancel = FALSE;
+unsigned long long g_total_size = 0;
+
+/**
+ *
+ * @param name
+ * @param old_root
+ * @param new_root
+ * @return
+ */
+static char *__mp_util_move_change_root_name(const char *name,
+ const char *old_root,
+ const char *new_root)
+{
+ char *new_name = NULL;
+
+ if (name && old_root && new_root) {
+ int old_len = strlen(old_root);
+ int new_len = strlen(new_root);
+ int name_len = strlen(name);
+ const char *base = NULL;
+ char *name_tmp = NULL;
+
+ if ((strstr(name, old_root) == NULL)
+ || (name_len <= old_len)
+ || ((name[old_len] == '/' && name[old_len + 1] == '\0'))
+ || FALSE) {
+ return NULL;
+ }
+
+ base = name + old_len;
+ if (name[old_len] == '/') {
+ base += 1;
+ }
+
+ name_tmp = g_strdup(new_root);
+ if (name_tmp) {
+ if (name_tmp[new_len - 1] == '/') {
+ new_name = g_strdup_printf("%s%s", name_tmp, base);
+ } else {
+ new_name = g_strdup_printf("%s/%s", name_tmp, base);
+ }
+ }
+ MP_FREE_STRING(name_tmp);
+ }
+ return new_name;
+}
+
+/**
+ *
+ * @return
+ */
+bool mp_util_move_cancel_check(void)
+{
+ return g_do_cancel;
+}
+
+/**
+ *
+ * @param bCancel
+ */
+void mp_util_move_set_cancel_state(bool bCancel)
+{
+ g_do_cancel = bCancel;
+}
+
+/**
+ *
+ * @param path
+ * @param size
+ * @return
+ */
+static int __mp_util_move_get_remain_space(const char *path,
+ unsigned long long *size)
+{
+ struct statfs dst_fs;
+
+ if (!path || !size) {
+ return -EINVAL;
+ }
+
+ if (statfs(path, &dst_fs) == 0) {
+ *size =
+ ((unsigned long long) (dst_fs.f_bsize) *
+ (unsigned long long) (dst_fs.f_bavail));
+ } else {
+ return -errno;
+ }
+
+ return 0;
+}
+
+/**
+ *
+ * @param path
+ * @return
+ */
+bool __mp_util_move_check_exist(const char *path)
+{
+ if (path && (access(path, F_OK) == 0)) {
+ return true;
+ }
+ return false;
+}
+
+/**
+ *
+ * @param pathname
+ * @param statptr
+ * @param type
+ * @return
+ */
+static int __mp_util_move_directory_hierarchies(const char *pathname,
+ const struct stat *statptr,
+ int type)
+{
+ MpUtilDirListInfo *info = NULL;
+ MpUtilDirListInfo *info_title = NULL;
+ VideoSecureLogInfo("pathname is [%s]\t type is [%d]\t", pathname,
+ type);
+ switch (type) {
+ case FTW_F:
+ if (mp_util_check_video_file(pathname)) {
+ struct stat src_info;
+ if (stat(pathname, &src_info)) {
+ VideoLogInfo("error");
+ } else {
+ info = calloc(sizeof(MpUtilDirListInfo), 1);
+ if (!info) {
+ VideoSecureLogInfo("failed to allocate memory");
+ return -1;
+ }
+
+ info->ftw_path = g_strdup(pathname);
+ info->type = type;
+ info->size = (unsigned long long) src_info.st_size;
+ g_copy_list = g_slist_append(g_copy_list, info);
+ //append subtitle
+ char *szSubTitle = NULL;
+ mp_util_get_subtitle_path(pathname, &szSubTitle);
+ if (szSubTitle) {
+ if (stat(szSubTitle, &src_info)) {
+ VideoLogInfo("error");
+ } else {
+ info_title = calloc(sizeof(MpUtilDirListInfo), 1);
+ if (info_title) {
+ info_title->ftw_path = g_strdup(szSubTitle);
+ info_title->type = type;
+ info_title->size =
+ (unsigned long long) src_info.st_size;
+ g_copy_list =
+ g_slist_append(g_copy_list, info_title);
+ }
+ }
+ MP_FREE_STRING(szSubTitle);
+ }
+ }
+ }
+ break;
+ case FTW_D:
+ info = calloc(sizeof(MpUtilDirListInfo), 1);
+ if (!info) {
+ VideoSecureLogInfo("failed to allocate memory");
+ return -1;
+ }
+ info->ftw_path = g_strdup(pathname);
+ info->type = type;
+ info->size = MP_VISUAL_FOLDER_SIZE;
+ g_copy_list = g_slist_append(g_copy_list, info);
+
+ break;
+ default:
+ VideoSecureLogInfo("Default pathname is [%s]", pathname);
+ }
+
+ return 0;
+}
+
+/**
+ *
+ * @param glist
+ */
+static void __mp_util_move_free_directory_hierarchies(GSList ** glist)
+{
+ if (*glist == NULL)
+ return;
+ GSList *list = *glist;
+ while (list) {
+ MpUtilDirListInfo *info = NULL;
+ info = (MpUtilDirListInfo *) list->data;
+ g_free(info->ftw_path);
+ g_free(info);
+ list = g_slist_next(list);
+ }
+ g_slist_free(*glist);
+ *glist = NULL;
+}
+
+/**
+ *
+ * @param szSrcPath
+ * @param src_statp
+ * @param szDstPath
+ * @param buf_size
+ * @param msg_cb
+ * @param msg_data
+ * @return
+ */
+static int __mp_util_move_copy_reg_file(const char *szSrcPath,
+ struct stat *src_statp,
+ const char *szDstPath,
+ unsigned long buf_size,
+ mp_util_copy_cb msg_cb,
+ void *msg_data)
+{
+ FILE *src_f = NULL;
+ FILE *dst_f = NULL;
+ void *buf = NULL;
+ unsigned long alloc_size = DEF_ALLLOC_SIZE;
+ ssize_t r_size = 0;
+ mode_t src_mode = 0;
+
+ if (!szSrcPath) {
+ VideoLogError("error srcPath");
+ return -1;
+ }
+ if (!szDstPath) {
+ VideoLogError("error dstPath");
+ return -1;
+ }
+
+ if (src_statp) {
+ src_mode = src_statp->st_mode;
+ } else {
+ struct stat src_info;
+ if (stat(szSrcPath, &src_info)) {
+ VideoLogError("Fail to stat src file : %d", errno);
+ return -1;
+ }
+ src_mode = src_info.st_mode;
+ }
+
+
+ if (!S_ISREG(src_mode)) {
+ VideoLogError("src[%s] is not regular file", szSrcPath);
+ return -1;
+ }
+
+ src_f = fopen(szSrcPath, "rb");
+ if (!src_f) {
+ VideoLogError("Fail to open src file : %d", errno);
+ return -1;
+ }
+
+ dst_f = fopen(szDstPath, "wb");
+ if (!dst_f) {
+ VideoLogError("Fail to open dst file : %d", errno);
+
+ goto ERROR_CLOSE_FD;
+ }
+ if (buf_size == 0) {
+ struct stat dst_info;
+ if (stat(szDstPath, &dst_info)) {
+ VideoLogError("Fail to stat dst file", szDstPath);
+ goto ERROR_CLOSE_FD;
+ }
+ }
+
+ alloc_size = DEF_ALLLOC_SIZE;
+
+ buf = malloc(alloc_size);
+ if (!buf) {
+ VideoLogError("fail to alloc buf, alloc_size : %lu", alloc_size);
+ goto ERROR_CLOSE_FD;
+ }
+
+ int count = 0;
+ ssize_t msg_size = 0;
+
+ int dynamic_size = 0;
+ if (g_total_size > PER_HANDLE_MAX_SIZE) {
+ dynamic_size = 64;
+ } else if (g_total_size <= PER_HANDLE_MAX_SIZE
+ && g_total_size > PER_HANDLE_MIN_SIZE) {
+ dynamic_size = 8;
+ } else {
+ dynamic_size = 1;
+ }
+
+ int dst_fd = fileno(dst_f);
+ ssize_t total = 0;
+ while ((r_size = fread(buf, 1, alloc_size, src_f)) > 0) {
+ total = r_size;
+ void *buf_p = buf;
+
+ count++;
+ while (total > 0) {
+ ssize_t w_size = 0;
+ w_size = fwrite(buf_p, 1, total, dst_f);
+ if (ferror(dst_f) != 0 || (r_size != w_size)) {
+ VideoLogError("fail to write:%d,%d", dst_f, errno);
+ goto ERROR_CLOSE_FD;
+ }
+
+ buf_p += w_size;
+ total -= w_size;
+ }
+ if (mp_util_move_cancel_check()) {
+ goto CANCEL_CLOSE_FD;
+ }
+ if ((count == dynamic_size) && msg_cb) {
+ msg_size += r_size;
+ if (msg_cb) {
+ msg_cb(MP_VIDEO_UPDATE, msg_size, 0, msg_data);
+ }
+ msg_size = 0;
+ } else {
+ msg_size += r_size;
+ }
+ int ret = posix_fadvise(dst_fd, 0, msg_size, POSIX_FADV_DONTNEED);
+ if (ret != 0) {
+ VideoLogInfo(" >>>>posix_fadvise ret=%d", ret);
+ }
+ count = count % dynamic_size;
+
+ }
+
+ if (msg_size > 0 && msg_cb) {
+ msg_size += r_size;
+ if (msg_cb) {
+ msg_cb(MP_VIDEO_UPDATE, msg_size, 0, msg_data);
+ }
+
+ msg_size = 0;
+ }
+
+ free(buf);
+ buf = NULL;
+
+ fclose(src_f);
+ fclose(dst_f);
+
+ if (!vp_file_unlink(szSrcPath)) {
+ VideoLogInfo("remove failed.");
+ }
+
+ return 0;
+
+ ERROR_CLOSE_FD:
+
+ if (src_f) {
+ fclose(src_f);
+ src_f = NULL;
+ }
+ if (dst_f) {
+ fclose(dst_f);
+ dst_f = NULL;
+ if (!vp_file_unlink(szDstPath)) {
+ VideoLogInfo("remove failed.");
+ }
+ }
+ if (buf) {
+ free(buf);
+ buf = NULL;
+ }
+ return -1;
+
+
+ CANCEL_CLOSE_FD:
+ if (buf) {
+ free(buf);
+ buf = NULL;
+ }
+ if (src_f) {
+ fclose(src_f);
+ src_f = NULL;
+ }
+ if (dst_f) {
+ fclose(dst_f);
+ dst_f = NULL;
+ if (!vp_file_unlink(szDstPath)) {
+ VideoLogInfo("remove failed.");
+ }
+ }
+
+ return 1;
+}
+
+/**
+ *
+ * @param szSrcPath
+ * @param src_statp
+ * @param szDstPath
+ * @param msg_cb
+ * @param msg_data
+ * @return
+ */
+static int __mp_util_move_copy_directory(const char *szSrcPath,
+ struct stat *src_statp,
+ const char *szDstPath,
+ mp_util_copy_cb msg_cb,
+ void *msg_data)
+{
+ int ret = -1;
+ mode_t src_mode = 0;
+ int err = 0;
+ if (!szSrcPath) {
+ VideoLogError("error srcPath");
+ return -1;
+ }
+ if (!szDstPath) {
+ VideoLogError("error dstPath");
+ return -1;
+ }
+
+ if (src_statp) {
+ src_mode = src_statp->st_mode;
+ } else {
+ struct stat src_info;
+ if (stat(szSrcPath, &src_info)) {
+ VideoLogError("Fail to stat src file : %d", errno);
+ return -1;
+ }
+ src_mode = src_info.st_mode;
+ }
+
+ if (access(szDstPath, F_OK)) {
+ if (mkdir(szDstPath, (src_mode & DIR_MODE_BIT))) {
+ VideoLogError("Fail to make directory=%d", errno);
+ return -1;
+ } else {
+ if (msg_cb) {
+ msg_cb(MP_VIDEO_UPDATE, MP_VISUAL_FOLDER_SIZE, 0,
+ msg_data);
+ }
+ }
+ } else {
+ VideoSecureLogInfo("directory[%s] is already existed", szDstPath);
+ }
+
+ char *new_dir = NULL;
+ __mp_util_move_free_directory_hierarchies(&g_copy_list);
+ g_copy_list = NULL;
+ ret = ftw(szSrcPath, __mp_util_move_directory_hierarchies, 16);
+ if (ret == 0) {
+ MpUtilDirListInfo *ent = NULL;
+ GSList *list = NULL;
+ list = g_copy_list;
+ while (list) {
+ if (mp_util_move_cancel_check()) {
+ goto DO_CANCEL;
+ }
+ ent = (MpUtilDirListInfo *) list->data;
+ VideoSecureLogInfo("name is [%s] type is [%d]", ent->ftw_path,
+ ent->type);
+ if (ent->type == FTW_D) {
+ if (ent->ftw_path == NULL || strlen(ent->ftw_path) == 0) {
+ list = g_slist_next(list);
+ continue;
+ }
+ if (g_strcmp0(ent->ftw_path, szSrcPath) == 0) {
+ list = g_slist_next(list);
+ continue;
+ }
+ MP_FREE_STRING(new_dir);
+ new_dir =
+ __mp_util_move_change_root_name(ent->ftw_path,
+ szSrcPath, szDstPath);
+ VideoSecureLogInfo("copy dir %s to %s", ent->ftw_path,
+ new_dir);
+ if (new_dir) {
+ if (!__mp_util_move_check_exist(new_dir)) {
+ struct stat info;
+ if (stat(ent->ftw_path, &info) == 0) {
+ if (mkdir
+ (new_dir, (info.st_mode & DIR_MODE_BIT))) {
+ VideoSecureLogError
+ ("Fail to make directory");
+ MP_FREE_STRING(new_dir);
+ goto ERROR_CLOSE_FD;
+ } else {
+ if (msg_cb) {
+ msg_cb(MP_VIDEO_UPDATE, 0, 0,
+ msg_data);
+ }
+ }
+ } else {
+ VideoSecureLogError("Fail to stat ");
+ MP_FREE_STRING(new_dir);
+ goto ERROR_CLOSE_FD;
+ }
+ } else {
+ struct stat new_dst_info;
+ if (stat(new_dir, &new_dst_info) == 0) {
+ if (S_ISDIR(new_dst_info.st_mode)) {
+ if (msg_cb) {
+ msg_cb(MP_VIDEO_UPDATE, 0, 0,
+ msg_data);
+ }
+ } else {
+ VideoSecureLogInfo
+ ("[%s] is already existed, and this one is not directory",
+ new_dir);
+ MP_FREE_STRING(new_dir);
+ goto ERROR_CLOSE_FD;
+ }
+ } else {
+ VideoLogError("Fail to stat %d", errno);
+ MP_FREE_STRING(new_dir);
+ goto ERROR_CLOSE_FD;
+ }
+ }
+ MP_FREE_STRING(new_dir);
+ } else {
+ goto ERROR_CLOSE_FD;
+ }
+ } else if (ent->type == FTW_F) {
+ if (ent->ftw_path == NULL || strlen(ent->ftw_path) == 0) {
+ list = g_slist_next(list);
+ continue;
+ }
+ char *new_file =
+ __mp_util_move_change_root_name(ent->ftw_path,
+ szSrcPath, szDstPath);
+ if (new_file) {
+ err =
+ __mp_util_move_copy_reg_file(ent->ftw_path, NULL,
+ new_file, 0, msg_cb,
+ msg_data);
+ if (err == 0) {
+ mp_util_svc_scan_file(new_file);
+ mp_util_svc_scan_file(ent->ftw_path);
+ }
+ MP_FREE_STRING(new_file);
+ if (err > 0) {
+ goto DO_CANCEL;
+ } else if (err < 0) {
+ goto ERROR_CLOSE_FD;
+ }
+ } else {
+ goto ERROR_CLOSE_FD;
+ }
+ }
+ list = g_slist_next(list);
+ }
+
+ } else {
+ goto ERROR_CLOSE_FD;
+ }
+ MP_FREE_STRING(new_dir);
+ __mp_util_move_free_directory_hierarchies(&g_copy_list);
+ g_copy_list = NULL;
+ if (mp_util_check_empty_dir(szSrcPath)) {
+ rmdir(szSrcPath);
+ }
+ return 0;
+
+ ERROR_CLOSE_FD:
+ MP_FREE_STRING(new_dir);
+ __mp_util_move_free_directory_hierarchies(&g_copy_list);
+ g_copy_list = NULL;
+ return -1;
+
+ DO_CANCEL:
+ MP_FREE_STRING(new_dir);
+ __mp_util_move_free_directory_hierarchies(&g_copy_list);
+ g_copy_list = NULL;
+ return 1;
+}
+
+/**
+ *
+ * @param szSrcPath
+ * @param szDstPath
+ * @param msg_func
+ * @param msg_data
+ * @return
+ */
+int __mp_util_move_copy_internal(const char *szSrcPath,
+ const char *szDstPath,
+ mp_util_copy_cb msg_func, void *msg_data)
+{
+ int err = 0;
+ char *src_basename = NULL;
+ char *new_dst = NULL;
+ int base_size = 0;
+ int root_size = 0;
+ int with_slash = 1;
+ int alloc_size = 1; /*for null */
+ struct stat src_info;
+ char *szNewestPath = NULL;
+
+ if (!szSrcPath || strlen(szSrcPath) <= 1) {
+ VideoLogError("src is NULL");
+ return -1;
+ }
+
+ if (!szDstPath) {
+ VideoLogError("dst is NULL");
+ return -1;
+ }
+
+ if (access(szDstPath, R_OK | W_OK)) {
+ VideoLogError("dst_dir no permission");
+ return -1;
+ }
+
+ if (stat(szSrcPath, &src_info)) {
+ VideoLogError("Fail to stat src ", szSrcPath);
+ return -1;
+ }
+
+ if (S_ISDIR(src_info.st_mode)) {
+ if (g_strcmp0(szDstPath, szSrcPath) == 0) {
+ VideoLogError("dst is child of src");
+ return -1;
+ }
+ }
+ src_basename = g_path_get_basename(szSrcPath);
+ if (!src_basename) {
+ VideoLogError("fail to get basename from src");
+ return -1;
+ }
+
+ base_size = strlen(src_basename);
+ root_size = strlen(szDstPath);
+
+ if (szDstPath[root_size - 1] != '/') {
+ alloc_size += 1;
+ with_slash = 0;
+ }
+
+ alloc_size += (base_size + root_size);
+
+ new_dst = malloc(sizeof(char) * (alloc_size));
+ if (!new_dst) {
+ VideoLogError("fail to alloc new dst");
+ goto ERROR_FREE_MEM;
+ }
+
+ if (with_slash) {
+ snprintf(new_dst, alloc_size, "%s%s", szDstPath, src_basename);
+ } else {
+ snprintf(new_dst, alloc_size, "%s/%s", szDstPath, src_basename);
+ }
+ MP_FREE_STRING(src_basename);
+
+ if (mp_util_move_cancel_check()) {
+ goto CANCEL_FREE_MEM;
+ }
+
+ mp_util_rename_the_same_file(new_dst, &szNewestPath);
+ MP_FREE_STRING(new_dst);
+
+ if (access(szNewestPath, F_OK)) {
+ if (S_ISDIR(src_info.st_mode)) {
+ err =
+ __mp_util_move_copy_directory(szSrcPath, &src_info,
+ szNewestPath, msg_func,
+ msg_data);
+ if (err == 0) {
+ mp_util_svc_scan_file(szSrcPath);
+ mp_util_svc_scan_file(szNewestPath);
+ }
+ } else if (S_ISREG(src_info.st_mode)) {
+ /*just copy */
+ err =
+ __mp_util_move_copy_reg_file(szSrcPath, &src_info,
+ szNewestPath, 0, msg_func,
+ msg_data);
+ if (err == 0) {
+ mp_util_svc_scan_file(szSrcPath);
+ mp_util_svc_scan_file(szNewestPath);
+ }
+ } else {
+ VideoSecureLogInfo("item[%s] is not file or directory",
+ szSrcPath);
+ goto ERROR_FREE_MEM;
+ }
+ } else {
+ VideoLogInfo("fail to alloc new dst");
+ goto ERROR_FREE_MEM;
+ }
+ MP_FREE_STRING(szNewestPath);
+
+ if (err > 0) {
+ goto CANCEL_FREE_MEM;
+ } else if (err < 0) {
+ goto ERROR_FREE_MEM;
+ }
+
+ return 0;
+
+ ERROR_FREE_MEM:
+ VideoLogError("Copy error");
+ MP_FREE_STRING(src_basename);
+ MP_FREE_STRING(szNewestPath);
+ MP_FREE_STRING(new_dst);
+
+ return -1;
+
+ CANCEL_FREE_MEM:
+
+ VideoLogError("Copy cancelled");
+ MP_FREE_STRING(src_basename);
+ MP_FREE_STRING(szNewestPath);
+ MP_FREE_STRING(new_dst);
+
+ return 1;
+}
+
+/**
+ *
+ * @param szDir
+ * @param size
+ * @return
+ */
+bool mp_util_move_get_total_dir_size(const char *szDir,
+ unsigned long long *size)
+{
+ int ret = -1;
+ if (!szDir) {
+ return FALSE;
+ }
+ __mp_util_move_free_directory_hierarchies(&g_copy_list);
+ g_copy_list = NULL;
+ unsigned long long nSizeTmp = 0;
+ ret = ftw(szDir, __mp_util_move_directory_hierarchies, 16);
+ if (ret == 0) {
+ MpUtilDirListInfo *ent = NULL;
+ GSList *list = NULL;
+ list = g_copy_list;
+ while (list) {
+ ent = (MpUtilDirListInfo *) list->data;
+ if (ent->type == FTW_D) {
+ nSizeTmp += MP_VISUAL_FOLDER_SIZE;
+ } else if (ent->type == FTW_F) {
+ VideoLogInfo("==%lld", ent->size);
+ nSizeTmp += ent->size;
+ }
+ list = g_slist_next(list);
+ }
+ } else {
+ *size = nSizeTmp;
+ __mp_util_move_free_directory_hierarchies(&g_copy_list);
+ g_copy_list = NULL;
+ return FALSE;;
+ }
+ __mp_util_move_free_directory_hierarchies(&g_copy_list);
+ g_copy_list = NULL;
+ *size = nSizeTmp;
+ return TRUE;
+}
+
+/**
+ *
+ * @param szSrcPath
+ * @param szDstPath
+ * @param cbFun
+ * @param userData
+ * @param nTotalSize
+ * @return
+ */
+int mp_util_move_push(const char *szSrcPath, const char *szDstPath,
+ mp_util_copy_cb cbFun, void *userData,
+ unsigned long long nTotalSize)
+{
+ VideoLogInfo("start");
+
+ int nRet = 0;
+ unsigned long long r_size = 0;
+ int errcode = 0;
+ g_do_cancel = FALSE;
+ if (g_copy_list) {
+ __mp_util_move_free_directory_hierarchies(&g_copy_list);
+ g_copy_list = NULL;
+ }
+
+ errcode = __mp_util_move_get_remain_space(szDstPath, &r_size);
+ if (errcode < 0) {
+ nRet = -1;
+ VideoLogError("error code = %d", errcode);
+
+ goto ERROR_END_THREAD;
+ }
+
+ if (r_size == 0) {
+ VideoLogError("error space = %d", errcode);
+ nRet = -1;
+ goto ERROR_END_THREAD;
+ }
+
+ g_total_size = nTotalSize;
+
+ /* copy items */
+ nRet =
+ __mp_util_move_copy_internal(szSrcPath, szDstPath, cbFun,
+ userData);
+
+ return nRet;
+ ERROR_END_THREAD:
+
+ VideoLogInfo("The end of MpUtilCopyFunc");
+ return nRet;
+}
+
+/**
+ *
+ * @param sourcePath
+ * @param filePath
+ * @return
+ */
+static bool __mp_util_check_if_in_same_folder(const char *sourcePath,
+ char *filePath)
+{
+
+ char *filePath_temp = strdup(filePath);
+
+ if (filePath_temp == NULL) {
+ return false;
+ }
+
+ if (!strcmp(sourcePath, filePath_temp)) {
+ free(filePath_temp);
+ return true;
+ } else {
+ free(filePath_temp);
+ return false;
+ }
+}
+
+/**
+ *
+ * @param szSrcPath
+ * @param msg_data
+ * @return
+ */
+static int __mp_util_move_delete_internal(const char *szSrcPath,
+ void *msg_data)
+{
+ if (!szSrcPath) {
+ VideoLogError("szSrcPath is NULL");
+ return -1;
+ }
+ int ret = 0;
+ if (g_copy_list) {
+ __mp_util_move_free_directory_hierarchies(&g_copy_list);
+ g_copy_list = NULL;
+ }
+ ret = ftw(szSrcPath, __mp_util_move_directory_hierarchies, 16);
+ if (ret == 0) {
+ MpUtilDirListInfo *ent = NULL;
+ GSList *list = NULL;
+ list = g_copy_list;
+ while (list) {
+ if (mp_util_move_cancel_check()) {
+ goto DO_CANCEL;
+ }
+ ent = (MpUtilDirListInfo *) list->data;
+ VideoSecureLogInfo("name is [%s] type is [%d]", ent->ftw_path,
+ ent->type);
+ if (ent->type == FTW_D) {
+ list = g_slist_next(list);
+ continue;
+ } else if (ent->type == FTW_F) {
+ if (ent->ftw_path == NULL || strlen(ent->ftw_path) == 0) {
+ list = g_slist_next(list);
+ continue;
+ }
+ if (!__mp_util_check_if_in_same_folder
+ (szSrcPath, ent->ftw_path)) {
+ list = g_slist_next(list);
+ continue;
+ }
+ if (!vp_file_unlink(ent->ftw_path)) {
+ VideoLogInfo("remove failed.");
+ goto ERROR_CLOSE_FD;
+ }
+ mp_util_svc_scan_file(ent->ftw_path);
+ }
+ list = g_slist_next(list);
+ }
+
+ } else {
+ goto ERROR_CLOSE_FD;
+ }
+
+ return 0;
+
+ ERROR_CLOSE_FD:
+ __mp_util_move_free_directory_hierarchies(&g_copy_list);
+ g_copy_list = NULL;
+ return -1;
+
+ DO_CANCEL:
+ __mp_util_move_free_directory_hierarchies(&g_copy_list);
+ g_copy_list = NULL;
+ return 1;
+}
+
+/**
+ *
+ * @param szFolderPath
+ * @param userData
+ * @return
+ */
+int mp_util_move_delete_video_folder(const char *szFolderPath,
+ void *userData)
+{
+ VideoLogInfo("start");
+ if (!szFolderPath) {
+ VideoLogError("szSrcPath is NULL");
+ return -1;
+ }
+
+ int nRet = 0;
+ g_do_cancel = FALSE;
+ if (g_copy_list) {
+ __mp_util_move_free_directory_hierarchies(&g_copy_list);
+ g_copy_list = NULL;
+ }
+
+ /* copy items */
+ nRet = __mp_util_move_delete_internal(szFolderPath, userData);
+ __mp_util_move_free_directory_hierarchies(&g_copy_list);
+ g_copy_list = NULL;
+
+ return nRet;
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#include <app.h>
+#include <glib.h>
+#include <system_settings.h>
+#include "video-player.h"
+#include "videos-view-mgr.h"
+#include "mp-util.h"
+#include "mp-video-log.h"
+#include "mp-library-view-mgr.h"
+#include "mp-video-list-view-main.h"
+
+#define VIDEOS_WIN_NAME "videos"
+
+/**
+ *
+ * @param pUserData
+ * @return
+ */
+static bool appCreate(void *pUserData)
+{
+ VideoLogWarning("== APP CREATE ==");
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pUserData
+ */
+static void __app_color_theme_changed(void *pUserData)
+{
+ VideoLogWarning("app_color_theme_changed");
+
+ mp_library_mgr_change_color();
+}
+
+/**
+ *
+ */
+static void appCreateInternal()
+{
+ VideoLogWarning("== APP CREATE INTERNAL ==");
+
+ mp_util_create_main_theme();
+ mp_util_set_color_theme_changed_cb(__app_color_theme_changed);
+
+ mp_mgr_create_main_window(VIDEOS_WIN_NAME);
+
+#ifdef _MULTI_WINDOW
+ elm_win_wm_desktop_layout_support_set((Evas_Object *)
+ mp_mgr_get_main_window(),
+ EINA_TRUE);
+
+ evas_object_data_set((Evas_Object *) mp_mgr_get_main_window(),
+ "id_startup_by", (void *) -1);
+ evas_object_data_set((Evas_Object *) mp_mgr_get_main_window(),
+ "id_layout_pos", (void *) -1);
+#endif
+
+ evas_object_show((Evas_Object *) mp_mgr_get_main_window());
+ elm_win_activate((Evas_Object *) mp_mgr_get_main_window());
+
+ return;
+}
+
+/**
+ *
+ * @param data
+ * @return
+ */
+static Eina_Bool appControlPost(void *data)
+{
+ if (mp_mgr_get_library_naviframe() == NULL) {
+ mp_mgr_restart_main_window();
+ } else {
+ VideoLogInfo("appControlPost");
+ }
+ return TRUE;
+}
+
+/**
+ *
+ * @param pAppSvcHandle
+ * @param pUserData
+ */
+static void appControl(app_control_h pAppSvcHandle, void *pUserData)
+{
+ VideoLogWarning("== APP SERVICE ==");
+ bool bActiveMainwindow = FALSE;
+ if (mp_mgr_get_main_window() == NULL) {
+ appCreateInternal();
+ } else {
+ bActiveMainwindow = TRUE;
+ }
+
+ if (mp_mgr_get_main_window() == NULL) {
+ VideoLogError("mp_mgr_get_main_window return NULL!!!");
+ elm_exit();
+ return;
+ }
+
+ /*
+ * for split window
+ */
+#ifdef _MULTI_WINDOW
+ if (!pAppSvcHandle) {
+ VideoLogInfo("[ERR] No exist pAppSveHandle.");
+ return;
+ }
+
+ static int is_first_run = 0;
+
+ char *val_startup = NULL;
+ char *val_layout = NULL;
+ int id = -1;
+
+ int id_startup_by = (int) evas_object_data_get((Evas_Object *)
+ mp_mgr_get_main_window
+ (),
+ "id_startup_by");
+ int id_layout_pos = (int) evas_object_data_get((Evas_Object *)
+ mp_mgr_get_main_window
+ (),
+ "id_layout_pos");
+
+ if (app_control_get_extra_data(pAppSvcHandle, "window_startup_type",
+ &val_startup) !=
+ APP_CONTROL_ERROR_NONE) {
+ val_startup = strdup("0");
+ }
+
+ if (app_control_get_extra_data(pAppSvcHandle, "window_layout_id",
+ &val_layout) !=
+ APP_CONTROL_ERROR_NONE) {
+ val_layout = strdup("-1");
+ }
+
+ if (id_startup_by == -1) {
+ id = elm_win_aux_hint_add((Evas_Object *) mp_mgr_get_main_window(),
+ "wm.policy.win.startup.by", val_startup);
+ evas_object_data_set((Evas_Object *) mp_mgr_get_main_window(),
+ "id_startup_by", (void *) id);
+ } else {
+ elm_win_aux_hint_val_set((Evas_Object *) mp_mgr_get_main_window(),
+ id_startup_by, val_startup);
+ }
+
+ if (id_layout_pos == -1) {
+ id = elm_win_aux_hint_add((Evas_Object *) mp_mgr_get_main_window(),
+ "wm.policy.win.zone.desk.layout.pos",
+ val_layout);
+ evas_object_data_set((Evas_Object *) mp_mgr_get_main_window(),
+ "id_layout_pos", (void *) id);
+ } else {
+ elm_win_aux_hint_val_set((Evas_Object *) mp_mgr_get_main_window(),
+ id_layout_pos, val_layout);
+ }
+
+ VideoLogInfo("val_startup : [%s]", val_startup);
+ VideoLogInfo("val_layout : [%s]", val_layout);
+ VideoLogInfo("id_startup_by : [%d]", id_startup_by);
+ VideoLogInfo("id_layout_pos : [%d]", id_layout_pos);
+
+ free(val_startup);
+ free(val_layout);
+ val_startup = NULL;
+ val_layout = NULL;
+
+ char *operation = NULL;
+ int nRet = app_control_get_operation(pAppSvcHandle, &operation);
+ if (nRet == APP_CONTROL_ERROR_NONE &&
+ strcmp(operation,
+ "http://tizen.org/appcontrol/operation/main") == 0) {
+ if (is_first_run == 1) {
+ elm_win_activate((Evas_Object *) mp_mgr_get_main_window());
+
+ VideoLogInfo("is_first_run is true");
+
+ MP_FREE_STRING(operation);
+
+ return;
+ }
+ }
+
+ MP_FREE_STRING(operation);
+
+ is_first_run = 1;
+#endif
+
+ if (bActiveMainwindow) {
+ evas_object_show((Evas_Object *) mp_mgr_get_main_window());
+ elm_win_activate((Evas_Object *) mp_mgr_get_main_window());
+ }
+
+ appControlPost(NULL);
+ return;
+}
+
+/**
+ *
+ * @param pUserData
+ */
+static void appExit(void *pUserData)
+{
+ VideoLogWarning("== APP EXIT ==");
+ mp_util_free_main_theme();
+ mp_util_set_color_theme_changed_cb(NULL);
+}
+
+/**
+ *
+ * @param pUserData
+ */
+static void appPause(void *pUserData)
+{
+ VideoLogWarning("== APP PAUSE ==");
+
+ return;
+}
+
+/**
+ *
+ * @param pUserData
+ */
+static void appResume(void *pUserData)
+{
+ VideoLogWarning("== APP RESUME ==");
+
+ mp_list_view_update_widget_resume();
+
+ return;
+}
+
+/**
+ *
+ * @param pEventInfo
+ * @param pUserData
+ */
+static void appUpdateLanguage(app_event_info_h pEventInfo, void *pUserData)
+{
+ VideoLogWarning("== APP CHANGE LANGUAGE ==");
+
+ mp_library_mgr_change_language();
+
+ char *locale = NULL;
+ int retcode =
+ system_settings_get_value_string
+ (SYSTEM_SETTINGS_KEY_LOCALE_LANGUAGE, &locale);
+
+ if (retcode != SYSTEM_SETTINGS_ERROR_NONE) {
+ VideoLogInfo("[ERR] failed to get updated language[retcode = %d]",
+ retcode);
+ } else {
+ if (locale) {
+ elm_language_set(locale);
+ MP_FREE_STRING(locale);
+ }
+ }
+}
+
+/**
+ *
+ * @param argc
+ * @param argv
+ * @return
+ */
+EXPORT_API int main(int argc, char *argv[])
+{
+ struct timeval startTimeVal;
+ int nRet = -1;
+ gettimeofday(&startTimeVal, NULL);
+
+ VideoLogInfo("======================================================");
+ VideoLogInfo(" Measuring exec() launching time - %ld:%ldus",
+ startTimeVal.tv_sec, startTimeVal.tv_usec);
+ VideoLogInfo("======================================================");
+
+ ui_app_lifecycle_callback_s st_appEventService;
+ app_event_handler_h hLanguageChangedHandle = NULL;
+
+ nRet = ui_app_add_event_handler(&hLanguageChangedHandle,
+ APP_EVENT_LANGUAGE_CHANGED,
+ appUpdateLanguage, NULL);
+ if (nRet != APP_ERROR_NONE) {
+ VideoLogError("Fail to add handler for LANGUAGE_CHANGED [%d]",
+ nRet);
+ return -1;
+ }
+
+ st_appEventService.create = appCreate;
+ st_appEventService.terminate = appExit;
+ st_appEventService.pause = appPause;
+ st_appEventService.resume = appResume;
+ st_appEventService.app_control = appControl;
+
+ nRet = ui_app_main(argc, argv, &st_appEventService, NULL);
+ if (nRet != APP_ERROR_NONE) {
+ VideoLogInfo("[ERR] app_efl_main().");
+ return -1;
+ }
+
+ VideoLogInfo("escape ui_app_main() loop.");
+
+ return 0;
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#include <fcntl.h>
+#include <unistd.h>
+#include <sys/stat.h>
+
+#include <app.h>
+#include <stdbool.h>
+#include <Ecore_Evas.h>
+#include <Elementary.h>
+
+#include <system_settings.h>
+#include "vp-play-log.h"
+#include "mp-util.h"
+#include "mp-video-log.h"
+#include "mp-external-ug.h"
+#include "mp-library-view-mgr.h"
+#include "mp-util-media-service.h"
+#include "mp-video-string-define.h"
+#include "mp-video-list-view-main.h"
+#include "mp-video-search-view.h"
+#include "videos-view-mgr.h"
+#include "mp-rotate-ctrl.h"
+#include "mp-video-list-view-as-ctrl.h"
+#include "mp-util-preference.h"
+
+typedef enum {
+ MP_NONE_VIEW = 0,
+ MP_LIBRARY_LIST_VIEW,
+ MP_SEARCH_LIST_VIEW,
+ MP_MAX_VIEW,
+} MpLibraryViewType;
+
+/**
+ *
+ */
+void mp_library_mgr_exit_cb(void)
+{
+ VideoLogInfo("");
+
+ /*/////////////////////////////////////////////////////// */
+ /* TO-DO : It needs to include exit call sequence. */
+}
+
+/*//////////////////////////////////////////////////////////////////////////*/
+/* External APIs*/
+
+/**
+ *
+ */
+void *mp_library_mgr_init(void)
+{
+ mp_library_mgr_set_value();
+
+ Evas_Object *pParent = (Evas_Object *) mp_mgr_get_library_parent();
+ Evas_Object *pNaviFrame = elm_naviframe_add(pParent);
+
+ evas_object_size_hint_align_set(pNaviFrame, EVAS_HINT_FILL,
+ EVAS_HINT_FILL);
+ evas_object_size_hint_weight_set(pNaviFrame, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+
+ elm_naviframe_prev_btn_auto_pushed_set(pNaviFrame, EINA_FALSE);
+ evas_object_show(pNaviFrame);
+
+ mp_list_view_push((void *) pNaviFrame);
+
+ return (void *) pNaviFrame;
+}
+
+/**
+ *
+ * @param pUserData
+ */
+void mp_library_mgr_destroy(void *pUserData)
+{
+ VideoLogInfo("");
+ if (NULL == pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+ mp_list_view_destroy();
+
+ mp_library_mgr_unset_value();
+
+ Evas_Object *pNaviFrame = (Evas_Object *) pUserData;
+
+ if (pNaviFrame) {
+ evas_object_del(pNaviFrame);
+ }
+
+}
+
+/**
+ *
+ */
+void mp_library_mgr_update_video_list(void)
+{
+
+ mp_list_view_update_widget();
+}
+
+/**
+ *
+ * @param eUpdateType
+ */
+void mp_library_mgr_update_library_view(MpListUpdateType eUpdateType)
+{
+ VideoLogInfo("eUpdateType = %d", eUpdateType);
+
+ mp_list_view_rotate_view(eUpdateType);
+}
+
+/**
+ *
+ */
+void mp_library_mgr_change_language(void)
+{
+ VideoLogInfo("");
+
+ char *locale = NULL;
+ int retcode =
+ system_settings_get_value_string
+ (SYSTEM_SETTINGS_KEY_LOCALE_LANGUAGE, &locale);
+
+ if (retcode != SYSTEM_SETTINGS_ERROR_NONE) {
+ VideoLogInfo
+ ("[ERR] failed to get updated language!!! [retcode = retcode]",
+ retcode);
+ } else {
+ if (locale) {
+ elm_language_set(locale);
+ MP_FREE_STRING(locale);
+ }
+ }
+
+ mp_list_view_change_language();
+}
+
+/**
+ *
+ */
+void mp_library_mgr_change_color(void)
+{
+ mp_list_view_change_color();
+}
+
+/**
+ *
+ */
+void mp_library_mgr_destroy_player(void)
+{
+ mp_list_view_destroy_player();
+}
+
+/**
+ *
+ */
+void mp_library_mgr_set_value(void)
+{
+ VideoLogInfo("");
+
+ mp_util_svc_init_session();
+ mp_util_preference_init();
+}
+
+/*it is not necessary to invoke this interface and could use idler to invoke*/
+void mp_library_mgr_init_value(void)
+{
+ VideoLogInfo("");
+}
+
+/**
+ *
+ */
+void mp_library_mgr_unset_value(void)
+{
+ VideoLogInfo("");
+
+ mp_util_delete_popup_handle();
+ mp_util_svc_destory_video_list();
+ mp_util_svc_finish_session();
+
+ mp_library_mgr_destroy_player();
+ mp_rotate_ctrl_destroy();
+}
+
+/**
+ *
+ */
+void mp_library_mgr_pause_wall_render(void)
+{
+ VideoLogInfo("");
+#ifdef VS_FEATURE_THUMBNAIL_VIEW /**/
+ int nViewType = mp_view_as_ctrl_get_type();
+
+ if (nViewType == MP_LIST_VIEW_AS_THUMBNAIL_LIST) {
+ }
+#endif /**/
+}
+
+/**
+ *
+ */
+void mp_library_mgr_resume_wall_render(void)
+{
+ VideoLogInfo("");
+#ifdef VS_FEATURE_THUMBNAIL_VIEW /**/
+ int nViewType = mp_view_as_ctrl_get_type();
+
+ if (nViewType == MP_LIST_VIEW_AS_THUMBNAIL_LIST) {
+ }
+#endif
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <app.h>
+#include <glib.h>
+#include <Ecore_Evas.h>
+#include <Elementary.h>
+
+#include "mp-util.h"
+#include "mp-video-log.h"
+#include "video-player.h"
+#include "mp-video-value-define.h"
+#include "mp-video-string-define.h"
+#include "mp-video-type-define.h"
+
+#include "mp-video-detail-view.h"
+#include "mp-video-info-ctrl.h"
+#include "mp-util-media-service.h"
+#include "mp-util-widget-ctrl.h"
+#include "mp-video-list-sort-ctrl.h"
+#include "mp-video-list-view-as-ctrl.h"
+#include "mp-video-view-popup-ctrl.h"
+#include "vp-util.h"
+
+typedef struct _VideoDetailView {
+ /*obj */
+ void *pNaviFrameHandle;
+ void *pNaviFrameItem;
+ Evas_Object *pGenList;
+ Evas_Object *pBox;
+
+ /*data */
+ Elm_Genlist_Item_Class *stDetailItc;
+ mpDetailViewCbFunc DetailViewUserCbFunc;
+ stDetailInfo *pDetailInfo;
+ char *pMediaId;
+ bool isFolder;
+ int nListCount;
+
+} stDetailView;
+
+
+static stDetailView *g_pDetailViewHandle = NULL;
+
+
+/*//////////////////////////////////////////////////////////*/
+/* Internal function*/
+/*//////////////////////////////////////////////////////////*/
+static void __mp_detail_view_rotate_cb(void *data, Evas_Object * obj,
+ void *event_info);
+static Eina_Bool __mp_detail_view_cancel_btn_cb(void *pUserData,
+ Elm_Object_Item * pItem);
+/**
+ *
+ */
+void mp_detail_view_delete_handle(void)
+{
+ VideoLogInfo("");
+ if (!g_pDetailViewHandle) {
+ VideoLogError("g_pDetailViewHandle is NULL");
+ return;
+ }
+
+ evas_object_smart_callback_del((Evas_Object *)
+ mp_util_get_main_window_handle(),
+ "rotation,changed",
+ __mp_detail_view_rotate_cb);
+
+ if (g_pDetailViewHandle->pDetailInfo) {
+ mp_detail_view_free_detail_info(g_pDetailViewHandle->pDetailInfo);
+ g_pDetailViewHandle->pDetailInfo = NULL;
+
+ }
+ MP_FREE_STRING(g_pDetailViewHandle->pMediaId);
+
+ MP_DEL_ITC(g_pDetailViewHandle->stDetailItc);
+ MP_DEL_OBJ(g_pDetailViewHandle->pGenList);
+ MP_DEL_OBJ(g_pDetailViewHandle->pBox);
+ MP_FREE_STRING(g_pDetailViewHandle);
+}
+
+/**
+ *
+ */
+static void __mp_detail_view_reset(void)
+{
+ VideoLogInfo("");
+ if (!g_pDetailViewHandle) {
+ VideoLogError("g_pDetailViewHandle is NULL");
+ return;
+ }
+
+ evas_object_smart_callback_del((Evas_Object *)
+ mp_util_get_main_window_handle(),
+ "rotation,changed",
+ __mp_detail_view_rotate_cb);
+
+ if (g_pDetailViewHandle->pDetailInfo) {
+ mp_detail_view_free_detail_info(g_pDetailViewHandle->pDetailInfo);
+ g_pDetailViewHandle->pDetailInfo = NULL;
+
+ }
+ MP_FREE_STRING(g_pDetailViewHandle->pMediaId);
+
+ MP_DEL_ITC(g_pDetailViewHandle->stDetailItc);
+ g_pDetailViewHandle->pGenList = NULL;
+ g_pDetailViewHandle->pBox = NULL;
+
+ MP_FREE_STRING(g_pDetailViewHandle);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pPart
+ * @return
+ */
+static char *__mp_detail_view_genlist_text_get_cb(const void *pUserData,
+ Evas_Object * pObj,
+ const char *pPart)
+{
+ if (!pUserData || !g_pDetailViewHandle) {
+ VideoLogError("pUserData is NULL");
+ return NULL;
+ }
+
+ char *szTxt = (char *) pUserData;
+
+ VideoLogWarning("%s : %s", pPart, szTxt);
+
+ if (!g_strcmp0(pPart, "elm.text.main.left.top")) {
+
+ return strdup(szTxt);
+ } else if (!g_strcmp0(pPart, "elm.text.sub.left.bottom")) {
+
+ stDetailInfo *pDetailInfo = g_pDetailViewHandle->pDetailInfo;
+
+ if (pDetailInfo == NULL) {
+ return NULL;
+ }
+
+ if (!g_strcmp0(szTxt, VIDEOS_DETAILVIEW_BODY_TITLE)) {
+ if (pDetailInfo->szTitle)
+ return elm_entry_utf8_to_markup(pDetailInfo->szTitle);
+ } else if (!g_strcmp0(szTxt, VIDEOS_DETAILVIEW_BODY_FORMAT)) {
+ if (pDetailInfo->szFormat)
+ return elm_entry_utf8_to_markup(pDetailInfo->szFormat);
+ } else if (!g_strcmp0(szTxt, VIDEOS_DETAILVIEW_BODY_SIZE)) {
+ if (pDetailInfo->szSize)
+ return elm_entry_utf8_to_markup(pDetailInfo->szSize);
+ } else if (!g_strcmp0(szTxt, VIDEOS_DETAILVIEW_BODY_RESOLUTION)) {
+ if (pDetailInfo->szResolution)
+ return elm_entry_utf8_to_markup(pDetailInfo->szResolution);
+ } else if (!g_strcmp0(szTxt, VIDEOS_DETAILVIEW_BODY_LAST_MODIFIED)) {
+ if (pDetailInfo->szLastModifiedTime)
+ return
+ elm_entry_utf8_to_markup
+ (pDetailInfo->szLastModifiedTime);
+ } else if (!g_strcmp0(szTxt, VIDEOS_DETAILVIEW_BODY_LOCATION)) {
+ if (pDetailInfo->szLocation)
+ return elm_entry_utf8_to_markup(pDetailInfo->szLocation);
+ }
+ }
+
+ return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pItem
+ * @return
+ */
+static Eina_Bool __mp_detail_view_cancel_btn_cb(void *pUserData,
+ Elm_Object_Item * pItem)
+{
+ if (g_pDetailViewHandle && g_pDetailViewHandle->DetailViewUserCbFunc) {
+ g_pDetailViewHandle->DetailViewUserCbFunc();
+ }
+
+ return EINA_TRUE;
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __mp_detail_view_genlist_realized(void *data,
+ Evas_Object * obj,
+ void *event_info)
+{
+ if (!event_info || !obj) {
+ VideoLogError("event info is invalid");
+ return;
+ }
+ Elm_Object_Item *pItem = elm_genlist_last_item_get(obj);
+
+ if (pItem) {
+ elm_object_item_signal_emit(pItem, "elm,state,bottomline,hide",
+ "");
+ }
+}
+
+/**
+ *
+ * @param pObj
+ * @param nViewType
+ * @return
+ */
+static bool __mp_detail_view_add_genlist_item(Evas_Object * pObj,
+ MpListViewAsType nViewType)
+{
+ if (!pObj || !g_pDetailViewHandle || !g_pDetailViewHandle->pDetailInfo) {
+ VideoLogError("g_pDetailViewHandle is NULL");
+ return FALSE;
+ }
+ MP_DEL_ITC(g_pDetailViewHandle->stDetailItc);
+ g_pDetailViewHandle->stDetailItc = elm_genlist_item_class_new();
+
+ g_pDetailViewHandle->stDetailItc->version =
+ ELM_GENLIST_ITEM_CLASS_VERSION;
+ g_pDetailViewHandle->stDetailItc->item_style = "2line.top";
+ g_pDetailViewHandle->stDetailItc->func.text_get =
+ (void *) __mp_detail_view_genlist_text_get_cb;
+ g_pDetailViewHandle->stDetailItc->func.content_get = NULL;
+ g_pDetailViewHandle->stDetailItc->func.state_get = NULL;
+ g_pDetailViewHandle->stDetailItc->func.del = NULL;
+
+ int nListCount = 0;
+
+ Elm_Object_Item *pItem = NULL;
+ stDetailInfo *pDetailInfo = g_pDetailViewHandle->pDetailInfo;
+
+ if (!g_pDetailViewHandle->isFolder) {
+ pItem =
+ elm_genlist_item_append(pObj,
+ g_pDetailViewHandle->stDetailItc,
+ (void *) VIDEOS_DETAILVIEW_BODY_TITLE,
+ NULL, ELM_GENLIST_ITEM_NONE, NULL,
+ NULL);
+ elm_genlist_item_select_mode_set(pItem,
+ ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+ nListCount++;
+
+ pItem =
+ elm_genlist_item_append(pObj,
+ g_pDetailViewHandle->stDetailItc,
+ (void *) VIDEOS_DETAILVIEW_BODY_SIZE,
+ NULL, ELM_GENLIST_ITEM_NONE, NULL,
+ NULL);
+ elm_genlist_item_select_mode_set(pItem,
+ ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+ nListCount++;
+
+ pItem =
+ elm_genlist_item_append(pObj,
+ g_pDetailViewHandle->stDetailItc,
+ (void *)
+ VIDEOS_DETAILVIEW_BODY_FORMAT, NULL,
+ ELM_GENLIST_ITEM_NONE, NULL, NULL);
+ elm_genlist_item_select_mode_set(pItem,
+ ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+ nListCount++;
+
+ pItem =
+ elm_genlist_item_append(pObj,
+ g_pDetailViewHandle->stDetailItc,
+ (void *)
+ VIDEOS_DETAILVIEW_BODY_RESOLUTION,
+ NULL, ELM_GENLIST_ITEM_NONE, NULL,
+ NULL);
+ elm_genlist_item_select_mode_set(pItem,
+ ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+ nListCount++;
+
+ pItem =
+ elm_genlist_item_append(pObj,
+ g_pDetailViewHandle->stDetailItc,
+ (void *)
+ VIDEOS_DETAILVIEW_BODY_LAST_MODIFIED,
+ NULL, ELM_GENLIST_ITEM_NONE, NULL,
+ NULL);
+ elm_genlist_item_select_mode_set(pItem,
+ ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+ nListCount++;
+
+ pItem =
+ elm_genlist_item_append(pObj,
+ g_pDetailViewHandle->stDetailItc,
+ (void *)
+ VIDEOS_DETAILVIEW_BODY_LOCATION, NULL,
+ ELM_GENLIST_ITEM_NONE, NULL, NULL);
+ elm_genlist_item_select_mode_set(pItem,
+ ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+ nListCount++;
+
+ } else {
+ pItem =
+ elm_genlist_item_append(pObj,
+ g_pDetailViewHandle->stDetailItc,
+ (void *) VIDEOS_DETAILVIEW_BODY_TITLE,
+ NULL, ELM_GENLIST_ITEM_NONE, NULL,
+ NULL);
+ elm_genlist_item_select_mode_set(pItem,
+ ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+ nListCount++;
+
+ if (pDetailInfo->szSize) {
+ pItem =
+ elm_genlist_item_append(pObj,
+ g_pDetailViewHandle->stDetailItc,
+ (void *)
+ VIDEOS_DETAILVIEW_BODY_SIZE, NULL,
+ ELM_GENLIST_ITEM_NONE, NULL, NULL);
+ elm_genlist_item_select_mode_set(pItem,
+ ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+ nListCount++;
+ }
+
+ pItem =
+ elm_genlist_item_append(pObj,
+ g_pDetailViewHandle->stDetailItc,
+ (void *)
+ VIDEOS_DETAILVIEW_BODY_LOCATION, NULL,
+ ELM_GENLIST_ITEM_NONE, NULL, NULL);
+ elm_genlist_item_select_mode_set(pItem,
+ ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+ nListCount++;
+ }
+
+ g_pDetailViewHandle->nListCount = nListCount;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __mp_detail_view_rotate_cb(void *data, Evas_Object * obj,
+ void *event_info)
+{
+ if (!g_pDetailViewHandle) {
+ VideoLogError("__mp_detail_view_rotate_cb IS null");
+ return;
+ }
+ if (g_pDetailViewHandle->nListCount < VIDEO_POPUP_MIN_ITEMS) {
+ return;
+ }
+ mp_widget_ctrl_set_popup_min_size(g_pDetailViewHandle->pBox,
+ g_pDetailViewHandle->nListCount,
+ VIDEOS_POPUP_114);
+
+}
+
+/*//////////////////////////////////////////////////////////*/
+/* External function*/
+/*//////////////////////////////////////////////////////////*/
+
+/**
+ *
+ * @param pDetailInfo
+ */
+void mp_detail_view_free_detail_info(stDetailInfo * pDetailInfo)
+{
+ if (pDetailInfo) {
+ MP_FREE_STRING(pDetailInfo->szTitle);
+ MP_FREE_STRING(pDetailInfo->szFormat);
+ MP_FREE_STRING(pDetailInfo->szSize);
+ MP_FREE_STRING(pDetailInfo->szResolution);
+ MP_FREE_STRING(pDetailInfo->szLocation);
+ MP_FREE_STRING(pDetailInfo);
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param e
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_detail_view_base_layout_del_cb(void *pUserData, Evas * e,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ __mp_detail_view_reset();
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param emission
+ * @param source
+ */
+void __mp_details_soft_back_button_cb(void *data, Evas_Object * obj,
+ const char *emission,
+ const char *source)
+{
+ Evas_Object *pTopNaviFrame = NULL;
+ pTopNaviFrame =
+ elm_naviframe_item_pop(g_pDetailViewHandle->pNaviFrameHandle);
+ evas_object_del(pTopNaviFrame);
+}
+
+/**
+ *
+ * @param pNaviFrame
+ * @param IsFolder
+ * @param pMediaId
+ * @param pDetailInfo
+ */
+void mp_detail_view_push(void *pNaviFrame, bool IsFolder,
+ const char *pMediaId, stDetailInfo * pDetailInfo)
+{
+ VideoLogInfo("");
+
+ if (!pDetailInfo) {
+ VideoLogError("invalid detail");
+ return;
+ }
+ mp_detail_view_delete_handle();
+ g_pDetailViewHandle = (stDetailView *) calloc(1, sizeof(stDetailView));
+ if (!g_pDetailViewHandle) {
+ VideoLogError("g_pDetailViewHandle is NULL");
+ return;
+ }
+
+ g_pDetailViewHandle->pDetailInfo = calloc(1, sizeof(stDetailInfo));
+ if (g_pDetailViewHandle->pDetailInfo == NULL) {
+ VideoLogError("pDetailView alloc fail");
+ mp_detail_view_delete_handle();
+ return;
+ }
+
+ g_pDetailViewHandle->pMediaId = g_strdup(pMediaId);
+ int nViewType = mp_view_as_ctrl_get_type();
+
+ if (IsFolder) {
+ VideoSecureLogInfo("%s,%s %s", pDetailInfo->szTitle,
+ pDetailInfo->szSize, pDetailInfo->szLocation);
+ g_pDetailViewHandle->pDetailInfo->szTitle =
+ g_strdup(pDetailInfo->szTitle);
+ g_pDetailViewHandle->pDetailInfo->szSize =
+ g_strdup(pDetailInfo->szSize);
+ g_pDetailViewHandle->pDetailInfo->szLocation =
+ g_strdup(pDetailInfo->szLocation);
+ } else {
+ VideoSecureLogInfo("%s,%s,%s,%s,%s", pDetailInfo->szTitle,
+ pDetailInfo->szFormat,
+ pDetailInfo->szResolution,
+ pDetailInfo->szLocation);
+ g_pDetailViewHandle->pDetailInfo->szTitle =
+ g_strdup(pDetailInfo->szTitle);
+ g_pDetailViewHandle->pDetailInfo->szFormat =
+ g_strdup(pDetailInfo->szFormat);
+ g_pDetailViewHandle->pDetailInfo->szSize =
+ g_strdup(pDetailInfo->szSize);
+ g_pDetailViewHandle->pDetailInfo->szLastModifiedTime =
+ g_strdup(pDetailInfo->szLastModifiedTime);
+ g_pDetailViewHandle->pDetailInfo->szResolution =
+ g_strdup(pDetailInfo->szResolution);
+ g_pDetailViewHandle->pDetailInfo->szLocation =
+ g_strdup(pDetailInfo->szLocation);
+ }
+
+ g_pDetailViewHandle->DetailViewUserCbFunc = NULL;
+
+ g_pDetailViewHandle->pNaviFrameHandle = pNaviFrame;
+ g_pDetailViewHandle->isFolder = IsFolder;
+
+ evas_object_smart_callback_add((Evas_Object *)
+ mp_util_get_main_window_handle(),
+ "rotation,changed",
+ __mp_detail_view_rotate_cb, NULL);
+
+
+ /* Create genlist handle */
+ g_pDetailViewHandle->pGenList =
+ elm_genlist_add(g_pDetailViewHandle->pNaviFrameHandle);
+ evas_object_size_hint_weight_set(g_pDetailViewHandle->pGenList,
+ EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(g_pDetailViewHandle->pGenList,
+ EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_smart_callback_add(g_pDetailViewHandle->pGenList,
+ "realized",
+ __mp_detail_view_genlist_realized,
+ NULL);
+
+ elm_genlist_mode_set(g_pDetailViewHandle->pGenList, ELM_LIST_COMPRESS);
+
+ __mp_detail_view_add_genlist_item(g_pDetailViewHandle->pGenList,
+ nViewType);
+ evas_object_event_callback_add(g_pDetailViewHandle->pGenList,
+ EVAS_CALLBACK_DEL,
+ __mp_detail_view_base_layout_del_cb,
+ NULL);
+
+ g_pDetailViewHandle->pNaviFrameItem =
+ elm_naviframe_item_push(g_pDetailViewHandle->pNaviFrameHandle,
+ VIDEOS_DETAILVIEW_HEADER_DETAILS, NULL,
+ NULL, g_pDetailViewHandle->pGenList, NULL);
+ elm_naviframe_item_pop_cb_set(g_pDetailViewHandle->pNaviFrameItem,
+ __mp_detail_view_cancel_btn_cb, NULL);
+
+ Evas_Object *back_btn =
+ elm_button_add(g_pDetailViewHandle->pNaviFrameHandle);
+ elm_object_style_set(back_btn, "back");
+ elm_object_signal_callback_add(back_btn, "elm,action,click", "",
+ __mp_details_soft_back_button_cb,
+ (void *) g_pDetailViewHandle);
+ elm_object_item_part_content_set(g_pDetailViewHandle->pNaviFrameItem,
+ "title_left_btn", back_btn);
+ evas_object_show(back_btn);
+}
+
+/**
+ *
+ * @param nVideoItemIndex
+ * @param pDetailInfo
+ * @return
+ */
+bool mp_detail_view_get_video_detail_info(int nVideoItemIndex,
+ stDetailInfo ** pDetailInfo)
+{
+ char *szFilePath = NULL;
+ char *szVideoTitle = NULL;
+
+ char szTmpStr[FORMAT_LEN_MAX] = { 0, };
+ char szTmpFileDate[FORMAT_LEN_MAX] = { 0, };
+ char szTmpFileExtension[FORMAT_LEN_MAX] = { 0, };
+ char szTmpFileSize[FORMAT_LEN_MAX] = { 0, };
+ char *szTmpModifiedTime = NULL;
+
+ int nWidth = 0;
+ int nHeight = 0;
+ stDetailInfo *pDetail = NULL;
+
+ szFilePath = mp_util_svc_get_video_url(nVideoItemIndex);
+ szVideoTitle = mp_util_svc_get_video_title(nVideoItemIndex);
+
+ mp_info_ctrl_get_file_info(szFilePath, szTmpFileDate,
+ FORMAT_LEN_MAX - 1, szTmpFileExtension,
+ FORMAT_LEN_MAX - 1, szTmpFileSize,
+ FORMAT_LEN_MAX - 1);
+
+ nWidth = mp_util_svc_get_video_item_width(nVideoItemIndex);
+ nHeight = mp_util_svc_get_video_item_height(nVideoItemIndex);
+ szTmpModifiedTime =
+ mp_util_svc_get_video_item_modified_time(nVideoItemIndex);
+
+ pDetail = calloc(1, sizeof(stDetailInfo));
+ if (pDetail == NULL) {
+ MP_FREE_STRING(szFilePath);
+ MP_FREE_STRING(szVideoTitle);
+ VideoLogError("pDetailPopup alloc fail");
+ MP_FREE_STRING(szTmpModifiedTime);
+ return FALSE;
+ }
+
+ pDetail->szTitle = g_strdup(szVideoTitle);
+ pDetail->szLocation = vp_util_convert_file_location(szFilePath);
+ MP_FREE_STRING(szFilePath);
+ MP_FREE_STRING(szVideoTitle);
+
+ snprintf(szTmpStr, FORMAT_LEN_MAX - 1, "%s", szTmpFileExtension);
+ pDetail->szFormat = g_strdup(szTmpStr);
+ memset(szTmpStr, 0, FORMAT_LEN_MAX);
+
+ snprintf(szTmpStr, FORMAT_LEN_MAX - 1, "%s", szTmpFileSize);
+ pDetail->szSize = g_strdup(szTmpStr);
+ memset(szTmpStr, 0, FORMAT_LEN_MAX);
+
+ pDetail->szLastModifiedTime = g_strdup(szTmpModifiedTime);
+ MP_FREE_STRING(szTmpModifiedTime);
+
+ snprintf(szTmpStr, FORMAT_LEN_MAX - 1, "%d X %d", nWidth, nHeight);
+ pDetail->szResolution = g_strdup(szTmpStr);
+ memset(szTmpStr, 0, FORMAT_LEN_MAX);
+
+ *pDetailInfo = pDetail;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param nFolderItemIndex
+ * @param pDetailInfo
+ * @return
+ */
+bool mp_detail_view_get_folder_detail_info(int nFolderItemIndex,
+ stDetailInfo ** pDetailInfo)
+{
+ int nIndex = 0;
+
+ char *szFolderUrl = mp_util_svc_get_video_folder_url(nFolderItemIndex);
+
+ mp_util_svc_destory_video_item_list();
+ if (szFolderUrl) {
+ mp_util_svc_extract_video_list_from_folder(szFolderUrl,
+ mp_sort_ctrl_get_sort_state
+ (), MP_LIST_VIEW_ALL);
+ }
+
+ int nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+ VideoLogInfo("nVideoListSize = %d", nVideoListSize);
+
+ char szTmpStr[FORMAT_LEN_MAX] = { 0, };
+ char *szFilePath = NULL;
+ char *szFolderName = NULL;
+
+ unsigned long long nSizeTmp = 0;
+ unsigned long long nSizeTotal = 0;
+ char *szTmpFileSize = NULL;
+
+ stDetailInfo *pDetail = NULL;
+
+ for (nIndex = 0; nIndex < nVideoListSize; nIndex++) {
+ szFilePath = mp_util_svc_get_video_url(nIndex);
+ nSizeTmp = 0;
+ mp_util_get_file_size_by_path(szFilePath, &nSizeTmp);
+ nSizeTotal += nSizeTmp;
+ MP_FREE_STRING(szFilePath);
+ }
+ szTmpFileSize = mp_util_get_file_size(nSizeTotal);
+ VideoLogInfo("nSizeTotal = %s", szTmpFileSize);
+
+ pDetail = calloc(1, sizeof(stDetailInfo));
+ if (pDetail == NULL) {
+ MP_FREE_STRING(szFilePath);
+ MP_FREE_STRING(szFolderName);
+ MP_FREE_STRING(szFolderUrl);
+ MP_FREE_STRING(szTmpFileSize);
+ VideoLogError("pDetailPopup alloc fail");
+ return FALSE;
+ }
+
+ szFolderName = mp_util_svc_get_video_folder_name(nFolderItemIndex);
+
+ pDetail->szTitle = g_strdup(szFolderName);
+ pDetail->szLocation = vp_util_convert_file_location(szFolderUrl);
+ MP_FREE_STRING(szFolderName);
+ MP_FREE_STRING(szFilePath);
+ MP_FREE_STRING(szFolderUrl);
+
+ if (szTmpFileSize) {
+ snprintf(szTmpStr, FORMAT_LEN_MAX - 1, "%s", szTmpFileSize);
+ pDetail->szSize = g_strdup(szTmpStr);
+ memset(szTmpStr, 0, FORMAT_LEN_MAX);
+ MP_FREE_STRING(szTmpFileSize);
+ }
+
+ *pDetailInfo = pDetail;
+
+ return TRUE;
+}
+
+/**
+ *
+ */
+void mp_detail_view_update(void)
+{
+ if (!g_pDetailViewHandle) {
+ return;
+ }
+ MpMediaType eMediaType = MEDIA_TYPE_FILE;
+ if (g_pDetailViewHandle->isFolder)
+ eMediaType = MEDIA_TYPE_DIRECTORY;
+
+ bool bValidMedia = TRUE;
+ int nIndex = 0;
+ bValidMedia =
+ mp_util_svc_check_valid_media_id(g_pDetailViewHandle->pMediaId,
+ eMediaType, &nIndex);
+ if (!bValidMedia) {
+ elm_naviframe_item_pop(g_pDetailViewHandle->pNaviFrameHandle);
+ }
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <Eina.h>
+#include <Ecore_Evas.h>
+#include <Elementary.h>
+#include <glib.h>
+
+#include "mp-util.h"
+#include "mp-video-log.h"
+#include "mp-external-ug.h"
+#include "mp-video-string-define.h"
+#include "mp-video-value-define.h"
+#include "mp-util-media-service.h"
+#include "mp-video-list-sort-ctrl.h"
+#include "mp-video-list-share-via-view.h"
+#include "mp-video-list-folder-share-via-view.h"
+#include "mp-video-view-popup-ctrl.h"
+#include "mp-video-list-view-as-ctrl.h"
+#include "mp-util-widget-ctrl.h"
+#include "mp-video-util-db-controller.h"
+#include "vp-file-util.h"
+
+typedef struct {
+ void *pNaviFrameHandle;
+ void *pNaviFrameItem;
+ void *pGenlist;
+ Elm_Genlist_Item_Class *pGenListItc;
+ MpMediaSvcSortType nSortType;
+ MpDbUpdateViewLev euLev;
+ ChangeListFolderShareViewCbFunc pChangeViewUserCbFunc;
+ MpVideoListTabType eTabType;
+} st_FolderListShareViaViewHandle;
+
+typedef struct {
+ Evas_Object *pBox;
+ Evas_Object *pBaselayout;
+} st_FolderListShareViaViewWidget;
+
+static st_FolderListShareViaViewHandle *g_pFolderShareHandle = NULL;
+static st_FolderListShareViaViewWidget *g_pFolderShareWidget = NULL;
+
+
+/* Pre define function*/
+int mp_folder_share_view_get_sort_type(void);
+bool __mp_folder_share_view_arrange_video_list(void *pGenlist,
+ bool bNeedSvc);
+void mp_folder_share_view_naviframe_transition_effect_cb(void *pUserData,
+ Evas_Object *
+ pObject, void
+ *pEventInfo);
+static void __mp_folder_share_view_base_layout_del_cb(void *pUserData,
+ Evas * e,
+ Evas_Object *
+ pObject,
+ void *pEventInfo);
+
+/**
+ *
+ */
+void mp_folder_share_view_destroy(void)
+{
+ VideoLogInfo("");
+
+ if (g_pFolderShareHandle) {
+ evas_object_smart_callback_del
+ (g_pFolderShareHandle->pNaviFrameHandle, "transition,finished",
+ mp_folder_share_view_naviframe_transition_effect_cb);
+
+ MP_DEL_OBJ(g_pFolderShareHandle->pGenlist);
+ MP_DEL_ITC(g_pFolderShareHandle->pGenListItc);
+ MP_FREE_STRING(g_pFolderShareHandle);
+ }
+
+ if (g_pFolderShareWidget) {
+ MP_DEL_OBJ(g_pFolderShareWidget->pBox);
+
+ if (g_pFolderShareWidget->pBaselayout != NULL) {
+ evas_object_event_callback_del
+ (g_pFolderShareWidget->pBaselayout, EVAS_CALLBACK_DEL,
+ __mp_folder_share_view_base_layout_del_cb);
+ MP_DEL_OBJ(g_pFolderShareWidget->pBaselayout);
+ }
+ MP_FREE_STRING(g_pFolderShareWidget);
+ }
+}
+
+/**
+ *
+ */
+static void __mp_folder_share_view_reset(void)
+{
+ VideoLogInfo("");
+
+ if (g_pFolderShareHandle) {
+ mp_util_db_set_update_fun(g_pFolderShareHandle->euLev, NULL);
+ mp_util_db_set_backup_fun(g_pFolderShareHandle->euLev, NULL);
+ evas_object_smart_callback_del
+ (g_pFolderShareHandle->pNaviFrameHandle, "transition,finished",
+ mp_folder_share_view_naviframe_transition_effect_cb);
+ g_pFolderShareHandle->pGenlist = NULL;
+ MP_FREE_STRING(g_pFolderShareHandle);
+ }
+
+ if (g_pFolderShareWidget) {
+
+ g_pFolderShareWidget->pBox = NULL;
+ g_pFolderShareWidget->pBaselayout = NULL;
+
+ MP_FREE_STRING(g_pFolderShareWidget);
+ }
+}
+
+/**
+ *
+ */
+void mp_folder_share_view_reset_value(void)
+{
+ VideoLogInfo("");
+
+ if (!g_pFolderShareHandle) {
+ VideoLogError("[ERR] g_pFolderShareHandle is not existed.");
+ return;
+ }
+
+ g_pFolderShareHandle->pNaviFrameHandle = NULL;
+ g_pFolderShareHandle->pNaviFrameItem = NULL;
+ g_pFolderShareHandle->pChangeViewUserCbFunc = NULL;
+ g_pFolderShareHandle->nSortType = MP_MEDIA_SORT_BY_RECENTLY_VIEWED;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param obj
+ * @param event_info
+ */
+static void __mp_folder_share_view_trans_finished_cb(void *pUserData,
+ Evas_Object * obj,
+ void *event_info)
+{
+ if (!obj) {
+ VideoLogError("[ERR] g_pFolderShareHandle is NULL.");
+ return;
+ }
+
+ mp_widget_ctrl_enable_navi_handle_focus(obj);
+
+ evas_object_smart_callback_del(obj, "transition,finished",
+ __mp_folder_share_view_trans_finished_cb);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pItem
+ * @return
+ */
+static Eina_Bool mp_folder_share_view_back_btn_cb(void *pUserData,
+ Elm_Object_Item * pItem)
+{
+ if (!g_pFolderShareHandle) {
+ VideoLogInfo("[ERR] g_pFolderShareHandle is NULL.");
+ return EINA_TRUE;
+ }
+ /* Register transition finished callback. */
+ mp_widget_ctrl_disable_navi_handle_focus_except_item
+ (g_pFolderShareHandle->pNaviFrameHandle,
+ g_pFolderShareHandle->pNaviFrameItem);
+ evas_object_smart_callback_add(g_pFolderShareHandle->pNaviFrameHandle,
+ "transition,finished",
+ __mp_folder_share_view_trans_finished_cb,
+ NULL);
+
+ mp_folder_share_view_pop();
+
+ return EINA_TRUE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+void mp_folder_share_view_naviframe_transition_effect_cb(void *pUserData,
+ Evas_Object *
+ pObject,
+ void *pEventInfo)
+{
+ if (!g_pFolderShareHandle) {
+ VideoLogError("[ERR] No exist g_pFolderShareHandle.");
+ return;
+ }
+
+ VideoLogInfo("");
+
+ Evas_Object *pTmpContents = NULL;
+ Elm_Object_Item *pTmpItem = NULL;
+
+ if (!g_pFolderShareHandle->pNaviFrameHandle) {
+ VideoLogInfo("[ERR] No exist naviframe handle.");
+ return;
+ }
+
+ pTmpItem =
+ elm_naviframe_top_item_get(g_pFolderShareHandle->pNaviFrameHandle);
+ pTmpContents = elm_object_item_content_get(pTmpItem);
+ if (pTmpContents) {
+ if (pTmpContents == g_pFolderShareWidget->pBox) {
+ } else {
+ VideoLogInfo
+ ("It's not pListShareViaViewTabbarLayout in top screen.");
+ }
+ } else {
+ VideoLogError("[ERR] No exist naviframe top item.");
+ }
+}
+
+/**
+ *
+ */
+static void __mp_folder_share_view_result_view_update_cb(void)
+{
+ if (!g_pFolderShareHandle) {
+ VideoLogInfo("g_pFolderShareHandle is null.");
+ return;
+ }
+
+ mp_util_svc_destory_video_list();
+ mp_util_svc_extract_video_list_by_item_type
+ (mp_sort_ctrl_get_sort_state(), mp_view_ctrl_get_list_type());
+
+ /*refresh folder view */
+ mp_util_svc_extract_video_folder_list_by_type
+ (mp_sort_ctrl_get_sort_state(), MP_LIST_VIEW_ALL);
+ __mp_folder_share_view_arrange_video_list
+ (g_pFolderShareHandle->pGenlist, FALSE);
+
+ VideoLogInfo("");
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+void mp_folder_share_view_select_item_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ if (!g_pFolderShareHandle->pGenlist) {
+ VideoLogError("No exist genlist object.");
+ return;
+ }
+
+ int nFolderItemIndex = (int) pUserData;
+ char *szFolderPath = NULL;
+ szFolderPath = mp_util_svc_get_video_folder_url(nFolderItemIndex);
+ VideoSecureLogInfo("nFolderItemIndex=%d, szFolderPath=%s",
+ nFolderItemIndex, szFolderPath);
+ mp_share_view_push(g_pFolderShareHandle->pNaviFrameHandle,
+ __mp_folder_share_view_result_view_update_cb,
+ szFolderPath, LIST_TAB_TYPE_PERSONAL);
+
+ Elm_Object_Item *pSelectedItem =
+ elm_genlist_selected_item_get(pObject);
+ if (pSelectedItem) {
+ elm_genlist_item_selected_set(pSelectedItem, EINA_FALSE);
+ }
+ MP_FREE_STRING(szFolderPath);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+static char *__mp_folder_share_view_get_label_cb(const void *pUserData,
+ Evas_Object * pObject,
+ const char *pPart)
+{
+ int nFolderItemIndex = (int) pUserData;
+
+ if (!strcmp(pPart, "elm.text.main.left.top")) {
+ char *szTitle = NULL;
+ szTitle = mp_util_svc_get_video_folder_name(nFolderItemIndex);
+
+ char *szTitleUtf8 = elm_entry_utf8_to_markup(szTitle);
+
+ MP_FREE_STRING(szTitle);
+ return szTitleUtf8;
+ } else if (!strcmp(pPart, "elm.text.sub.left.bottom")) {
+ char *szFolderPath = NULL;
+ szFolderPath = mp_util_svc_get_video_folder_url(nFolderItemIndex);
+ char *pDes_path = mp_util_get_dir_by_path(szFolderPath);
+ MP_FREE_STRING(szFolderPath);
+ char *szFolderUtf8 = elm_entry_utf8_to_markup(pDes_path);
+ MP_FREE_STRING(pDes_path);
+ return szFolderUtf8;
+ } else {
+ }
+
+ return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+static Evas_Object *__mp_folder_share_view_get_icon_cb(const void
+ *pUserData,
+ Evas_Object *
+ pObject,
+ const char *pPart)
+{
+ int nFolderItemIndex = (int) pUserData;
+ if (!g_strcmp0(pPart, "elm.icon.1")) {
+ VideoLogInfo("pPart: elm.icon.1 - thumbnail");
+
+ Evas_Object *pLayout = NULL;
+ Evas_Object *pBg = NULL;
+ char *pThumbIconUri =
+ mp_util_get_folder_thumbnail(nFolderItemIndex,
+ mp_sort_ctrl_get_sort_state());
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VIDEO_CUSTOM_THEME);
+ free(path);
+ pLayout = elm_layout_add(pObject);
+ elm_layout_file_set(pLayout, edj_path,
+ "listview.thumbnail.layout");
+
+ if (!pThumbIconUri || !vp_file_exists(pThumbIconUri)) {
+ MP_FREE_STRING(pThumbIconUri);
+ }
+
+ pBg =
+ mp_util_create_preload_image(pObject, pThumbIconUri,
+ VIDEO_ICON_WIDTH);
+ elm_layout_content_set(pLayout, "elm.thumbnail.icon", pBg);
+ if (pBg)
+ evas_object_show(pBg);
+
+ if (!mp_util_create_folder_sub_icon(pLayout, nFolderItemIndex)) {
+ VideoLogWarning
+ ("Create sub icon is failed. nFolderItemIndex: %d",
+ nFolderItemIndex);
+ }
+
+ MP_FREE_STRING(pThumbIconUri);
+
+ evas_object_show(pLayout);
+
+ return pLayout;
+ }
+
+ return NULL;
+}
+
+/**
+ *
+ * @return
+ */
+int mp_folder_share_view_get_sort_type(void)
+{
+
+ switch (mp_sort_ctrl_get_sort_state()) {
+
+ case MP_LIST_SORT_BY_RECENTLY_ADDED:
+ g_pFolderShareHandle->nSortType = MP_MEDIA_SORT_BY_RECENTLY_ADDED;
+ break;
+
+ case MP_LIST_SORT_BY_NAME:
+ g_pFolderShareHandle->nSortType = MP_MEDIA_SORT_BY_NAME;
+ break;
+
+ }
+
+ return g_pFolderShareHandle->nSortType;
+}
+
+/**
+ *
+ * @param pGenlist
+ */
+static void __mp_folder_share_view_append_folder_items(void *pGenlist)
+{
+ VideoLogInfo("");
+ if (!g_pFolderShareHandle) {
+ VideoLogError("No exist g_pFolderShareHandle.");
+ return;
+ }
+
+ int nIndex = 0;
+ int nFolderListSize = mp_util_svc_get_video_folder_size();
+ MP_DEL_ITC(g_pFolderShareHandle->pGenListItc);
+ g_pFolderShareHandle->pGenListItc = elm_genlist_item_class_new();
+ g_pFolderShareHandle->pGenListItc->item_style = "2line.top";
+ g_pFolderShareHandle->pGenListItc->func.text_get =
+ (void *) __mp_folder_share_view_get_label_cb;
+ g_pFolderShareHandle->pGenListItc->func.content_get =
+ (void *) __mp_folder_share_view_get_icon_cb;
+ g_pFolderShareHandle->pGenListItc->func.state_get = NULL;
+ g_pFolderShareHandle->pGenListItc->func.del = NULL;
+
+ for (nIndex = 0; nIndex < nFolderListSize; nIndex++) {
+ if (mp_util_svc_get_folder_storage(nIndex) !=
+ MP_MEDIA_TYPE_STORAGE_DROPBOX) {
+ elm_genlist_item_append(pGenlist,
+ g_pFolderShareHandle->pGenListItc,
+ (void *) nIndex, NULL,
+ ELM_GENLIST_ITEM_NONE,
+ mp_folder_share_view_select_item_cb,
+ (void *) nIndex);
+ }
+ }
+}
+
+/**
+ *
+ * @param pGenlist
+ * @param bNeedSvc
+ * @return
+ */
+bool __mp_folder_share_view_arrange_video_list(void *pGenlist,
+ bool bNeedSvc)
+{
+ if (!g_pFolderShareWidget || !g_pFolderShareHandle) {
+ VideoLogError("No exist g_pShareViaListViewWidget.");
+ return FALSE;
+ }
+
+ if (!pGenlist) {
+ VideoLogError("No exist genlist object.");
+ return FALSE;
+ }
+
+ int nVideoListSize = mp_util_svc_get_video_folder_size();
+ mp_util_svc_destory_video_item_list();
+ mp_util_svc_extract_video_list_by_item_type
+ (mp_folder_share_view_get_sort_type(), MP_LIST_VIEW_PHONE);
+#ifdef ENABLE_DRM_FEATURE
+ mp_util_svc_filter_drm_video_item_list();
+#endif
+ VideoLogInfo("nVideoListSize : %d", nVideoListSize);
+ if (nVideoListSize > 0) {
+ elm_genlist_clear(pGenlist);
+ __mp_folder_share_view_append_folder_items(pGenlist);
+ } else {
+ elm_naviframe_item_pop(g_pFolderShareHandle->pNaviFrameHandle);
+ return FALSE;
+ }
+
+ evas_object_show(pGenlist);
+ return TRUE;
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+Evas_Object *mp_folder_share_view_create_internal_layout(void *pParent)
+{
+ if (!pParent) {
+ VideoLogInfo("[ERR]");
+ return NULL;
+ }
+
+ VideoLogInfo("");
+
+ if (g_pFolderShareWidget->pBaselayout) {
+ evas_object_del(g_pFolderShareWidget->pBaselayout);
+ g_pFolderShareWidget->pBaselayout = NULL;
+ }
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VIDEO_PLAYER_REMOVE_LIST_EDJ);
+ free(path);
+ g_pFolderShareWidget->pBaselayout = elm_layout_add(pParent);
+ elm_layout_file_set(g_pFolderShareWidget->pBaselayout,
+ edj_path, REMOVE_LIST_EDJ_GROUP);
+ evas_object_size_hint_weight_set(g_pFolderShareWidget->pBaselayout,
+ EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(g_pFolderShareWidget->pBaselayout,
+ EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+ return g_pFolderShareWidget->pBaselayout;
+}
+
+/**
+ *
+ * @param pUserData
+ */
+static void __mp_folder_share_view_db_changed_cb(void *pUserData)
+{
+ VideoLogWarning("Video DB has been changed.");
+ if (!g_pFolderShareHandle || !g_pFolderShareWidget) {
+ VideoLogError("Main handles of list view are not existed.");
+ return;
+ }
+
+ bool bNormalShow = TRUE;
+ bNormalShow =
+ __mp_folder_share_view_arrange_video_list
+ (g_pFolderShareHandle->pGenlist, TRUE);
+ if (!bNormalShow) {
+ VideoLogError("invalid view");
+ return;
+ }
+
+ Elm_Object_Item *pItem = NULL;
+ pItem = elm_genlist_first_item_get(g_pFolderShareHandle->pGenlist);
+ if (pItem) {
+ elm_genlist_item_bring_in(pItem, ELM_GENLIST_ITEM_SCROLLTO_IN);
+ }
+}
+
+/**
+ *
+ * @param pParent
+ */
+void mp_folder_share_view_init(void *pParent)
+{
+ if (!g_pFolderShareHandle || !g_pFolderShareWidget) {
+ VideoLogError("Main handles of list view are not existed.");
+ return;
+ }
+
+ VideoLogInfo("");
+ g_pFolderShareWidget->pBaselayout =
+ mp_folder_share_view_create_internal_layout(pParent);
+ if (!g_pFolderShareWidget->pBaselayout) {
+ VideoLogError("pBaselayout is not existed.");
+ return;
+ }
+ evas_object_event_callback_add(g_pFolderShareWidget->pBaselayout,
+ EVAS_CALLBACK_DEL,
+ __mp_folder_share_view_base_layout_del_cb,
+ NULL);
+
+ g_pFolderShareWidget->pBox =
+ elm_box_add(g_pFolderShareWidget->pBaselayout);
+ if (!g_pFolderShareWidget->pBox) {
+ VideoLogError("pBox is not existed.");
+ return;
+ }
+
+ g_pFolderShareHandle->pGenlist =
+ elm_genlist_add(g_pFolderShareWidget->pBox);
+ if (!g_pFolderShareHandle->pGenlist) {
+ VideoLogError("pGenlist is not existed.");
+ return;
+ }
+ evas_object_size_hint_weight_set(g_pFolderShareHandle->pGenlist,
+ EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(g_pFolderShareHandle->pGenlist,
+ EVAS_HINT_FILL, EVAS_HINT_FILL);
+ elm_genlist_block_count_set(g_pFolderShareHandle->pGenlist,
+ VIDEO_GENLIST_BLOCK_COUNT);
+ elm_genlist_mode_set(g_pFolderShareHandle->pGenlist,
+ ELM_LIST_COMPRESS);
+ elm_genlist_homogeneous_set(g_pFolderShareHandle->pGenlist, EINA_TRUE);
+
+ elm_box_pack_end(g_pFolderShareWidget->pBox,
+ g_pFolderShareHandle->pGenlist);
+ elm_object_part_content_set(g_pFolderShareWidget->pBaselayout,
+ SWALLOW_LISTVIEW_CONTENT,
+ g_pFolderShareWidget->pBox);
+
+ bool bNormalShow = TRUE;
+ bNormalShow =
+ __mp_folder_share_view_arrange_video_list
+ (g_pFolderShareHandle->pGenlist, FALSE);
+ if (!bNormalShow) {
+ VideoLogError("invalid view");
+ return;
+ }
+
+ Evas_Object *back_btn = elm_button_add(pParent);
+ elm_object_style_set(back_btn, "naviframe/end_btn/default");
+ evas_object_show(back_btn);
+ g_pFolderShareHandle->pNaviFrameItem =
+ elm_naviframe_item_push(g_pFolderShareHandle->pNaviFrameHandle,
+ VIDEOS_SELECTVIEW_HEADER_SELECT, back_btn,
+ NULL, g_pFolderShareWidget->pBaselayout,
+ NULL);
+ elm_object_item_domain_text_translatable_set
+ (g_pFolderShareHandle->pNaviFrameItem, VIDEOS_STRING, EINA_TRUE);
+ elm_naviframe_item_pop_cb_set(g_pFolderShareHandle->pNaviFrameItem,
+ mp_folder_share_view_back_btn_cb,
+ g_pFolderShareHandle);
+
+
+ elm_naviframe_item_title_enabled_set
+ (g_pFolderShareHandle->pNaviFrameItem, EINA_TRUE, EINA_FALSE);
+ evas_object_smart_callback_add(g_pFolderShareHandle->pNaviFrameHandle,
+ "transition,finished",
+ mp_folder_share_view_naviframe_transition_effect_cb,
+ NULL);
+
+ evas_object_show(g_pFolderShareHandle->pGenlist);
+ evas_object_show(g_pFolderShareWidget->pBaselayout);
+
+ mp_util_db_set_update_fun(g_pFolderShareHandle->euLev,
+ __mp_folder_share_view_db_changed_cb);
+
+ mp_util_hide_indicator();
+}
+
+/**
+ *
+ * @param pNaviFrame
+ * @param pChangeViewCb
+ * @param eTabType
+ */
+void mp_folder_share_view_push(void *pNaviFrame,
+ ChangeListFolderShareViewCbFunc
+ pChangeViewCb, MpVideoListTabType eTabType)
+{
+ VideoLogInfo("");
+ if (g_pFolderShareHandle || g_pFolderShareWidget) {
+ mp_folder_share_view_destroy();
+ }
+
+ g_pFolderShareHandle =
+ (st_FolderListShareViaViewHandle *) calloc(1,
+ sizeof
+ (st_FolderListShareViaViewHandle));
+ g_pFolderShareWidget =
+ (st_FolderListShareViaViewWidget *) calloc(1,
+ sizeof
+ (st_FolderListShareViaViewWidget));
+
+ memset(g_pFolderShareHandle, 0,
+ sizeof(st_FolderListShareViaViewHandle));
+ memset(g_pFolderShareWidget, 0,
+ sizeof(st_FolderListShareViaViewWidget));
+ mp_folder_share_view_reset_value();
+
+ g_pFolderShareHandle->pNaviFrameHandle = pNaviFrame;
+ g_pFolderShareHandle->pChangeViewUserCbFunc = pChangeViewCb;
+ g_pFolderShareHandle->eTabType = eTabType;
+ g_pFolderShareHandle->euLev = MP_DB_UPDATE_LEV_1;
+
+ mp_folder_share_view_init(g_pFolderShareHandle->pNaviFrameHandle);
+}
+
+/**
+ *
+ */
+void mp_folder_share_view_pop(void)
+{
+ VideoLogInfo("");
+
+ if (!g_pFolderShareHandle) {
+ VideoLogError("No existed handle of share view.");
+ return;
+ }
+ if (g_pFolderShareHandle->pChangeViewUserCbFunc) {
+ g_pFolderShareHandle->pChangeViewUserCbFunc();
+ }
+
+ mp_util_hide_indicator();
+}
+
+/**
+ *
+ */
+void mp_folder_share_view_change_language(void)
+{
+ if (!g_pFolderShareHandle || !g_pFolderShareWidget) {
+ VideoLogError("No existed handle of share view.");
+ return;
+ }
+
+ VideoLogInfo("");
+
+ elm_object_item_domain_translatable_part_text_set
+ (g_pFolderShareHandle->pNaviFrameItem, "elm.text.title",
+ VIDEOS_STRING, VIDEOS_SELECTVIEW_HEADER_SELECT_IDS);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param e
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_folder_share_view_base_layout_del_cb(void *pUserData,
+ Evas * e,
+ Evas_Object *
+ pObject,
+ void *pEventInfo)
+{
+ __mp_folder_share_view_reset();
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <app.h>
+#include <Ecore_Evas.h>
+#include <Elementary.h>
+
+#include <glib.h>
+
+#include "mp-util-move.h"
+#include "mp-util.h"
+#include "mp-video-log.h"
+#include "mp-util-media-service.h"
+#include "mp-video-value-define.h"
+#include "mp-video-string-define.h"
+#include "mp-video-list-personal-ctrl.h"
+#include "mp-video-list-view-as-ctrl.h"
+#include "mp-video-view-popup-ctrl.h"
+#include "vp-util.h"
+#include "vp-file-util.h"
+#include "mp-util-preference.h"
+#include "mp-util-config.h"
+
+
+typedef struct _PersonalPage {
+ /*obj */
+ Evas_Object *pProgressbar;
+ Evas_Object *pPopUpHandle;
+ Evas_Object *pPopupLayout;
+ /*data */
+ Ecore_Idler *pMoveItemIdlerHandle;
+ Ecore_Timer *pStartMoveTimer;
+ Ecore_Idler *pFinishMoveIdler;
+ Ecore_Idler *pMoveFailedIdler;
+ Ecore_Thread *pMoveItemThreadHandle;
+
+ PersonalCtrlCbFunc PersonalCtrlUserCbFunc;
+
+ int nTotalMoveItem;
+ int nCompltedMoveItem;
+ int nCompltedFolderMoveItem;
+ int nPersonalViewStyle;
+ int nCheckedEditListSize;
+ unsigned long long nMovingSize;
+ unsigned long long nTotalSize;
+
+ bool *pCheckedItemsEditList;
+ bool bCancelMove;
+ bool bFolderMove;
+
+} stPersonalPage;
+
+static stPersonalPage *g_mpPersonalPage = NULL;
+
+
+/*//////////////////////////////////////////////////////////*/
+/* Internal function*/
+/*//////////////////////////////////////////////////////////*/
+static void mp_personal_ctrl_button_popup_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo);
+/**
+ *
+ */
+void mp_personal_ctrl_move_popup_handle(void)
+{
+ VideoLogInfo("");
+ if (!g_mpPersonalPage) {
+ VideoLogError("");
+ return;
+ }
+ g_mpPersonalPage->nTotalMoveItem = 0;
+ g_mpPersonalPage->nCompltedMoveItem = 0;
+ g_mpPersonalPage->nCheckedEditListSize = 0;
+
+ g_mpPersonalPage->pProgressbar = NULL;
+ g_mpPersonalPage->pCheckedItemsEditList = NULL;
+ g_mpPersonalPage->pMoveItemThreadHandle = NULL;
+
+ if (g_mpPersonalPage->pPopUpHandle) {
+ eext_object_event_callback_del(g_mpPersonalPage->pPopUpHandle,
+ EEXT_CALLBACK_BACK,
+ mp_personal_ctrl_button_popup_cb);
+ }
+ MP_DEL_IDLER(g_mpPersonalPage->pMoveItemIdlerHandle);
+ MP_DEL_TIMER(g_mpPersonalPage->pStartMoveTimer);
+ MP_DEL_IDLER(g_mpPersonalPage->pFinishMoveIdler);
+ MP_DEL_IDLER(g_mpPersonalPage->pMoveFailedIdler);
+ MP_DEL_OBJ(g_mpPersonalPage->pPopUpHandle);
+ if (g_mpPersonalPage->PersonalCtrlUserCbFunc) {
+ g_mpPersonalPage->PersonalCtrlUserCbFunc();
+ }
+ MP_FREE_STRING(g_mpPersonalPage);
+
+
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void mp_personal_ctrl_button_popup_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ if (!g_mpPersonalPage) {
+ VideoLogError("");
+ return;
+ }
+ g_mpPersonalPage->bCancelMove = TRUE;
+ mp_util_move_set_cancel_state(g_mpPersonalPage->bCancelMove);
+
+}
+
+/**
+ *
+ * @param bUpdateFile
+ * @param bUpdateSize
+ */
+static void __mp_personal_ctrl_update_percent(bool bUpdateFile,
+ bool bUpdateSize)
+{
+ if (!g_mpPersonalPage || !g_mpPersonalPage->pPopupLayout) {
+ VideoLogError("");
+ return;
+ }
+ char *szSisePercent = NULL;
+ char *szFilePercent = NULL;
+ if (bUpdateSize) {
+ double nPercent = 0.0;
+ if (g_mpPersonalPage->nTotalSize < 1) {
+ nPercent = 0.0;
+ } else {
+ nPercent =
+ (double) g_mpPersonalPage->nMovingSize /
+ (double) g_mpPersonalPage->nTotalSize;
+ }
+ nPercent = nPercent * 100;
+ if (nPercent > (100 - 1)) {
+ nPercent = 100.0;
+ }
+ szSisePercent = g_strdup_printf("%d%s", (int) nPercent, "%");
+ elm_object_part_text_set(g_mpPersonalPage->pPopupLayout,
+ "elm.text.left", szSisePercent);
+ }
+ if (bUpdateFile) {
+ if (g_mpPersonalPage->nCompltedMoveItem + 1 >
+ g_mpPersonalPage->nTotalMoveItem) {
+ g_mpPersonalPage->nCompltedMoveItem =
+ g_mpPersonalPage->nTotalMoveItem - 1;
+ }
+ szFilePercent =
+ g_strdup_printf("%d/%d",
+ (g_mpPersonalPage->nCompltedMoveItem + 1),
+ g_mpPersonalPage->nTotalMoveItem);
+ elm_object_part_text_set(g_mpPersonalPage->pPopupLayout,
+ "elm.text.right", szFilePercent);
+ }
+ MP_FREE_STRING(szSisePercent);
+ MP_FREE_STRING(szFilePercent);
+
+}
+
+/**
+ *
+ * @param pUserData
+ * @return
+ */
+static Eina_Bool __mp_personal_ctrl_finish_move_idler_cb(void *pUserData)
+{
+ if (!g_mpPersonalPage) {
+ VideoLogError("");
+ return FALSE;
+ }
+
+ g_mpPersonalPage->pFinishMoveIdler = NULL;
+
+
+ mp_personal_ctrl_move_popup_handle();
+
+ return FALSE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_personal_ctrl_warning_popup_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ VideoLogInfo("");
+ mp_util_delete_popup_handle();
+
+ if (!g_mpPersonalPage) {
+ VideoLogError("");
+ return;
+ }
+ mp_personal_ctrl_move_popup_handle();
+
+}
+
+/**
+ *
+ * @param pUserData
+ * @return
+ */
+static Eina_Bool __mp_personal_ctrl_move_failed_idler_cb(void *pUserData)
+{
+ if (!g_mpPersonalPage) {
+ VideoLogError("");
+ return FALSE;
+ }
+
+ g_mpPersonalPage->pMoveFailedIdler = NULL;
+ if (g_mpPersonalPage->nPersonalViewStyle == 1) {
+ mp_util_notify_popup(NULL, VIDEOS_COMMON_HEADER_ERROR,
+ VIDEOS_NOTIPOP_MSG_MOVE_TO_NORMAL_STORAGE_FAILED,
+ __mp_personal_ctrl_warning_popup_cb);
+ } else {
+ mp_util_notify_popup(NULL, VIDEOS_COMMON_HEADER_ERROR,
+ VIDEOS_NOTIPOP_MSG_MOVE_TO_PERSONAL_STORAGE_FAILED,
+ __mp_personal_ctrl_warning_popup_cb);
+ }
+
+ return FALSE;
+}
+
+/**
+ *
+ * @param msg_type
+ * @param size
+ * @param nErrorCode
+ * @param userData
+ */
+static void __mp_personal_ctrl_move_cb(euThreadFeedback msg_type,
+ unsigned long long size,
+ int nErrorCode, void *userData)
+{
+ if (!g_mpPersonalPage) {
+ VideoLogError("");
+ return;
+ }
+ g_mpPersonalPage->nMovingSize += size;
+
+ if (nErrorCode == -1 || msg_type == MP_VIDEO_UPDATE_FAILED) {
+ ecore_thread_feedback(g_mpPersonalPage->pMoveItemThreadHandle,
+ (void *) MP_VIDEO_UPDATE_FAILED);
+ } else if (nErrorCode == 1 || msg_type == MP_VIDEO_UPDATE_CANCEL) {
+ ecore_thread_cancel(g_mpPersonalPage->pMoveItemThreadHandle);
+ } else if (nErrorCode == 0 || msg_type == MP_VIDEO_UPDATE) {
+ ecore_thread_feedback(g_mpPersonalPage->pMoveItemThreadHandle,
+ (void *) MP_VIDEO_UPDATE);
+ }
+}
+
+/**
+ *
+ * @param nTotalSize
+ * @return
+ */
+static bool __mp_personal_ctrl_move_get_total_size(unsigned long long
+ *nTotalSize)
+{
+
+ if (!g_mpPersonalPage) {
+ VideoLogError("");
+ return FALSE;
+ }
+
+ if (!g_mpPersonalPage->pCheckedItemsEditList) {
+ VideoLogError("The userdata and pCheckedItemsEditList is null.");
+
+ return FALSE;
+ }
+ int nCounter = 0;
+ unsigned long long nSize = 0;
+ unsigned long long nSizeTmp = 0;
+ char *szTmpFolderUrl = NULL;
+ char *szSubTitle = NULL;
+ char *szFileUrl = NULL;
+ if (g_mpPersonalPage->bFolderMove) {
+ for (nCounter = 0;
+ nCounter < g_mpPersonalPage->nCheckedEditListSize;
+ nCounter++) {
+ if (g_mpPersonalPage->pCheckedItemsEditList[nCounter]) {
+ szTmpFolderUrl =
+ mp_util_svc_get_video_folder_url(nCounter);
+ mp_util_move_get_total_dir_size(szTmpFolderUrl, &nSizeTmp);
+ MP_FREE_STRING(szTmpFolderUrl);
+ nSize += nSizeTmp;
+ }
+ }
+ } else {
+ for (nCounter = 0;
+ nCounter < g_mpPersonalPage->nCheckedEditListSize;
+ nCounter++) {
+ if (g_mpPersonalPage->pCheckedItemsEditList[nCounter]) {
+ nSizeTmp = mp_util_svc_get_video_item_size(nCounter);
+ nSize += nSizeTmp;
+
+ /*Support subtitle size. */
+ nSizeTmp = 0;
+ szFileUrl = mp_util_svc_get_video_url(nCounter);
+ mp_util_get_subtitle_path(szFileUrl, &szSubTitle);
+ if (szSubTitle) {
+ mp_util_get_file_size_by_path(szSubTitle, &nSizeTmp);
+ nSize += nSizeTmp;
+ }
+ MP_FREE_STRING(szFileUrl);
+ MP_FREE_STRING(szSubTitle);
+ }
+ }
+
+ }
+
+ *nTotalSize = nSize;
+ return TRUE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param thread
+ */
+static void __mp_personal_ctrl_move_item_thread_main_cb(void *pUserData,
+ Ecore_Thread *
+ thread)
+{
+ if (!g_mpPersonalPage) {
+ VideoLogError("");
+ return;
+ }
+
+ if (!g_mpPersonalPage->pCheckedItemsEditList) {
+ VideoLogError("The userdata and pCheckedItemsEditList is null.");
+
+ ecore_thread_feedback(g_mpPersonalPage->pMoveItemThreadHandle,
+ (void *) MP_VIDEO_UPDATE_ERROR);
+ return;
+ }
+ unsigned long long nSize = 0;
+ __mp_personal_ctrl_move_get_total_size(&nSize);
+ g_mpPersonalPage->nTotalSize = nSize;
+ g_mpPersonalPage->nMovingSize = 0;
+ VideoLogInfo("nMovefolderTotal:%lld", g_mpPersonalPage->nTotalSize);
+
+ /*mp_util_svc_print_list_info(); */
+ int nCounter = 0;
+ char *pDestFile = NULL;
+ char *szFileUrl = NULL;
+ char *szMediaUrlForPreview = NULL;
+ char *szTmpFolderUrl = NULL;
+ char *szSubTitle = NULL;
+ bool bPersonal = FALSE;
+ int nRet = FALSE;
+ while ((g_mpPersonalPage->nCompltedMoveItem <
+ g_mpPersonalPage->nTotalMoveItem)
+ && (!g_mpPersonalPage->bCancelMove)) {
+
+ nCounter = 0;
+ for (nCounter = 0;
+ nCounter < g_mpPersonalPage->nCheckedEditListSize;
+ nCounter++) {
+ if (g_mpPersonalPage->pCheckedItemsEditList[nCounter]) {
+ __mp_personal_ctrl_update_percent(TRUE, FALSE);
+ if (g_mpPersonalPage->bFolderMove) {
+ szTmpFolderUrl =
+ mp_util_svc_get_video_folder_url(nCounter);
+ VideoSecureLogInfo
+ ("pRemoveCheckedItemsEditListmove=%s,%d",
+ szTmpFolderUrl, nCounter);
+
+ bPersonal =
+ mp_util_check_video_personal_status
+ (szTmpFolderUrl);
+
+ if (bPersonal) {
+ pDestFile = g_strdup(VIDEO_DOWNLOAD_FILE_DIR);
+ } else {
+ pDestFile = g_strdup(VIDEO_UTIL_PERSONAL_HEAD_STR);
+ }
+ nRet =
+ mp_util_move_push(szTmpFolderUrl, pDestFile,
+ __mp_personal_ctrl_move_cb,
+ pUserData,
+ g_mpPersonalPage->nTotalSize);
+ if (nRet == -1) {
+ VideoLogInfo("move failed");
+ MP_FREE_STRING(pDestFile);
+ MP_FREE_STRING(szTmpFolderUrl);
+ ecore_thread_feedback
+ (g_mpPersonalPage->pMoveItemThreadHandle,
+ (void *)
+ MP_VIDEO_UPDATE_FAILED);
+ return;
+ } else if (nRet == 0) {
+ mp_util_svc_remove_folder_list_item_from_list
+ (nCounter);
+ vp_file_recursive_rm(szTmpFolderUrl);
+ } else if (nRet == 1) {
+ VideoLogInfo("move cancel");
+ MP_FREE_STRING(pDestFile);
+ MP_FREE_STRING(szTmpFolderUrl);
+ ecore_thread_cancel
+ (g_mpPersonalPage->pMoveItemThreadHandle);
+ return;
+ }
+ MP_FREE_STRING(pDestFile);
+ MP_FREE_STRING(szTmpFolderUrl);
+
+ } else {
+ szFileUrl = mp_util_svc_get_video_url(nCounter);
+ VideoSecureLogInfo
+ ("pRemoveCheckedItemsEditListmove=%s,%d",
+ szFileUrl, nCounter);
+ if (szFileUrl) {
+ szMediaUrlForPreview =
+ mp_util_config_get_preview();
+ if (szMediaUrlForPreview) {
+ if (!strcmp(szMediaUrlForPreview, szFileUrl)
+ && !bPersonal) {
+ VideoLogInfo("Erase preview url.");
+ mp_util_config_set_preview(NULL);
+ }
+ }
+ MP_FREE_STRING(szMediaUrlForPreview);
+
+ bPersonal =
+ mp_util_check_video_personal_status(szFileUrl);
+
+ if (bPersonal) {
+ pDestFile = g_strdup(VIDEO_DOWNLOAD_FILE_DIR);
+ } else {
+ pDestFile =
+ g_strdup(VIDEO_UTIL_PERSONAL_HEAD_STR);
+ }
+
+ nRet =
+ mp_util_move_push(szFileUrl, pDestFile,
+ __mp_personal_ctrl_move_cb,
+ pUserData,
+ g_mpPersonalPage->nTotalSize);
+ if (nRet == -1) {
+ VideoLogInfo("move failed");
+ MP_FREE_STRING(pDestFile);
+ MP_FREE_STRING(szFileUrl);
+ ecore_thread_feedback
+ (g_mpPersonalPage->pMoveItemThreadHandle,
+ (void *)
+ MP_VIDEO_UPDATE_FAILED);
+ return;
+ } else if (nRet == 0) {
+ mp_util_svc_remove_list_item_from_list
+ (nCounter);
+ unlink(szFileUrl);
+ } else if (nRet == 1) {
+ VideoLogInfo("move cancel");
+ MP_FREE_STRING(pDestFile);
+ MP_FREE_STRING(szFileUrl);
+ ecore_thread_cancel
+ (g_mpPersonalPage->pMoveItemThreadHandle);
+ return;
+ }
+
+ VideoSecureLogInfo("Move file url : %s:%s",
+ szFileUrl, pDestFile);
+ /*Support subtitle moving, But only for file, folder has been implemented in move.c. */
+ /*begin */
+ mp_util_get_subtitle_path(szFileUrl, &szSubTitle);
+ if (szSubTitle) {
+ nRet =
+ mp_util_move_push(szSubTitle, pDestFile,
+ __mp_personal_ctrl_move_cb,
+ pUserData,
+ g_mpPersonalPage->nTotalSize);
+ VideoLogInfo("szSubTitle move result = %d",
+ nRet);
+ }
+ MP_FREE_STRING(szSubTitle);
+ /*end */
+ MP_FREE_STRING(pDestFile);
+ MP_FREE_STRING(szFileUrl);
+ }
+ }
+
+ int nMoveItemCounter = 0;
+ for (nMoveItemCounter = nCounter;
+ nMoveItemCounter <
+ g_mpPersonalPage->nCheckedEditListSize - 1;
+ nMoveItemCounter++) {
+ g_mpPersonalPage->pCheckedItemsEditList
+ [nMoveItemCounter] =
+ g_mpPersonalPage->pCheckedItemsEditList
+ [nMoveItemCounter + 1];
+ }
+ g_mpPersonalPage->nCheckedEditListSize--;
+ ++g_mpPersonalPage->nCompltedMoveItem;
+ break;
+ }
+ }
+
+ if (g_mpPersonalPage->nCompltedMoveItem >=
+ g_mpPersonalPage->nTotalMoveItem) {
+ VideoLogInfo("nCompltedMoveItem == nTotalMoveItem");
+ ecore_thread_feedback(g_mpPersonalPage->pMoveItemThreadHandle,
+ (void *) MP_VIDEO_UPDATE_FINISH);
+ return;
+ }
+ }
+
+
+}
+
+/**
+ *
+ * @param data
+ * @param thread
+ */
+static void __mp_personal_ctrl_move_thread_cancel(void *data,
+ Ecore_Thread * thread)
+{
+ if (!g_mpPersonalPage) {
+ VideoLogError("");
+ return;
+ }
+ VideoLogInfo("");
+ mp_personal_ctrl_move_popup_handle();
+}
+
+/**
+ *
+ * @param pUserData
+ * @param thread
+ */
+static void __mp_personal_ctrl_move_thread_finish(void *pUserData,
+ Ecore_Thread * thread)
+{
+ if (!g_mpPersonalPage) {
+ VideoLogError("");
+ return;
+ }
+ VideoLogInfo("");
+}
+
+/**
+ *
+ * @param pUserData
+ * @param thread
+ * @param msg_data
+ */
+static void __mp_personal_ctrl_thread_notify_cb(void *pUserData,
+ Ecore_Thread * thread,
+ void *msg_data)
+{
+ if (!g_mpPersonalPage) {
+ VideoLogError("");
+ return;
+ }
+
+ double nMoveRate = 0.0;
+ euThreadFeedback feedback = (euThreadFeedback) msg_data;
+
+ switch (feedback) {
+ case MP_VIDEO_UPDATE_CANCEL:
+ VideoLogInfo("MP_VIDEO_PERSONAL_UPDATE_CANCEL");
+ mp_personal_ctrl_move_popup_handle();
+ break;
+
+ case MP_VIDEO_UPDATE:
+ if (g_mpPersonalPage->nTotalSize > 0) {
+ nMoveRate =
+ ((double) g_mpPersonalPage->nMovingSize) /
+ ((double) g_mpPersonalPage->nTotalSize);
+ __mp_personal_ctrl_update_percent(FALSE, TRUE);
+ /*VideoLogInfo("nMoveRate:%f:%lld:%lld", nMoveRate, g_mpPersonalPage->nMovingSize, g_mpPersonalPage->nTotalSize); */
+ if (g_mpPersonalPage->pProgressbar) {
+ elm_progressbar_value_set(g_mpPersonalPage->pProgressbar,
+ nMoveRate);
+ }
+ }
+
+ break;
+
+ case MP_VIDEO_UPDATE_FINISH:
+ MP_DEL_IDLER(g_mpPersonalPage->pFinishMoveIdler);
+ g_mpPersonalPage->pFinishMoveIdler =
+ ecore_idler_add(__mp_personal_ctrl_finish_move_idler_cb,
+ pUserData);
+
+ break;
+
+ case MP_VIDEO_UPDATE_FAILED:
+ VideoLogInfo("MP_VIDEO_UPDATE_FAILED");
+ MP_DEL_IDLER(g_mpPersonalPage->pMoveFailedIdler);
+ MP_DEL_OBJ(g_mpPersonalPage->pPopUpHandle);
+ g_mpPersonalPage->pMoveFailedIdler =
+ ecore_idler_add(__mp_personal_ctrl_move_failed_idler_cb,
+ pUserData);
+ break;
+
+ case MP_VIDEO_UPDATE_ERROR:
+ mp_personal_ctrl_move_popup_handle();
+ break;
+ }
+
+
+}
+
+/**
+ *
+ * @param pUserData
+ * @return
+ */
+static Eina_Bool __mp_personal_ctrl_start_move_timer_cb(void *pUserData)
+{
+ if (!g_mpPersonalPage) {
+ VideoLogError("");
+ return FALSE;
+ }
+ if (mp_util_set_dest_file(VIDEO_DOWNLOAD_FILE_DIR) == -1) {
+ VideoLogError("mp_util_set_dest_file failed");
+ return FALSE;
+ }
+
+ g_mpPersonalPage->pStartMoveTimer = NULL;
+
+ g_mpPersonalPage->pMoveItemThreadHandle =
+ ecore_thread_feedback_run
+ (__mp_personal_ctrl_move_item_thread_main_cb,
+ __mp_personal_ctrl_thread_notify_cb,
+ __mp_personal_ctrl_move_thread_finish,
+ __mp_personal_ctrl_move_thread_cancel, (void *) pUserData,
+ EINA_TRUE);
+ return FALSE;
+}
+
+/**
+ *
+ * @param pHandle
+ * @param pUserData
+ * @return
+ */
+static bool __mp_personal_ctrl_create_progress_popup(Evas_Object *
+ pHandle,
+ void *pUserData)
+{
+ if (!g_mpPersonalPage || !g_mpPersonalPage->pPopUpHandle) {
+ VideoLogError("g_mpPersonalPage is null.");
+ return FALSE;
+ }
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VIDEO_PLAYER_POPUP_PROGRESSBAR_EDJ);
+ free(path);
+ Evas_Object *pPopupLayout =
+ elm_layout_add(g_mpPersonalPage->pPopUpHandle);
+ elm_layout_file_set(pPopupLayout, edj_path,
+ "popup_center_progress_move_copy");
+ evas_object_size_hint_weight_set(pPopupLayout, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ if (!pPopupLayout) {
+ VideoLogError("g_mpPersonalPage is null.");
+ return FALSE;
+
+ }
+ g_mpPersonalPage->pPopupLayout = pPopupLayout;
+
+
+ Evas_Object *pProgressbar =
+ elm_progressbar_add(g_mpPersonalPage->pPopUpHandle);
+ elm_object_style_set(pProgressbar, "list_progress");
+ elm_progressbar_horizontal_set(pProgressbar, EINA_TRUE);
+ evas_object_size_hint_align_set(pProgressbar, EVAS_HINT_FILL,
+ EVAS_HINT_FILL);
+ evas_object_size_hint_weight_set(pProgressbar, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ elm_progressbar_value_set(pProgressbar, 0.0);
+ evas_object_show(pProgressbar);
+ g_mpPersonalPage->pProgressbar = pProgressbar;
+
+
+ if (g_mpPersonalPage->nPersonalViewStyle == 1) {
+ elm_object_domain_translatable_part_text_set(pPopupLayout,
+ "elm.title",
+ VIDEOS_STRING,
+ MP_TEXT_MOVING);
+ elm_object_domain_part_text_translatable_set(pPopupLayout,
+ "elm.title",
+ VIDEOS_STRING,
+ EINA_TRUE);
+ } else {
+ elm_object_domain_translatable_part_text_set(pPopupLayout,
+ "elm.title",
+ VIDEOS_STRING,
+ MP_TEXT_MOVING);
+ elm_object_domain_part_text_translatable_set(pPopupLayout,
+ "elm.title",
+ VIDEOS_STRING,
+ EINA_TRUE);
+ }
+
+ elm_object_part_content_set(pPopupLayout, "elm.swallow.content",
+ pProgressbar);
+
+ __mp_personal_ctrl_update_percent(TRUE, TRUE);
+
+ elm_object_content_set(g_mpPersonalPage->pPopUpHandle, pPopupLayout);
+ Evas_Object *pButton = elm_button_add(g_mpPersonalPage->pPopUpHandle);
+ elm_object_style_set(pButton, "popup_button/default");
+ elm_object_domain_translatable_text_set(pButton, VIDEOS_STRING,
+ VIDEOS_COMMON_BUTTON_CANCEL_IDS);
+ elm_object_part_content_set(g_mpPersonalPage->pPopUpHandle, "button1",
+ pButton);
+ evas_object_smart_callback_add(pButton, "clicked",
+ mp_personal_ctrl_button_popup_cb,
+ pUserData);
+
+ evas_object_show(g_mpPersonalPage->pPopUpHandle);
+ return TRUE;
+
+}
+
+/*//////////////////////////////////////////////////////////*/
+/* External function*/
+/*//////////////////////////////////////////////////////////*/
+
+/**
+ *
+ * @param pCheckedItemsEditList
+ * @param pCheckedItemsEditListSize
+ * @param nViewStyle
+ * @param bFolderMove
+ * @param pPersonalCtrlCb
+ * @param pUserData
+ * @return
+ */
+bool mp_personal_ctrl_show(bool * pCheckedItemsEditList,
+ int pCheckedItemsEditListSize, int nViewStyle,
+ bool bFolderMove,
+ PersonalCtrlCbFunc pPersonalCtrlCb,
+ void *pUserData)
+{
+ if (!pCheckedItemsEditList) {
+ VideoLogError("No have popup message is null.");
+ return FALSE;
+ }
+
+ mp_personal_ctrl_move_popup_handle();
+ g_mpPersonalPage =
+ (stPersonalPage *) calloc(1, sizeof(stPersonalPage));
+ if (!g_mpPersonalPage) {
+ VideoLogError("g_mpPersonalPage is NULL");
+ return FALSE;
+ }
+
+ VideoLogInfo("pCheckedItemsEditListSize : %d",
+ pCheckedItemsEditListSize);
+
+
+ g_mpPersonalPage->PersonalCtrlUserCbFunc = pPersonalCtrlCb;
+ g_mpPersonalPage->nCheckedEditListSize = pCheckedItemsEditListSize;
+ g_mpPersonalPage->pCheckedItemsEditList = pCheckedItemsEditList;
+ g_mpPersonalPage->nPersonalViewStyle = nViewStyle;
+ g_mpPersonalPage->bCancelMove = FALSE;
+ g_mpPersonalPage->bFolderMove = bFolderMove;
+ g_mpPersonalPage->nTotalMoveItem = 0;
+ g_mpPersonalPage->nTotalSize = 0;
+ g_mpPersonalPage->nMovingSize = 0;
+
+ int nCounter = 0;
+ for (nCounter = 0; nCounter < g_mpPersonalPage->nCheckedEditListSize;
+ nCounter++) {
+ if (g_mpPersonalPage->pCheckedItemsEditList[nCounter]) {
+ ++g_mpPersonalPage->nTotalMoveItem;
+ }
+ }
+
+ VideoLogInfo("nTotalMoveItem : %d", g_mpPersonalPage->nTotalMoveItem);
+
+ g_mpPersonalPage->pPopUpHandle =
+ elm_popup_add(mp_util_get_main_window_handle());
+
+ eext_object_event_callback_add(g_mpPersonalPage->pPopUpHandle,
+ EEXT_CALLBACK_BACK,
+ mp_personal_ctrl_button_popup_cb, NULL);
+
+ bool bRet =
+ __mp_personal_ctrl_create_progress_popup
+ (g_mpPersonalPage->pPopUpHandle, pUserData);
+ if (!bRet) {
+ VideoLogError("popup is failed");
+ mp_personal_ctrl_move_popup_handle();
+ return FALSE;
+ }
+ MP_DEL_TIMER(g_mpPersonalPage->pStartMoveTimer);
+ g_mpPersonalPage->pStartMoveTimer =
+ ecore_timer_add(0.3, __mp_personal_ctrl_start_move_timer_cb,
+ pUserData);
+
+ return TRUE;
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <Eina.h>
+#include <Ecore_Evas.h>
+#include <Elementary.h>
+#include <glib.h>
+#include <app_preference.h>
+
+#include "mp-util.h"
+#include "mp-video-log.h"
+#include "mp-external-ug.h"
+#include "mp-video-string-define.h"
+#include "mp-video-value-define.h"
+#include "mp-util-media-service.h"
+#include "mp-video-list-sort-ctrl.h"
+#include "mp-video-list-personal-ctrl.h"
+#include "mp-video-list-personal-view.h"
+#include "mp-video-view-popup-ctrl.h"
+#include "mp-video-list-view-as-ctrl.h"
+#include "mp-util-widget-ctrl.h"
+#include "mp-video-util-db-controller.h"
+#include "mp-util-config.h"
+#include "vp-file-util.h"
+
+
+#define PREF_MP_UTIL_PERSONAL_NO_ASK_AGAIN "preference/org.tizen.videos/personal_no_ask_again"
+#define VIDEO_SELECTED_INFO_TIMER 4.0
+
+
+typedef struct {
+ void *pNaviFrameHandle;
+ void *pNaviFrameItem;
+ void *pVideosGenlist;
+
+ bool *pCheckedItemsEditListForRemoved;
+ char **pSelectedList; /*save selected video id */
+ bool bSelectallCheckBoxState;
+ int nSelectCounterForEditList;
+ MpMediaSvcSortType nSortType;
+ ChangePersonalViewCbFunc pChangeViewUserCbFunc;
+ char *pFolderPath;
+ int nViewStyle; /*0:add to personal. //1,remove from personal */
+ bool bFolderMove;
+ bool bCheckBoxState;
+ MpDbUpdateViewLev euLev;
+
+} st_VideoListPersonalViewHandle;
+
+typedef struct {
+ Evas_Object *pVideoListBox;
+ Evas_Object *pPersonalViewBaselayout;
+ Evas_Object *pSelectallbtn;
+ Evas_Object *pSelAllLayout;
+ Evas_Object *pSavebtn;
+ Evas_Object *pCancelbtn;
+
+ Ecore_Timer *pSelectedInfoLayoutTimer;
+} st_VideoListPersonalViewWidget;
+
+
+st_VideoListPersonalViewHandle *g_pListPersonalViewHandle = NULL;
+st_VideoListPersonalViewWidget *g_pListPersonalViewWidget = NULL;
+
+
+Elm_Genlist_Item_Class VideoPersonal_Itc;
+Elm_Genlist_Item_Class FolderPersonal_Itc;
+Elm_Genlist_Item_Class FolderPersonalNoItem_Itc;
+
+
+
+
+/* Pre define function*/
+int mp_personal_view_get_sort_type(void);
+void mp_personal_view_arrange_video_list(int nItemSortType,
+ void *pVideosGenlist,
+ bool bNeedSvc);
+void mp_personal_view_naviframe_transition_effect_cb(void *pUserData,
+ Evas_Object *
+ pObject,
+ void *pEventInfo);
+void mp_personal_view_change_title_info(void);
+static void __mp_personal_view_base_layout_del_cb(void *pUserData,
+ Evas * e,
+ Evas_Object * pObject,
+ void *pEventInfo);
+static void __mp_personal_view_ignore_personal_vconf();
+
+static bool __mp_personal_view_get_selected_video_list(int nSelectedSize);
+static void __mp_personal_view_update_selected_video_list(void);
+
+/**
+ *
+ */
+static void __mp_personal_view_free_selected_list(void)
+{
+ if (!g_pListPersonalViewHandle
+ || !g_pListPersonalViewHandle->pSelectedList) {
+ return;
+ }
+ int nIndex = 0;
+ while (g_pListPersonalViewHandle->pSelectedList[nIndex]) {
+ nIndex++;
+ MP_FREE_STRING(g_pListPersonalViewHandle->pSelectedList[nIndex]);
+ }
+ MP_FREE_STRING(g_pListPersonalViewHandle->pSelectedList);
+}
+
+/**
+ *
+ */
+void mp_personal_view_update_all_check_box(void)
+{
+ VideoLogInfo("");
+ int nPersonalSize = 0;
+ if (g_pListPersonalViewHandle->bFolderMove) {
+ nPersonalSize = mp_util_svc_get_video_folder_size();
+ } else {
+ nPersonalSize = mp_util_svc_get_number_of_video_item_by_type();
+ }
+ if (!g_pListPersonalViewHandle->pVideosGenlist) {
+ VideoLogInfo("genlist is NULL");
+ return;
+ }
+ if (nPersonalSize < 1) {
+ VideoLogInfo("nVideoListSize < 1:%d", nPersonalSize);
+ return;
+ }
+ Elm_Object_Item *currentItem = NULL;
+ currentItem =
+ elm_genlist_first_item_get
+ (g_pListPersonalViewHandle->pVideosGenlist);
+ int nVideoItemIndex = 0;
+ Evas_Object *check_box = NULL;
+ while (currentItem && (nVideoItemIndex < nPersonalSize)) {
+ check_box =
+ elm_object_item_part_content_get(currentItem,
+ "elm.edit.icon.1");
+ if (check_box) {
+ elm_check_state_set(check_box,
+ g_pListPersonalViewHandle->pCheckedItemsEditListForRemoved
+ [nVideoItemIndex]);
+ }
+ currentItem = elm_genlist_item_next_get(currentItem);
+ nVideoItemIndex++;
+ }
+}
+
+/**
+ *
+ */
+static void __mp_personal_view_reset(void)
+{
+ VideoLogInfo("");
+ __mp_personal_view_ignore_personal_vconf();
+
+ if (g_pListPersonalViewHandle) {
+ mp_util_db_set_update_fun(g_pListPersonalViewHandle->euLev, NULL);
+ mp_util_db_set_backup_fun(g_pListPersonalViewHandle->euLev, NULL);
+ evas_object_smart_callback_del
+ (g_pListPersonalViewHandle->pNaviFrameHandle,
+ "transition,finished",
+ mp_personal_view_naviframe_transition_effect_cb);
+ __mp_personal_view_free_selected_list();
+
+ g_pListPersonalViewHandle->pVideosGenlist = NULL;
+
+ MP_FREE_STRING
+ (g_pListPersonalViewHandle->pCheckedItemsEditListForRemoved);
+ MP_FREE_STRING(g_pListPersonalViewHandle->pFolderPath);
+
+ free(g_pListPersonalViewHandle);
+ g_pListPersonalViewHandle = NULL;
+ }
+
+ if (g_pListPersonalViewWidget) {
+
+ MP_DEL_OBJ(g_pListPersonalViewWidget->pSelectallbtn);
+ MP_DEL_OBJ(g_pListPersonalViewWidget->pSavebtn);
+ MP_DEL_OBJ(g_pListPersonalViewWidget->pCancelbtn);
+
+ g_pListPersonalViewWidget->pSelAllLayout = NULL;
+ g_pListPersonalViewWidget->pVideoListBox = NULL;
+
+ g_pListPersonalViewWidget->pPersonalViewBaselayout = NULL;
+
+ MP_DEL_TIMER(g_pListPersonalViewWidget->pSelectedInfoLayoutTimer);
+
+ free(g_pListPersonalViewWidget);
+ g_pListPersonalViewWidget = NULL;
+ }
+
+}
+
+/**
+ *
+ */
+void mp_personal_view_destroy(void)
+{
+ VideoLogInfo("");
+
+ __mp_personal_view_ignore_personal_vconf();
+
+ if (g_pListPersonalViewHandle) {
+ evas_object_smart_callback_del
+ (g_pListPersonalViewHandle->pNaviFrameHandle,
+ "transition,finished",
+ mp_personal_view_naviframe_transition_effect_cb);
+ __mp_personal_view_free_selected_list();
+
+ MP_DEL_OBJ(g_pListPersonalViewHandle->pVideosGenlist);
+
+ MP_FREE_STRING
+ (g_pListPersonalViewHandle->pCheckedItemsEditListForRemoved);
+ MP_FREE_STRING(g_pListPersonalViewHandle->pFolderPath);
+
+ free(g_pListPersonalViewHandle);
+ g_pListPersonalViewHandle = NULL;
+ }
+
+ if (g_pListPersonalViewWidget) {
+
+ MP_DEL_OBJ(g_pListPersonalViewWidget->pSelectallbtn);
+ MP_DEL_OBJ(g_pListPersonalViewWidget->pSelAllLayout);
+ MP_DEL_OBJ(g_pListPersonalViewWidget->pSavebtn);
+ MP_DEL_OBJ(g_pListPersonalViewWidget->pCancelbtn);
+ MP_DEL_OBJ(g_pListPersonalViewWidget->pVideoListBox);
+ MP_DEL_OBJ(g_pListPersonalViewWidget->pPersonalViewBaselayout);
+ MP_DEL_TIMER(g_pListPersonalViewWidget->pSelectedInfoLayoutTimer);
+
+ free(g_pListPersonalViewWidget);
+ g_pListPersonalViewWidget = NULL;
+ }
+
+}
+
+/**
+ *
+ */
+void mp_personal_view_reset_value(void)
+{
+ VideoLogInfo("");
+
+ if (!g_pListPersonalViewHandle) {
+ VideoLogError("[ERR] g_pListPersonalViewHandle is not existed.");
+ return;
+ }
+
+ g_pListPersonalViewHandle->pNaviFrameHandle = NULL;
+ g_pListPersonalViewHandle->pNaviFrameItem = NULL;
+ g_pListPersonalViewHandle->pChangeViewUserCbFunc = NULL;
+
+ g_pListPersonalViewHandle->bSelectallCheckBoxState = FALSE;
+ g_pListPersonalViewHandle->nSelectCounterForEditList = 0;
+ g_pListPersonalViewHandle->nSortType =
+ MP_MEDIA_SORT_BY_RECENTLY_VIEWED;
+
+ if (g_pListPersonalViewHandle->pNaviFrameItem) {
+ elm_object_item_part_content_unset
+ (g_pListPersonalViewHandle->pNaviFrameItem,
+ "toolbar_more_btn");
+ elm_object_item_part_content_unset
+ (g_pListPersonalViewHandle->pNaviFrameItem, "toolbar");
+ elm_object_item_part_content_unset
+ (g_pListPersonalViewHandle->pNaviFrameItem, "toolbar_button2");
+ }
+}
+
+
+/*//////////////////////////////////////////////////*/
+/* Remove items. (Below functions are about the item deletion to call by button of toolbar.)*/
+
+/**
+ *
+ */
+void mp_personal_view_done_delete_complete(void)
+{
+ if (!g_pListPersonalViewHandle) {
+ VideoLogError("[ERR] g_pListPersonalViewHandle is NULL.");
+ return;
+ }
+
+ VideoLogInfo("");
+
+ if (g_pListPersonalViewHandle->pNaviFrameHandle) {
+ elm_naviframe_item_pop
+ (g_pListPersonalViewHandle->pNaviFrameHandle);
+ }
+
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_personal_view_run_cancel_items_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ if (!g_pListPersonalViewHandle->pNaviFrameHandle) {
+ VideoLogError
+ ("g_pListPersonalViewHandle->pNaviFrameHandle is NULL");
+ return;
+ }
+
+ VideoLogInfo("");
+
+ elm_naviframe_item_pop(g_pListPersonalViewHandle->pNaviFrameHandle);
+}
+
+/**
+ *
+ * @param bAsked
+ * @return
+ */
+bool mp_personal_view_set_vconf_asked_state(bool bAsked)
+{
+ int nErr = 0;
+
+ nErr =
+ preference_set_boolean(PREF_MP_UTIL_PERSONAL_NO_ASK_AGAIN, bAsked);
+ if (nErr != 0) {
+ VideoLogError
+ ("SET PREF_MP_UTIL_PERSONAL_NO_ASK_AGAIN is fail [0x%x]",
+ nErr);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param bAsked
+ * @return
+ */
+bool mp_personal_view_get_vconf_asked_state(bool * bAsked)
+{
+ int nErr = 0;
+ bool nVal = 0;
+
+ nErr =
+ preference_get_boolean(PREF_MP_UTIL_PERSONAL_NO_ASK_AGAIN, &nVal);
+ if (nErr != 0) {
+ VideoLogError
+ ("GET PREF_MP_UTIL_PERSONAL_NO_ASK_AGAIN is fail [0x%x]",
+ nErr);
+ return FALSE;
+ }
+
+ *bAsked = (nVal == 0) ? FALSE : TRUE;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __mp_personal_view_ask_remove_back_cb(void *data,
+ Evas_Object * obj,
+ void *event_info)
+{
+ mp_util_delete_popup_handle();
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_personal_view_ask_remove_ok_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ if (!g_pListPersonalViewHandle) {
+ VideoLogError("[ERR] g_pListPersonalViewHandle is NULL.");
+ return;
+ }
+
+ VideoLogInfo("");
+ mp_util_delete_popup_handle();
+
+ mp_personal_view_set_vconf_asked_state
+ (g_pListPersonalViewHandle->bCheckBoxState);
+
+ int nPersonalListSize = 0;
+ if (g_pListPersonalViewHandle->bFolderMove) {
+ nPersonalListSize = mp_util_svc_get_video_folder_size();
+ } else {
+ nPersonalListSize = mp_util_svc_get_number_of_video_item_by_type();
+ }
+
+ mp_personal_ctrl_show
+ (g_pListPersonalViewHandle->pCheckedItemsEditListForRemoved,
+ nPersonalListSize, g_pListPersonalViewHandle->nViewStyle,
+ g_pListPersonalViewHandle->bFolderMove,
+ mp_personal_view_done_delete_complete, NULL);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_personal_view_check_box_changed_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ if (!pObject) {
+ VideoLogError("[ERR] pObject is NULL.");
+ return;
+ }
+ if (!g_pListPersonalViewHandle) {
+ VideoLogError("[ERR] g_pMainViewHandle is NULL.");
+ return;
+ }
+
+ g_pListPersonalViewHandle->bCheckBoxState =
+ elm_check_state_get(pObject);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_personal_view_run_delete_items_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ if (!g_pListPersonalViewHandle) {
+ VideoLogError("[ERR] g_pMainViewHandle is NULL.");
+ return;
+ }
+
+ VideoLogInfo("");
+
+ if (!g_pListPersonalViewHandle->pVideosGenlist) {
+ VideoLogError("No exist genlist object.");
+ return;
+ }
+
+ if (g_pListPersonalViewHandle->nSelectCounterForEditList > 0) {
+ int nPersonalListSize = 0;
+ if (g_pListPersonalViewHandle->bFolderMove) {
+ nPersonalListSize = mp_util_svc_get_video_folder_size();
+ } else {
+ nPersonalListSize =
+ mp_util_svc_get_number_of_video_item_by_type();
+ }
+ bool bAskedState = FALSE;
+ mp_personal_view_get_vconf_asked_state(&bAskedState);
+ VideoLogError("bAskedState %d", bAskedState);
+
+ if (g_pListPersonalViewHandle->nViewStyle == 1 && (!bAskedState)) {
+ char *szCheckLable = NULL;
+ if (nPersonalListSize > 1) {
+ szCheckLable =
+ g_strdup_printf(MP_PERSONAL_ITEMS_MOVE_TO,
+ VIDEO_DOWNLOAD_FILE_DIR);
+ } else {
+ szCheckLable =
+ g_strdup_printf(MP_PERSONAL_ITEM_MOVE_TO,
+ VIDEO_DOWNLOAD_FILE_DIR);
+ }
+ mp_util_text_and_check_popup
+ (__mp_personal_view_ask_remove_back_cb,
+ __mp_personal_view_ask_remove_back_cb,
+ __mp_personal_view_ask_remove_ok_cb,
+ __mp_personal_view_check_box_changed_cb, szCheckLable,
+ NULL);
+ MP_FREE_STRING(szCheckLable);
+ } else {
+ mp_personal_ctrl_show
+ (g_pListPersonalViewHandle->pCheckedItemsEditListForRemoved,
+ nPersonalListSize, g_pListPersonalViewHandle->nViewStyle,
+ g_pListPersonalViewHandle->bFolderMove,
+ mp_personal_view_done_delete_complete, NULL);
+ }
+ }
+}
+
+ /**/
+/*//////////////////////////////////////////////*/
+/*//////////////////////////////////////////////*/
+/* Back button*/
+/**
+ *
+ * @param pUserData
+ * @param obj
+ * @param event_info
+ */
+static void __mp_personal_view_trans_finished_cb(void *pUserData,
+ Evas_Object * obj,
+ void *event_info)
+{
+ if (!obj) {
+ VideoLogError("[ERR] g_pListPersonalViewHandle is NULL.");
+ return;
+ }
+
+ mp_widget_ctrl_enable_navi_handle_focus(obj);
+
+ evas_object_smart_callback_del(obj, "transition,finished",
+ __mp_personal_view_trans_finished_cb);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pItem
+ * @return
+ */
+static Eina_Bool mp_personal_view_back_btn_cb(void *pUserData,
+ Elm_Object_Item * pItem)
+{
+ if (!g_pListPersonalViewHandle) {
+ VideoLogInfo("[ERR] g_pListPersonalViewHandle is NULL.");
+ return EINA_TRUE;
+ }
+ /* Register transition finished callback. */
+ mp_widget_ctrl_disable_navi_handle_focus_except_item
+ (g_pListPersonalViewHandle->pNaviFrameHandle,
+ g_pListPersonalViewHandle->pNaviFrameItem);
+ evas_object_smart_callback_add
+ (g_pListPersonalViewHandle->pNaviFrameHandle,
+ "transition,finished", __mp_personal_view_trans_finished_cb,
+ NULL);
+
+ mp_personal_view_pop();
+
+ return EINA_TRUE;
+}
+
+/**
+ *
+ */
+void mp_personal_view_change_title_info(void)
+{
+ VideoLogInfo("nNumOfSelectdCount : %d",
+ g_pListPersonalViewHandle->nSelectCounterForEditList);
+
+ if (g_pListPersonalViewHandle->nSelectCounterForEditList > 0) {
+ elm_object_disabled_set(g_pListPersonalViewWidget->pSavebtn,
+ EINA_FALSE);
+ } else {
+ VideoLogInfo("Unactivate delete tab.");
+ elm_object_disabled_set(g_pListPersonalViewWidget->pSavebtn,
+ EINA_TRUE);
+ }
+
+ char *szCheckingTotalItem =
+ g_strdup_printf(VIDEOS_SELECTVIEW_HEADER_PD_SELECTED,
+ g_pListPersonalViewHandle->nSelectCounterForEditList);
+ elm_object_item_domain_translatable_part_text_set
+ (g_pListPersonalViewHandle->pNaviFrameItem, "elm.text.title",
+ PACKAGE, szCheckingTotalItem);
+ MP_FREE_STRING(szCheckingTotalItem);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_personal_view_select_all_change_check_box_cb(void
+ *pUserData,
+ Evas_Object *
+ pObject,
+ void
+ *pEventInfo)
+{
+ if (!pObject) {
+ VideoLogError("[ERR]");
+ return;
+ }
+
+ if (!g_pListPersonalViewHandle->pVideosGenlist) {
+ VideoLogError("No exist pVideoGenlist");
+ return;
+ }
+
+ int nCounter = 0;
+ int nPersonalListSize = 0;
+ if (g_pListPersonalViewHandle->bFolderMove) {
+ nPersonalListSize = mp_util_svc_get_video_folder_size();
+ } else {
+ nPersonalListSize = mp_util_svc_get_number_of_video_item_by_type();
+ }
+ VideoLogInfo("nPersonalListSize : %d", nPersonalListSize);
+
+ if (!g_pListPersonalViewHandle->bSelectallCheckBoxState) {
+ g_pListPersonalViewHandle->bSelectallCheckBoxState = TRUE;
+ g_pListPersonalViewHandle->nSelectCounterForEditList =
+ nPersonalListSize;
+ } else {
+ g_pListPersonalViewHandle->bSelectallCheckBoxState = FALSE;
+ g_pListPersonalViewHandle->nSelectCounterForEditList = 0;
+
+ VideoLogInfo("Unactivate delete tab.");
+ elm_object_disabled_set(g_pListPersonalViewWidget->pSavebtn,
+ EINA_TRUE);
+ }
+ mp_personal_view_change_title_info();
+
+ for (nCounter = 0; nCounter < nPersonalListSize; nCounter++) {
+ g_pListPersonalViewHandle->pCheckedItemsEditListForRemoved
+ [nCounter] =
+ g_pListPersonalViewHandle->bSelectallCheckBoxState;
+ }
+
+ mp_personal_view_update_all_check_box();
+}
+
+/**
+ *
+ */
+void mp_personal_view_delete_select_all(void)
+{
+ VideoLogInfo("");
+
+ g_pListPersonalViewHandle->bSelectallCheckBoxState = FALSE;
+ g_pListPersonalViewHandle->nSelectCounterForEditList = 0;
+
+ mp_personal_view_change_title_info();
+}
+
+/*//////////////////////////////////////////////////*/
+
+/*//////////////////////////////////////////////////*/
+/* Check box callback*/
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+void mp_personal_view_change_check_box_state_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ if (!pObject) {
+ VideoLogInfo("[ERR]");
+ return;
+ } else {
+ VideoLogInfo("pObject : %x", pObject);
+ }
+
+ int nVideoItemIndex = (int) pUserData;
+ int nPersonalListSize = 0;
+ if (g_pListPersonalViewHandle->bFolderMove) {
+ nPersonalListSize = mp_util_svc_get_video_folder_size();
+ } else {
+ nPersonalListSize = mp_util_svc_get_number_of_video_item_by_type();
+ }
+ bool bState = elm_check_state_get(pObject);
+
+ VideoLogInfo("Check box - Index : %d, List Size : %d",
+ nVideoItemIndex, nPersonalListSize);
+
+ VideoLogInfo("BEFORE : nSelectCounterForEditList : %d",
+ g_pListPersonalViewHandle->nSelectCounterForEditList);
+
+ if (bState) {
+ g_pListPersonalViewHandle->pCheckedItemsEditListForRemoved
+ [nVideoItemIndex] = TRUE;
+ g_pListPersonalViewHandle->nSelectCounterForEditList++;
+ if (nPersonalListSize ==
+ g_pListPersonalViewHandle->nSelectCounterForEditList) {
+ VideoLogInfo("All check box of edit list state are true.");
+ g_pListPersonalViewHandle->bSelectallCheckBoxState = TRUE;
+ }
+ } else {
+ g_pListPersonalViewHandle->pCheckedItemsEditListForRemoved
+ [nVideoItemIndex] = FALSE;
+ if (nPersonalListSize ==
+ g_pListPersonalViewHandle->nSelectCounterForEditList) {
+ VideoLogInfo("All check box of edit list state are not true.");
+ g_pListPersonalViewHandle->bSelectallCheckBoxState = FALSE;
+ }
+
+ g_pListPersonalViewHandle->nSelectCounterForEditList--;
+ if (g_pListPersonalViewHandle->nSelectCounterForEditList < 1) {
+ VideoLogInfo("Unactivate delete button.");
+ elm_object_disabled_set(g_pListPersonalViewWidget->pSavebtn,
+ EINA_TRUE);
+ }
+ }
+ elm_check_state_set(g_pListPersonalViewWidget->pSelectallbtn,
+ g_pListPersonalViewHandle->bSelectallCheckBoxState);
+ mp_personal_view_change_title_info();
+}
+
+ /**/
+/*//////////////////////////////////////////////////*/
+/*//////////////////////////////////////////////*/
+/* Genlist callback*/
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+void mp_personal_view_naviframe_transition_effect_cb(void *pUserData,
+ Evas_Object *
+ pObject,
+ void *pEventInfo)
+{
+ if (!g_pListPersonalViewHandle) {
+ VideoLogError("[ERR] No exist g_pListPersonalViewHandle.");
+ return;
+ }
+
+ VideoLogInfo("");
+
+ Evas_Object *pTmpContents = NULL;
+ Elm_Object_Item *pTmpItem = NULL;
+
+ if (!g_pListPersonalViewHandle->pNaviFrameHandle) {
+ VideoLogError("[ERR] No exist naviframe handle.");
+ return;
+ }
+
+ pTmpItem =
+ elm_naviframe_top_item_get
+ (g_pListPersonalViewHandle->pNaviFrameHandle);
+ pTmpContents = elm_object_item_content_get(pTmpItem);
+ if (pTmpContents) {
+ if (pTmpContents == g_pListPersonalViewWidget->pVideoListBox) {
+ } else {
+ VideoLogInfo
+ ("It's not pPersonalViewTabbarLayout in top screen.");
+ }
+ } else {
+ VideoLogError("[ERR] No exist naviframe top item.");
+ }
+}
+
+/**
+ *
+ */
+void mp_personal_view_double_tap_cb(void)
+{
+ if (!g_pListPersonalViewHandle->pVideosGenlist) {
+ VideoLogError("pVideosGenlist is not exist.");
+ return;
+ }
+
+ VideoLogInfo("");
+
+ elm_genlist_item_bring_in(elm_genlist_first_item_get
+ (g_pListPersonalViewHandle->pVideosGenlist),
+ ELM_GENLIST_ITEM_SCROLLTO_TOP);
+}
+
+/**
+ *
+ * @param nVideoItemIndex
+ * @return
+ */
+char *mp_personal_view_get_duration_time(int nVideoItemIndex)
+{
+ VideoLogInfo("");
+
+ char szTmpStr[STR_LEN_MAX] = { 0, };
+ char szTmpStrDurationTime[STR_LEN_MAX] = { 0, };
+ char szTmpStrLastPlayedPos[STR_LEN_MAX] = { 0, };
+
+ unsigned int nVideoInfoDuration =
+ mp_util_svc_get_video_duration_time(nVideoItemIndex);
+ unsigned int nVideoInfoLastTime = 0;
+
+ mp_util_convert_time(nVideoInfoDuration, szTmpStrDurationTime, FALSE);
+ mp_util_convert_time(nVideoInfoLastTime, szTmpStrLastPlayedPos, TRUE);
+
+ snprintf(szTmpStr, STR_LEN_MAX, "%s/%s", szTmpStrLastPlayedPos,
+ szTmpStrDurationTime);
+
+ return strdup(szTmpStr);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+void mp_personal_view_select_video_item_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ if (!g_pListPersonalViewHandle->pVideosGenlist) {
+ VideoLogInfo("No exist genlist object.");
+ return;
+ }
+
+ VideoLogInfo("");
+
+ int nVideoItemIndex = 0;
+
+ Elm_Object_Item *pItem = (Elm_Object_Item *) pEventInfo;
+ Elm_Object_Item *pSelectedItem =
+ elm_genlist_selected_item_get(pObject);
+
+ if (pItem) {
+ nVideoItemIndex = (int) elm_object_item_data_get(pItem);
+ VideoLogInfo("nVideoItemIndex : %d", nVideoItemIndex);
+
+ int nPersonalListSize = 0;
+ if (g_pListPersonalViewHandle->bFolderMove) {
+ nPersonalListSize = mp_util_svc_get_video_folder_size();
+ } else {
+ nPersonalListSize =
+ mp_util_svc_get_number_of_video_item_by_type();
+ }
+
+ if (g_pListPersonalViewHandle->pCheckedItemsEditListForRemoved
+ [nVideoItemIndex]) {
+ g_pListPersonalViewHandle->pCheckedItemsEditListForRemoved
+ [nVideoItemIndex] = FALSE;
+ if (nPersonalListSize ==
+ g_pListPersonalViewHandle->nSelectCounterForEditList) {
+ VideoLogInfo
+ ("All check box of edit list state are not true.");
+ g_pListPersonalViewHandle->bSelectallCheckBoxState = FALSE;
+ }
+
+ g_pListPersonalViewHandle->nSelectCounterForEditList--;
+ if (g_pListPersonalViewHandle->nSelectCounterForEditList < 1) {
+ VideoLogInfo("Unactivate delete button.");
+ elm_object_disabled_set
+ (g_pListPersonalViewWidget->pSavebtn, EINA_TRUE);
+ }
+ } else {
+ g_pListPersonalViewHandle->pCheckedItemsEditListForRemoved
+ [nVideoItemIndex] = TRUE;
+ g_pListPersonalViewHandle->nSelectCounterForEditList++;
+ if (nPersonalListSize ==
+ g_pListPersonalViewHandle->nSelectCounterForEditList) {
+ VideoLogInfo("All check box of edit list state are true.");
+ g_pListPersonalViewHandle->bSelectallCheckBoxState = TRUE;
+ }
+ }
+ elm_check_state_set(g_pListPersonalViewWidget->pSelectallbtn,
+ g_pListPersonalViewHandle->bSelectallCheckBoxState);
+ mp_personal_view_change_title_info();
+ Evas_Object *check_box =
+ elm_object_item_part_content_get(pItem, "elm.edit.icon.1");
+ if (check_box) {
+ elm_check_state_set(check_box,
+ g_pListPersonalViewHandle->pCheckedItemsEditListForRemoved
+ [nVideoItemIndex]);
+ }
+ } else {
+ VideoLogError("[ERR]Error item number.");
+ }
+
+ if (pSelectedItem) {
+ elm_genlist_item_selected_set(pSelectedItem, EINA_FALSE);
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+char *mp_personal_view_get_label_of_video_item_cb(const void *pUserData,
+ Evas_Object * pObject,
+ const char *pPart)
+{
+ int nVideoItemIndex = (int) pUserData;
+
+ if (!strcmp(pPart, "elm.text.1")) {
+ char *szTitle;
+ szTitle = mp_util_svc_get_video_title(nVideoItemIndex);
+ char *szTitleUtf8 = elm_entry_utf8_to_markup(szTitle);
+
+ if (szTitle) {
+ free(szTitle);
+ szTitle = NULL;
+ }
+
+ return szTitleUtf8;
+ } else if (!strcmp(pPart, "elm.text.2")) {
+ return mp_util_svc_get_duration_str_time(nVideoItemIndex);
+ }
+ return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+char *mp_personal_view_get_label_of_folder_cb(const void *pUserData,
+ Evas_Object * pObject,
+ const char *pPart)
+{
+ int nFolderItemIndex = (int) pUserData;
+
+ if (!strcmp(pPart, "elm.text.1")) {
+ char *szTitle = NULL;
+ szTitle = mp_util_svc_get_video_folder_name(nFolderItemIndex);
+
+ char *szTitleUtf8 = elm_entry_utf8_to_markup(szTitle);
+
+ MP_FREE_STRING(szTitle);
+ return szTitleUtf8;
+ } else if (!strcmp(pPart, "elm.text.2")) {
+ char *szFolderPath = NULL;
+ szFolderPath = mp_util_svc_get_video_folder_url(nFolderItemIndex);
+ char *pDes_path = mp_util_get_dir_by_path(szFolderPath);
+ MP_FREE_STRING(szFolderPath);
+ char *szFolderUtf8 = elm_entry_utf8_to_markup(pDes_path);
+ MP_FREE_STRING(pDes_path);
+ return szFolderUtf8;
+ } else {
+ }
+
+ return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+Evas_Object *mp_personal_view_get_icon_of_video_item_cb(const void
+ *pUserData,
+ Evas_Object *
+ pObject,
+ const char *pPart)
+{
+
+ int nVideoItemIndex = (int) pUserData;
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VIDEO_PLAYER_IMAGE_NAME_EDJ);
+ free(path);
+ if (!strcmp(pPart, "elm.thumbnail.icon")) {
+ char *pThumbIconUri =
+ mp_util_svc_get_video_thumbnail(nVideoItemIndex);
+ Evas_Object *pBg = NULL;
+
+ if (!pThumbIconUri || !vp_file_exists(pThumbIconUri)) {
+ MP_FREE_STRING(pThumbIconUri);
+ }
+
+ pBg =
+ mp_util_create_preload_image(pObject, pThumbIconUri,
+ VIDEO_ICON_WIDTH);
+ if (pBg)
+ evas_object_show(pBg);
+
+ MP_FREE_STRING(pThumbIconUri);
+
+ return pBg;
+ } else if (!strcmp(pPart, "elm.progressbar.icon")) {
+ return NULL;
+ } else if (!strcmp(pPart, "elm.lock.icon")) {
+ char *pVideoFile = mp_util_svc_get_video_url(nVideoItemIndex);
+ bool bRet = mp_util_check_video_personal_status((const char *)
+ pVideoFile);
+ MP_FREE_STRING(pVideoFile);
+ if (bRet) {
+ Evas_Object *pLockIcon = elm_image_add(pObject);
+ elm_image_file_set(pLockIcon, edj_path,
+ VIDEO_LIST_VIEW_ICON_PERSONAL_LOCK);
+ evas_object_size_hint_align_set(pLockIcon, EVAS_HINT_FILL,
+ EVAS_HINT_FILL);
+ evas_object_size_hint_weight_set(pLockIcon, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_show(pLockIcon);
+ return pLockIcon;
+ } else {
+ return NULL;
+ }
+ } else if (!strcmp(pPart, "elm.edit.icon.1")) {
+ Evas_Object *pCheckBox = elm_check_add(pObject);
+ evas_object_propagate_events_set(pCheckBox, EINA_FALSE);
+ evas_object_smart_callback_add(pCheckBox, "changed",
+ mp_personal_view_change_check_box_state_cb,
+ pUserData);
+ elm_check_state_set(pCheckBox,
+ g_pListPersonalViewHandle->pCheckedItemsEditListForRemoved
+ [nVideoItemIndex]);
+ elm_check_state_pointer_set(pCheckBox,
+ (Eina_Bool *) &
+ (g_pListPersonalViewHandle->pCheckedItemsEditListForRemoved
+ [nVideoItemIndex]));
+
+ evas_object_show(pCheckBox);
+
+ return pCheckBox;
+ }
+ return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+Evas_Object *mp_personal_view_get_icon_of_folder_cb(const void *pUserData,
+ Evas_Object * pObject,
+ const char *pPart)
+{
+ int nFolderItemIndex = (int) pUserData;
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VIDEO_PLAYER_IMAGE_NAME_EDJ);
+ free(path);
+ if (!strcmp(pPart, "elm.thumbnail.icon")) {
+ Evas_Object *pBg = elm_bg_add(pObject);
+ if (pBg) {
+ elm_bg_load_size_set(pBg, VIDEO_ICON_WIDTH, VIDEO_ICON_HEIGHT);
+ evas_object_size_hint_max_set(pBg, VIDEO_ICON_WIDTH,
+ VIDEO_ICON_HEIGHT);
+ evas_object_size_hint_weight_set(pBg, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(pBg, EVAS_HINT_FILL,
+ EVAS_HINT_FILL);
+ char *pFolderIconUri =
+ mp_util_get_folder_icon_path(nFolderItemIndex);
+ elm_bg_file_set(pBg, (const char *) pFolderIconUri, NULL);
+ MP_FREE_STRING(pFolderIconUri);
+ }
+ return pBg;
+ } else if (!strcmp(pPart, "elm.lock.icon")) {
+ char *pFolderoFile =
+ mp_util_svc_get_video_folder_url(nFolderItemIndex);
+ bool bRet = mp_util_check_video_personal_status((const char *)
+ pFolderoFile);
+ MP_FREE_STRING(pFolderoFile);
+ if (bRet) {
+ Evas_Object *pLockIcon = elm_image_add(pObject);
+ elm_image_file_set(pLockIcon, edj_path,
+ VIDEO_LIST_VIEW_ICON_PERSONAL_LOCK);
+ evas_object_size_hint_align_set(pLockIcon, EVAS_HINT_FILL,
+ EVAS_HINT_FILL);
+ evas_object_size_hint_weight_set(pLockIcon, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_show(pLockIcon);
+ return pLockIcon;
+ } else {
+ return NULL;
+ }
+ } else if (!strcmp(pPart, "elm.edit.icon.1")) {
+ Evas_Object *pCheckBox = elm_check_add(pObject);
+ evas_object_propagate_events_set(pCheckBox, EINA_FALSE);
+ evas_object_smart_callback_add(pCheckBox, "changed",
+ mp_personal_view_change_check_box_state_cb,
+ pUserData);
+ elm_check_state_set(pCheckBox,
+ g_pListPersonalViewHandle->pCheckedItemsEditListForRemoved
+ [nFolderItemIndex]);
+ elm_check_state_pointer_set(pCheckBox,
+ (Eina_Bool *) &
+ (g_pListPersonalViewHandle->pCheckedItemsEditListForRemoved
+ [nFolderItemIndex]));
+
+ evas_object_show(pCheckBox);
+
+ return pCheckBox;
+ }
+ return NULL;
+}
+
+ /**/
+/*//////////////////////////////////////////////*/
+/**
+ *
+ * @return
+ */
+int mp_personal_view_get_sort_type(void)
+{
+ switch (mp_sort_ctrl_get_sort_state()) {
+
+ case MP_LIST_SORT_BY_RECENTLY_ADDED:
+ g_pListPersonalViewHandle->nSortType =
+ MP_MEDIA_SORT_BY_RECENTLY_ADDED;
+ break;
+
+ case MP_LIST_SORT_BY_NAME:
+ g_pListPersonalViewHandle->nSortType = MP_MEDIA_SORT_BY_NAME;
+ break;
+ }
+
+ return g_pListPersonalViewHandle->nSortType;
+}
+
+/**
+ *
+ * @param pVideosGenlist
+ */
+void mp_personal_view_append_video_items(void *pVideosGenlist)
+{
+ int nIndex = 0;
+ int nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+
+ VideoPersonal_Itc.item_style = "video/edit_list";
+ VideoPersonal_Itc.func.text_get =
+ (void *) mp_personal_view_get_label_of_video_item_cb;
+ VideoPersonal_Itc.func.content_get =
+ (void *) mp_personal_view_get_icon_of_video_item_cb;
+ VideoPersonal_Itc.func.state_get = NULL;
+ VideoPersonal_Itc.func.del = NULL;
+
+ for (nIndex = 0; nIndex < nVideoListSize; nIndex++) {
+ elm_genlist_item_append(pVideosGenlist, &VideoPersonal_Itc,
+ (void *) nIndex, NULL,
+ ELM_GENLIST_ITEM_NONE,
+ mp_personal_view_select_video_item_cb,
+ NULL);
+ }
+}
+
+/**
+ *
+ * @param pVideosGenlist
+ */
+void mp_personal_view_append_folder_items(void *pVideosGenlist)
+{
+ int nIndex = 0;
+ int nFolderListSize = mp_util_svc_get_video_folder_size();
+
+ FolderPersonal_Itc.item_style = "video/edit_folder";
+ FolderPersonal_Itc.func.text_get =
+ (void *) mp_personal_view_get_label_of_folder_cb;
+ FolderPersonal_Itc.func.content_get =
+ (void *) mp_personal_view_get_icon_of_folder_cb;
+ FolderPersonal_Itc.func.state_get = NULL;
+ FolderPersonal_Itc.func.del = NULL;
+
+ for (nIndex = 0; nIndex < nFolderListSize; nIndex++) {
+ elm_genlist_item_append(pVideosGenlist, &FolderPersonal_Itc,
+ (void *) nIndex, NULL,
+ ELM_GENLIST_ITEM_NONE,
+ mp_personal_view_select_video_item_cb,
+ NULL);
+ }
+}
+
+/**
+ *
+ * @param nTotalSize
+ */
+void mp_personal_view_init_set_value(int nTotalSize)
+{
+ VideoLogInfo("");
+
+ if (g_pListPersonalViewHandle->pCheckedItemsEditListForRemoved) {
+ free(g_pListPersonalViewHandle->pCheckedItemsEditListForRemoved);
+ g_pListPersonalViewHandle->pCheckedItemsEditListForRemoved = NULL;
+ }
+ if (nTotalSize > 0) {
+ g_pListPersonalViewHandle->pCheckedItemsEditListForRemoved =
+ (bool *) malloc(sizeof(bool) * nTotalSize);
+ memset(g_pListPersonalViewHandle->pCheckedItemsEditListForRemoved,
+ 0, sizeof(bool) * nTotalSize);
+ }
+
+ g_pListPersonalViewHandle->bSelectallCheckBoxState = FALSE;
+}
+
+/**
+ *
+ */
+static void __mp_personal_view_get_folder_data(void)
+{
+ if (!g_pListPersonalViewHandle || !g_pListPersonalViewWidget) {
+ VideoLogError("Main handles of list view are not existed.");
+ return;
+ }
+ /* int nViewType = mp_view_as_ctrl_get_type(); */
+ int nSortType = mp_personal_view_get_sort_type();
+
+ mp_util_svc_destory_video_folder_list();
+
+ if (g_pListPersonalViewHandle->nViewStyle == 0) {
+ mp_util_svc_extract_personal_video_folder_list(nSortType, 0);
+ } else {
+ mp_util_svc_extract_personal_video_folder_list(nSortType, 1);
+ }
+}
+
+/**
+ *
+ */
+static void __mp_personal_view_get_data(void)
+{
+ if (!g_pListPersonalViewHandle || !g_pListPersonalViewWidget) {
+ VideoLogError("Main handles of list view are not existed.");
+ return;
+ }
+
+ int nSortType = mp_personal_view_get_sort_type();
+ int nViewType = mp_view_as_ctrl_get_type();
+ if ((nViewType == MP_LIST_VIEW_AS_FOLDER_LIST)
+ && (g_pListPersonalViewHandle->pFolderPath)) {
+ VideoSecureLogInfo("szFolderPath : %s",
+ g_pListPersonalViewHandle->pFolderPath);
+ if (g_pListPersonalViewHandle->pFolderPath) {
+ if (vp_file_exists(g_pListPersonalViewHandle->pFolderPath)) {
+ /*update video-list */
+
+ mp_util_svc_destory_video_item_list();
+ if (g_pListPersonalViewHandle->nViewStyle == 0) {
+ mp_util_svc_extract_video_list_from_folder_by_personal
+ (g_pListPersonalViewHandle->pFolderPath,
+ nSortType, MP_LIST_VIEW_ALL, 0);
+ } else {
+ mp_util_svc_extract_video_list_from_folder_by_personal
+ (g_pListPersonalViewHandle->pFolderPath,
+ nSortType, MP_LIST_VIEW_ALL, 1);
+ }
+ } else {
+ VideoLogError("invalid path");
+ }
+ }
+ } else {
+ mp_util_svc_destory_video_list();
+ if (g_pListPersonalViewHandle->nViewStyle == 0) {
+ mp_util_svc_extract_video_list_by_personal(nSortType,
+ mp_view_ctrl_get_list_type
+ (), 0);
+ } else {
+ mp_util_svc_extract_video_list_by_personal(nSortType,
+ mp_view_ctrl_get_list_type
+ (), 1);
+ }
+ }
+
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+Evas_Object *mp_personal_view_get_icon_of_no_folder_item_cb(const void
+ *pUserData,
+ Evas_Object *
+ pObject,
+ const char
+ *pPart)
+{
+ VideoLogInfo("");
+
+ if (!strcmp(pPart, "elm.icon")) {
+ int width = 720 * elm_config_scale_get();
+ int height = 1100 * elm_config_scale_get();
+ Evas_Object *pNocontentsLayout = elm_layout_add(pObject);
+ elm_layout_theme_set(pNocontentsLayout, "layout", "nocontents",
+ "video");
+ evas_object_size_hint_min_set(pNocontentsLayout, width, height);
+ elm_object_part_text_set(pNocontentsLayout, "elm.text",
+ "No Folders");
+ evas_object_show(pNocontentsLayout);
+
+ return pNocontentsLayout;
+ }
+
+ return NULL;
+}
+
+/**
+ *
+ * @param pVideosGenlist
+ */
+void mp_personal_view_append_no_personal_folder_items(void
+ *pVideosGenlist)
+{
+ VideoLogInfo("");
+
+ FolderPersonalNoItem_Itc.item_style = "video/1icon";
+ FolderPersonalNoItem_Itc.func.text_get = NULL;
+ FolderPersonalNoItem_Itc.func.content_get =
+ (void *) mp_personal_view_get_icon_of_no_folder_item_cb;
+ FolderPersonalNoItem_Itc.func.state_get = NULL;
+ FolderPersonalNoItem_Itc.func.del = NULL;
+ FolderPersonalNoItem_Itc.decorate_item_style = NULL;
+
+ elm_genlist_item_append(pVideosGenlist, &FolderPersonalNoItem_Itc,
+ NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+}
+
+/**
+ *
+ * @param nItemSortType
+ * @param pVideosGenlist
+ * @param bNeedSvc
+ */
+void mp_personal_view_arrange_folder_list(int nItemSortType,
+ void *pVideosGenlist,
+ bool bNeedSvc)
+{
+ if (!g_pListPersonalViewWidget || !g_pListPersonalViewHandle) {
+ VideoLogError("No exist g_pRemoveListViewWidget.");
+ return;
+ }
+
+ if (!pVideosGenlist) {
+ VideoLogError("No exist genlist object.");
+ return;
+ }
+
+ int nFolderListSize = 0;
+
+ __mp_personal_view_get_folder_data();
+
+ nFolderListSize = mp_util_svc_get_video_folder_size();
+ VideoLogInfo("nFolderListSize : %d", nFolderListSize);
+ if (bNeedSvc) {
+ __mp_personal_view_update_selected_video_list();
+ } else {
+ mp_personal_view_init_set_value(nFolderListSize);
+ }
+
+ elm_genlist_clear(pVideosGenlist);
+
+ if (nFolderListSize > 0) {
+ mp_personal_view_append_folder_items(pVideosGenlist);
+ } else {
+ mp_personal_view_append_no_personal_folder_items(pVideosGenlist);
+ }
+
+ elm_genlist_decorate_mode_set(pVideosGenlist, EINA_TRUE);
+
+ evas_object_show(pVideosGenlist);
+}
+
+/**
+ *
+ * @param nItemSortType
+ * @param pVideosGenlist
+ * @param bNeedSvc
+ */
+void mp_personal_view_arrange_video_list(int nItemSortType,
+ void *pVideosGenlist,
+ bool bNeedSvc)
+{
+ if (!g_pListPersonalViewWidget || !g_pListPersonalViewHandle) {
+ VideoLogError("No exist g_pRemoveListViewWidget.");
+ return;
+ }
+
+ if (!pVideosGenlist) {
+ VideoLogError("No exist genlist object.");
+ return;
+ }
+
+ int nVideoListSize = 0;
+
+ __mp_personal_view_get_data();
+
+ nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+ VideoLogInfo("nVideoListSize : %d", nVideoListSize);
+ if (bNeedSvc) {
+ __mp_personal_view_update_selected_video_list();
+ } else {
+ mp_personal_view_init_set_value(nVideoListSize);
+ }
+
+ elm_genlist_clear(pVideosGenlist);
+
+ if (nVideoListSize > 0) {
+ mp_personal_view_append_video_items(pVideosGenlist);
+ }
+
+ elm_genlist_decorate_mode_set(pVideosGenlist, EINA_TRUE);
+
+ evas_object_show(pVideosGenlist);
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+Evas_Object *mp_personal_view_init_internal_layout(void *pParent)
+{
+ if (!pParent) {
+ VideoLogError("[ERR]");
+ return NULL;
+ }
+
+ VideoLogInfo("");
+
+ if (g_pListPersonalViewWidget->pPersonalViewBaselayout) {
+ evas_object_del
+ (g_pListPersonalViewWidget->pPersonalViewBaselayout);
+ g_pListPersonalViewWidget->pPersonalViewBaselayout = NULL;
+ }
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VIDEO_PLAYER_REMOVE_LIST_EDJ);
+ free(path);
+ g_pListPersonalViewWidget->pPersonalViewBaselayout =
+ elm_layout_add(pParent);
+ elm_layout_file_set(g_pListPersonalViewWidget->pPersonalViewBaselayout,
+ edj_path, REMOVE_LIST_EDJ_GROUP);
+ evas_object_size_hint_weight_set
+ (g_pListPersonalViewWidget->pPersonalViewBaselayout,
+ EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set
+ (g_pListPersonalViewWidget->pPersonalViewBaselayout,
+ EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+ return g_pListPersonalViewWidget->pPersonalViewBaselayout;
+}
+
+/**
+ *
+ * @param nSelectedSize
+ * @return
+ */
+static bool __mp_personal_view_get_selected_video_list(int nSelectedSize)
+{
+ if (!g_pListPersonalViewHandle || !g_pListPersonalViewWidget) {
+ VideoLogError("Main handles of list view are not existed.");
+ return FALSE;
+ }
+
+ int nVideoListSize = 0;
+
+ if (!g_pListPersonalViewHandle->nSelectCounterForEditList
+ || nSelectedSize < 1) {
+ return FALSE;
+ }
+
+ if (g_pListPersonalViewHandle->bFolderMove) {
+ nVideoListSize = mp_util_svc_get_video_folder_size();
+ } else {
+ nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+ }
+
+ __mp_personal_view_free_selected_list();
+
+ int nIndex = 0;
+ int nCounter = 0;
+ char *pMediaId = NULL;
+
+ g_pListPersonalViewHandle->pSelectedList =
+ (char **) calloc(sizeof(char *), nSelectedSize);
+ VideoLogInfo("current edit size===%d", nSelectedSize);
+
+ if (g_pListPersonalViewHandle->pSelectedList == NULL) {
+ return FALSE;
+ }
+
+ for (nCounter = 0; nCounter < nVideoListSize; nCounter++) {
+ if (g_pListPersonalViewHandle->pCheckedItemsEditListForRemoved
+ [nCounter]) {
+ if (g_pListPersonalViewHandle->bFolderMove) {
+ pMediaId = mp_util_svc_get_video_folder_id(nCounter);
+ } else {
+ pMediaId = mp_util_svc_get_video_id_by_index(nCounter);
+ }
+ if (pMediaId != NULL) {
+ g_pListPersonalViewHandle->pSelectedList[nIndex] =
+ strdup(pMediaId);
+ MP_FREE_STRING(pMediaId);
+ nIndex++;
+ }
+ }
+ }
+ return TRUE;
+}
+
+/**
+ *
+ */
+static void __mp_personal_view_update_selected_video_list(void)
+{
+ if (!g_pListPersonalViewHandle || !g_pListPersonalViewWidget) {
+ VideoLogError("Main handles of list view are not existed.");
+ return;
+ }
+
+ int nVideoListSize = 0;
+
+ MpMediaType eMediaType = MEDIA_TYPE_FILE;
+
+ if (g_pListPersonalViewHandle->bFolderMove) {
+ eMediaType = MEDIA_TYPE_DIRECTORY;
+ nVideoListSize = mp_util_svc_get_video_folder_size();
+ } else {
+ nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+ }
+
+ int nIndex = 0;
+ int nCounter = 0;
+ bool bValidMedia = FALSE;
+ int nTotal = g_pListPersonalViewHandle->nSelectCounterForEditList;
+ VideoLogInfo("OldEditList ===%d", nTotal);
+ g_pListPersonalViewHandle->nSelectCounterForEditList = 0;
+ mp_personal_view_init_set_value(nVideoListSize);
+
+ if (!g_pListPersonalViewHandle->pSelectedList) {
+ return;
+ }
+
+ while ((nIndex < nTotal)
+ && g_pListPersonalViewHandle->pSelectedList[nIndex]) {
+
+ bValidMedia =
+ mp_util_svc_check_valid_media_id
+ (g_pListPersonalViewHandle->pSelectedList[nIndex], eMediaType,
+ &nCounter);
+ if (bValidMedia) {
+ g_pListPersonalViewHandle->pCheckedItemsEditListForRemoved
+ [nCounter] = TRUE;
+ g_pListPersonalViewHandle->nSelectCounterForEditList++;
+ }
+ nIndex++;
+ }
+
+ mp_personal_view_change_title_info();
+
+ if (g_pListPersonalViewHandle->nSelectCounterForEditList > 0)
+ elm_object_disabled_set(g_pListPersonalViewWidget->pSavebtn,
+ EINA_FALSE);
+ else
+ elm_object_disabled_set(g_pListPersonalViewWidget->pSavebtn,
+ EINA_TRUE);
+
+}
+
+/**
+ *
+ * @param pUserData
+ */
+static void __mp_personal_view_db_backup_cb(void *pUserData)
+{
+ if (!g_pListPersonalViewHandle) {
+ VideoLogError("Main handles of list view are not existed.");
+ return;
+ }
+ __mp_personal_view_get_selected_video_list
+ (g_pListPersonalViewHandle->nSelectCounterForEditList);
+
+}
+
+/**
+ *
+ * @param pUserData
+ */
+static void __mp_personal_view_db_changed_cb(void *pUserData)
+{
+ if (!g_pListPersonalViewHandle || !g_pListPersonalViewWidget) {
+ VideoLogError("Main handles of list view are not existed.");
+ return;
+ }
+ int nSortType = mp_personal_view_get_sort_type();
+ int nViewType = mp_view_as_ctrl_get_type();
+ if ((nViewType == MP_LIST_VIEW_AS_FOLDER_LIST)
+ && g_pListPersonalViewHandle->pFolderPath) {
+ if (g_pListPersonalViewHandle->pFolderPath) {
+ VideoSecureLogInfo("szFolderPath : %s",
+ g_pListPersonalViewHandle->pFolderPath);
+ if (vp_file_exists(g_pListPersonalViewHandle->pFolderPath)) {
+ /*update video-list */
+
+ mp_util_svc_destory_video_item_list();
+ if (g_pListPersonalViewHandle->nViewStyle == 0) {
+ mp_util_svc_extract_video_list_from_folder_by_personal
+ (g_pListPersonalViewHandle->pFolderPath,
+ nSortType, MP_LIST_VIEW_ALL, 0);
+ } else {
+ mp_util_svc_extract_video_list_from_folder_by_personal
+ (g_pListPersonalViewHandle->pFolderPath,
+ nSortType, MP_LIST_VIEW_ALL, 1);
+ }
+ mp_personal_view_arrange_video_list(nSortType,
+ g_pListPersonalViewHandle->pVideosGenlist,
+ TRUE);
+ } else {
+ elm_naviframe_item_pop
+ (g_pListPersonalViewHandle->pNaviFrameHandle);
+ }
+ }
+ } else if (g_pListPersonalViewHandle->bFolderMove) {
+ mp_util_svc_destory_video_folder_list();
+
+ if (g_pListPersonalViewHandle->nViewStyle == 0) {
+ mp_util_svc_extract_personal_video_folder_list(nSortType, 0);
+ } else {
+ mp_util_svc_extract_personal_video_folder_list(nSortType, 1);
+ }
+
+ int nFolderListSize = mp_util_svc_get_video_folder_size();
+
+ if (nFolderListSize > 0) {
+ mp_personal_view_arrange_folder_list(nSortType,
+ g_pListPersonalViewHandle->pVideosGenlist,
+ TRUE);
+ } else {
+ elm_naviframe_item_pop
+ (g_pListPersonalViewHandle->pNaviFrameHandle);
+ }
+ } else {
+ mp_util_svc_destory_video_list();
+ if (g_pListPersonalViewHandle->nViewStyle == 0) {
+ mp_util_svc_extract_video_list_by_personal(nSortType,
+ mp_view_ctrl_get_list_type
+ (), 0);
+ } else {
+ mp_util_svc_extract_video_list_by_personal(nSortType,
+ mp_view_ctrl_get_list_type
+ (), 1);
+ }
+
+ int nVideoListSize =
+ mp_util_svc_get_number_of_video_item_by_type();
+ VideoLogInfo("nVideoListSize : %d", nVideoListSize);
+ if (nVideoListSize > 0) {
+ mp_personal_view_arrange_video_list(nSortType,
+ g_pListPersonalViewHandle->pVideosGenlist,
+ TRUE);
+ } else {
+ elm_naviframe_item_pop
+ (g_pListPersonalViewHandle->pNaviFrameHandle);
+ }
+ }
+ Elm_Object_Item *pItem =
+ elm_genlist_first_item_get
+ (g_pListPersonalViewHandle->pVideosGenlist);
+ if (pItem) {
+ elm_genlist_item_bring_in(pItem, ELM_GENLIST_ITEM_SCROLLTO_IN);
+ }
+
+}
+
+/**
+ *
+ */
+static void __mp_personal_view_register_personal_vconf()
+{
+#ifndef ENABLE_PERSONAL
+ return;
+#endif
+}
+
+/**
+ *
+ */
+static void __mp_personal_view_ignore_personal_vconf()
+{
+#ifndef ENABLE_PERSONAL
+ return;
+#endif
+}
+
+/**
+ *
+ * @param data
+ * @param evas
+ * @param obj
+ * @param event_info
+ */
+static void __mp_personal_select_all_layout_down_cb(void *data,
+ Evas * evas,
+ Evas_Object * obj,
+ void *event_info)
+{
+ if (!g_pListPersonalViewHandle || !g_pListPersonalViewWidget) {
+ VideoLogError("Main handles of list view are not existed.");
+ return;
+ }
+
+ Evas_Object *check =
+ elm_object_part_content_get
+ (g_pListPersonalViewWidget->pSelAllLayout, "elm.icon");
+ Eina_Bool state = elm_check_state_get(check);
+ elm_check_state_set(check, !state);
+ __mp_personal_view_select_all_change_check_box_cb(data, check, NULL);
+}
+
+/**
+ *
+ * @param pParent
+ */
+void mp_personal_view_init(void *pParent)
+{
+ if (!g_pListPersonalViewHandle || !g_pListPersonalViewWidget) {
+ VideoLogError("Main handles of list view are not existed.");
+ return;
+ }
+
+ VideoLogInfo("");
+ g_pListPersonalViewWidget->pPersonalViewBaselayout =
+ mp_personal_view_init_internal_layout(pParent);
+ if (!g_pListPersonalViewWidget->pPersonalViewBaselayout) {
+ VideoLogError("pPersonalViewBaselayout is not existed.");
+ return;
+ }
+ evas_object_event_callback_add
+ (g_pListPersonalViewWidget->pPersonalViewBaselayout,
+ EVAS_CALLBACK_DEL, __mp_personal_view_base_layout_del_cb, NULL);
+
+ g_pListPersonalViewWidget->pVideoListBox =
+ elm_box_add(g_pListPersonalViewWidget->pPersonalViewBaselayout);
+ if (!g_pListPersonalViewWidget->pVideoListBox) {
+ VideoLogError("pVideoListBox is not existed.");
+ return;
+ }
+
+ evas_object_size_hint_weight_set
+ (g_pListPersonalViewWidget->pVideoListBox, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set
+ (g_pListPersonalViewWidget->pVideoListBox, EVAS_HINT_FILL,
+ EVAS_HINT_FILL);
+
+ mp_widget_ctrl_create_select_all_layout
+ (g_pListPersonalViewWidget->pVideoListBox,
+ __mp_personal_view_select_all_change_check_box_cb,
+ __mp_personal_select_all_layout_down_cb, (void *)
+ g_pListPersonalViewWidget,
+ &g_pListPersonalViewWidget->pSelectallbtn,
+ &g_pListPersonalViewWidget->pSelAllLayout);
+
+ if (!g_pListPersonalViewWidget->pSelAllLayout) {
+ VideoLogError("pSelAllLayout is not existed.");
+ return;
+ }
+
+ elm_box_pack_start(g_pListPersonalViewWidget->pVideoListBox,
+ g_pListPersonalViewWidget->pSelAllLayout);
+
+ g_pListPersonalViewHandle->pVideosGenlist =
+ elm_genlist_add(g_pListPersonalViewWidget->pVideoListBox);
+ if (!g_pListPersonalViewHandle->pVideosGenlist) {
+ VideoLogError("pVideosGenlist is not existed.");
+ return;
+ }
+
+ elm_genlist_homogeneous_set(g_pListPersonalViewHandle->pVideosGenlist,
+ EINA_TRUE);
+ evas_object_size_hint_weight_set
+ (g_pListPersonalViewHandle->pVideosGenlist, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set
+ (g_pListPersonalViewHandle->pVideosGenlist, EVAS_HINT_FILL,
+ EVAS_HINT_FILL);
+ elm_genlist_block_count_set(g_pListPersonalViewHandle->pVideosGenlist,
+ VIDEO_GENLIST_BLOCK_COUNT);
+
+ elm_genlist_mode_set(g_pListPersonalViewHandle->pVideosGenlist,
+ ELM_LIST_COMPRESS);
+ elm_box_pack_end(g_pListPersonalViewWidget->pVideoListBox,
+ g_pListPersonalViewHandle->pVideosGenlist);
+ elm_object_part_content_set
+ (g_pListPersonalViewWidget->pPersonalViewBaselayout,
+ SWALLOW_LISTVIEW_CONTENT,
+ g_pListPersonalViewWidget->pVideoListBox);
+
+ if (g_pListPersonalViewHandle->bFolderMove) {
+ VideoLogInfo("ArrangePersonalFolderList");
+ mp_personal_view_arrange_folder_list
+ (mp_personal_view_get_sort_type(),
+ g_pListPersonalViewHandle->pVideosGenlist, FALSE);
+ } else {
+ mp_personal_view_arrange_video_list(mp_personal_view_get_sort_type
+ (),
+ g_pListPersonalViewHandle->pVideosGenlist,
+ FALSE);
+ }
+
+ char *szTitle = g_strdup_printf(VIDEOS_SELECTVIEW_HEADER_PD_SELECTED,
+ g_pListPersonalViewHandle->nSelectCounterForEditList);
+
+ g_pListPersonalViewHandle->pNaviFrameItem =
+ elm_naviframe_item_push
+ (g_pListPersonalViewHandle->pNaviFrameHandle, szTitle, NULL, NULL,
+ g_pListPersonalViewWidget->pPersonalViewBaselayout, NULL);
+ elm_object_item_domain_text_translatable_set
+ (g_pListPersonalViewHandle->pNaviFrameItem, VIDEOS_STRING,
+ EINA_TRUE);
+ elm_naviframe_item_pop_cb_set
+ (g_pListPersonalViewHandle->pNaviFrameItem,
+ mp_personal_view_back_btn_cb, g_pListPersonalViewHandle);
+
+ elm_naviframe_item_title_enabled_set
+ (g_pListPersonalViewHandle->pNaviFrameItem, EINA_TRUE, EINA_FALSE);
+ evas_object_smart_callback_add
+ (g_pListPersonalViewHandle->pNaviFrameHandle,
+ "transition,finished",
+ mp_personal_view_naviframe_transition_effect_cb, NULL);
+
+ g_pListPersonalViewWidget->pCancelbtn =
+ mp_widget_ctrl_create_navi_left_btn
+ (g_pListPersonalViewHandle->pNaviFrameHandle,
+ g_pListPersonalViewHandle->pNaviFrameItem, NULL,
+ __mp_personal_view_run_cancel_items_cb, (void *)
+ g_pListPersonalViewHandle);
+ g_pListPersonalViewWidget->pSavebtn =
+ mp_widget_ctrl_create_navi_right_btn
+ (g_pListPersonalViewHandle->pNaviFrameHandle,
+ g_pListPersonalViewHandle->pNaviFrameItem, NULL,
+ __mp_personal_view_run_delete_items_cb, (void *)
+ g_pListPersonalViewHandle);
+ elm_object_disabled_set(g_pListPersonalViewWidget->pSavebtn,
+ EINA_TRUE);
+
+
+ evas_object_show(g_pListPersonalViewHandle->pVideosGenlist);
+ evas_object_show(g_pListPersonalViewWidget->pPersonalViewBaselayout);
+ __mp_personal_view_register_personal_vconf();
+ mp_util_db_set_update_fun(g_pListPersonalViewHandle->euLev,
+ __mp_personal_view_db_changed_cb);
+ mp_util_db_set_backup_fun(g_pListPersonalViewHandle->euLev,
+ __mp_personal_view_db_backup_cb);
+
+ MP_FREE_STRING(szTitle);
+ mp_util_hide_indicator();
+
+}
+
+/**
+ *
+ * @param pNaviFrame
+ * @param pChangeViewCb
+ * @param pFolderPath
+ * @param nViewStyle
+ */
+void mp_personal_view_push(void *pNaviFrame,
+ ChangePersonalViewCbFunc pChangeViewCb,
+ char *pFolderPath, int nViewStyle)
+{
+ VideoLogInfo("");
+ mp_personal_view_destroy();
+ g_pListPersonalViewHandle =
+ (st_VideoListPersonalViewHandle *) calloc(1,
+ sizeof
+ (st_VideoListPersonalViewHandle));
+ g_pListPersonalViewWidget =
+ (st_VideoListPersonalViewWidget *) calloc(1,
+ sizeof
+ (st_VideoListPersonalViewWidget));
+
+ memset(g_pListPersonalViewHandle, 0,
+ sizeof(st_VideoListPersonalViewHandle));
+ memset(g_pListPersonalViewWidget, 0,
+ sizeof(st_VideoListPersonalViewWidget));
+ mp_personal_view_reset_value();
+
+ g_pListPersonalViewHandle->pNaviFrameHandle = pNaviFrame;
+ g_pListPersonalViewHandle->pChangeViewUserCbFunc = pChangeViewCb;
+ if (pFolderPath) {
+ g_pListPersonalViewHandle->pFolderPath = strdup(pFolderPath);
+ }
+ g_pListPersonalViewHandle->nViewStyle = nViewStyle;
+ g_pListPersonalViewHandle->euLev = MP_DB_UPDATE_LEV_1;
+
+ int nViewType = mp_view_as_ctrl_get_type();
+ if (nViewType == MP_LIST_VIEW_AS_FOLDER_LIST
+ && g_pListPersonalViewHandle->pFolderPath) {
+ g_pListPersonalViewHandle->euLev = MP_DB_UPDATE_LEV_2;
+ }
+
+ if (nViewType == MP_LIST_VIEW_AS_FOLDER_LIST
+ && !g_pListPersonalViewHandle->pFolderPath) {
+ g_pListPersonalViewHandle->bFolderMove = TRUE;
+ } else {
+ g_pListPersonalViewHandle->bFolderMove = FALSE;
+ }
+
+ mp_personal_view_init(g_pListPersonalViewHandle->pNaviFrameHandle);
+}
+
+/**
+ *
+ */
+void mp_personal_view_update(void)
+{
+ if (!g_pListPersonalViewHandle || !g_pListPersonalViewWidget) {
+ VideoLogError("Main handles of list view are not existed.");
+ return;
+ }
+
+ int nSortType = mp_personal_view_get_sort_type();
+ int nViewType = mp_view_as_ctrl_get_type();
+ if ((nViewType == MP_LIST_VIEW_AS_FOLDER_LIST)
+ && g_pListPersonalViewHandle->pFolderPath) {
+ if (g_pListPersonalViewHandle->pFolderPath) {
+ VideoSecureLogInfo("szFolderPath : %s",
+ g_pListPersonalViewHandle->pFolderPath);
+ if (vp_file_exists(g_pListPersonalViewHandle->pFolderPath)) {
+ /*update video-list */
+ mp_util_svc_destory_video_item_list();
+ if (g_pListPersonalViewHandle->nViewStyle == 0) {
+ mp_util_svc_extract_video_list_from_folder_by_personal
+ (g_pListPersonalViewHandle->pFolderPath,
+ nSortType, MP_LIST_VIEW_ALL, 0);
+ } else {
+ mp_util_svc_extract_video_list_from_folder_by_personal
+ (g_pListPersonalViewHandle->pFolderPath,
+ nSortType, MP_LIST_VIEW_ALL, 1);
+ }
+
+ elm_genlist_clear
+ (g_pListPersonalViewHandle->pVideosGenlist);
+
+ mp_personal_view_append_video_items
+ (g_pListPersonalViewHandle->pVideosGenlist);
+ } else {
+ elm_naviframe_item_pop
+ (g_pListPersonalViewHandle->pNaviFrameHandle);
+ }
+ }
+ } else if (g_pListPersonalViewHandle->bFolderMove) {
+ mp_util_svc_destory_video_folder_list();
+
+ if (g_pListPersonalViewHandle->nViewStyle == 0) {
+ mp_util_svc_extract_personal_video_folder_list(nSortType, 0);
+ } else {
+ mp_util_svc_extract_personal_video_folder_list(nSortType, 1);
+ }
+
+ elm_genlist_clear(g_pListPersonalViewHandle->pVideosGenlist);
+
+ int nFolderListSize = mp_util_svc_get_video_folder_size();
+
+ if (nFolderListSize > 0) {
+ mp_personal_view_append_folder_items
+ (g_pListPersonalViewHandle->pVideosGenlist);
+ } else {
+ elm_naviframe_item_pop
+ (g_pListPersonalViewHandle->pNaviFrameHandle);
+ }
+ } else {
+ mp_util_svc_destory_video_list();
+ if (g_pListPersonalViewHandle->nViewStyle == 0) {
+ mp_util_svc_extract_video_list_by_personal(nSortType,
+ mp_view_ctrl_get_list_type
+ (), 0);
+ } else {
+ mp_util_svc_extract_video_list_by_personal(nSortType,
+ mp_view_ctrl_get_list_type
+ (), 1);
+ }
+
+ int nVideoListSize =
+ mp_util_svc_get_number_of_video_item_by_type();
+
+ elm_genlist_clear(g_pListPersonalViewHandle->pVideosGenlist);
+
+ if (nVideoListSize > 0) {
+ mp_personal_view_append_video_items
+ (g_pListPersonalViewHandle->pVideosGenlist);
+ } else {
+ elm_naviframe_item_pop
+ (g_pListPersonalViewHandle->pNaviFrameHandle);
+ }
+ }
+
+}
+
+/**
+ *
+ */
+void mp_personal_view_pop(void)
+{
+ VideoLogInfo("");
+ if (!g_pListPersonalViewHandle || !g_pListPersonalViewWidget) {
+ VideoLogError("Main handles of list view are not existed.");
+ return;
+ }
+
+ mp_util_db_reset_backup_fun_up_self(g_pListPersonalViewHandle->euLev);
+
+ if (g_pListPersonalViewHandle->pChangeViewUserCbFunc) {
+ g_pListPersonalViewHandle->pChangeViewUserCbFunc
+ (LIST_UPDATE_TYPE_ALL);
+ }
+}
+
+/**
+ *
+ * @return
+ */
+bool mp_personal_view_is_top_view(void)
+{
+ if (!g_pListPersonalViewHandle || !g_pListPersonalViewWidget) {
+ VideoLogError("Main handles of list view are not existed.");
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+
+/**
+ *
+ * @param pUserData
+ * @param e
+ * @param pObject
+ * @param pEventInfo
+ */
+static void
+__mp_personal_view_base_layout_del_cb(void *pUserData, Evas * e,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ __mp_personal_view_reset();
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <app.h>
+#include <Ecore_Evas.h>
+#include <Elementary.h>
+
+
+
+#include "vp-play-log.h"
+#include "mp-util.h"
+#include "mp-video-log.h"
+#include "mp-util-media-service.h"
+#include "mp-video-value-define.h"
+#include "mp-video-string-define.h"
+#include "mp-video-list-remove-ctrl.h"
+#include "mp-util-move.h"
+#include "vp-util.h"
+#include "vp-file-util.h"
+#include "mp-util-preference.h"
+#include "mp-util-config.h"
+
+typedef struct _MpRemoveVideoCtrl {
+ /*obj */
+ Evas_Object *pPopUpHandle;
+ Evas_Object *pProgressbar;
+
+ /*data */
+ Ecore_Idler *pDelIdler;
+ Ecore_Timer *pStartDelTimer;
+ Ecore_Timer *pFinishDelTimer;
+ ListRemoveCtrlCbFunc fDelCtrlUserCbFunc;
+
+ int nDelTotalItem;
+ int nDelCompltedItem;
+ int nDelEditListSize;
+ bool *pDelEditList;
+ bool bFolderDel;
+
+} stMpRemoveCtrl;
+
+
+static stMpRemoveCtrl *g_pRemoveCtrl = NULL;
+
+/*//////////////////////////////////////////////////////////*/
+/* Internal function*/
+/*//////////////////////////////////////////////////////////*/
+static void mp_remove_ctrl_button_popup_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo);
+
+/**
+ *
+ */
+void mp_remove_ctrl_delete_popup_handle(void)
+{
+ VideoLogInfo("");
+ if (!g_pRemoveCtrl) {
+ VideoLogWarning("");
+ return;
+ }
+
+
+ MP_DEL_IDLER(g_pRemoveCtrl->pDelIdler);
+ MP_DEL_TIMER(g_pRemoveCtrl->pStartDelTimer);
+ MP_DEL_TIMER(g_pRemoveCtrl->pFinishDelTimer);
+
+ if (g_pRemoveCtrl->pPopUpHandle) {
+ eext_object_event_callback_del(g_pRemoveCtrl->pPopUpHandle,
+ EEXT_CALLBACK_BACK,
+ mp_remove_ctrl_button_popup_cb);
+ MP_DEL_OBJ(g_pRemoveCtrl->pPopUpHandle);
+ }
+ MP_FREE_STRING(g_pRemoveCtrl);
+
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void mp_remove_ctrl_button_popup_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ VideoLogInfo("");
+ if (!g_pRemoveCtrl) {
+ VideoLogWarning("");
+ return;
+ }
+ mp_util_move_set_cancel_state(TRUE);
+ if (g_pRemoveCtrl->fDelCtrlUserCbFunc) {
+ g_pRemoveCtrl->fDelCtrlUserCbFunc();
+ }
+ mp_remove_ctrl_delete_popup_handle();
+}
+
+/**
+ *
+ * @param pUserData
+ * @return
+ */
+static Eina_Bool __mp_remove_ctrl_finish_delete_timer_cb(void *pUserData)
+{
+ if (!g_pRemoveCtrl) {
+ VideoLogWarning("");
+ return FALSE;
+ }
+
+ g_pRemoveCtrl->pFinishDelTimer = NULL;
+ if (g_pRemoveCtrl->fDelCtrlUserCbFunc) {
+ g_pRemoveCtrl->fDelCtrlUserCbFunc();
+ }
+ mp_remove_ctrl_delete_popup_handle();
+
+ return FALSE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @return
+ */
+static Eina_Bool mp_remove_ctrl_delete_item_idler_cb(void *pUserData)
+{
+
+ if (!g_pRemoveCtrl) {
+ VideoLogWarning("");
+ return FALSE;
+ }
+
+ if (!g_pRemoveCtrl->pDelEditList) {
+ VideoLogError
+ ("The userdata and g_pRemoveCtrl->pDelEditList is null.");
+ g_pRemoveCtrl->pDelIdler = NULL;
+ return FALSE;
+ }
+
+ VideoLogInfo("");
+
+ int nCounter = 0;
+ char *szMediaUrlForPreview = mp_util_config_get_preview();
+ VideoLogInfo("Media-Url For Preview : %s", szMediaUrlForPreview);
+ int nResult = 0;
+
+ for (nCounter = 0; nCounter < g_pRemoveCtrl->nDelEditListSize;
+ nCounter++) {
+ if (g_pRemoveCtrl->pDelEditList[nCounter]) {
+ if (g_pRemoveCtrl->bFolderDel) {
+ char *szFolderUrl =
+ mp_util_svc_get_video_folder_url(nCounter);
+ if (szFolderUrl) {
+
+ nResult =
+ mp_util_move_delete_video_folder(szFolderUrl,
+ NULL);
+
+ if (szMediaUrlForPreview
+ &&
+ !mp_util_check_local_file_exist
+ (szMediaUrlForPreview)) {
+ mp_util_config_set_preview(NULL);
+ MP_FREE_STRING(szMediaUrlForPreview);
+ }
+ mp_util_svc_remove_folder_list_item_from_list
+ (nCounter);
+ MP_FREE_STRING(szFolderUrl);
+ if (nResult == 1) {
+ VideoLogInfo("cancel delete");
+ return FALSE;
+ }
+ }
+ } else {
+ char *szFileUrl = mp_util_svc_get_video_url(nCounter);
+ if (szFileUrl) {
+ if (szMediaUrlForPreview) {
+ if (!strcmp(szMediaUrlForPreview, szFileUrl)) {
+ VideoLogInfo("Erase preview url.");
+ mp_util_config_set_preview(NULL);
+ }
+ }
+ VideoLogInfo("Delete file url : %s", szFileUrl);
+ /* Now when the data is cloud data,Click delete button, Send remove request to cloud server,
+ then remove current item ,But Don't care of if this data is deleted from cloud server. */
+ unlink(szFileUrl);
+ MP_FREE_STRING(szFileUrl);
+
+ mp_util_svc_remove_item_by_list_index(nCounter);
+ }
+
+ }
+
+ int nMoveItemCounter = 0;
+ for (nMoveItemCounter = nCounter;
+ nMoveItemCounter < g_pRemoveCtrl->nDelEditListSize - 1;
+ nMoveItemCounter++) {
+ g_pRemoveCtrl->pDelEditList[nMoveItemCounter] =
+ g_pRemoveCtrl->pDelEditList[nMoveItemCounter + 1];
+ }
+ g_pRemoveCtrl->nDelEditListSize--;
+
+ ++g_pRemoveCtrl->nDelCompltedItem;
+ break;
+ }
+ }
+ MP_FREE_STRING(szMediaUrlForPreview);
+
+ VideoLogInfo("nCompltedDeleteItem : %d",
+ g_pRemoveCtrl->nDelCompltedItem);
+
+ double nDeleteRate =
+ ((double) g_pRemoveCtrl->nDelCompltedItem) /
+ ((double) g_pRemoveCtrl->nDelTotalItem);
+ VideoLogInfo
+ ("nDeleteRate:%f, nCompltedDeleteItem:%d, nTotalDeleteItem:%d",
+ nDeleteRate, g_pRemoveCtrl->nDelCompltedItem,
+ g_pRemoveCtrl->nDelTotalItem);
+ if (g_pRemoveCtrl->pProgressbar) {
+ elm_progressbar_value_set(g_pRemoveCtrl->pProgressbar,
+ nDeleteRate);
+ } else {
+ VideoLogInfo("No exist progress bar handle.");
+ }
+
+ if (g_pRemoveCtrl->nDelCompltedItem == g_pRemoveCtrl->nDelTotalItem) {
+ VideoLogInfo("nCompltedDeleteItem == nTotalDeleteItem");
+ MP_DEL_TIMER(g_pRemoveCtrl->pFinishDelTimer);
+ g_pRemoveCtrl->pDelIdler = NULL;
+ g_pRemoveCtrl->pFinishDelTimer =
+ ecore_timer_add(0.1, __mp_remove_ctrl_finish_delete_timer_cb,
+ pUserData);
+
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @return
+ */
+static Eina_Bool __mp_remove_ctrl_start_delete_timer_cb(void *pUserData)
+{
+ if (!g_pRemoveCtrl) {
+ VideoLogWarning("");
+ return FALSE;
+ }
+
+ g_pRemoveCtrl->pStartDelTimer = NULL;
+ g_pRemoveCtrl->pDelIdler =
+ ecore_idler_add(mp_remove_ctrl_delete_item_idler_cb, pUserData);
+ return FALSE;
+}
+
+
+/*//////////////////////////////////////////////////////////*/
+/* External function*/
+/*//////////////////////////////////////////////////////////*/
+
+/**
+ *
+ * @param pCheckedItemsEditList
+ * @param pCheckedItemsEditListSize
+ * @param pListRemoveCtrlCb
+ * @param bFolderDel
+ * @param pUserData
+ * @return
+ */
+bool mp_remove_ctrl_show(bool * pCheckedItemsEditList,
+ int pCheckedItemsEditListSize,
+ ListRemoveCtrlCbFunc pListRemoveCtrlCb,
+ bool bFolderDel, void *pUserData)
+{
+
+ if (!pCheckedItemsEditList) {
+ VideoLogError("No have popup message is null.");
+ return FALSE;
+ }
+
+ VideoLogInfo("pCheckedItemsEditListSize : %d",
+ pCheckedItemsEditListSize);
+
+ mp_remove_ctrl_delete_popup_handle();
+ g_pRemoveCtrl = (stMpRemoveCtrl *) calloc(1, sizeof(stMpRemoveCtrl));
+ if (!g_pRemoveCtrl) {
+ VideoLogError("g_pRemoveCtrl is NULL");
+ return FALSE;
+ }
+
+
+ g_pRemoveCtrl->fDelCtrlUserCbFunc = pListRemoveCtrlCb;
+ g_pRemoveCtrl->nDelEditListSize = pCheckedItemsEditListSize;
+ g_pRemoveCtrl->pDelEditList = pCheckedItemsEditList;
+ g_pRemoveCtrl->bFolderDel = bFolderDel;
+
+ int nCounter = 0;
+ for (nCounter = 0; nCounter < g_pRemoveCtrl->nDelEditListSize;
+ nCounter++) {
+ if (g_pRemoveCtrl->pDelEditList[nCounter]) {
+ char *szTitle = mp_util_svc_get_video_title(nCounter);
+ VideoLogInfo(" Delete index - %d ; %s", nCounter, szTitle);
+ MP_FREE_STRING(szTitle);
+
+ ++g_pRemoveCtrl->nDelTotalItem;
+ }
+ }
+
+ VideoLogInfo("nTotalDeleteItem : %d", g_pRemoveCtrl->nDelTotalItem);
+
+ g_pRemoveCtrl->pPopUpHandle =
+ elm_popup_add(mp_util_get_main_window_handle());
+ evas_object_size_hint_weight_set(g_pRemoveCtrl->pPopUpHandle,
+ EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ eext_object_event_callback_add(g_pRemoveCtrl->pPopUpHandle,
+ EEXT_CALLBACK_BACK,
+ mp_remove_ctrl_button_popup_cb, NULL);
+
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VIDEO_PLAYER_POPUP_PROGRESSBAR_EDJ);
+ free(path);
+ Evas_Object *pPopupLayout =
+ elm_layout_add(g_pRemoveCtrl->pPopUpHandle);
+ elm_layout_file_set(pPopupLayout, edj_path,
+ "popup_text_progressbar_view_layout");
+ elm_object_part_text_set(pPopupLayout, "elm.text.description",
+ VIDEOS_DELETEPOP_MSG_DELETING);
+ elm_object_part_text_set(pPopupLayout, "progress_text", "00/00");
+ evas_object_size_hint_weight_set(pPopupLayout, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_show(pPopupLayout);
+
+ Evas_Object *pProgressbar =
+ elm_progressbar_add(g_pRemoveCtrl->pPopUpHandle);
+ elm_object_style_set(pProgressbar, "wheel");
+ evas_object_size_hint_align_set(pProgressbar, EVAS_HINT_FILL,
+ EVAS_HINT_FILL);
+ evas_object_size_hint_weight_set(pProgressbar, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ elm_progressbar_pulse(pProgressbar, EINA_TRUE);
+ elm_object_signal_emit(pProgressbar, "elm,units,show", "elm");
+ evas_object_show(pProgressbar);
+
+ elm_object_part_content_set(pPopupLayout, "progressbar", pProgressbar);
+
+ g_pRemoveCtrl->pProgressbar = pProgressbar;
+
+ elm_object_content_set(g_pRemoveCtrl->pPopUpHandle, pPopupLayout);
+ evas_object_data_set(g_pRemoveCtrl->pPopUpHandle, "progressbar",
+ pProgressbar);
+
+ evas_object_show(g_pRemoveCtrl->pPopUpHandle);
+
+ MP_DEL_TIMER(g_pRemoveCtrl->pStartDelTimer);
+ g_pRemoveCtrl->pStartDelTimer =
+ ecore_timer_add(0.3, __mp_remove_ctrl_start_delete_timer_cb,
+ pUserData);
+
+ return TRUE;
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <Eina.h>
+#include <Ecore_Evas.h>
+#include <Elementary.h>
+#include <glib.h>
+
+#include "mp-util.h"
+#include "mp-video-log.h"
+#include "mp-external-ug.h"
+#include "mp-video-string-define.h"
+#include "mp-video-value-define.h"
+#include "mp-util-media-service.h"
+#include "mp-video-list-sort-ctrl.h"
+#include "mp-video-list-remove-ctrl.h"
+#include "mp-video-list-remove-view.h"
+#include "mp-video-view-popup-ctrl.h"
+#include "mp-video-list-view-as-ctrl.h"
+#include "mp-video-list-view-item-of-folder.h"
+#include "mp-video-util-db-controller.h"
+#include "mp-util-widget-ctrl.h"
+#include "vp-file-util.h"
+#include "mp-rotate-ctrl.h"
+#include "videos-view-mgr.h"
+
+#define VIDEO_SELECTED_INFO_TIMER 4.0
+
+typedef struct {
+ void *pNaviFrameHandle;
+ void *pNaviFrameItem;
+ void *pObjVideosList; //used for list view ,folder view,thumbnail view
+
+ Elm_Genlist_Item_Class *pGenListItc;
+ Elm_Genlist_Item_Class *pGenListLandscapeItc;
+ Elm_Gengrid_Item_Class *pGenGridItc_1;
+ Elm_Gengrid_Item_Class *pGenGridItc_2;
+ bool *pCheckedItemsEditListForRemoved;
+ char **pSelectedList; //save selected video id
+ bool bSelectallCheckBoxState;
+ int nSelectCounterForEditList;
+ MpMediaSvcSortType nSortType;
+ ChangeListRemoveViewCbFunc pChangeViewUserCbFunc; //view pop
+ ListRemoveViewCbFunc pChangeViewUpdateFunc; //update main list
+ char *pFolderPath;
+ MpVideoListTabType eTabType;
+ MpDbUpdateViewLev euLev;
+ bool bUpdateList;
+ bool bFolderDel;
+#ifdef VS_FEATURE_THUMBNAIL_VIEW //
+ bool bLandscape;
+ bool bThumbnailView;
+ bool update_view_data;
+#endif
+} st_VideoListRemoveViewHandle;
+
+typedef struct {
+ Evas_Object *pVideoListBox;
+ Evas_Object *pRemoveViewBaselayout;
+ Evas_Object *pSelectallbtn;
+ Evas_Object *pSelAllLayout;
+ Evas_Object *pSavebtn;
+ Evas_Object *pCancelbtn;
+
+ Ecore_Timer *pSelectedInfoLayoutTimer;
+} st_VideoListRemoveViewWidget;
+
+static st_VideoListRemoveViewHandle *g_pListRemoveViewHandle = NULL;
+static st_VideoListRemoveViewWidget *g_pListRemoveViewWidget = NULL;
+
+int getFolderCount = 0;
+bool folderStatus[1024] = { 0, };
+
+Eina_List *g_pSelectedList = NULL;
+
+// Pre define function
+int mp_remove_view_get_sort_type(void);
+static bool __mp_remove_view_arrange_video_list(void *pObjVideosList,
+ MpVideoListTabType
+ eTabType, bool bNeedSvc);
+static bool __mp_remove_view_arrange_folder_list(void *pObjVideosList,
+ MpVideoListTabType
+ eTabType, bool bNeedSvc);
+void mp_remove_view_naviframe_transition_effect_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo);
+void mp_remove_view_change_title_info(void);
+static void __mp_remove_view_base_layout_del_cb(void *pUserData, Evas * e,
+ Evas_Object * pObject,
+ void *pEventInfo);
+static void __mp_remove_view_rotate_cb(void *data, Evas_Object * obj,
+ void *event_info);
+
+static bool __mp_remove_view_get_selected_video_list(int nSelectedSize);
+static void __mp_remove_view_update_selected_video_list(void);
+static void __mp_remove_view_update_remove_selected_file(char *path,
+ Eina_Bool add);
+static void __mp_remove_view_release_selected_list(void);
+static bool __mp_remove_view_is_selected_file(const char *path);
+
+/**
+ *
+ * @param path
+ * @return
+ */
+static bool __mp_remove_view_is_selected_file(const char *path)
+{
+ bool bSelected = FALSE;
+
+ Eina_List *l = NULL;
+ char *data;
+ EINA_LIST_FOREACH(g_pSelectedList, l, data) {
+ if (data && path && !strcmp(data, path)) {
+ bSelected = TRUE;
+ break;
+ }
+ }
+
+ return bSelected;
+}
+
+/**
+ *
+ */
+static void __mp_remove_view_free_selected_list(void)
+{
+ if (!g_pListRemoveViewHandle
+ || !g_pListRemoveViewHandle->pSelectedList) {
+ VideoLogInfo("Selected_list is already freed.");
+ return;
+ }
+ int nIndex = 0;
+ while (g_pListRemoveViewHandle->pSelectedList[nIndex]) {
+ nIndex++;
+ MP_FREE_STRING(g_pListRemoveViewHandle->pSelectedList[nIndex]);
+ }
+ MP_FREE_STRING(g_pListRemoveViewHandle->pSelectedList);
+
+// __mp_remove_view_release_selected_list();
+}
+
+/**
+ *
+ */
+void mp_remove_view_update_all_check_box(void)
+{
+ VideoLogInfo("");
+
+ int nVideoListSize = 0;
+ if (LIST_TAB_TYPE_PERSONAL == g_pListRemoveViewHandle->eTabType) {
+ if (g_pListRemoveViewHandle->bFolderDel) {
+ nVideoListSize = mp_util_svc_get_video_folder_size();
+ } else {
+ nVideoListSize =
+ mp_util_svc_get_number_of_video_item_by_type();
+ }
+ } else {
+ VideoLogError("Can't handle this eTabType!");
+ }
+
+ if (!g_pListRemoveViewHandle->pObjVideosList) {
+ VideoLogInfo("genlist is NULL");
+ return;
+ }
+ if (nVideoListSize < 1) {
+ VideoLogInfo("nVideoListSize < 1:%d", nVideoListSize);
+ return;
+ }
+
+ Evas_Object *check_box = NULL;
+ Evas_Object *check_box_layout = NULL;
+ Elm_Object_Item *currentItem = NULL;
+ Elm_Object_Item *currentItemGengrid = NULL;
+ int nVideoItemIndex = 0;
+#ifdef VS_FEATURE_THUMBNAIL_VIEW //
+ if (g_pListRemoveViewHandle->bThumbnailView) {
+ currentItem =
+ elm_genlist_first_item_get(g_pListRemoveViewHandle->
+ pObjVideosList);
+ nVideoItemIndex = 0;
+ while (currentItem && (nVideoItemIndex < nVideoListSize)) {
+ Evas_Object *gengrid =
+ elm_object_item_part_content_get(currentItem, "elm.icon");
+ currentItemGengrid = elm_gengrid_first_item_get(gengrid);
+ while (currentItemGengrid
+ && (nVideoItemIndex < nVideoListSize)) {
+ Evas_Object *check_box =
+ elm_object_item_part_content_get(currentItemGengrid,
+ "elm.swallow.end");
+ if (check_box) {
+ elm_check_state_set(check_box,
+ g_pListRemoveViewHandle->
+ pCheckedItemsEditListForRemoved
+ [nVideoItemIndex]);
+ }
+ currentItemGengrid =
+ elm_gengrid_item_next_get(currentItemGengrid);
+ nVideoItemIndex++;
+ }
+ currentItem = elm_genlist_item_next_get(currentItem);
+ }
+
+ } else
+#endif
+ {
+ currentItem =
+ elm_genlist_first_item_get(g_pListRemoveViewHandle->
+ pObjVideosList);
+ nVideoItemIndex = 0;
+ while (currentItem && (nVideoItemIndex < nVideoListSize)) {
+ check_box_layout =
+ elm_object_item_part_content_get(currentItem,
+ "elm.icon.2");
+ check_box =
+ elm_object_part_content_get(check_box_layout,
+ "elm.swallow.content");
+ if (check_box) {
+ elm_check_state_set(check_box,
+ g_pListRemoveViewHandle->
+ pCheckedItemsEditListForRemoved
+ [nVideoItemIndex]);
+ }
+ currentItem = elm_genlist_item_next_get(currentItem);
+ nVideoItemIndex++;
+ }
+ }
+
+}
+
+/**
+ *
+ */
+void mp_remove_view_destroy(void)
+{
+ VideoLogInfo("");
+
+ if (g_pListRemoveViewHandle) {
+ evas_object_smart_callback_del(g_pListRemoveViewHandle->
+ pNaviFrameHandle,
+ "transition,finished",
+ mp_remove_view_naviframe_transition_effect_cb);
+ evas_object_smart_callback_del((Evas_Object *)
+ mp_util_get_main_window_handle(),
+ "wm,rotation,changed",
+ __mp_remove_view_rotate_cb);
+ __mp_remove_view_free_selected_list();
+ MP_DEL_ITC(g_pListRemoveViewHandle->pGenListItc);
+ MP_DEL_GRID_ITC(g_pListRemoveViewHandle->pGenGridItc_1);
+ MP_DEL_GRID_ITC(g_pListRemoveViewHandle->pGenGridItc_2);
+ MP_DEL_OBJ(g_pListRemoveViewHandle->pObjVideosList);
+ MP_FREE_STRING(g_pListRemoveViewHandle->
+ pCheckedItemsEditListForRemoved);
+ g_pListRemoveViewHandle->pChangeViewUserCbFunc = NULL;
+ g_pListRemoveViewHandle->pChangeViewUpdateFunc = NULL;
+ MP_FREE_STRING(g_pListRemoveViewHandle->pFolderPath);
+
+ free(g_pListRemoveViewHandle);
+ g_pListRemoveViewHandle = NULL;
+ }
+
+ if (g_pListRemoveViewWidget) {
+ MP_DEL_OBJ(g_pListRemoveViewWidget->pSelectallbtn);
+ MP_DEL_OBJ(g_pListRemoveViewWidget->pSavebtn);
+ MP_DEL_OBJ(g_pListRemoveViewWidget->pCancelbtn);
+ MP_DEL_OBJ(g_pListRemoveViewWidget->pSelAllLayout);
+ MP_DEL_OBJ(g_pListRemoveViewWidget->pVideoListBox);
+ MP_DEL_OBJ(g_pListRemoveViewWidget->pRemoveViewBaselayout);
+ MP_DEL_TIMER(g_pListRemoveViewWidget->pSelectedInfoLayoutTimer);
+ free(g_pListRemoveViewWidget);
+ g_pListRemoveViewWidget = NULL;
+ }
+}
+
+/**
+ *
+ */
+static void __mp_remove_view_reset(void)
+{
+ VideoLogInfo("");
+
+ if (g_pListRemoveViewHandle) {
+ mp_util_db_set_update_fun(g_pListRemoveViewHandle->euLev, NULL);
+ mp_util_db_set_backup_fun(g_pListRemoveViewHandle->euLev, NULL);
+ evas_object_smart_callback_del(g_pListRemoveViewHandle->
+ pNaviFrameHandle,
+ "transition,finished",
+ mp_remove_view_naviframe_transition_effect_cb);
+ evas_object_smart_callback_del((Evas_Object *)
+ mp_util_get_main_window_handle(),
+ "wm,rotation,changed",
+ __mp_remove_view_rotate_cb);
+ __mp_remove_view_free_selected_list();
+ g_pListRemoveViewHandle->pObjVideosList = NULL;
+ MP_DEL_ITC(g_pListRemoveViewHandle->pGenListItc);
+ MP_DEL_GRID_ITC(g_pListRemoveViewHandle->pGenGridItc_1);
+ MP_DEL_GRID_ITC(g_pListRemoveViewHandle->pGenGridItc_2);
+ MP_FREE_STRING(g_pListRemoveViewHandle->
+ pCheckedItemsEditListForRemoved);
+ g_pListRemoveViewHandle->pChangeViewUserCbFunc = NULL;
+ g_pListRemoveViewHandle->pChangeViewUpdateFunc = NULL;
+ MP_FREE_STRING(g_pListRemoveViewHandle->pFolderPath);
+
+ free(g_pListRemoveViewHandle);
+ g_pListRemoveViewHandle = NULL;
+ }
+
+ if (g_pListRemoveViewWidget) {
+
+ MP_DEL_OBJ(g_pListRemoveViewWidget->pSelectallbtn);
+ MP_DEL_OBJ(g_pListRemoveViewWidget->pCancelbtn);
+ MP_DEL_OBJ(g_pListRemoveViewWidget->pSavebtn);
+ g_pListRemoveViewWidget->pSelAllLayout = NULL;
+ if (g_pListRemoveViewWidget->pVideoListBox) {
+ g_pListRemoveViewWidget->pVideoListBox = NULL;
+ }
+
+ if (g_pListRemoveViewWidget->pRemoveViewBaselayout) {
+ g_pListRemoveViewWidget->pRemoveViewBaselayout = NULL;
+ }
+
+ MP_DEL_TIMER(g_pListRemoveViewWidget->pSelectedInfoLayoutTimer);
+
+ free(g_pListRemoveViewWidget);
+ g_pListRemoveViewWidget = NULL;
+ }
+}
+
+/**
+ *
+ */
+void mp_remove_view_reset_value(void)
+{
+ VideoLogInfo("");
+
+ if (!g_pListRemoveViewHandle) {
+ VideoLogError("[ERR] g_pListRemoveViewHandle is not existed.");
+ return;
+ }
+
+ g_pListRemoveViewHandle->pNaviFrameHandle = NULL;
+ g_pListRemoveViewHandle->pNaviFrameItem = NULL;
+ g_pListRemoveViewHandle->pChangeViewUserCbFunc = NULL;
+
+ g_pListRemoveViewHandle->bSelectallCheckBoxState = FALSE;
+ g_pListRemoveViewHandle->nSelectCounterForEditList = 0;
+ g_pListRemoveViewHandle->nSortType = MP_MEDIA_SORT_BY_RECENTLY_VIEWED;
+
+ if (g_pListRemoveViewHandle->pNaviFrameItem) {
+ elm_object_item_part_content_unset(g_pListRemoveViewHandle->
+ pNaviFrameItem,
+ "toolbar_more_btn");
+ elm_object_item_part_content_unset(g_pListRemoveViewHandle->
+ pNaviFrameItem, "toolbar");
+ elm_object_item_part_content_unset(g_pListRemoveViewHandle->
+ pNaviFrameItem,
+ "toolbar_button2");
+ }
+}
+
+
+////////////////////////////////////////////////////
+// Remove items. (Below functions are about the item deletion to call by button of toolbar.)
+
+/**
+ *
+ */
+void mp_remove_view_done_delete_complete(void)
+{
+ __mp_remove_view_release_selected_list();
+ if (!g_pListRemoveViewHandle) {
+ VideoLogError("[ERR] g_pListRemoveViewHandle is NULL.");
+ return;
+ }
+ g_pListRemoveViewHandle->bUpdateList = TRUE;
+ VideoLogInfo("");
+ if (g_pListRemoveViewHandle->pNaviFrameHandle) {
+ elm_naviframe_item_pop(g_pListRemoveViewHandle->pNaviFrameHandle);
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+void mp_remove_view_response_done_delete_items_popup_cb(void *pUserData,
+ Evas_Object *
+ pObject,
+ void *pEventInfo)
+{
+ if (!g_pListRemoveViewHandle) {
+ VideoLogError("[ERR] g_pListRemoveViewHandle is NULL.");
+ return;
+ }
+
+ __mp_remove_view_release_selected_list();
+ mp_util_delete_popup_handle();
+ g_pListRemoveViewHandle->bUpdateList = TRUE;
+ int nVideoListSize = 0;
+
+ if (LIST_TAB_TYPE_PERSONAL == g_pListRemoveViewHandle->eTabType) {
+ if (g_pListRemoveViewHandle->bFolderDel) {
+ nVideoListSize = mp_util_svc_get_video_folder_size();
+ } else {
+ nVideoListSize =
+ mp_util_svc_get_number_of_video_item_by_type();
+ }
+ mp_remove_ctrl_show(g_pListRemoveViewHandle->
+ pCheckedItemsEditListForRemoved,
+ nVideoListSize,
+ mp_remove_view_done_delete_complete,
+ g_pListRemoveViewHandle->bFolderDel, NULL);
+ } else {
+ VideoLogError("Can't handle this eTabType!");
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+void mp_remove_view_response_cancel_delete_items_popup_cb(void *pUserData,
+ Evas_Object *
+ pObject,
+ void *pEventInfo)
+{
+ VideoLogInfo("");
+
+ mp_util_delete_popup_handle();
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pEvas
+ * @param pObject
+ * @param pEventInfo
+ */
+void mp_remove_view_HW_mouse_back_popup_cb(void *pUserData, Evas * pEvas,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ Evas_Event_Mouse_Up *pEvent = pEventInfo;
+ if (!pEvent) {
+ VideoLogWarning("[ERR] pEvent is NULL.");
+ return;
+ }
+
+ if (pEvent->button == 3) {
+ mp_util_delete_popup_handle();
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pEvas
+ * @param pObject
+ * @param pEventInfo
+ */
+void mp_remove_view_HW_key_back_popup_cb(void *pUserData, Evas * pEvas,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ Evas_Event_Key_Down *pEvent = pEventInfo;
+ if (!pEvent) {
+ VideoLogWarning("[ERR] pEvent is NULL.");
+ return;
+ }
+ if (!g_strcmp0(pEvent->keyname, "XF86Back")) {
+ mp_util_delete_popup_handle();
+ }
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param emission
+ * @param source
+ */
+static void __mp_remove_view_run_cancel_items_cb(void *data,
+ Evas_Object * obj,
+ const char *emission,
+ const char *source)
+{
+ if (!g_pListRemoveViewHandle->pNaviFrameHandle) {
+ VideoLogError("g_pListRemoveViewHandle->pNaviFrameHandle is NULL");
+ return;
+ }
+
+ VideoLogInfo("");
+
+ elm_naviframe_item_pop(g_pListRemoveViewHandle->pNaviFrameHandle);
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param emission
+ * @param source
+ */
+static void __mp_remove_view_run_delete_items_cb(void *data,
+ Evas_Object * obj,
+ const char *emission,
+ const char *source)
+{
+ if (!g_pListRemoveViewHandle) {
+ VideoLogError("[ERR] g_pMainViewHandle is NULL.");
+ return;
+ }
+
+ VideoLogInfo("");
+
+ if (!g_pListRemoveViewHandle->pObjVideosList) {
+ VideoLogError("No exist genlist object.");
+ return;
+ }
+
+ int nSelectCounter =
+ g_pListRemoveViewHandle->nSelectCounterForEditList;
+
+ if (nSelectCounter > 0) {
+ MpListViewAsType type = mp_view_as_ctrl_get_type();
+ bool bItemFolderView = mp_folder_item_view_is_current_view();
+
+ if (type == MP_LIST_VIEW_AS_FOLDER_LIST && bItemFolderView) {
+ type = MP_LIST_VIEW_AS_THUMBNAIL_LIST;
+ }
+
+ if (g_pListRemoveViewHandle->bSelectallCheckBoxState)
+ mp_util_remove_all_videos_question_popup((void *) NULL, type,
+ mp_remove_view_response_done_delete_items_popup_cb,
+ mp_remove_view_response_cancel_delete_items_popup_cb,
+ mp_remove_view_HW_mouse_back_popup_cb,
+ mp_remove_view_HW_key_back_popup_cb);
+ else
+ mp_util_remove_question_popup((-nSelectCounter), type,
+ mp_remove_view_response_done_delete_items_popup_cb,
+ mp_remove_view_response_cancel_delete_items_popup_cb,
+ mp_remove_view_HW_mouse_back_popup_cb,
+ mp_remove_view_HW_key_back_popup_cb);
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param obj
+ * @param event_info
+ */
+static void __mp_remove_view_trans_finished_cb(void *pUserData,
+ Evas_Object * obj,
+ void *event_info)
+{
+ if (!obj) {
+ VideoLogError("[ERR] g_pListRemoveViewHandle is NULL.");
+ return;
+ }
+
+ mp_widget_ctrl_enable_navi_handle_focus(obj);
+
+ evas_object_smart_callback_del(obj, "transition,finished",
+ __mp_remove_view_trans_finished_cb);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pItem
+ * @return
+ */
+static Eina_Bool __mp_remove_view_back_btn_cb(void *pUserData,
+ Elm_Object_Item * pItem)
+{
+ if (!g_pListRemoveViewHandle) {
+ VideoLogInfo("[ERR] g_pListRemoveViewHandle is NULL.");
+ return EINA_TRUE;
+ }
+ // Register transition finished callback.
+ mp_widget_ctrl_disable_navi_handle_focus_except_item
+ (g_pListRemoveViewHandle->pNaviFrameHandle,
+ g_pListRemoveViewHandle->pNaviFrameItem);
+ evas_object_smart_callback_add(g_pListRemoveViewHandle->
+ pNaviFrameHandle, "transition,finished",
+ __mp_remove_view_trans_finished_cb,
+ NULL);
+
+ mp_remove_view_pop();
+
+ return EINA_TRUE;
+}
+
+/**
+ *
+ */
+void mp_remove_view_change_title_info(void)
+{
+ VideoLogInfo("nNumOfSelectdCount : %d",
+ g_pListRemoveViewHandle->nSelectCounterForEditList);
+
+ if (eina_list_count(g_pSelectedList) > 0) {
+ elm_object_disabled_set(g_pListRemoveViewWidget->pSavebtn,
+ EINA_FALSE);
+ } else {
+ VideoLogInfo("Unactivate delete tab.");
+ elm_object_disabled_set(g_pListRemoveViewWidget->pSavebtn,
+ EINA_TRUE);
+ }
+
+ char *szCheckingTotalItem =
+ g_strdup_printf(VIDEOS_SELECTVIEW_HEADER_PD_SELECTED,
+ eina_list_count(g_pSelectedList));
+ elm_object_item_domain_translatable_part_text_set
+ (g_pListRemoveViewHandle->pNaviFrameItem, "elm.text.title",
+ PACKAGE, szCheckingTotalItem);
+ MP_FREE_STRING(szCheckingTotalItem);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_remove_view_select_all_change_check_box_cb(void
+ *pUserData,
+ Evas_Object *
+ pObject,
+ void
+ *pEventInfo)
+{
+ if (!pObject) {
+ VideoLogError("[ERR]");
+ return;
+ }
+
+ if (!g_pListRemoveViewHandle->pObjVideosList) {
+ VideoLogError("No exist pVideoGenlist");
+ return;
+ }
+
+ int nCounter = 0;
+ int nVideoListSize = 0;
+
+ if (LIST_TAB_TYPE_PERSONAL == g_pListRemoveViewHandle->eTabType) {
+ if (g_pListRemoveViewHandle->bFolderDel) {
+ nVideoListSize = mp_util_svc_get_video_folder_size();
+ } else {
+ nVideoListSize =
+ mp_util_svc_get_number_of_video_item_by_type();
+ }
+
+ } else {
+ VideoLogError("Can't handle this eTabType!");
+ }
+
+ VideoLogInfo("nVideoListSize : %d", nVideoListSize);
+
+ if (!g_pListRemoveViewHandle->bSelectallCheckBoxState) {
+ g_pListRemoveViewHandle->bSelectallCheckBoxState = TRUE;
+ g_pListRemoveViewHandle->nSelectCounterForEditList =
+ nVideoListSize;
+ } else {
+ g_pListRemoveViewHandle->bSelectallCheckBoxState = FALSE;
+ g_pListRemoveViewHandle->nSelectCounterForEditList = 0;
+
+ VideoLogInfo("Unactivate delete tab.");
+ elm_object_disabled_set(g_pListRemoveViewWidget->pSavebtn,
+ EINA_TRUE);
+ }
+
+ for (nCounter = 0; nCounter < nVideoListSize; nCounter++) {
+ g_pListRemoveViewHandle->
+ pCheckedItemsEditListForRemoved[nCounter] =
+ g_pListRemoveViewHandle->bSelectallCheckBoxState;
+
+ char *pMediaID = NULL;
+ if (g_pListRemoveViewHandle->bFolderDel) {
+ pMediaID = mp_util_svc_get_video_folder_id(nCounter);
+ } else {
+ pMediaID = mp_util_svc_get_video_id_by_index(nCounter);
+ }
+
+
+ __mp_remove_view_update_remove_selected_file(pMediaID,
+ g_pListRemoveViewHandle->
+ bSelectallCheckBoxState);
+ }
+ mp_remove_view_change_title_info();
+
+ mp_remove_view_update_all_check_box();
+
+}
+
+/**
+ *
+ */
+void mp_remove_view_delete_select_all(void)
+{
+ VideoLogInfo("");
+
+ g_pListRemoveViewHandle->bSelectallCheckBoxState = FALSE;
+ g_pListRemoveViewHandle->nSelectCounterForEditList = 0;
+
+ mp_remove_view_change_title_info();
+}
+
+////////////////////////////////////////////////////
+
+////////////////////////////////////////////////////
+// Check box callback
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+void mp_remove_view_change_check_box_state_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ if (!pObject) {
+ VideoLogInfo("[ERR]");
+ return;
+ } else {
+ VideoLogInfo("pObject : %x", pObject);
+ }
+
+ int nVideoListSize = 0;
+ int nVideoItemIndex = 0;
+
+ if (LIST_TAB_TYPE_PERSONAL == g_pListRemoveViewHandle->eTabType) {
+ nVideoItemIndex = (int) pUserData;
+
+ if (g_pListRemoveViewHandle->bFolderDel) {
+ nVideoListSize = mp_util_svc_get_video_folder_size();
+ } else {
+ nVideoListSize =
+ mp_util_svc_get_number_of_video_item_by_type();
+ }
+
+ VideoLogInfo("Check box - Index : %d, List Size : %d",
+ nVideoItemIndex, nVideoListSize);
+ } else {
+ VideoLogError("Can't handle this eTabType!");
+ }
+
+ bool bState = elm_check_state_get(pObject);
+
+ VideoLogInfo("BEFORE : nSelectCounterForEditList : %d",
+ g_pListRemoveViewHandle->nSelectCounterForEditList);
+
+ if (bState) {
+ g_pListRemoveViewHandle->
+ pCheckedItemsEditListForRemoved[nVideoItemIndex] = TRUE;
+ g_pListRemoveViewHandle->nSelectCounterForEditList++;
+ if (nVideoListSize ==
+ g_pListRemoveViewHandle->nSelectCounterForEditList) {
+ VideoLogInfo("All check box of edit list state are true.");
+ g_pListRemoveViewHandle->bSelectallCheckBoxState = TRUE;
+ }
+ } else {
+ g_pListRemoveViewHandle->
+ pCheckedItemsEditListForRemoved[nVideoItemIndex] = FALSE;
+ if (nVideoListSize ==
+ g_pListRemoveViewHandle->nSelectCounterForEditList) {
+ VideoLogInfo("All check box of edit list state are not true.");
+ g_pListRemoveViewHandle->bSelectallCheckBoxState = FALSE;
+ }
+
+ g_pListRemoveViewHandle->nSelectCounterForEditList--;
+ if (g_pListRemoveViewHandle->nSelectCounterForEditList < 1) {
+ VideoLogInfo("Unactivate delete button.");
+ elm_object_disabled_set(g_pListRemoveViewWidget->pSavebtn,
+ EINA_TRUE);
+ }
+ }
+
+ elm_check_state_set(g_pListRemoveViewWidget->pSelectallbtn,
+ g_pListRemoveViewHandle->bSelectallCheckBoxState);
+ mp_remove_view_change_title_info();
+}
+
+//
+////////////////////////////////////////////////////
+
+////////////////////////////////////////////////
+// Genlist callback
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+void mp_remove_view_naviframe_transition_effect_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ if (!g_pListRemoveViewHandle) {
+ VideoLogError("[ERR] No exist g_pListRemoveViewHandle.");
+ return;
+ }
+
+ VideoLogInfo("");
+
+ Evas_Object *pTmpContents = NULL;
+ Elm_Object_Item *pTmpItem = NULL;
+
+ if (!g_pListRemoveViewHandle->pNaviFrameHandle) {
+ VideoLogError("[ERR] No exist naviframe handle.");
+ return;
+ }
+
+ pTmpItem =
+ elm_naviframe_top_item_get(g_pListRemoveViewHandle->
+ pNaviFrameHandle);
+ pTmpContents = elm_object_item_content_get(pTmpItem);
+ if (pTmpContents) {
+ if (pTmpContents == g_pListRemoveViewWidget->pVideoListBox) {
+ } else {
+ VideoLogInfo
+ ("It's not pListRemoveViewTabbarLayout in top screen.");
+ }
+ } else {
+ VideoLogError("[ERR] No exist naviframe top item.");
+ }
+}
+
+/**
+ *
+ */
+void mp_remove_view_double_tap_cb(void)
+{
+ if (!g_pListRemoveViewHandle->pObjVideosList) {
+ VideoLogError("pObjVideosList is not exist.");
+ return;
+ }
+
+ VideoLogInfo("");
+
+ elm_genlist_item_bring_in(elm_genlist_first_item_get
+ (g_pListRemoveViewHandle->pObjVideosList),
+ ELM_GENLIST_ITEM_SCROLLTO_TOP);
+}
+
+/**
+ *
+ * @param nVideoItemIndex
+ * @return
+ */
+char *mp_remove_view_get_duration_time(int nVideoItemIndex)
+{
+ VideoLogInfo("");
+
+ char szTmpStr[STR_LEN_MAX] = { 0, };
+ char szTmpStrDurationTime[STR_LEN_MAX] = { 0, };
+ char szTmpStrLastPlayedPos[STR_LEN_MAX] = { 0, };
+
+ unsigned int nVideoInfoDuration =
+ mp_util_svc_get_video_duration_time(nVideoItemIndex);
+ unsigned int nVideoInfoLastTime = 0;
+
+ mp_util_convert_time(nVideoInfoDuration, szTmpStrDurationTime, FALSE);
+ mp_util_convert_time(nVideoInfoLastTime, szTmpStrLastPlayedPos, TRUE);
+
+ snprintf(szTmpStr, STR_LEN_MAX, "%s/%s", szTmpStrLastPlayedPos,
+ szTmpStrDurationTime);
+
+ return strdup(szTmpStr);
+}
+
+#ifdef VS_FEATURE_LIST_VIEW
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_remove_folder_view_select_video_item_cb(void *pUserData,
+ Evas_Object *
+ pObject,
+ void *pEventInfo)
+{
+ if (!g_pListRemoveViewHandle->pObjVideosList) {
+ VideoLogInfo("No exist genlist object.");
+ return;
+ }
+
+ VideoLogInfo("");
+
+ int nVideoItemIndex = 0;
+
+ Elm_Object_Item *pItem = (Elm_Object_Item *) pEventInfo;
+ Elm_Object_Item *pSelectedItem =
+ elm_genlist_selected_item_get(pObject);
+
+ if (pItem) {
+ int nVideoListSize = 0;
+ if (LIST_TAB_TYPE_PERSONAL == g_pListRemoveViewHandle->eTabType) {
+ nVideoItemIndex = (int) elm_object_item_data_get(pItem);
+ VideoLogInfo("nVideoItemIndex : %d", nVideoItemIndex);
+ if (g_pListRemoveViewHandle->bFolderDel) {
+ nVideoListSize = mp_util_svc_get_video_folder_size();
+ } else {
+ nVideoListSize =
+ mp_util_svc_get_number_of_video_item_by_type();
+ }
+ } else {
+ VideoLogError("Can't handle this eTabType!");
+ }
+
+ if (g_pListRemoveViewHandle->
+ pCheckedItemsEditListForRemoved[nVideoItemIndex]) {
+ g_pListRemoveViewHandle->
+ pCheckedItemsEditListForRemoved[nVideoItemIndex] = FALSE;
+ if (nVideoListSize ==
+ g_pListRemoveViewHandle->nSelectCounterForEditList) {
+ VideoLogInfo
+ ("All check box of edit list state are not true.");
+ g_pListRemoveViewHandle->bSelectallCheckBoxState = FALSE;
+ }
+
+ g_pListRemoveViewHandle->nSelectCounterForEditList--;
+ if (g_pListRemoveViewHandle->nSelectCounterForEditList < 1) {
+ VideoLogInfo("Unactivate delete button.");
+ elm_object_disabled_set(g_pListRemoveViewWidget->pSavebtn,
+ EINA_TRUE);
+ }
+ } else {
+ g_pListRemoveViewHandle->
+ pCheckedItemsEditListForRemoved[nVideoItemIndex] = TRUE;
+ g_pListRemoveViewHandle->nSelectCounterForEditList++;
+ if (nVideoListSize ==
+ g_pListRemoveViewHandle->nSelectCounterForEditList) {
+ VideoLogInfo("All check box of edit list state are true.");
+ g_pListRemoveViewHandle->bSelectallCheckBoxState = TRUE;
+ }
+ }
+
+ elm_check_state_set(g_pListRemoveViewWidget->pSelectallbtn,
+ g_pListRemoveViewHandle->
+ bSelectallCheckBoxState);
+ mp_remove_view_change_title_info();
+ Evas_Object *check_box_layout =
+ elm_object_item_part_content_get(pItem, "elm.icon.2");
+ Evas_Object *check_box =
+ elm_object_part_content_get(check_box_layout,
+ "elm.swallow.content");
+
+ if (check_box) {
+ elm_check_state_set(check_box,
+ g_pListRemoveViewHandle->
+ pCheckedItemsEditListForRemoved
+ [nVideoItemIndex]);
+ }
+
+ } else {
+ VideoLogError("[ERR]Error item number.");
+ }
+
+ if (pSelectedItem) {
+ VideoLogInfo("[INFORM] --pSelectedItem --");
+ elm_genlist_item_selected_set(pSelectedItem, EINA_FALSE);
+ }
+}
+#endif
+
+/**
+ *
+ */
+static void __mp_remove_view_release_selected_list(void)
+{
+ char *data;
+ EINA_LIST_FREE(g_pSelectedList, data);
+ g_pSelectedList = NULL;
+}
+
+/**
+ *
+ */
+static void __mp_remove_view_validate_selected_list()
+{
+ Eina_List *l = NULL;
+ char *data;
+ int nIndex;
+
+ EINA_LIST_FOREACH(g_pSelectedList, l, data) {
+ if (!mp_util_svc_check_valid_media_id
+ (data,
+ g_pListRemoveViewHandle->
+ bFolderDel ? MEDIA_TYPE_DIRECTORY : MEDIA_TYPE_FILE,
+ &nIndex)) {
+ VideoLogInfo("removing media as got deleted : %s", data);
+ g_pSelectedList = eina_list_remove(g_pSelectedList, data);
+ free(data);
+ }
+ }
+
+}
+
+/**
+ *
+ * @param path
+ * @param add
+ */
+static void __mp_remove_view_update_remove_selected_file(char *path,
+ Eina_Bool add)
+{
+ Eina_List *l = NULL;
+ char *data;
+ if (!add) {
+ EINA_LIST_FOREACH(g_pSelectedList, l, data) {
+ if (data && path && !strcmp(data, path)) {
+ g_pSelectedList = eina_list_remove(g_pSelectedList, data);
+ free(data);
+ }
+ }
+ } else {
+ bool exists = EINA_FALSE;
+ EINA_LIST_FOREACH(g_pSelectedList, l, data) {
+ if (data && path && !strcmp(data, path)) {
+ exists = EINA_TRUE;
+ break;
+ }
+ }
+
+ if (!exists) {
+ g_pSelectedList = eina_list_append(g_pSelectedList, path);
+ }
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_remove_view_select_grid_item_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ if (!g_pListRemoveViewHandle->pObjVideosList) {
+ VideoLogInfo("No exist genlist object.");
+ return;
+ }
+
+ VideoLogInfo("");
+
+ int nVideoItemIndex = 0;
+
+ Elm_Object_Item *pItem = (Elm_Object_Item *) pEventInfo;
+
+ if (pItem) {
+ int nVideoListSize = 0;
+ if (LIST_TAB_TYPE_PERSONAL == g_pListRemoveViewHandle->eTabType) {
+ nVideoItemIndex = (int) elm_object_item_data_get(pItem);
+ VideoLogInfo("nVideoItemIndex : %d", nVideoItemIndex);
+ if (g_pListRemoveViewHandle->bFolderDel) {
+ nVideoListSize = mp_util_svc_get_video_folder_size();
+ } else {
+ nVideoListSize =
+ mp_util_svc_get_number_of_video_item_by_type();
+ }
+ } else {
+ VideoLogError("Can't handle this eTabType!");
+ }
+
+ char *pMediaID = NULL;
+ if (g_pListRemoveViewHandle->bFolderDel) {
+ pMediaID = mp_util_svc_get_video_folder_id(nVideoItemIndex);
+ } else {
+ pMediaID = mp_util_svc_get_video_id_by_index(nVideoItemIndex);
+ }
+
+
+ if (g_pListRemoveViewHandle->
+ pCheckedItemsEditListForRemoved[nVideoItemIndex]) {
+ g_pListRemoveViewHandle->
+ pCheckedItemsEditListForRemoved[nVideoItemIndex] = FALSE;
+
+ if (nVideoListSize ==
+ g_pListRemoveViewHandle->nSelectCounterForEditList) {
+ VideoLogInfo
+ ("All check box of edit list state are not true.");
+ g_pListRemoveViewHandle->bSelectallCheckBoxState = FALSE;
+ }
+
+ g_pListRemoveViewHandle->nSelectCounterForEditList--;
+ if (g_pListRemoveViewHandle->nSelectCounterForEditList < 1) {
+ VideoLogInfo("Unactivate delete button.");
+ elm_object_disabled_set(g_pListRemoveViewWidget->pSavebtn,
+ EINA_TRUE);
+
+ }
+
+ __mp_remove_view_update_remove_selected_file(pMediaID,
+ EINA_FALSE);
+
+ } else {
+ g_pListRemoveViewHandle->
+ pCheckedItemsEditListForRemoved[nVideoItemIndex] = TRUE;
+ g_pListRemoveViewHandle->nSelectCounterForEditList++;
+ if (nVideoListSize ==
+ g_pListRemoveViewHandle->nSelectCounterForEditList) {
+ VideoLogInfo("All check box of edit list state are true.");
+ g_pListRemoveViewHandle->bSelectallCheckBoxState = TRUE;
+ }
+ __mp_remove_view_update_remove_selected_file(pMediaID,
+ EINA_TRUE);
+ }
+
+ elm_check_state_set(g_pListRemoveViewWidget->pSelectallbtn,
+ g_pListRemoveViewHandle->
+ bSelectallCheckBoxState);
+
+ mp_remove_view_change_title_info();
+
+ elm_gengrid_item_update(pItem);
+ //keep checkbox animation effect
+ elm_gengrid_item_selected_set(pItem, EINA_FALSE);
+ } else {
+ VideoLogError("[ERR]Error item number.");
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+char *mp_remove_view_get_label_of_video_item_cb(const void *pUserData,
+ Evas_Object * pObject,
+ const char *pPart)
+{
+ int nVideoItemIndex = (int) pUserData;
+
+ if (!strcmp(pPart, "elm.text.main.left.top")) {
+ char *szTitle;
+ szTitle = mp_util_svc_get_video_title(nVideoItemIndex);
+ char *szTitleUtf8 = elm_entry_utf8_to_markup(szTitle);
+
+ if (szTitle) {
+ free(szTitle);
+ szTitle = NULL;
+ }
+
+ return szTitleUtf8;
+ } else if (!strcmp(pPart, "elm.text.sub.left.bottom")) {
+ return mp_util_svc_get_duration_str_time(nVideoItemIndex);
+ }
+
+ return NULL;
+}
+
+#ifdef VS_FEATURE_THUMBNAIL_VIEW //
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+static char *__mp_remove_view_get_label_of_grid_item_cb(const void
+ *pUserData,
+ Evas_Object *
+ pObject,
+ const char *pPart)
+{
+ int nVideoItemIndex = (int) pUserData;
+
+ if (!strcmp(pPart, "elm.text")) {
+ char *szTitle = NULL;
+ szTitle = mp_util_svc_get_video_title(nVideoItemIndex);
+ char *szTitleUtf8 = elm_entry_utf8_to_markup(szTitle);
+
+ if (szTitle) {
+ free(szTitle);
+ szTitle = NULL;
+ }
+
+ return szTitleUtf8;
+ } else if (!strcmp(pPart, "elm.text.2")) {
+ return mp_util_svc_get_duration_str_time(nVideoItemIndex);
+ }
+
+ return NULL;
+}
+#endif
+
+/**
+ *
+ * @param nFolderItemIndex
+ * @return
+ */
+static int mp_remove_view_get_respective_video_no(int nFolderItemIndex)
+{
+ mp_util_svc_destory_video_item_list();
+ char *szPath = mp_util_svc_get_video_folder_url(nFolderItemIndex);
+ mp_util_svc_extract_video_list_from_folder(szPath,
+ mp_sort_ctrl_get_sort_state
+ (), MP_LIST_VIEW_ALL);
+ int nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+
+ MP_FREE_STRING(szPath);
+
+ return nVideoListSize;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+static char *__mp_remove_view_get_label_of_folder_cb(const void *pUserData,
+ Evas_Object * pObject,
+ const char *pPart)
+{
+ int nFolderItemIndex = (int) pUserData;
+
+ if (!strcmp(pPart, "elm.text.main.left.top")
+ || !strcmp(pPart, "elm.text")) {
+ char *szTitle = NULL;
+ char *title = NULL;
+ char buffer[10] = { 0, };
+ szTitle = mp_util_svc_get_video_folder_name(nFolderItemIndex);
+ int nVideoListSize =
+ mp_remove_view_get_respective_video_no(nFolderItemIndex);
+ snprintf(buffer, 10, "%d", nVideoListSize);
+ title = g_strconcat(szTitle, "(", buffer, ")", NULL);
+ char *szTitleUtf8 = elm_entry_utf8_to_markup(title);
+
+ MP_FREE_STRING(szTitle);
+ MP_FREE_STRING(title);
+ return szTitleUtf8;
+ }
+
+ return NULL;
+}
+
+#ifdef VS_FEATURE_THUMBNAIL_VIEW
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+static Evas_Object *__mp_remove_folder_view_get_grid_icon_cb(const void
+ *pUserData,
+ Evas_Object *
+ pObject,
+ const char
+ *pPart)
+{
+ int nFolderItemIndex = (int) pUserData;
+
+ if (!strcmp(pPart, "elm.swallow.icon")) {
+ char *pThumbIconUri =
+ mp_util_get_folder_thumbnail(nFolderItemIndex,
+ mp_sort_ctrl_get_sort_state());
+ Evas_Object *pBg = NULL;
+
+ if (!pThumbIconUri || !vp_file_exists(pThumbIconUri)) {
+ pBg = elm_image_add(pObject);
+ MP_FREE_STRING(pThumbIconUri);
+ evas_object_size_hint_aspect_set(pBg, EVAS_ASPECT_CONTROL_BOTH,
+ 1, 1);
+ elm_image_file_set(pBg, pThumbIconUri, NULL);
+ } else {
+ pBg =
+ mp_util_create_preload_image(pObject, pThumbIconUri,
+ GRID_VIDEO_ICON_WIDTH);
+ }
+
+ MP_FREE_STRING(pThumbIconUri);
+
+ return pBg;
+ } else if (!strcmp(pPart, "elm.swallow.end")) {
+ Evas_Object *pCheckBox = elm_check_add(pObject);
+ elm_object_style_set(pCheckBox, "default");
+ evas_object_propagate_events_set(pCheckBox, EINA_TRUE);
+ elm_check_state_pointer_set(pCheckBox,
+ (Eina_Bool *) &
+ (g_pListRemoveViewHandle->
+ pCheckedItemsEditListForRemoved
+ [nFolderItemIndex]));
+
+ evas_object_show(pCheckBox);
+
+ return pCheckBox;
+ }
+ return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+static Evas_Object *__mp_remove_view_get_grid_icon_cb(const void
+ *pUserData,
+ Evas_Object *
+ pObject,
+ const char *pPart)
+{
+ int nVideoItemIndex = (int) pUserData;
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VIDEO_PLAYER_IMAGE_NAME_EDJ);
+ free(path);
+ if (!strcmp(pPart, "elm.swallow.icon")) {
+ char *pThumbIconUri =
+ mp_util_svc_get_video_thumbnail(nVideoItemIndex);
+ Evas_Object *pBg = NULL;
+
+ if (!pThumbIconUri || !vp_file_exists(pThumbIconUri)) {
+ pBg = elm_image_add(pObject);
+ MP_FREE_STRING(pThumbIconUri);
+ evas_object_size_hint_aspect_set(pBg, EVAS_ASPECT_CONTROL_BOTH,
+ 1, 1);
+ elm_image_file_set(pBg, pThumbIconUri, NULL);
+ } else {
+ pBg =
+ mp_util_create_preload_image(pObject, pThumbIconUri,
+ GRID_VIDEO_ICON_WIDTH);
+ }
+
+ MP_FREE_STRING(pThumbIconUri);
+
+ return pBg;
+ } else if (!strcmp(pPart, "elm.progressbar.icon")) {
+ return NULL;
+ } else if (!strcmp(pPart, "elm.lock.icon")) {
+ char *pVideoFile = mp_util_svc_get_video_url(nVideoItemIndex);
+ bool bRet =
+ mp_util_check_video_personal_status((const char *) pVideoFile);
+ MP_FREE_STRING(pVideoFile);
+ if (bRet) {
+ Evas_Object *pLockIcon = elm_image_add(pObject);
+ elm_image_file_set(pLockIcon, edj_path,
+ VIDEO_LIST_VIEW_ICON_PERSONAL_LOCK);
+ evas_object_size_hint_align_set(pLockIcon, EVAS_HINT_FILL,
+ EVAS_HINT_FILL);
+ evas_object_size_hint_weight_set(pLockIcon, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_show(pLockIcon);
+ return pLockIcon;
+ } else {
+ return NULL;
+ }
+ } else if (!strcmp(pPart, "elm.dropbox.icon")) {
+ bool bRet = mp_util_svc_is_cloud_storage(nVideoItemIndex);
+ if (bRet) {
+ Evas_Object *pDropboxIcon = elm_image_add(pObject);
+ elm_image_file_set(pDropboxIcon, edj_path,
+ VIDEO_LIST_VIEW_ICON_DROPBOX);
+ evas_object_size_hint_align_set(pDropboxIcon, EVAS_HINT_FILL,
+ EVAS_HINT_FILL);
+ evas_object_size_hint_weight_set(pDropboxIcon,
+ EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_show(pDropboxIcon);
+ return pDropboxIcon;
+ } else {
+ return NULL;
+ }
+ } else if (!strcmp(pPart, "elm.swallow.end")) {
+ Evas_Object *pCheckBox = elm_check_add(pObject);
+ elm_object_style_set(pCheckBox, "grid");
+ evas_object_propagate_events_set(pCheckBox, EINA_TRUE);
+ elm_check_state_pointer_set(pCheckBox,
+ (Eina_Bool *) &
+ (g_pListRemoveViewHandle->
+ pCheckedItemsEditListForRemoved
+ [nVideoItemIndex]));
+
+ evas_object_show(pCheckBox);
+
+ return pCheckBox;
+ }
+ return NULL;
+}
+#endif
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+Evas_Object *mp_remove_view_get_icon_of_video_item_cb(const void
+ *pUserData,
+ Evas_Object *
+ pObject,
+ const char *pPart)
+{
+
+ int nVideoItemIndex = (int) pUserData;
+ Evas_Object *pLayout = NULL;
+
+ if (!pPart || !pObject) {
+ return NULL;
+ }
+
+ if (!strcmp(pPart, "elm.icon.1")) {
+ char *pThumbIconUri =
+ mp_util_svc_get_video_thumbnail(nVideoItemIndex);
+ Evas_Object *pBg = NULL;
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VIDEO_CUSTOM_THEME);
+ free(path);
+ pLayout = elm_layout_add(pObject);
+ elm_layout_file_set(pLayout, edj_path,
+ "listview.thumbnail.layout");
+
+ if (!pThumbIconUri || !vp_file_exists(pThumbIconUri)) {
+ MP_FREE_STRING(pThumbIconUri);
+ }
+
+ pBg =
+ mp_util_create_preload_image(pLayout, pThumbIconUri,
+ VIDEO_ICON_WIDTH);
+ elm_layout_content_set(pLayout, "elm.thumbnail.icon", pBg);
+
+ if (pBg)
+ evas_object_show(pBg);
+
+ MP_FREE_STRING(pThumbIconUri);
+
+ if (!mp_util_create_video_sub_icon(pLayout, nVideoItemIndex)) {
+ VideoLogWarning("Local File or Create sub icon is failed.",
+ nVideoItemIndex);
+ }
+
+ return pLayout;
+ } else if (!strcmp(pPart, "elm.icon.2")) {
+ pLayout = elm_layout_add(pObject);
+
+ Evas_Object *pCheckBox = elm_check_add(pLayout);
+
+ elm_layout_theme_set(pLayout, "layout", "list/C/type.2",
+ "default");
+
+ elm_object_style_set(pCheckBox, "default");
+ evas_object_propagate_events_set(pCheckBox, EINA_FALSE);
+ evas_object_smart_callback_add(pCheckBox, "changed",
+ mp_remove_view_change_check_box_state_cb,
+ pUserData);
+
+ elm_check_state_pointer_set(pCheckBox,
+ (Eina_Bool *) &
+ (g_pListRemoveViewHandle->
+ pCheckedItemsEditListForRemoved
+ [nVideoItemIndex]));
+ elm_layout_content_set(pLayout, "elm.swallow.content", pCheckBox);
+
+ evas_object_show(pCheckBox);
+
+ return pLayout;
+ }
+
+ return NULL;
+}
+
+/**
+ *
+ * @return
+ */
+int mp_remove_view_get_sort_type(void)
+{
+ switch (mp_sort_ctrl_get_sort_state()) {
+
+ case MP_LIST_SORT_BY_RECENTLY_ADDED:
+ g_pListRemoveViewHandle->nSortType =
+ MP_MEDIA_SORT_BY_RECENTLY_ADDED;
+ break;
+
+ case MP_LIST_SORT_BY_NAME:
+ g_pListRemoveViewHandle->nSortType = MP_MEDIA_SORT_BY_NAME;
+ break;
+
+ }
+
+ return g_pListRemoveViewHandle->nSortType;
+}
+
+/**
+ *
+ * @param pObjVideosList
+ */
+void mp_remove_view_append_video_items(void *pObjVideosList)
+{
+ if (!g_pListRemoveViewHandle) {
+ VideoLogInfo("invalid handle");
+ return;
+ }
+ int nIndex = 0;
+ int nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+ MP_DEL_ITC(g_pListRemoveViewHandle->pGenListItc);
+ g_pListRemoveViewHandle->pGenListItc = elm_genlist_item_class_new();
+ g_pListRemoveViewHandle->pGenListItc->item_style = "2line.top"; //"video/edit_list";
+ g_pListRemoveViewHandle->pGenListItc->func.text_get =
+ (void *) mp_remove_view_get_label_of_video_item_cb;
+ g_pListRemoveViewHandle->pGenListItc->func.content_get =
+ (void *) mp_remove_view_get_icon_of_video_item_cb;
+ g_pListRemoveViewHandle->pGenListItc->func.state_get = NULL;
+ g_pListRemoveViewHandle->pGenListItc->func.del = NULL;
+
+ for (nIndex = 0; nIndex < nVideoListSize; nIndex++) {
+ elm_genlist_item_append(pObjVideosList,
+ g_pListRemoveViewHandle->pGenListItc,
+ (void *) nIndex, NULL,
+ ELM_GENLIST_ITEM_NONE, NULL, NULL);
+ }
+}
+
+#ifdef VS_FEATURE_THUMBNAIL_VIEW //
+
+/**
+ *
+ * @param pObjVideosList
+ * @param nGenItemIndex
+ */
+static void __mp_remove_view_append_grid_items(void *pObjVideosList,
+ int nGenItemIndex)
+{
+ if (!g_pListRemoveViewHandle) {
+ VideoLogInfo("invalid handle");
+ return;
+ }
+ MP_DEL_GRID_ITC(g_pListRemoveViewHandle->pGenGridItc_1);
+ MP_DEL_GRID_ITC(g_pListRemoveViewHandle->pGenGridItc_2);
+ g_pListRemoveViewHandle->pGenGridItc_1 = elm_gengrid_item_class_new();
+ g_pListRemoveViewHandle->pGenGridItc_1->item_style =
+ "video/album_grid";
+ g_pListRemoveViewHandle->pGenGridItc_1->func.text_get =
+ (void *) __mp_remove_view_get_label_of_grid_item_cb;
+ g_pListRemoveViewHandle->pGenGridItc_1->func.content_get =
+ (void *) __mp_remove_view_get_grid_icon_cb;
+ g_pListRemoveViewHandle->pGenGridItc_1->func.state_get = NULL;
+ g_pListRemoveViewHandle->pGenGridItc_1->func.del = NULL;
+
+ int nCount =
+ (mp_rotate_ctrl_check_landspace_by_win
+ ((Evas_Object *) mp_util_get_main_window_handle()) ?
+ VP_GENLIST_THUMB_LANDSPACE_COUNT :
+ VP_GENLIST_THUMB_PORTRAIT_COUNT);
+ int nIndex = nGenItemIndex * nCount;
+ int nMaxIndex = nIndex + nCount;
+ int nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+
+ Elm_Object_Item *gridItem = NULL;
+ for (; (nIndex < nMaxIndex) && (nIndex < nVideoListSize); nIndex++) {
+ gridItem =
+ elm_gengrid_item_append(pObjVideosList,
+ g_pListRemoveViewHandle->pGenGridItc_1,
+ (void *) nIndex,
+ __mp_remove_view_select_grid_item_cb,
+ (void *) nIndex);
+ elm_gengrid_item_select_mode_set(gridItem,
+ ELM_OBJECT_SELECT_MODE_ALWAYS);
+ elm_object_item_data_set(gridItem, (void *) nIndex);
+ }
+}
+
+/**
+ *
+ * @param parent
+ * @param nWidth
+ * @param nHeight
+ * @return
+ */
+static Evas_Object *__mp_remove_view_create_gengrid(Evas_Object * parent,
+ int nWidth,
+ int nHeight)
+{
+ Evas_Object *pGengrid = NULL;
+ pGengrid = elm_gengrid_add(parent);
+ if (!pGengrid) {
+ VideoLogError("pVideoGrid does not exist.");
+ return NULL;
+ }
+ evas_object_size_hint_weight_set(pGengrid, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(pGengrid, EVAS_HINT_FILL,
+ EVAS_HINT_FILL);
+ elm_gengrid_item_size_set(pGengrid, nWidth, nHeight);
+ elm_gengrid_align_set(pGengrid, 0.0, 0.0);
+ elm_gengrid_horizontal_set(pGengrid, EINA_TRUE);
+
+ return pGengrid;
+}
+
+/**
+ *
+ * @param height
+ * @param width
+ */
+static void mp_remove_view_get_icon_dimensions(int *height, int *width)
+{
+ int winHeight = 0;
+ int winWidth = 0;
+ elm_win_screen_size_get(mp_util_get_main_window_handle(), NULL, NULL,
+ &winWidth, &winHeight);
+
+ bool bLandscape =
+ mp_rotate_ctrl_check_landspace_by_win((Evas_Object *)
+ mp_util_get_main_window_handle
+ ());
+ if (bLandscape) {
+ *width = winHeight / VP_GENLIST_THUMB_LANDSPACE_COUNT;
+ } else {
+ *width = winWidth / VP_GENLIST_THUMB_PORTRAIT_COUNT;
+ }
+ *height = VP_ALBUM_THUMB_ICON_HEIGHT * MP_SCALE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+static Evas_Object *__mp_remove_view_get_icon_of_grid_cb(const void
+ *pUserData,
+ Evas_Object *
+ pObject,
+ const char *pPart)
+{
+ if (!g_pListRemoveViewHandle || !pObject) {
+ VideoLogError("g_pMainViewWidgetOfShareList is NULL");
+ return NULL;
+ }
+
+ int nGenItemIndex = (int) pUserData;
+ int nHeight = 0;
+ int nWidth = 0;
+ mp_remove_view_get_icon_dimensions(&nHeight, &nWidth);
+
+ Evas_Object *pGengrid =
+ __mp_remove_view_create_gengrid(pObject, nWidth, nHeight);
+ __mp_remove_view_append_grid_items(pGengrid, nGenItemIndex);
+
+ return pGengrid;
+}
+
+/**
+ *
+ * @param nVideoItemIndex
+ * @return
+ */
+int mp_remove_view_thumbnail_to_genlist_index(int nVideoItemIndex)
+{
+ if (nVideoItemIndex < 0) {
+ VideoLogDebug("invalid nVideoItemIndex");
+ return 0;
+ }
+ int nGenlistIndex = 0;
+ int nItemCount =
+ (mp_rotate_ctrl_check_landspace_by_win
+ ((Evas_Object *) mp_util_get_main_window_handle()) ?
+ VP_GENLIST_THUMB_LANDSPACE_COUNT :
+ VP_GENLIST_THUMB_PORTRAIT_COUNT);
+ nGenlistIndex = nVideoItemIndex / nItemCount;
+ return nGenlistIndex;
+}
+
+/**
+ *
+ * @param pGenlist
+ * @return
+ */
+static bool __mp_remove_view_append_grid_layout(void *pGenlist)
+{
+ if (!pGenlist || !g_pListRemoveViewHandle) {
+ VideoLogError("error handle.");
+ return FALSE;
+ }
+ int nIndex = 0;
+ int nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+ if (nVideoListSize <= 0) {
+ VideoLogWarning("nVideoListSize = %d", nVideoListSize);
+ return FALSE;
+ } else
+ VideoLogWarning("nVideoListSize = %d", nVideoListSize);
+
+ MP_DEL_ITC(g_pListRemoveViewHandle->pGenListItc);
+ g_pListRemoveViewHandle->pGenListItc = elm_genlist_item_class_new();
+ g_pListRemoveViewHandle->pGenListItc->item_style =
+ "video/1icon.thumbnail";
+ g_pListRemoveViewHandle->pGenListItc->func.text_get = NULL;
+ g_pListRemoveViewHandle->pGenListItc->func.content_get =
+ (void *) __mp_remove_view_get_icon_of_grid_cb;
+ g_pListRemoveViewHandle->pGenListItc->func.state_get = NULL;
+ g_pListRemoveViewHandle->pGenListItc->func.del = NULL;
+ g_pListRemoveViewHandle->pGenListItc->decorate_item_style = NULL;
+
+ MP_DEL_ITC(g_pListRemoveViewHandle->pGenListLandscapeItc);
+ g_pListRemoveViewHandle->pGenListLandscapeItc =
+ elm_genlist_item_class_new();
+ g_pListRemoveViewHandle->pGenListLandscapeItc->item_style =
+ "video/1icon.thumbnail.landscape";
+ g_pListRemoveViewHandle->pGenListLandscapeItc->func.text_get = NULL;
+ g_pListRemoveViewHandle->pGenListLandscapeItc->func.content_get =
+ (void *) __mp_remove_view_get_icon_of_grid_cb;
+ g_pListRemoveViewHandle->pGenListLandscapeItc->func.state_get = NULL;
+ g_pListRemoveViewHandle->pGenListLandscapeItc->func.del = NULL;
+ g_pListRemoveViewHandle->pGenListLandscapeItc->decorate_item_style =
+ NULL;
+
+ int nGenlistRow = 0;
+ nGenlistRow =
+ mp_remove_view_thumbnail_to_genlist_index(nVideoListSize - 1);
+
+ if (mp_rotate_ctrl_check_landspace_by_win
+ ((Evas_Object *) mp_util_get_main_window_handle())) {
+ for (nIndex = 0; nIndex <= nGenlistRow; nIndex++) {
+ elm_genlist_item_append(pGenlist,
+ g_pListRemoveViewHandle->
+ pGenListLandscapeItc, (void *) nIndex,
+ NULL, ELM_GENLIST_ITEM_NONE, NULL,
+ NULL);
+ }
+ } else {
+ for (nIndex = 0; nIndex <= nGenlistRow; nIndex++) {
+ elm_genlist_item_append(pGenlist,
+ g_pListRemoveViewHandle->pGenListItc,
+ (void *) nIndex, NULL,
+ ELM_GENLIST_ITEM_NONE, NULL, NULL);
+ }
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __mp_remove_view_rotate_cb(void *data, Evas_Object * obj,
+ void *event_info)
+{
+ if (!g_pListRemoveViewHandle) {
+ VideoLogError("__mp_remove_view_rotate_cb IS null");
+ return;
+ }
+ bool bLandscape =
+ mp_rotate_ctrl_check_landspace_by_win((Evas_Object *)
+ mp_util_get_main_window_handle
+ ());
+ if (bLandscape) {
+ VideoLogInfo("Landscape mode");
+ g_pListRemoveViewHandle->bLandscape = true;
+ } else {
+ VideoLogInfo("Portrait mode");
+ g_pListRemoveViewHandle->bLandscape = false;
+ }
+ g_pListRemoveViewHandle->update_view_data = true;
+ if (!g_pListRemoveViewHandle->bFolderDel)
+ __mp_remove_view_arrange_video_list(g_pListRemoveViewHandle->
+ pObjVideosList,
+ LIST_TAB_TYPE_PERSONAL, TRUE);
+ else
+ __mp_remove_view_arrange_folder_list(g_pListRemoveViewHandle->
+ pObjVideosList,
+ LIST_TAB_TYPE_PERSONAL, TRUE);
+ mp_remove_view_change_title_info();
+ g_pListRemoveViewHandle->update_view_data = false;
+}
+
+/**
+ *
+ * @param pObjVideosList
+ * @param nGenItemIndex
+ */
+static void __mp_remove_folder_view_append_grid_items(void *pObjVideosList,
+ int nGenItemIndex)
+{
+ if (!g_pListRemoveViewHandle) {
+ VideoLogInfo("invalid handle");
+ return;
+ }
+ MP_DEL_GRID_ITC(g_pListRemoveViewHandle->pGenGridItc_1);
+ g_pListRemoveViewHandle->pGenGridItc_1 = elm_gengrid_item_class_new();
+ g_pListRemoveViewHandle->pGenGridItc_1->item_style =
+ "video/album_grid";
+ g_pListRemoveViewHandle->pGenGridItc_1->func.text_get =
+ (void *) __mp_remove_view_get_label_of_folder_cb;
+ g_pListRemoveViewHandle->pGenGridItc_1->func.content_get =
+ (void *) __mp_remove_folder_view_get_grid_icon_cb;
+ g_pListRemoveViewHandle->pGenGridItc_1->func.state_get = NULL;
+ g_pListRemoveViewHandle->pGenGridItc_1->func.del = NULL;
+
+ int nCount =
+ (mp_rotate_ctrl_check_landspace_by_win
+ ((Evas_Object *) mp_util_get_main_window_handle()) ?
+ VP_GENLIST_THUMB_LANDSPACE_COUNT :
+ VP_GENLIST_THUMB_PORTRAIT_COUNT);
+ int nIndex = nGenItemIndex * nCount;
+ int nMaxIndex = nIndex + nCount;
+ int nFolderListSize = mp_util_svc_get_video_folder_size();
+
+ Elm_Object_Item *gridItem = NULL;
+ for (; (nIndex < nMaxIndex) && (nIndex < nFolderListSize); nIndex++) {
+ gridItem =
+ elm_gengrid_item_append(pObjVideosList,
+ g_pListRemoveViewHandle->pGenGridItc_1,
+ (void *) nIndex,
+ __mp_remove_view_select_grid_item_cb,
+ (void *) nIndex);
+ elm_gengrid_item_select_mode_set(gridItem,
+ ELM_OBJECT_SELECT_MODE_ALWAYS);
+ elm_object_item_data_set(gridItem, (void *) nIndex);
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+static Evas_Object *__mp_remove_folder_view_get_icon_of_grid_cb(const void
+ *pUserData,
+ Evas_Object
+ *pObject,
+ const char
+ *pPart)
+{
+ if (!g_pListRemoveViewHandle || !pObject) {
+ VideoLogError("g_pMainViewWidgetOfShareList is NULL");
+ return NULL;
+ }
+
+ int nGenItemIndex = (int) pUserData;
+ int nHeight = 0;
+ int nWidth = 0;
+ mp_remove_view_get_icon_dimensions(&nHeight, &nWidth);
+
+ Evas_Object *pGengrid =
+ __mp_remove_view_create_gengrid(pObject, nWidth, nHeight);
+ __mp_remove_folder_view_append_grid_items(pGengrid, nGenItemIndex);
+
+ return pGengrid;
+}
+
+static bool __mp_remove_view_append_folder_grid_layout(void *pGenlist)
+{
+ if (!pGenlist || !g_pListRemoveViewHandle) {
+ VideoLogError("error handle.");
+ return FALSE;
+ }
+ int nIndex = 0;
+ int nFolderListSize = mp_util_svc_get_video_folder_size();
+ if (nFolderListSize <= 0) {
+ VideoLogWarning("nFolderListSize = %d", nFolderListSize);
+ return FALSE;
+ } else
+ VideoLogWarning("nFolderListSize = %d", nFolderListSize);
+
+ MP_DEL_ITC(g_pListRemoveViewHandle->pGenListItc);
+ g_pListRemoveViewHandle->pGenListItc = elm_genlist_item_class_new();
+ g_pListRemoveViewHandle->pGenListItc->item_style =
+ "video/1icon.thumbnail";
+ g_pListRemoveViewHandle->pGenListItc->func.text_get = NULL;
+ g_pListRemoveViewHandle->pGenListItc->func.content_get =
+ (void *) __mp_remove_folder_view_get_icon_of_grid_cb;
+ g_pListRemoveViewHandle->pGenListItc->func.state_get = NULL;
+ g_pListRemoveViewHandle->pGenListItc->func.del = NULL;
+ g_pListRemoveViewHandle->pGenListItc->decorate_item_style = NULL;
+
+ MP_DEL_ITC(g_pListRemoveViewHandle->pGenListLandscapeItc);
+ g_pListRemoveViewHandle->pGenListLandscapeItc =
+ elm_genlist_item_class_new();
+ g_pListRemoveViewHandle->pGenListLandscapeItc->item_style =
+ "video/1icon.thumbnail.landscape";
+ g_pListRemoveViewHandle->pGenListLandscapeItc->func.text_get = NULL;
+ g_pListRemoveViewHandle->pGenListLandscapeItc->func.content_get =
+ (void *) __mp_remove_folder_view_get_icon_of_grid_cb;
+ g_pListRemoveViewHandle->pGenListLandscapeItc->func.state_get = NULL;
+ g_pListRemoveViewHandle->pGenListLandscapeItc->func.del = NULL;
+ g_pListRemoveViewHandle->pGenListLandscapeItc->decorate_item_style =
+ NULL;
+
+ int nGenlistRow = 0;
+ nGenlistRow =
+ mp_remove_view_thumbnail_to_genlist_index(nFolderListSize - 1);
+
+ if (mp_rotate_ctrl_check_landspace_by_win
+ ((Evas_Object *) mp_util_get_main_window_handle())) {
+ for (nIndex = 0; nIndex <= nGenlistRow; nIndex++) {
+ elm_genlist_item_append(pGenlist,
+ g_pListRemoveViewHandle->
+ pGenListLandscapeItc, (void *) nIndex,
+ NULL, ELM_GENLIST_ITEM_NONE, NULL,
+ NULL);
+ }
+ } else {
+ for (nIndex = 0; nIndex <= nGenlistRow; nIndex++) {
+ elm_genlist_item_append(pGenlist,
+ g_pListRemoveViewHandle->pGenListItc,
+ (void *) nIndex, NULL,
+ ELM_GENLIST_ITEM_NONE, NULL, NULL);
+ }
+ }
+
+ return TRUE;
+}
+#endif
+
+/**
+ *
+ * @param nTotalSize
+ */
+void mp_remove_view_set_value(int nTotalSize)
+{
+ VideoLogInfo("");
+
+ if (g_pListRemoveViewHandle->pCheckedItemsEditListForRemoved) {
+ free(g_pListRemoveViewHandle->pCheckedItemsEditListForRemoved);
+ g_pListRemoveViewHandle->pCheckedItemsEditListForRemoved = NULL;
+ }
+ if (nTotalSize > 0) {
+ g_pListRemoveViewHandle->pCheckedItemsEditListForRemoved =
+ (bool *) malloc(sizeof(bool) * nTotalSize);
+ memset(g_pListRemoveViewHandle->pCheckedItemsEditListForRemoved, 0,
+ sizeof(bool) * nTotalSize);
+ }
+
+ g_pListRemoveViewHandle->bSelectallCheckBoxState = FALSE;
+}
+
+/**
+ *
+ * @param pObjVideosList
+ * @param eTabType
+ * @param bNeedSvc
+ * @return
+ */
+static bool __mp_remove_view_arrange_folder_list(void *pObjVideosList,
+ MpVideoListTabType
+ eTabType, bool bNeedSvc)
+{
+ if (!g_pListRemoveViewWidget || !g_pListRemoveViewHandle) {
+ VideoLogError("No exist g_pRemoveListViewWidget.");
+ return FALSE;
+ }
+
+ if (!pObjVideosList) {
+ VideoLogError("No exist genlist object.");
+ return FALSE;
+ }
+ int nFolderListSize = 0;
+
+ mp_util_svc_destory_video_folder_list();
+ mp_util_svc_extract_video_folder_list_by_type
+ (mp_sort_ctrl_get_sort_state(), MP_LIST_VIEW_PHONE);
+ nFolderListSize = mp_util_svc_get_video_folder_size();
+
+ if (elm_check_state_get(g_pListRemoveViewWidget->pSelectallbtn)) {
+ g_pListRemoveViewHandle->nSelectCounterForEditList =
+ nFolderListSize;
+ }
+ if (!g_pListRemoveViewHandle->update_view_data) {
+ if (bNeedSvc) {
+ __mp_remove_view_update_selected_video_list();
+ } else {
+ mp_remove_view_set_value(nFolderListSize);
+ }
+ }
+
+
+ if (LIST_TAB_TYPE_PERSONAL == eTabType) {
+ VideoLogInfo("nFolderListSize : %d", nFolderListSize);
+
+ elm_genlist_clear(pObjVideosList);
+
+ if (nFolderListSize > 0) {
+ __mp_remove_view_append_folder_grid_layout(pObjVideosList);
+ } else {
+ elm_naviframe_item_pop(g_pListRemoveViewHandle->
+ pNaviFrameHandle);
+ return FALSE;
+ }
+ } else {
+ VideoLogError("invalid Tabbar type!");
+ }
+
+ mp_remove_view_change_title_info();
+
+ elm_genlist_decorate_mode_set(pObjVideosList, EINA_TRUE);
+
+ evas_object_show(pObjVideosList);
+ return TRUE;
+}
+
+/**
+ *
+ * @param pObjVideosList
+ * @param eTabType
+ * @param bNeedSvc
+ * @return
+ */
+static bool __mp_remove_view_arrange_video_list(void *pObjVideosList,
+ MpVideoListTabType
+ eTabType, bool bNeedSvc)
+{
+ if (!g_pListRemoveViewWidget || !g_pListRemoveViewHandle) {
+ VideoLogError("No exist g_pRemoveListViewWidget.");
+ return FALSE;
+ }
+
+ if (!pObjVideosList) {
+ VideoLogError("No exist genlist object.");
+ return FALSE;
+ }
+
+ int nVideoListSize = 0;
+
+ if (LIST_TAB_TYPE_PERSONAL == eTabType) {
+ int nSortType = mp_remove_view_get_sort_type();
+ int nViewType = mp_view_as_ctrl_get_type();
+ if ((nViewType == MP_LIST_VIEW_AS_FOLDER_LIST)
+ && g_pListRemoveViewHandle->pFolderPath) {
+ if (g_pListRemoveViewHandle->pFolderPath) {
+ VideoSecureLogInfo("szFolderPath : %s",
+ g_pListRemoveViewHandle->pFolderPath);
+ if (vp_file_exists(g_pListRemoveViewHandle->pFolderPath)) {
+ //update video-list
+ mp_util_svc_destory_video_item_list();
+ mp_util_svc_extract_video_list_from_folder
+ (g_pListRemoveViewHandle->pFolderPath, nSortType,
+ MP_LIST_VIEW_PHONE);
+ if (!g_pListRemoveViewHandle->update_view_data) {
+ if (bNeedSvc) {
+ __mp_remove_view_update_selected_video_list();
+ } else {
+ nVideoListSize =
+ mp_util_svc_get_number_of_video_item_by_type
+ ();
+ mp_remove_view_set_value(nVideoListSize);
+ }
+ }
+ } else {
+ elm_naviframe_item_pop(g_pListRemoveViewHandle->
+ pNaviFrameHandle);
+ return FALSE;
+ }
+ }
+ } else {
+ mp_util_svc_destory_video_list();
+ mp_util_svc_extract_video_list_by_item_type(nSortType,
+ MP_LIST_VIEW_PHONE);
+ if (!g_pListRemoveViewHandle->update_view_data) {
+ if (bNeedSvc) {
+ __mp_remove_view_update_selected_video_list();
+ } else {
+ nVideoListSize =
+ mp_util_svc_get_number_of_video_item_by_type();
+ mp_remove_view_set_value(nVideoListSize);
+ }
+ }
+ }
+
+ nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+ VideoLogInfo("nVideoListSize : %d", nVideoListSize);
+ if (elm_check_state_get(g_pListRemoveViewWidget->pSelectallbtn)) {
+ g_pListRemoveViewHandle->nSelectCounterForEditList =
+ nVideoListSize;
+ }
+
+ if (nVideoListSize > 0) {
+#ifdef VS_FEATURE_THUMBNAIL_VIEW //
+ if (g_pListRemoveViewHandle->bThumbnailView) {
+ elm_genlist_clear(pObjVideosList);
+ __mp_remove_view_append_grid_layout(pObjVideosList);
+ } else
+#endif
+ {
+ elm_genlist_clear(pObjVideosList);
+ mp_remove_view_append_video_items(pObjVideosList);
+ }
+ } else {
+ elm_naviframe_item_pop(g_pListRemoveViewHandle->
+ pNaviFrameHandle);
+ return FALSE;
+ }
+ } else {
+ VideoLogError("invalid Tabbar type!");
+ }
+#ifdef VS_FEATURE_THUMBNAIL_VIEW_TODO //
+ if (!g_pListRemoveViewHandle->bThumbnailView) {
+ elm_genlist_decorate_mode_set(pObjVideosList, EINA_TRUE);
+ }
+#endif //
+ evas_object_show(pObjVideosList);
+ return TRUE;
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+Evas_Object *mp_remove_view_init_internal_layout(void *pParent)
+{
+ if (!pParent) {
+ VideoLogError("[ERR]");
+ return NULL;
+ }
+
+ VideoLogInfo("");
+
+ if (g_pListRemoveViewWidget->pRemoveViewBaselayout) {
+ evas_object_del(g_pListRemoveViewWidget->pRemoveViewBaselayout);
+ g_pListRemoveViewWidget->pRemoveViewBaselayout = NULL;
+ }
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VIDEO_PLAYER_REMOVE_LIST_EDJ);
+ free(path);
+ g_pListRemoveViewWidget->pRemoveViewBaselayout =
+ elm_layout_add(pParent);
+ elm_layout_file_set(g_pListRemoveViewWidget->pRemoveViewBaselayout,
+ edj_path, REMOVE_LIST_EDJ_GROUP);
+ evas_object_size_hint_weight_set(g_pListRemoveViewWidget->
+ pRemoveViewBaselayout,
+ EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(g_pListRemoveViewWidget->
+ pRemoveViewBaselayout, EVAS_HINT_FILL,
+ EVAS_HINT_FILL);
+
+ return g_pListRemoveViewWidget->pRemoveViewBaselayout;
+}
+
+/**
+ *
+ * @param nSelectedSize
+ * @return
+ */
+static bool __mp_remove_view_get_selected_video_list(int nSelectedSize)
+{
+ if (!g_pListRemoveViewHandle || !g_pListRemoveViewWidget) {
+ VideoLogError("Main handles of list view are not existed.");
+ return FALSE;
+ }
+
+ int nVideoListSize = 0;
+
+ if (LIST_TAB_TYPE_PERSONAL != g_pListRemoveViewHandle->eTabType) {
+ return FALSE;
+ }
+
+ if (!g_pListRemoveViewHandle->nSelectCounterForEditList
+ || nSelectedSize < 1) {
+ return FALSE;
+ }
+
+ if (g_pListRemoveViewHandle->bFolderDel) {
+ nVideoListSize = mp_util_svc_get_video_folder_size();
+ } else {
+ nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+ }
+
+ VideoLogInfo("current size is %d", nVideoListSize);
+
+ getFolderCount = nVideoListSize;
+
+ __mp_remove_view_free_selected_list();
+
+ int nIndex = 0;
+ int nCounter = 0;
+ char *pMediaId = NULL;
+
+ g_pListRemoveViewHandle->pSelectedList =
+ (char **) calloc(sizeof(char *), nSelectedSize);
+ VideoLogInfo("current edit size===%d", nSelectedSize);
+
+ if (g_pListRemoveViewHandle->pSelectedList == NULL) {
+ return FALSE;
+ }
+
+ for (nCounter = 0; nCounter < nVideoListSize; nCounter++) {
+ if (g_pListRemoveViewHandle->bFolderDel) {
+ pMediaId = mp_util_svc_get_video_folder_id(nCounter);
+ } else {
+ pMediaId = mp_util_svc_get_video_id_by_index(nCounter);
+ }
+
+ if (pMediaId != NULL) {
+ if (__mp_remove_view_is_selected_file(pMediaId)) {
+ g_pListRemoveViewHandle->pSelectedList[nIndex] =
+ strdup(pMediaId);
+ MP_FREE_STRING(pMediaId);
+ nIndex++;
+ }
+ }
+ folderStatus[nCounter] = TRUE;
+ }
+ return TRUE;
+}
+
+/**
+ *
+ * @return
+ */
+int __mp_remove_folder_view_get_folder_count()
+{
+ return getFolderCount;
+}
+
+/**
+ *
+ */
+static void __mp_remove_view_update_select_all(void)
+{
+ if (!g_pListRemoveViewHandle || !g_pListRemoveViewWidget) {
+ VideoLogError("Main handles of list view are not existed.");
+ return;
+ }
+
+ int nItemListSize = 0;
+ if (g_pListRemoveViewHandle->bFolderDel) {
+ nItemListSize = mp_util_svc_get_video_folder_size();
+ } else {
+ nItemListSize = mp_util_svc_get_number_of_video_item_by_type();
+ }
+
+ if (nItemListSize == eina_list_count(g_pSelectedList)) {
+ VideoLogInfo(" All check box of edit list state are true.");
+ g_pListRemoveViewHandle->bSelectallCheckBoxState = TRUE;
+ } else {
+ g_pListRemoveViewHandle->bSelectallCheckBoxState = FALSE;
+ }
+
+ VideoLogInfo(" nItemListSize=%d,nSelectCounterForEditList=%d",
+ nItemListSize,
+ g_pListRemoveViewHandle->nSelectCounterForEditList);
+ elm_check_state_set(g_pListRemoveViewWidget->pSelectallbtn,
+ g_pListRemoveViewHandle->bSelectallCheckBoxState);
+}
+
+/**
+ *
+ */
+static void __mp_remove_view_update_selected_video_list(void)
+{
+ if (!g_pListRemoveViewHandle || !g_pListRemoveViewWidget) {
+ VideoLogError("Main handles of list view are not existed.");
+ return;
+ }
+
+ int nVideoListSize = 0;
+
+ __mp_remove_view_validate_selected_list();
+
+ if (LIST_TAB_TYPE_PERSONAL != g_pListRemoveViewHandle->eTabType) {
+ return;
+ }
+
+ int nTotal = 0;
+
+ MpMediaType eMediaType = MEDIA_TYPE_FILE;
+
+ if (g_pListRemoveViewHandle->bFolderDel) {
+ eMediaType = MEDIA_TYPE_DIRECTORY;
+ nVideoListSize = mp_util_svc_get_video_folder_size();
+ nTotal = __mp_remove_folder_view_get_folder_count();
+ } else {
+ nTotal = g_pListRemoveViewHandle->nSelectCounterForEditList;
+ nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+ }
+
+ int nIndex = 0;
+ bool bValidMedia = FALSE;
+
+ VideoLogInfo("OldEditList ===%d nVideoListSize :%d", nTotal, nVideoListSize);
+ g_pListRemoveViewHandle->nSelectCounterForEditList = 0;
+ mp_remove_view_set_value(nVideoListSize);
+
+ if (!g_pListRemoveViewHandle->pSelectedList) {
+ return;
+ }
+
+ VideoLogInfo(" nTotal %d", nTotal);
+
+ while ((nIndex < nVideoListSize)) {
+ char * pMediaId;
+ if (g_pListRemoveViewHandle->bFolderDel) {
+ pMediaId = mp_util_svc_get_video_folder_id(nIndex);
+ } else {
+ pMediaId = mp_util_svc_get_video_id_by_index(nIndex);
+ }
+
+ if (pMediaId) {
+ bValidMedia =
+ __mp_remove_view_is_selected_file(pMediaId);
+ } else {
+ bValidMedia = FALSE;
+ }
+
+ VideoLogInfo(" nIndex which were true are %d and media selected is : %d",
+ nIndex,
+ bValidMedia);
+ if (bValidMedia) {
+ g_pListRemoveViewHandle->
+ pCheckedItemsEditListForRemoved[nIndex] = TRUE;
+ folderStatus[nIndex] = TRUE;
+ g_pListRemoveViewHandle->nSelectCounterForEditList++;
+ } else {
+ folderStatus[nIndex] = FALSE;
+ g_pListRemoveViewHandle->
+ pCheckedItemsEditListForRemoved[nIndex] = FALSE;
+ }
+ nIndex++;
+ }
+
+ //update select all button state
+ __mp_remove_view_update_select_all();
+
+ mp_remove_view_change_title_info();
+
+ if (eina_list_count(g_pSelectedList) > 0)
+ elm_object_disabled_set(g_pListRemoveViewWidget->pSavebtn,
+ EINA_FALSE);
+ else
+ elm_object_disabled_set(g_pListRemoveViewWidget->pSavebtn,
+ EINA_TRUE);
+}
+
+/**
+ *
+ * @param pUserData
+ */
+static void __mp_remove_view_db_changed_cb(void *pUserData)
+{
+ if (!g_pListRemoveViewHandle || !g_pListRemoveViewWidget) {
+ VideoLogError("Main handles of list view are not existed.");
+ return;
+ }
+
+ bool bNormalShow = TRUE;
+ if (g_pListRemoveViewHandle->bFolderDel) {
+ bNormalShow =
+ __mp_remove_view_arrange_folder_list(g_pListRemoveViewHandle->
+ pObjVideosList,
+ LIST_TAB_TYPE_PERSONAL,
+ TRUE);
+ if (!bNormalShow) {
+ VideoLogError("invalid view");
+ return;
+ }
+ } else {
+ bNormalShow =
+ __mp_remove_view_arrange_video_list(g_pListRemoveViewHandle->
+ pObjVideosList,
+ LIST_TAB_TYPE_PERSONAL,
+ TRUE);
+ if (!bNormalShow) {
+ VideoLogError("invalid view");
+ return;
+ }
+ }
+ mp_remove_view_change_title_info();
+
+ Elm_Object_Item *pItem = NULL;
+#ifdef VS_FEATURE_THUMBNAIL_VIEW_TODO //
+ if (g_pListRemoveViewHandle->bThumbnailView) {
+ pItem =
+ elm_gengrid_first_item_get(g_pListRemoveViewHandle->
+ pObjVideosList);
+ if (pItem) {
+ elm_gengrid_item_bring_in(pItem, ELM_GENGRID_ITEM_SCROLLTO_IN);
+ }
+ } else
+#endif //
+ {
+ pItem =
+ elm_genlist_first_item_get(g_pListRemoveViewHandle->
+ pObjVideosList);
+ if (pItem) {
+ elm_genlist_item_bring_in(pItem, ELM_GENLIST_ITEM_SCROLLTO_IN);
+ }
+ }
+
+}
+
+/**
+ *
+ * @param pUserData
+ */
+static void __mp_remove_view_db_backup_cb(void *pUserData)
+{
+ if (!g_pListRemoveViewHandle || !g_pListRemoveViewWidget) {
+ VideoLogError("Main handles of list view are not existed.");
+ return;
+ }
+ __mp_remove_view_get_selected_video_list(g_pListRemoveViewHandle->
+ nSelectCounterForEditList);
+}
+
+/**
+ *
+ * @param data
+ * @param evas
+ * @param obj
+ * @param event_info
+ */
+static void __mp_remove_select_all_layout_down_cb(void *data, Evas * evas,
+ Evas_Object * obj,
+ void *event_info)
+{
+ if (!g_pListRemoveViewHandle || !g_pListRemoveViewWidget) {
+ VideoLogError("Main handles of list view are not existed.");
+ return;
+ }
+
+ Evas_Object *check =
+ elm_object_part_content_get(g_pListRemoveViewWidget->pSelAllLayout,
+ "elm.icon");
+ Eina_Bool state = elm_check_state_get(check);
+ elm_check_state_set(check, !state);
+ __mp_remove_view_select_all_change_check_box_cb(data, check, NULL);
+}
+
+/**
+ *
+ * @param pParent
+ * @param eTabType
+ */
+void mp_remove_view_init(void *pParent, MpVideoListTabType eTabType)
+{
+ if (!g_pListRemoveViewHandle || !g_pListRemoveViewWidget) {
+ VideoLogError("Main handles of list view are not existed.");
+ return;
+ }
+
+ VideoLogInfo("");
+ g_pListRemoveViewWidget->pRemoveViewBaselayout =
+ mp_remove_view_init_internal_layout(pParent);
+ if (!g_pListRemoveViewWidget->pRemoveViewBaselayout) {
+ VideoLogError("pRemoveViewBaselayout is not existed.");
+ return;
+ }
+
+ evas_object_event_callback_add(g_pListRemoveViewWidget->
+ pRemoveViewBaselayout,
+ EVAS_CALLBACK_DEL,
+ __mp_remove_view_base_layout_del_cb,
+ NULL);
+
+ g_pListRemoveViewWidget->pVideoListBox =
+ elm_box_add(g_pListRemoveViewWidget->pRemoveViewBaselayout);
+ if (!g_pListRemoveViewWidget->pVideoListBox) {
+ VideoLogError("pVideoListBox is not existed.");
+ return;
+ }
+
+ evas_object_size_hint_weight_set(g_pListRemoveViewWidget->
+ pVideoListBox, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(g_pListRemoveViewWidget->pVideoListBox,
+ EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+ mp_widget_ctrl_create_select_all_layout(g_pListRemoveViewWidget->
+ pVideoListBox,
+ __mp_remove_view_select_all_change_check_box_cb,
+ __mp_remove_select_all_layout_down_cb,
+ (void *)
+ g_pListRemoveViewWidget,
+ &g_pListRemoveViewWidget->
+ pSelectallbtn,
+ &g_pListRemoveViewWidget->
+ pSelAllLayout);
+
+ if (!g_pListRemoveViewWidget->pSelAllLayout) {
+ VideoLogError("pSelAllLayout is not existed.");
+ return;
+ }
+
+ elm_box_pack_start(g_pListRemoveViewWidget->pVideoListBox,
+ g_pListRemoveViewWidget->pSelAllLayout);
+
+#ifdef VS_FEATURE_THUMBNAIL_VIEW_TODO //
+ if (g_pListRemoveViewHandle->bThumbnailView) {
+ g_pListRemoveViewHandle->pObjVideosList =
+ elm_gengrid_add(g_pListRemoveViewWidget->pVideoListBox);
+ if (!g_pListRemoveViewHandle->pObjVideosList) {
+ VideoLogError("pVideoGrid is not existed.");
+ return;
+ }
+ evas_object_size_hint_weight_set(g_pListRemoveViewHandle->
+ pObjVideosList, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(g_pListRemoveViewHandle->
+ pObjVideosList, EVAS_HINT_FILL,
+ EVAS_HINT_FILL);
+ int nHeight = VP_ALBUM_THUMB_ICON_HEIGHT * MP_SCALE;
+ int nWidth = VIDEO_GENGRID_ICON_WIDTH * MP_SCALE;
+ elm_gengrid_item_size_set(g_pListRemoveViewHandle->pObjVideosList,
+ nWidth, nHeight);
+ elm_gengrid_align_set(g_pListRemoveViewHandle->pObjVideosList, 0.0,
+ 0.0);
+ elm_gengrid_horizontal_set(g_pListRemoveViewHandle->pObjVideosList,
+ EINA_FALSE);
+ } else
+#endif
+ {
+ g_pListRemoveViewHandle->pObjVideosList =
+ elm_genlist_add(g_pListRemoveViewWidget->pVideoListBox);
+ if (!g_pListRemoveViewHandle->pObjVideosList) {
+ VideoLogError("pObjVideosList is not existed.");
+ return;
+ }
+ elm_scroller_bounce_set(g_pListRemoveViewHandle->pObjVideosList,
+ EINA_FALSE, EINA_TRUE);
+ evas_object_size_hint_weight_set(g_pListRemoveViewHandle->
+ pObjVideosList, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(g_pListRemoveViewHandle->
+ pObjVideosList, EVAS_HINT_FILL,
+ EVAS_HINT_FILL);
+ elm_genlist_block_count_set(g_pListRemoveViewHandle->
+ pObjVideosList,
+ VIDEO_GENLIST_BLOCK_COUNT);
+ elm_genlist_homogeneous_set(g_pListRemoveViewHandle->
+ pObjVideosList, EINA_TRUE);
+ elm_genlist_mode_set(g_pListRemoveViewHandle->pObjVideosList,
+ ELM_LIST_COMPRESS);
+ elm_genlist_select_mode_set(g_pListRemoveViewWidget->pVideoListBox,
+ ELM_OBJECT_SELECT_MODE_NONE);
+ }
+ g_pListRemoveViewHandle->eTabType = eTabType;
+
+ elm_box_pack_end(g_pListRemoveViewWidget->pVideoListBox,
+ g_pListRemoveViewHandle->pObjVideosList);
+ elm_object_part_content_set(g_pListRemoveViewWidget->
+ pRemoveViewBaselayout,
+ SWALLOW_LISTVIEW_CONTENT,
+ g_pListRemoveViewWidget->pVideoListBox);
+
+ bool bNormalShow = TRUE;
+
+ if (g_pListRemoveViewHandle->bFolderDel) {
+ bNormalShow =
+ __mp_remove_view_arrange_folder_list(g_pListRemoveViewHandle->
+ pObjVideosList, eTabType,
+ FALSE);
+ if (!bNormalShow) {
+ VideoLogError("invalid view");
+ return;
+ }
+ } else {
+ bNormalShow =
+ __mp_remove_view_arrange_video_list(g_pListRemoveViewHandle->
+ pObjVideosList, eTabType,
+ FALSE);
+ if (!bNormalShow) {
+ VideoLogError("invalid view");
+ return;
+ }
+ }
+
+ char *szTitle =
+ g_strdup_printf(VIDEOS_SELECTVIEW_HEADER_PD_SELECTED,
+ g_pListRemoveViewHandle->
+ nSelectCounterForEditList);
+
+ g_pListRemoveViewHandle->pNaviFrameItem =
+ elm_naviframe_item_push(g_pListRemoveViewHandle->pNaviFrameHandle,
+ szTitle, NULL, NULL,
+ g_pListRemoveViewWidget->
+ pRemoveViewBaselayout, NULL);
+ elm_object_item_domain_text_translatable_set(g_pListRemoveViewHandle->
+ pNaviFrameItem,
+ VIDEOS_STRING, EINA_TRUE);
+ elm_naviframe_item_pop_cb_set(g_pListRemoveViewHandle->pNaviFrameItem,
+ __mp_remove_view_back_btn_cb,
+ g_pListRemoveViewHandle);
+
+ elm_naviframe_item_title_enabled_set(g_pListRemoveViewHandle->
+ pNaviFrameItem, EINA_TRUE,
+ EINA_FALSE);
+ evas_object_smart_callback_add(g_pListRemoveViewHandle->
+ pNaviFrameHandle, "transition,finished",
+ mp_remove_view_naviframe_transition_effect_cb,
+ NULL);
+
+ g_pListRemoveViewWidget->pCancelbtn =
+ elm_button_add(g_pListRemoveViewHandle->pNaviFrameHandle);
+ elm_object_style_set(g_pListRemoveViewWidget->pCancelbtn,
+ "naviframe/title_left");
+ mp_util_set_translate_str(g_pListRemoveViewWidget->pCancelbtn,
+ "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB");
+ elm_object_signal_callback_add(g_pListRemoveViewWidget->pCancelbtn,
+ "elm,action,click", "",
+ __mp_remove_view_run_cancel_items_cb,
+ (void *) g_pListRemoveViewHandle);
+ elm_object_item_part_content_set(g_pListRemoveViewHandle->
+ pNaviFrameItem, "title_left_btn",
+ g_pListRemoveViewWidget->pCancelbtn);
+ evas_object_show(g_pListRemoveViewWidget->pCancelbtn);
+
+ g_pListRemoveViewWidget->pSavebtn =
+ elm_button_add(g_pListRemoveViewHandle->pNaviFrameHandle);
+ elm_object_style_set(g_pListRemoveViewWidget->pSavebtn,
+ "naviframe/title_right");
+ mp_util_set_translate_str(g_pListRemoveViewWidget->pSavebtn,
+ "IDS_TPLATFORM_ACBUTTON_DELETE_ABB");
+ elm_object_signal_callback_add(g_pListRemoveViewWidget->pSavebtn,
+ "elm,action,click", "",
+ __mp_remove_view_run_delete_items_cb,
+ (void *) g_pListRemoveViewHandle);
+ elm_object_item_part_content_set(g_pListRemoveViewHandle->
+ pNaviFrameItem, "title_right_btn",
+ g_pListRemoveViewWidget->pSavebtn);
+ evas_object_show(g_pListRemoveViewWidget->pSavebtn);
+
+ elm_object_disabled_set(g_pListRemoveViewWidget->pSavebtn, EINA_TRUE);
+
+ evas_object_show(g_pListRemoveViewHandle->pObjVideosList);
+ evas_object_show(g_pListRemoveViewWidget->pRemoveViewBaselayout);
+
+ mp_util_db_set_update_fun(g_pListRemoveViewHandle->euLev,
+ __mp_remove_view_db_changed_cb);
+ mp_util_db_set_backup_fun(g_pListRemoveViewHandle->euLev,
+ __mp_remove_view_db_backup_cb);
+
+ __mp_remove_view_release_selected_list();
+
+ MP_FREE_STRING(szTitle);
+ mp_util_hide_indicator();
+}
+
+/**
+ *
+ * @param pNaviFrame
+ * @param pUpdateViewCb
+ * @param pChangeViewCb
+ * @param pFolderPath
+ * @param eTabType
+ */
+void mp_remove_view_push(void *pNaviFrame,
+ ListRemoveViewCbFunc pUpdateViewCb,
+ ChangeListRemoveViewCbFunc pChangeViewCb,
+ char *pFolderPath, MpVideoListTabType eTabType)
+{
+ VideoLogInfo("");
+ mp_remove_view_destroy();
+ g_pListRemoveViewHandle =
+ (st_VideoListRemoveViewHandle *) calloc(1,
+ sizeof
+ (st_VideoListRemoveViewHandle));
+ g_pListRemoveViewWidget =
+ (st_VideoListRemoveViewWidget *) calloc(1,
+ sizeof
+ (st_VideoListRemoveViewWidget));
+
+ memset(g_pListRemoveViewHandle, 0,
+ sizeof(st_VideoListRemoveViewHandle));
+ memset(g_pListRemoveViewWidget, 0,
+ sizeof(st_VideoListRemoveViewWidget));
+ mp_remove_view_reset_value();
+
+ g_pListRemoveViewHandle->pNaviFrameHandle = pNaviFrame;
+ g_pListRemoveViewHandle->pChangeViewUserCbFunc = pChangeViewCb;
+ g_pListRemoveViewHandle->pChangeViewUpdateFunc = pUpdateViewCb;
+
+ if (pFolderPath) {
+ g_pListRemoveViewHandle->pFolderPath = strdup(pFolderPath);
+ }
+ g_pListRemoveViewHandle->bUpdateList = FALSE;
+ g_pListRemoveViewHandle->euLev = MP_DB_UPDATE_LEV_1;
+
+ int nViewType = mp_view_as_ctrl_get_type();
+ if (nViewType == MP_LIST_VIEW_AS_FOLDER_LIST
+ && g_pListRemoveViewHandle->pFolderPath) {
+ g_pListRemoveViewHandle->euLev = MP_DB_UPDATE_LEV_2;
+ }
+
+ if ((nViewType == MP_LIST_VIEW_AS_FOLDER_LIST)
+ && (!g_pListRemoveViewHandle->pFolderPath)
+ && (LIST_TAB_TYPE_PERSONAL == eTabType)) {
+ g_pListRemoveViewHandle->bFolderDel = TRUE;
+ } else {
+ g_pListRemoveViewHandle->bFolderDel = FALSE;
+ }
+#ifdef VS_FEATURE_THUMBNAIL_VIEW
+ if ((nViewType == MP_LIST_VIEW_AS_THUMBNAIL_LIST
+ || nViewType == MP_LIST_VIEW_AS_FOLDER_LIST)
+ && (LIST_TAB_TYPE_PERSONAL == eTabType)) {
+ g_pListRemoveViewHandle->bThumbnailView = TRUE;
+ } else {
+ g_pListRemoveViewHandle->bThumbnailView = FALSE;
+ }
+#endif
+ mp_remove_view_init(g_pListRemoveViewHandle->pNaviFrameHandle,
+ eTabType);
+ evas_object_smart_callback_add((Evas_Object *)
+ mp_util_get_main_window_handle(),
+ "wm,rotation,changed",
+ __mp_remove_view_rotate_cb,
+ (void *) g_pListRemoveViewHandle);
+ g_pListRemoveViewHandle->update_view_data = false;
+}
+
+/**
+ *
+ */
+void mp_remove_view_pop(void)
+{
+ VideoLogInfo("");
+ if (!g_pListRemoveViewHandle) {
+ VideoLogError("No existed handle of remove view.");
+ return;
+ }
+ // KEEP BELOW CALLING SEQUENCE OF FUNCTION.
+ bool bUpdateList = FALSE;
+ if (g_pListRemoveViewHandle->bUpdateList) {
+ if (g_pListRemoveViewHandle->pChangeViewUpdateFunc) {
+ bUpdateList = TRUE;
+ g_pListRemoveViewHandle->
+ pChangeViewUpdateFunc(LIST_UPDATE_TYPE_ALL);
+ }
+ }
+
+ if (!bUpdateList) {
+ if (g_pListRemoveViewHandle->pChangeViewUserCbFunc) {
+ g_pListRemoveViewHandle->pChangeViewUserCbFunc();
+ }
+ }
+
+}
+
+/**
+ *
+ * @return
+ */
+bool mp_remove_view_is_top_view(void)
+{
+ VideoLogInfo("");
+
+ return FALSE;
+}
+
+/**
+ *
+ */
+void mp_remove_view_change_language(void)
+{
+ if (!g_pListRemoveViewHandle || !g_pListRemoveViewWidget) {
+ VideoLogError("No existed handle of remove view.");
+ return;
+ }
+
+ VideoLogInfo("");
+
+ mp_remove_view_change_title_info();
+}
+
+/**
+ *
+ * @param pUserData
+ * @param e
+ * @param pObject
+ * @param pEventInfo
+ */
+static void
+__mp_remove_view_base_layout_del_cb(void *pUserData, Evas * e,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ __mp_remove_view_reset();
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <Eina.h>
+#include <Ecore_Evas.h>
+#include <Elementary.h>
+#include <glib.h>
+
+#include "mp-util.h"
+#include "vp-file-util.h"
+#include "mp-video-log.h"
+#include "mp-external-ug.h"
+#include "mp-video-string-define.h"
+#include "mp-video-value-define.h"
+#include "mp-util-media-service.h"
+#include "mp-video-list-sort-ctrl.h"
+#include "mp-video-list-share-via-view.h"
+#include "mp-video-view-popup-ctrl.h"
+#include "mp-video-list-view-as-ctrl.h"
+#include "mp-util-widget-ctrl.h"
+#include "mp-video-util-db-controller.h"
+#include "mp-rotate-ctrl.h"
+#include "videos-view-mgr.h"
+
+#define VIDEO_SELECTED_INFO_TIMER 4.0
+#define FIRST_SHARE_ITEM_OFFSET 1
+#define VIDEO_SHARE_ITEM_MAX 30
+
+typedef struct {
+ void *pNaviFrameHandle;
+ void *pNaviFrameItem;
+ /* used for list view ,thumbnail view */
+ void *pObjVideosList;
+
+ Elm_Genlist_Item_Class *pGenListItc;
+ Elm_Genlist_Item_Class *pGenListLandscapeItc;
+ Elm_Gengrid_Item_Class *pGenGridItc_1;
+ Elm_Gengrid_Item_Class *pGenGridItc_2;
+
+ bool *pCheckedItemsEditList;
+ /* save selected video id */
+ char **pSelectedList;
+ bool bSelectallCheckBoxState;
+ int nSelectCounterForEditList;
+ MpMediaSvcSortType nSortType;
+ MpDbUpdateViewLev euLev;
+ ChangeListShareViewCbFunc pChangeViewUserCbFunc;
+ char *pFolderPath;
+
+ MpVideoListTabType eTabType;
+#ifdef VS_FEATURE_THUMBNAIL_VIEW
+ bool bLandscape;
+ bool bThumbnailView;
+#endif
+} st_VideoListShareViaViewHandle;
+
+typedef struct {
+ Evas_Object *pVideoListBox;
+ Evas_Object *pChareViaViewBaselayout;
+ Evas_Object *pSelectallbtn;
+ Evas_Object *pSelAllLayout;
+ Evas_Object *pSavebtn;
+ Evas_Object *pCancelbtn;
+
+} st_VideoListShareViaViewWidget;
+
+static st_VideoListShareViaViewHandle *g_pShareViaHandle = NULL;
+static st_VideoListShareViaViewWidget *g_pShareViaWidget = NULL;
+
+static app_control_h g_pServiceShare = NULL;
+static char **g_pShareList = NULL;
+static int g_nShareListSize = 0;
+static bool g_bSharePanelLaunched = FALSE;
+
+int mp_share_view_get_sort_type(void);
+bool __mp_share_view_arrange_video_list(void *pObjVideosList,
+ bool bNeedSvc);
+void mp_share_view_naviframe_transition_effect_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo);
+void mp_share_view_change_title_info(void);
+static void __mp_share_view_base_layout_del_cb(void *pUserData, Evas * e,
+ Evas_Object * pObject,
+ void *pEventInfo);
+static void __mp_share_via_view_rotate_cb(void *data, Evas_Object * obj,
+ void *event_info);
+
+static bool __mp_share_view_get_selected_video_list(int nSelectedSize);
+
+static void __vp_share_view_create_launch_share_panel(void);
+static void __vp_share_view_destroy_share_panel(void);
+
+/**
+ *
+ */
+static void __mp_share_view_free_selected_list(void)
+{
+ if (!g_pShareViaHandle || !g_pShareViaHandle->pSelectedList) {
+ return;
+ }
+ int nIndex = 0;
+ while (g_pShareViaHandle->pSelectedList[nIndex]) {
+ nIndex++;
+ MP_FREE_STRING(g_pShareViaHandle->pSelectedList[nIndex]);
+ }
+ MP_FREE_STRING(g_pShareViaHandle->pSelectedList);
+}
+
+/**
+ *
+ */
+void mp_share_view_update_all_check_box(void)
+{
+ VideoLogInfo("");
+ int nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+
+ if (!g_pShareViaHandle->pObjVideosList) {
+ VideoLogInfo("genlist is NULL");
+ return;
+ }
+
+ if (nVideoListSize < 1) {
+ VideoLogInfo("nVideoListSize < 1:%d", nVideoListSize);
+ return;
+ }
+
+ Evas_Object *check_box = NULL;
+ Evas_Object *check_box_layout = NULL;
+ Elm_Object_Item *currentItem = NULL;
+ Elm_Object_Item *currentItemGengrid = NULL;
+ int nVideoItemIndex = 0;
+#ifdef VS_FEATURE_THUMBNAIL_VIEW
+ if (g_pShareViaHandle->bThumbnailView) {
+ currentItem =
+ elm_genlist_first_item_get(g_pShareViaHandle->pObjVideosList);
+ nVideoItemIndex = 0;
+ while (currentItem && (nVideoItemIndex < nVideoListSize)) {
+ Evas_Object *gengrid =
+ elm_object_item_part_content_get(currentItem, "elm.icon");
+ currentItemGengrid = elm_gengrid_first_item_get(gengrid);
+ while (currentItemGengrid
+ && (nVideoItemIndex < nVideoListSize)) {
+ Evas_Object *check_box =
+ elm_object_item_part_content_get(currentItemGengrid,
+ "elm.swallow.end");
+ if (check_box) {
+ elm_check_state_set(check_box,
+ g_pShareViaHandle->
+ pCheckedItemsEditList
+ [nVideoItemIndex]);
+ }
+ currentItemGengrid =
+ elm_gengrid_item_next_get(currentItemGengrid);
+ nVideoItemIndex++;
+ }
+ currentItem = elm_genlist_item_next_get(currentItem);
+ }
+
+ } else
+#endif
+ {
+ currentItem =
+ elm_genlist_first_item_get(g_pShareViaHandle->pObjVideosList);
+ nVideoItemIndex = 0;
+ while (currentItem && (nVideoItemIndex < nVideoListSize)) {
+ check_box_layout =
+ elm_object_item_part_content_get(currentItem,
+ "elm.icon.2");
+ check_box =
+ elm_object_part_content_get(check_box_layout,
+ "elm.swallow.content");
+ if (check_box) {
+ elm_check_state_set(check_box,
+ g_pShareViaHandle->
+ pCheckedItemsEditList
+ [nVideoItemIndex]);
+ }
+ currentItem = elm_genlist_item_next_get(currentItem);
+ nVideoItemIndex++;
+ }
+ }
+}
+
+/**
+ *
+ */
+void mp_share_view_destroy(void)
+{
+ VideoLogInfo("");
+
+ if (g_pShareViaHandle) {
+ evas_object_smart_callback_del(g_pShareViaHandle->pNaviFrameHandle,
+ "transition,finished",
+ mp_share_view_naviframe_transition_effect_cb);
+ __mp_share_view_free_selected_list();
+
+ MP_DEL_OBJ(g_pShareViaHandle->pObjVideosList);
+ MP_DEL_ITC(g_pShareViaHandle->pGenListItc);
+ MP_DEL_ITC(g_pShareViaHandle->pGenListLandscapeItc);
+ MP_DEL_GRID_ITC(g_pShareViaHandle->pGenGridItc_1);
+ MP_DEL_GRID_ITC(g_pShareViaHandle->pGenGridItc_2);
+ MP_FREE_STRING(g_pShareViaHandle->pCheckedItemsEditList);
+ MP_FREE_STRING(g_pShareViaHandle->pFolderPath);
+ evas_object_smart_callback_del((Evas_Object *)
+ mp_util_get_main_window_handle(),
+ "wm,rotation,changed",
+ __mp_share_via_view_rotate_cb);
+
+ MP_FREE_STRING(g_pShareViaHandle);
+ }
+
+ if (g_pShareViaWidget) {
+
+ MP_DEL_OBJ(g_pShareViaWidget->pSelectallbtn);
+ MP_DEL_OBJ(g_pShareViaWidget->pSelAllLayout);
+ MP_DEL_OBJ(g_pShareViaWidget->pVideoListBox);
+ MP_DEL_OBJ(g_pShareViaWidget->pChareViaViewBaselayout);
+ MP_DEL_OBJ(g_pShareViaWidget->pSavebtn);
+ MP_DEL_OBJ(g_pShareViaWidget->pCancelbtn);
+
+ MP_FREE_STRING(g_pShareViaWidget);
+ }
+}
+
+/**
+ *
+ */
+static void __mp_share_view_reset(void)
+{
+ VideoLogInfo("");
+
+ if (g_pShareViaHandle) {
+ mp_util_db_set_update_fun(g_pShareViaHandle->euLev, NULL);
+ mp_util_db_set_backup_fun(g_pShareViaHandle->euLev, NULL);
+ evas_object_smart_callback_del(g_pShareViaHandle->pNaviFrameHandle,
+ "transition,finished",
+ mp_share_view_naviframe_transition_effect_cb);
+ evas_object_smart_callback_del((Evas_Object *)
+ mp_util_get_main_window_handle(),
+ "wm,rotation,changed",
+ __mp_share_via_view_rotate_cb);
+ __mp_share_view_free_selected_list();
+
+ g_pShareViaHandle->pObjVideosList = NULL;
+
+ MP_DEL_ITC(g_pShareViaHandle->pGenListItc);
+ MP_DEL_ITC(g_pShareViaHandle->pGenListLandscapeItc);
+ MP_DEL_GRID_ITC(g_pShareViaHandle->pGenGridItc_1);
+ MP_DEL_GRID_ITC(g_pShareViaHandle->pGenGridItc_2);
+ MP_FREE_STRING(g_pShareViaHandle->pCheckedItemsEditList);
+ MP_FREE_STRING(g_pShareViaHandle->pFolderPath);
+
+ MP_FREE_STRING(g_pShareViaHandle);
+ }
+
+ if (g_pShareViaWidget) {
+ MP_DEL_OBJ(g_pShareViaWidget->pSelectallbtn);
+ g_pShareViaWidget->pVideoListBox = NULL;
+ g_pShareViaWidget->pSelAllLayout = NULL;
+
+ g_pShareViaWidget->pChareViaViewBaselayout = NULL;
+ MP_DEL_OBJ(g_pShareViaWidget->pSavebtn);
+ MP_DEL_OBJ(g_pShareViaWidget->pCancelbtn);
+
+ MP_FREE_STRING(g_pShareViaWidget);
+ }
+}
+
+/**
+ *
+ */
+void mp_share_view_reset_value(void)
+{
+ if (!g_pShareViaHandle) {
+ VideoLogError("[ERR] g_pShareViaHandle is not existed.");
+ return;
+ }
+ VideoLogInfo("");
+
+ g_pShareViaHandle->pNaviFrameHandle = NULL;
+ g_pShareViaHandle->pNaviFrameItem = NULL;
+ g_pShareViaHandle->pChangeViewUserCbFunc = NULL;
+
+ g_pShareViaHandle->bSelectallCheckBoxState = FALSE;
+ g_pShareViaHandle->nSelectCounterForEditList = 0;
+ g_pShareViaHandle->nSortType = MP_MEDIA_SORT_BY_RECENTLY_VIEWED;
+
+ if (g_pShareViaHandle->pNaviFrameItem) {
+ elm_object_item_part_content_unset(g_pShareViaHandle->
+ pNaviFrameItem,
+ "toolbar_more_btn");
+ elm_object_item_part_content_unset(g_pShareViaHandle->
+ pNaviFrameItem, "toolbar");
+ elm_object_item_part_content_unset(g_pShareViaHandle->
+ pNaviFrameItem,
+ "toolbar_button2");
+ }
+}
+
+/**
+ *
+ */
+static void __vp_share_view_create_launch_share_panel(void)
+{
+ char *pOperation = VIDEO_SHARE_OPERATION_SINGLE;
+ int nCounter;
+ int nErr = 0;
+
+ if (g_nShareListSize > 1) {
+ pOperation = VIDEO_SHARE_OPERATION_MULTIPLE;
+ }
+
+ if (!g_pShareList) {
+ VideoLogWarning("[WARNING] Fail to get uri at first.");
+ goto ERROR_EXCEPTION;
+ }
+
+ if (!g_pServiceShare) {
+ nErr = app_control_create(&g_pServiceShare);
+ if (nErr != APP_CONTROL_ERROR_NONE) {
+ VideoLogInfo("Fail to create ug service handle - [0x%x]",
+ nErr);
+ goto ERROR_EXCEPTION;
+ }
+ }
+
+ nErr = app_control_create(&g_pServiceShare);
+ if (nErr != APP_CONTROL_ERROR_NONE) {
+ VideoLogInfo("Fail to create ug service handle - [0x%x]", nErr);
+ goto ERROR_EXCEPTION;
+ }
+
+ nErr = app_control_set_uri(g_pServiceShare, g_pShareList[0]);
+ if (nErr != APP_CONTROL_ERROR_NONE) {
+ VideoLogInfo("Fail to set uri into ug service handle - [0x%x]",
+ nErr);
+ goto ERROR_EXCEPTION;
+ }
+
+ nErr = app_control_set_operation(g_pServiceShare, pOperation);
+ if (nErr != APP_CONTROL_ERROR_NONE) {
+ VideoLogInfo("app_control_add_extra_data_array().. [0x%x]", nErr);
+ goto ERROR_EXCEPTION;
+ }
+
+ if (g_nShareListSize >= 1) {
+ nErr = app_control_add_extra_data_array(g_pServiceShare,
+ "http://tizen.org/appcontrol/data/path",
+ (const char
+ **) (&g_pShareList[1]),
+ g_nShareListSize - 1);
+ if (nErr != APP_CONTROL_ERROR_NONE) {
+ VideoLogWarning
+ ("[WARNING] app_control_add_extra_data_array() [0x%x]",
+ nErr);
+ goto ERROR_EXCEPTION;
+ }
+ }
+
+ nErr = app_control_send_launch_request(g_pServiceShare, NULL, NULL);
+ if (nErr != APP_CONTROL_ERROR_NONE) {
+ VideoLogWarning
+ ("[WARNING] app_control_send_launch_request().. [0x%x]", nErr);
+ goto ERROR_EXCEPTION;
+ }
+
+ g_bSharePanelLaunched = TRUE;
+
+ elm_naviframe_item_pop(g_pShareViaHandle->pNaviFrameHandle);
+
+ return;
+
+ ERROR_EXCEPTION:
+ if (g_pServiceShare) {
+ app_control_destroy(g_pServiceShare);
+ g_pServiceShare = NULL;
+ }
+
+ if (g_pShareList) {
+ for (nCounter = 0; nCounter < g_nShareListSize; nCounter++) {
+ if (g_pShareList[nCounter]) {
+ free(g_pShareList[nCounter]);
+ g_pShareList[nCounter] = NULL;
+ }
+ }
+ free(g_pShareList);
+ g_pShareList = NULL;
+ }
+
+}
+
+/**
+ *
+ */
+static void __vp_share_view_destroy_share_panel(void)
+{
+ int nCounter;
+ if (g_pServiceShare && g_bSharePanelLaunched) {
+ app_control_send_terminate_request(g_pServiceShare);
+ app_control_destroy(g_pServiceShare);
+ g_pServiceShare = NULL;
+ g_bSharePanelLaunched = FALSE;
+
+ if (g_pShareList) {
+ for (nCounter = 0; nCounter < g_nShareListSize; nCounter++) {
+ if (g_pShareList[nCounter]) {
+ free(g_pShareList[nCounter]);
+ g_pShareList[nCounter] = NULL;
+ }
+ }
+ free(g_pShareList);
+ g_pShareList = NULL;
+ }
+ g_nShareListSize = 0;
+ }
+}
+
+/**
+ *
+ */
+void vp_share_view_update_share_panel(void)
+{
+ bool bValidMedia = FALSE;
+ int i;
+
+ if (g_pServiceShare && g_bSharePanelLaunched == TRUE) {
+
+ for (i = 0; i < g_nShareListSize; i++) {
+
+ if (!vp_file_exists((const char *) g_pShareList[i])) {
+ VideoLogError("File %s doesn't exist", g_pShareList[i]);
+ bValidMedia = FALSE;
+ } else {
+ bValidMedia = TRUE;
+ }
+
+ if (bValidMedia) {
+ break;
+ }
+ }
+
+ if (!bValidMedia) {
+ VideoLogInfo
+ ("Selected media not found. Destroying share panel");
+ __vp_share_view_destroy_share_panel();
+ }
+ }
+}
+
+
+/**
+ *
+ */
+void mp_share_view_launching_share_panel(void)
+{
+ if (!g_pShareViaHandle || !g_pShareViaHandle->pCheckedItemsEditList) {
+ VideoLogError("g_pShareViaHandle is null.");
+ return;
+ }
+
+ VideoLogInfo("");
+
+ int nCounter = 0;
+ int nTotalVideoItem = 0;
+ int nTotalAppendedItem = 0;
+ int nExtraDataSize = 0;
+
+ g_nShareListSize = 0;
+
+ char *szFileUrlForServiceSetUri = NULL;
+ char **szFileUrlArrayForServiceExtraData = NULL;
+
+ nTotalVideoItem = mp_util_svc_get_number_of_video_item_by_type();
+ nExtraDataSize = nTotalVideoItem;
+
+ if (nExtraDataSize) {
+ szFileUrlArrayForServiceExtraData =
+ (char **) calloc(nExtraDataSize, sizeof(char *));
+
+ /* Store the list so the share panel can be updated later */
+ g_pShareList = (char **) calloc(nExtraDataSize, sizeof(char *));
+ }
+
+ /* Extract First URI. */
+ for (nCounter = 0; nCounter < nTotalVideoItem; nCounter++) {
+ if (g_pShareViaHandle->pCheckedItemsEditList[nCounter]) {
+ if (mp_util_svc_is_cloud_storage(nCounter)) {
+ continue;
+ }
+
+ char *szFileUrl = mp_util_svc_get_video_url(nCounter);
+
+ if (szFileUrl) {
+ szFileUrlForServiceSetUri = szFileUrl;
+ nCounter++;
+
+ g_pShareList[0] = strdup(szFileUrl);
+ g_nShareListSize++;
+ break;
+ } else {
+ VideoLogError("szFileUrl is not existed.");
+ }
+ }
+ }
+
+ VideoLogInfo("nCounter = %d", nCounter);
+
+ /* Extract another URI if existing selected items more. */
+ if (nExtraDataSize > 0 && szFileUrlArrayForServiceExtraData) {
+ for (nCounter = 0; nCounter < nTotalVideoItem; nCounter++) {
+ if (g_pShareViaHandle->pCheckedItemsEditList[nCounter]) {
+ if (mp_util_svc_is_cloud_storage(nCounter)) {
+ continue;
+ }
+
+ char *szFileUrl = mp_util_svc_get_video_url(nCounter);
+
+ if (szFileUrl) {
+ if (nTotalAppendedItem < nExtraDataSize) {
+ szFileUrlArrayForServiceExtraData
+ [nTotalAppendedItem] = szFileUrl;
+ VideoSecureLogInfo
+ ("Appending share item : %s, Total Appended item : %d",
+ (const char **)
+ szFileUrlArrayForServiceExtraData
+ [nTotalAppendedItem], nTotalAppendedItem);
+ nTotalAppendedItem++;
+
+ g_pShareList[g_nShareListSize++] =
+ strdup(szFileUrl);
+ continue;
+ } else {
+ VideoLogWarning
+ ("[WARNING] OVERFLOW ALOOCATED MEMORY SIZE.");
+ free(szFileUrl);
+ }
+ } else {
+ VideoLogError("szFileUrl is not existed.");
+ }
+ }
+ }
+ }
+
+ __vp_share_view_create_launch_share_panel();
+
+ VideoLogInfo("Launching share panel.");
+
+ if (szFileUrlForServiceSetUri) {
+ free(szFileUrlForServiceSetUri);
+ szFileUrlForServiceSetUri = NULL;
+ }
+
+ if (szFileUrlArrayForServiceExtraData) {
+ for (nCounter = 0; nCounter < nExtraDataSize; nCounter++) {
+ if (szFileUrlArrayForServiceExtraData[nCounter]) {
+ free(szFileUrlArrayForServiceExtraData[nCounter]);
+ szFileUrlArrayForServiceExtraData[nCounter] = NULL;
+ }
+ }
+ free(szFileUrlArrayForServiceExtraData);
+ szFileUrlArrayForServiceExtraData = NULL;
+ }
+
+ return;
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param emission
+ * @param source
+ */
+void __mp_share_view_show_cancel_cb(void *data, Evas_Object * obj,
+ const char *emission,
+ const char *source)
+{
+ if (!g_pShareViaHandle->pNaviFrameHandle) {
+ VideoSecureLogError("g_pShareViaHandle->pNaviFrameHandle is NULL");
+ return;
+ }
+
+ VideoLogInfo("");
+
+ elm_naviframe_item_pop(g_pShareViaHandle->pNaviFrameHandle);
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param emission
+ * @param source
+ */
+void __mp_share_view_show_share_via_panel_cb(void *data, Evas_Object * obj,
+ const char *emission,
+ const char *source)
+{
+ if (!g_pShareViaHandle) {
+ VideoLogInfo("[ERR] g_pMainViewHandle is NULL.");
+ return;
+ }
+
+ VideoLogInfo("");
+
+ if (!g_pShareViaHandle->pObjVideosList) {
+ VideoLogInfo("No exist genlist object.");
+ return;
+ }
+
+ VideoLogInfo("[INFO]nSelectCounterForEditList : %d",
+ g_pShareViaHandle->nSelectCounterForEditList);
+ if (g_pShareViaHandle->nSelectCounterForEditList > 0) {
+ mp_share_view_launching_share_panel();
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param obj
+ * @param event_info
+ */
+static void __mp_share_view_trans_finished_cb(void *pUserData,
+ Evas_Object * obj,
+ void *event_info)
+{
+ if (!obj) {
+ VideoLogError("[ERR] g_pShareViaHandle is NULL.");
+ return;
+ }
+
+ mp_widget_ctrl_enable_navi_handle_focus(obj);
+
+ evas_object_smart_callback_del(obj, "transition,finished",
+ __mp_share_view_trans_finished_cb);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pItem
+ * @return
+ */
+static Eina_Bool mp_share_view_back_btn_cb(void *pUserData,
+ Elm_Object_Item * pItem)
+{
+ if (!g_pShareViaHandle) {
+ VideoLogInfo("[ERR] g_pShareViaHandle is NULL.");
+ return EINA_TRUE;
+ }
+
+ mp_widget_ctrl_disable_navi_handle_focus_except_item
+ (g_pShareViaHandle->pNaviFrameHandle,
+ g_pShareViaHandle->pNaviFrameItem);
+ evas_object_smart_callback_add(g_pShareViaHandle->pNaviFrameHandle,
+ "transition,finished",
+ __mp_share_view_trans_finished_cb,
+ NULL);
+
+ mp_share_view_pop();
+
+ return EINA_TRUE;
+}
+
+/**
+ *
+ */
+void mp_share_view_change_title_info(void)
+{
+ VideoLogInfo("nNumOfSelectdCount : %d",
+ g_pShareViaHandle->nSelectCounterForEditList);
+
+ if (g_pShareViaHandle->nSelectCounterForEditList > 0) {
+ elm_object_disabled_set(g_pShareViaWidget->pSavebtn, EINA_FALSE);
+ } else {
+ VideoLogInfo("Unactivate delete tab.");
+ elm_object_disabled_set(g_pShareViaWidget->pSavebtn, EINA_TRUE);
+ }
+
+ char *szCheckingTotalItem =
+ g_strdup_printf(VIDEOS_SELECTVIEW_HEADER_PD_SELECTED,
+ g_pShareViaHandle->nSelectCounterForEditList);
+ elm_object_item_domain_translatable_part_text_set(g_pShareViaHandle->
+ pNaviFrameItem,
+ "elm.text.title",
+ VIDEOS_STRING,
+ szCheckingTotalItem);
+ MP_FREE_STRING(szCheckingTotalItem);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_share_view_select_all_change_check_box_cb(void *pUserData,
+ Evas_Object *
+ pObject,
+ void
+ *pEventInfo)
+{
+ if (!pObject) {
+ VideoLogError("[ERR]");
+ return;
+ }
+
+ if (!g_pShareViaHandle->pObjVideosList) {
+ VideoLogError("No exist pVideoGenlist");
+ return;
+ }
+
+ int nCounter = 0;
+ int nVideoListSize = 0;
+
+ nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+ VideoLogInfo("nVideoListSize : %d", nVideoListSize);
+
+ if (!g_pShareViaHandle->bSelectallCheckBoxState) {
+ if (nVideoListSize > VIDEO_SHARE_ITEM_MAX) {
+ VideoLogError
+ ("nVideoListSize is bigger than VIDEO_SHARE_ITEM_MAX");
+ char *pStrWarning =
+ g_strdup_printf(VIDEOS_NOTIPOP_MSG_SHARE_ITEM_MAX,
+ VIDEO_SHARE_ITEM_MAX);
+ mp_util_ticker_toast_popup(pStrWarning, false, false);
+ MP_FREE_STRING(pStrWarning);
+ elm_check_state_set(g_pShareViaWidget->pSelectallbtn,
+ g_pShareViaHandle->
+ bSelectallCheckBoxState);
+ return;
+ }
+ g_pShareViaHandle->bSelectallCheckBoxState = TRUE;
+ g_pShareViaHandle->nSelectCounterForEditList = nVideoListSize;
+ } else {
+ g_pShareViaHandle->bSelectallCheckBoxState = FALSE;
+ g_pShareViaHandle->nSelectCounterForEditList = 0;
+
+ VideoLogInfo("Unactivate delete button.");
+ elm_object_disabled_set(g_pShareViaWidget->pSavebtn, EINA_TRUE);
+ }
+
+ elm_check_state_set(g_pShareViaWidget->pSelectallbtn,
+ g_pShareViaHandle->bSelectallCheckBoxState);
+
+ mp_share_view_change_title_info();
+
+ for (nCounter = 0; nCounter < nVideoListSize; nCounter++) {
+ g_pShareViaHandle->pCheckedItemsEditList[nCounter] =
+ g_pShareViaHandle->bSelectallCheckBoxState;
+ }
+
+ mp_share_view_update_all_check_box();
+
+}
+
+/**
+ *
+ */
+void mp_share_view_delete_select_all(void)
+{
+ VideoLogInfo("");
+
+ g_pShareViaHandle->bSelectallCheckBoxState = FALSE;
+ g_pShareViaHandle->nSelectCounterForEditList = 0;
+
+ mp_share_view_change_title_info();
+}
+
+/*
+Check box callback
+*/
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+void mp_share_view_change_check_box_state_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ if (!pObject) {
+ VideoLogError("[ERR]");
+ return;
+ } else {
+ VideoLogError("pObject : %x", pObject);
+ }
+
+ int nVideoItemIndex = (int) pUserData;
+ int nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+ bool bState = elm_check_state_get(pObject);
+
+ if (bState) {
+ if (g_pShareViaHandle->nSelectCounterForEditList >
+ (VIDEO_SHARE_ITEM_MAX - 1)) {
+ char *pStrWarning =
+ g_strdup_printf(VIDEOS_NOTIPOP_MSG_SHARE_ITEM_MAX,
+ VIDEO_SHARE_ITEM_MAX);
+ mp_util_ticker_toast_popup(pStrWarning, false, false);
+ MP_FREE_STRING(pStrWarning);
+
+ if (pObject) {
+ elm_check_state_set(pObject, FALSE);
+ }
+ return;
+ }
+ g_pShareViaHandle->pCheckedItemsEditList[nVideoItemIndex] = TRUE;
+ g_pShareViaHandle->nSelectCounterForEditList++;
+ if (nVideoListSize == g_pShareViaHandle->nSelectCounterForEditList) {
+ VideoLogInfo("All check box of edit list state are true.");
+ g_pShareViaHandle->bSelectallCheckBoxState = TRUE;
+ }
+ } else {
+ g_pShareViaHandle->pCheckedItemsEditList[nVideoItemIndex] = FALSE;
+ if (nVideoListSize == g_pShareViaHandle->nSelectCounterForEditList) {
+ VideoLogInfo("All check box of edit list state are not true.");
+ g_pShareViaHandle->bSelectallCheckBoxState = FALSE;
+ }
+
+ g_pShareViaHandle->nSelectCounterForEditList--;
+ if (g_pShareViaHandle->nSelectCounterForEditList < 1) {
+ VideoLogInfo("Unactivate delete button.");
+ elm_object_disabled_set(g_pShareViaWidget->pSavebtn,
+ EINA_TRUE);
+ }
+ }
+
+ elm_check_state_set(g_pShareViaWidget->pSelectallbtn,
+ g_pShareViaHandle->bSelectallCheckBoxState);
+ mp_share_view_change_title_info();
+}
+
+/*
+Genlist callback
+*/
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+void mp_share_view_naviframe_transition_effect_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ if (!g_pShareViaHandle) {
+ VideoLogError("[ERR] No exist g_pShareViaHandle.");
+ return;
+ }
+
+ VideoLogInfo("");
+
+ Evas_Object *pTmpContents = NULL;
+ Elm_Object_Item *pTmpItem = NULL;
+
+ if (!g_pShareViaHandle->pNaviFrameHandle) {
+ VideoLogInfo("[ERR] No exist naviframe handle.");
+ return;
+ }
+
+ pTmpItem =
+ elm_naviframe_top_item_get(g_pShareViaHandle->pNaviFrameHandle);
+ pTmpContents = elm_object_item_content_get(pTmpItem);
+ if (pTmpContents) {
+ if (pTmpContents == g_pShareViaWidget->pVideoListBox) {
+ } else {
+ VideoLogInfo
+ ("It's not pListShareViaViewTabbarLayout in top screen.");
+ }
+ } else {
+ VideoLogError("[ERR] No exist naviframe top item.");
+ }
+}
+
+/**
+ *
+ */
+void mp_share_view_double_tap_cb(void)
+{
+ if (!g_pShareViaHandle->pObjVideosList) {
+ VideoLogError("pObjVideosList is not exist.");
+ return;
+ }
+
+ VideoLogInfo("");
+
+ elm_genlist_item_bring_in(elm_genlist_first_item_get
+ (g_pShareViaHandle->pObjVideosList),
+ ELM_GENLIST_ITEM_SCROLLTO_TOP);
+}
+
+/**
+ *
+ * @param nVideoItemIndex
+ * @return
+ */
+char *mp_share_view_get_duration_time(int nVideoItemIndex)
+{
+ VideoLogInfo("");
+
+ char szTmpStr[STR_LEN_MAX] = { 0, };
+ char szTmpStrDurationTime[STR_LEN_MAX] = { 0, };
+ char szTmpStrLastPlayedPos[STR_LEN_MAX] = { 0, };
+
+ unsigned int nVideoInfoDuration =
+ mp_util_svc_get_video_duration_time(nVideoItemIndex);
+ unsigned int nVideoInfoLastTime = 0;
+
+ mp_util_convert_time(nVideoInfoDuration, szTmpStrDurationTime, FALSE);
+ mp_util_convert_time(nVideoInfoLastTime, szTmpStrLastPlayedPos, TRUE);
+
+ snprintf(szTmpStr, STR_LEN_MAX, "%s/%s", szTmpStrLastPlayedPos,
+ szTmpStrDurationTime);
+
+ return strdup(szTmpStr);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_share_view_select_grid_item_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ if (!g_pShareViaHandle->pObjVideosList) {
+ VideoLogError("No exist genlist object.");
+ return;
+ }
+
+ VideoLogInfo("");
+
+ int nVideoItemIndex = 0;
+
+ Elm_Object_Item *pItem = (Elm_Object_Item *) pEventInfo;
+ Elm_Object_Item *pSelectedItem =
+ elm_gengrid_selected_item_get(pObject);
+
+ if (pItem) {
+ nVideoItemIndex = (int) elm_object_item_data_get(pItem);
+ VideoLogInfo("nVideoItemIndex : %d", nVideoItemIndex);
+
+ int nVideoListSize =
+ mp_util_svc_get_number_of_video_item_by_type();
+
+ VideoLogInfo("BEFORE : nSelectCounterForEditList : %d",
+ g_pShareViaHandle->nSelectCounterForEditList);
+
+ if (g_pShareViaHandle->pCheckedItemsEditList[nVideoItemIndex]) {
+ g_pShareViaHandle->pCheckedItemsEditList[nVideoItemIndex] =
+ FALSE;
+ if (nVideoListSize ==
+ g_pShareViaHandle->nSelectCounterForEditList) {
+ VideoLogInfo
+ ("All check box of edit list state are not true.");
+ g_pShareViaHandle->bSelectallCheckBoxState = FALSE;
+ }
+
+ g_pShareViaHandle->nSelectCounterForEditList--;
+ if (g_pShareViaHandle->nSelectCounterForEditList < 1) {
+ VideoLogInfo("Unactivate delete button.");
+ elm_object_disabled_set(g_pShareViaWidget->pSavebtn,
+ EINA_TRUE);
+ }
+ } else {
+ VideoLogInfo("selected count = %d",
+ g_pShareViaHandle->nSelectCounterForEditList);
+ if (g_pShareViaHandle->nSelectCounterForEditList >
+ (VIDEO_SHARE_ITEM_MAX - 1)) {
+ char *pStrWarning =
+ g_strdup_printf(VIDEOS_NOTIPOP_MSG_SHARE_ITEM_MAX,
+ VIDEO_SHARE_ITEM_MAX);
+ mp_util_ticker_toast_popup(pStrWarning, false, false);
+ MP_FREE_STRING(pStrWarning);
+ if (pSelectedItem) {
+ elm_genlist_item_selected_set(pSelectedItem,
+ EINA_FALSE);
+ elm_gengrid_item_update(pSelectedItem);
+ }
+ return;
+ }
+ g_pShareViaHandle->pCheckedItemsEditList[nVideoItemIndex] =
+ TRUE;
+ g_pShareViaHandle->nSelectCounterForEditList++;
+ if (nVideoListSize ==
+ g_pShareViaHandle->nSelectCounterForEditList) {
+ VideoLogInfo("All check box of edit list state are true.");
+ g_pShareViaHandle->bSelectallCheckBoxState = TRUE;
+ }
+ }
+
+ VideoLogInfo("AFTER : nSelectCounterForEditList : %d",
+ g_pShareViaHandle->nSelectCounterForEditList);
+ elm_check_state_set(g_pShareViaWidget->pSelectallbtn,
+ g_pShareViaHandle->bSelectallCheckBoxState);
+
+ mp_share_view_change_title_info();
+ elm_gengrid_item_update(pItem);
+ } else {
+ VideoLogInfo("[ERR]Error item number.");
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+void mp_share_view_select_video_item_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ if (!g_pShareViaHandle->pObjVideosList) {
+ VideoLogError("No exist genlist object.");
+ return;
+ }
+
+ VideoLogInfo("");
+
+ int nVideoItemIndex = 0;
+
+ Elm_Object_Item *pItem = (Elm_Object_Item *) pEventInfo;
+ Elm_Object_Item *pSelectedItem =
+ elm_genlist_selected_item_get(pObject);
+
+ if (pItem) {
+ nVideoItemIndex = (int) elm_object_item_data_get(pItem);
+ VideoLogInfo("nVideoItemIndex : %d", nVideoItemIndex);
+
+ int nVideoListSize =
+ mp_util_svc_get_number_of_video_item_by_type();
+
+ VideoLogInfo("BEFORE : nSelectCounterForEditList : %d",
+ g_pShareViaHandle->nSelectCounterForEditList);
+
+ if (g_pShareViaHandle->pCheckedItemsEditList[nVideoItemIndex]) {
+ g_pShareViaHandle->pCheckedItemsEditList[nVideoItemIndex] =
+ FALSE;
+ if (nVideoListSize ==
+ g_pShareViaHandle->nSelectCounterForEditList) {
+ VideoLogInfo
+ ("All check box of edit list state are not true.");
+ g_pShareViaHandle->bSelectallCheckBoxState = FALSE;
+ }
+
+ g_pShareViaHandle->nSelectCounterForEditList--;
+ if (g_pShareViaHandle->nSelectCounterForEditList < 1) {
+ VideoLogInfo("Unactivate delete button.");
+ elm_object_disabled_set(g_pShareViaWidget->pSavebtn,
+ EINA_TRUE);
+ }
+ } else {
+ VideoLogInfo("Unactivate delete button. = %d",
+ g_pShareViaHandle->nSelectCounterForEditList);
+ if (g_pShareViaHandle->nSelectCounterForEditList >
+ (VIDEO_SHARE_ITEM_MAX - 1)) {
+ char *pStrWarning =
+ g_strdup_printf(VIDEOS_NOTIPOP_MSG_SHARE_ITEM_MAX,
+ VIDEO_SHARE_ITEM_MAX);
+ mp_util_ticker_toast_popup(pStrWarning, false, false);
+ MP_FREE_STRING(pStrWarning);
+ if (pSelectedItem) {
+ elm_genlist_item_selected_set(pSelectedItem,
+ EINA_FALSE);
+ }
+ return;
+ }
+ g_pShareViaHandle->pCheckedItemsEditList[nVideoItemIndex] =
+ TRUE;
+ g_pShareViaHandle->nSelectCounterForEditList++;
+ if (nVideoListSize ==
+ g_pShareViaHandle->nSelectCounterForEditList) {
+ VideoLogInfo("All check box of edit list state are true.");
+ g_pShareViaHandle->bSelectallCheckBoxState = TRUE;
+ }
+ }
+
+ VideoLogInfo("AFTER : nSelectCounterForEditList : %d",
+ g_pShareViaHandle->nSelectCounterForEditList);
+ elm_check_state_set(g_pShareViaWidget->pSelectallbtn,
+ g_pShareViaHandle->bSelectallCheckBoxState);
+ mp_share_view_change_title_info();
+ Evas_Object *check_box_layout =
+ elm_object_item_part_content_get(pItem, "elm.icon.2");
+ Evas_Object *check_box =
+ elm_object_part_content_get(check_box_layout,
+ "elm.swallow.content");
+ if (check_box) {
+ elm_check_state_set(check_box,
+ g_pShareViaHandle->
+ pCheckedItemsEditList[nVideoItemIndex]);
+ }
+
+ } else {
+ VideoLogInfo("[ERR]Error item number.");
+ }
+
+ if (pSelectedItem) {
+ elm_genlist_item_selected_set(pSelectedItem, EINA_FALSE);
+ }
+}
+
+#ifdef VS_FEATURE_THUMBNAIL_VIEW
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+static char *__mp_share_view_get_label_of_grid_item_cb(const void
+ *pUserData,
+ Evas_Object *
+ pObject,
+ const char *pPart)
+{
+ int nVideoItemIndex = (int) pUserData;
+
+ if (!strcmp(pPart, "elm.text")) {
+ char *szTitle = NULL;
+ szTitle = mp_util_svc_get_video_title(nVideoItemIndex);
+ char *szTitleUtf8 = elm_entry_utf8_to_markup(szTitle);
+
+ if (szTitle) {
+ free(szTitle);
+ szTitle = NULL;
+ }
+
+ return szTitleUtf8;
+ } else if (!strcmp(pPart, "elm.text.2")) {
+ return mp_util_svc_get_duration_str_time(nVideoItemIndex);
+ }
+
+ return NULL;
+}
+#endif
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+char *mp_share_view_get_label_of_video_item_cb(const void *pUserData,
+ Evas_Object * pObject,
+ const char *pPart)
+{
+ int nVideoItemIndex = (int) pUserData;
+
+ if (!strcmp(pPart, "elm.text.main.left.top")) {
+ char *szTitle = NULL;
+ szTitle = mp_util_svc_get_video_title(nVideoItemIndex);
+ char *szTitleUtf8 = elm_entry_utf8_to_markup(szTitle);
+
+ if (szTitle) {
+ free(szTitle);
+ szTitle = NULL;
+ }
+
+ return szTitleUtf8;
+ } else if (!strcmp(pPart, "elm.text.sub.left.bottom")) {
+ return mp_util_svc_get_duration_str_time(nVideoItemIndex);
+ }
+ return NULL;
+}
+
+#ifdef VS_FEATURE_THUMBNAIL_VIEW
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+static Evas_Object *__mp_share_view_get_grid_icon_cb(const void *pUserData,
+ Evas_Object * pObject,
+ const char *pPart)
+{
+ int nVideoItemIndex = (int) pUserData;
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VIDEO_PLAYER_IMAGE_NAME_EDJ);
+ free(path);
+ if (!strcmp(pPart, "elm.swallow.icon")) {
+ char *pThumbIconUri =
+ mp_util_svc_get_video_thumbnail(nVideoItemIndex);
+ Evas_Object *pBg = NULL;
+
+ if (!pThumbIconUri || !vp_file_exists(pThumbIconUri)) {
+ pBg = elm_image_add(pObject);
+ MP_FREE_STRING(pThumbIconUri);
+ evas_object_size_hint_aspect_set(pBg, EVAS_ASPECT_CONTROL_BOTH,
+ 1, 1);
+ elm_image_file_set(pBg, pThumbIconUri, NULL);
+ } else {
+ pBg =
+ mp_util_create_preload_image(pObject, pThumbIconUri,
+ GRID_VIDEO_ICON_WIDTH);
+ }
+
+ MP_FREE_STRING(pThumbIconUri);
+
+ return pBg;
+ } else if (!strcmp(pPart, "elm.progressbar.icon")) {
+ return NULL;
+ } else if (!strcmp(pPart, "elm.lock.icon")) {
+ char *pVideoFile = mp_util_svc_get_video_url(nVideoItemIndex);
+ bool bRet = mp_util_check_video_personal_status((const char *)
+ pVideoFile);
+ MP_FREE_STRING(pVideoFile);
+ if (bRet) {
+ Evas_Object *pLockIcon = elm_image_add(pObject);
+ elm_image_file_set(pLockIcon,
+ edj_path,
+ VIDEO_LIST_VIEW_ICON_PERSONAL_LOCK);
+ evas_object_size_hint_align_set(pLockIcon,
+ EVAS_HINT_FILL,
+ EVAS_HINT_FILL);
+ evas_object_size_hint_weight_set(pLockIcon, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_show(pLockIcon);
+ return pLockIcon;
+ } else {
+ return NULL;
+ }
+ } else if (!strcmp(pPart, "elm.dropbox.icon")) {
+ bool bRet = mp_util_svc_is_cloud_storage(nVideoItemIndex);
+ if (bRet) {
+ Evas_Object *pDropboxIcon = elm_image_add(pObject);
+ elm_image_file_set(pDropboxIcon,
+ edj_path, VIDEO_LIST_VIEW_ICON_DROPBOX);
+ evas_object_size_hint_align_set(pDropboxIcon,
+ EVAS_HINT_FILL,
+ EVAS_HINT_FILL);
+ evas_object_size_hint_weight_set(pDropboxIcon,
+ EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_show(pDropboxIcon);
+ return pDropboxIcon;
+ } else {
+ return NULL;
+ }
+ } else if (!strcmp(pPart, "elm.swallow.end")) {
+ Evas_Object *pCheckBox = elm_check_add(pObject);
+ elm_object_style_set(pCheckBox, "default");
+ elm_check_state_pointer_set(pCheckBox,
+ (Eina_Bool *) & (g_pShareViaHandle->
+ pCheckedItemsEditList
+ [nVideoItemIndex]));
+
+ evas_object_show(pCheckBox);
+
+ return pCheckBox;
+ }
+ return NULL;
+}
+#endif
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+Evas_Object *mp_share_view_get_icon_of_video_item_cb(const void *pUserData,
+ Evas_Object * pObject,
+ const char *pPart)
+{
+ int nVideoItemIndex = (int) pUserData;
+ Evas_Object *pLayout = NULL;
+
+ if (!strcmp(pPart, "elm.icon.1")) {
+ pLayout = elm_layout_add(pObject);
+ char *pThumbIconUri =
+ mp_util_svc_get_video_thumbnail(nVideoItemIndex);
+ Evas_Object *pBg = NULL;
+
+ if (!pThumbIconUri || !vp_file_exists(pThumbIconUri)) {
+ MP_FREE_STRING(pThumbIconUri);
+ }
+
+ pBg = mp_util_create_preload_image(pLayout, pThumbIconUri,
+ VIDEO_ICON_WIDTH);
+ if (pBg)
+ evas_object_show(pBg);
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VIDEO_CUSTOM_THEME);
+ free(path);
+ elm_layout_file_set(pLayout, edj_path,
+ "listview.thumbnail.layout");
+ elm_layout_content_set(pLayout, "elm.thumbnail.icon", pBg);
+
+ MP_FREE_STRING(pThumbIconUri);
+
+ if (!mp_util_create_video_sub_icon(pLayout, nVideoItemIndex)) {
+ VideoLogWarning("Create sub icon is failed.", nVideoItemIndex);
+ }
+
+ return pLayout;
+ } else if (!strcmp(pPart, "elm.icon.2")) {
+ pLayout = elm_layout_add(pObject);
+ Evas_Object *pCheckBox = elm_check_add(pLayout);
+
+ elm_layout_theme_set(pLayout, "layout", "list/C/type.2",
+ "default");
+ evas_object_propagate_events_set(pCheckBox, EINA_FALSE);
+ evas_object_smart_callback_add(pCheckBox, "changed",
+ mp_share_view_change_check_box_state_cb,
+ pUserData);
+ elm_check_state_pointer_set(pCheckBox,
+ (Eina_Bool *) & (g_pShareViaHandle->
+ pCheckedItemsEditList
+ [nVideoItemIndex]));
+
+ evas_object_show(pCheckBox);
+
+ elm_layout_content_set(pLayout, "elm.swallow.content", pCheckBox);
+
+ return pLayout;
+ }
+
+ MP_DEL_OBJ(pLayout);
+ return NULL;
+}
+
+/**
+ *
+ * @return
+ */
+int mp_share_view_get_sort_type(void)
+{
+ switch (mp_sort_ctrl_get_sort_state()) {
+
+ case MP_LIST_SORT_BY_RECENTLY_ADDED:
+ g_pShareViaHandle->nSortType = MP_MEDIA_SORT_BY_RECENTLY_ADDED;
+ break;
+
+ case MP_LIST_SORT_BY_NAME:
+ g_pShareViaHandle->nSortType = MP_MEDIA_SORT_BY_NAME;
+ break;
+
+ }
+
+ return g_pShareViaHandle->nSortType;
+}
+
+#ifdef VS_FEATURE_THUMBNAIL_VIEW
+/**
+ *
+ * @param pObjVideosList
+ * @param nGenItemIndex
+ */
+static void __mp_share_view_append_grid_items(void *pObjVideosList,
+ int nGenItemIndex)
+{
+ if (!g_pShareViaHandle) {
+ VideoLogInfo("invalid handle");
+ return;
+ }
+ MP_DEL_GRID_ITC(g_pShareViaHandle->pGenGridItc_1);
+ MP_DEL_GRID_ITC(g_pShareViaHandle->pGenGridItc_2);
+ g_pShareViaHandle->pGenGridItc_1 = elm_gengrid_item_class_new();
+ g_pShareViaHandle->pGenGridItc_1->item_style = "video/album_grid";
+ g_pShareViaHandle->pGenGridItc_1->func.text_get =
+ (void *) __mp_share_view_get_label_of_grid_item_cb;
+ g_pShareViaHandle->pGenGridItc_1->func.content_get =
+ (void *) __mp_share_view_get_grid_icon_cb;
+ g_pShareViaHandle->pGenGridItc_1->func.state_get = NULL;
+ g_pShareViaHandle->pGenGridItc_1->func.del = NULL;
+
+ int nCount = (mp_rotate_ctrl_check_landspace_by_win((Evas_Object *)
+ mp_util_get_main_window_handle
+ ()) ?
+ VP_GENLIST_THUMB_LANDSPACE_COUNT :
+ VP_GENLIST_THUMB_PORTRAIT_COUNT);
+ int nIndex = nGenItemIndex * nCount;
+ int nMaxIndex = nIndex + nCount;
+ int nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+
+ Elm_Object_Item *gridItem = NULL;
+ for (; (nIndex < nMaxIndex) && (nIndex < nVideoListSize); nIndex++) {
+ gridItem =
+ elm_gengrid_item_append(pObjVideosList,
+ g_pShareViaHandle->pGenGridItc_1,
+ (void *) nIndex,
+ __mp_share_view_select_grid_item_cb,
+ (void *) nIndex);
+ elm_gengrid_item_select_mode_set(gridItem,
+ ELM_OBJECT_SELECT_MODE_ALWAYS);
+ elm_object_item_data_set(gridItem, (void *) nIndex);
+ }
+}
+
+/**
+ *
+ * @param parent
+ * @param nWidth
+ * @param nHeight
+ * @return
+ */
+static Evas_Object *__mp_share_view_create_gengrid(Evas_Object * parent,
+ int nWidth, int nHeight)
+{
+ Evas_Object *pGengrid;
+ pGengrid = elm_gengrid_add(parent);
+ if (!pGengrid) {
+ VideoLogError("pVideoGrid is not existed.");
+ return NULL;
+ }
+ evas_object_size_hint_weight_set(pGengrid, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(pGengrid, EVAS_HINT_FILL,
+ EVAS_HINT_FILL);
+ elm_gengrid_item_size_set(pGengrid, nWidth, nHeight);
+ elm_gengrid_align_set(pGengrid, 0.0, 0.0);
+ elm_gengrid_horizontal_set(pGengrid, EINA_TRUE);
+
+ return pGengrid;
+}
+
+/**
+ *
+ * @param height
+ * @param width
+ */
+static void mp_share_view_get_icon_dimensions(int *height, int *width)
+{
+ int winHeight = 0;
+ int winWidth = 0;
+ elm_win_screen_size_get(mp_util_get_main_window_handle(), NULL, NULL,
+ &winWidth, &winHeight);
+
+ bool bLandscape = mp_rotate_ctrl_check_landspace_by_win((Evas_Object *)
+ mp_util_get_main_window_handle
+ ());
+ if (bLandscape) {
+ *width = winHeight / VP_GENLIST_THUMB_LANDSPACE_COUNT;
+ } else {
+ *width = winWidth / VP_GENLIST_THUMB_PORTRAIT_COUNT;
+ }
+ *height = VP_ALBUM_THUMB_ICON_HEIGHT * MP_SCALE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+static Evas_Object *__mp_share_view_get_icon_of_grid_cb(const void
+ *pUserData,
+ Evas_Object *
+ pObject,
+ const char *pPart)
+{
+ if (!g_pShareViaHandle || !pObject) {
+ VideoLogError("g_pMainViewWidgetOfShareList is NULL");
+ return NULL;
+ }
+
+ int nGenItemIndex = (int) pUserData;
+ int nHeight = 0;
+ int nWidth = 0;
+ mp_share_view_get_icon_dimensions(&nHeight, &nWidth);
+
+ Evas_Object *pGengrid = __mp_share_view_create_gengrid(pObject,
+ nWidth,
+ nHeight);
+ __mp_share_view_append_grid_items(pGengrid, nGenItemIndex);
+
+ return pGengrid;
+}
+
+/**
+ *
+ * @param nVideoItemIndex
+ * @return
+ */
+int mp_share_view_thumbnail_to_genlist_index(int nVideoItemIndex)
+{
+ if (nVideoItemIndex < 0) {
+ VideoLogDebug("invalid nVideoItemIndex");
+ return 0;
+ }
+ int nGenlistIndex = 0;
+ int nItemCount = (mp_rotate_ctrl_check_landspace_by_win((Evas_Object *)
+ mp_util_get_main_window_handle
+ ()) ?
+ VP_GENLIST_THUMB_LANDSPACE_COUNT :
+ VP_GENLIST_THUMB_PORTRAIT_COUNT);
+ nGenlistIndex = nVideoItemIndex / nItemCount;
+ return nGenlistIndex;
+}
+
+/**
+ *
+ * @param pGenlist
+ * @return
+ */
+static bool __mp_share_view_append_grid_layout(void *pGenlist)
+{
+ if (!pGenlist || !g_pShareViaHandle) {
+ VideoLogError("error handle.");
+ return FALSE;
+ }
+ int nIndex = 0;
+ int nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+ if (nVideoListSize <= 0) {
+ VideoLogWarning("nVideoListSize = %d", nVideoListSize);
+ return FALSE;
+ } else {
+ VideoLogWarning("nVideoListSize = %d", nVideoListSize);
+ }
+
+ MP_DEL_ITC(g_pShareViaHandle->pGenListItc);
+ g_pShareViaHandle->pGenListItc = elm_genlist_item_class_new();
+ g_pShareViaHandle->pGenListItc->item_style = "video/1icon.thumbnail";
+ g_pShareViaHandle->pGenListItc->func.text_get = NULL;
+ g_pShareViaHandle->pGenListItc->func.content_get =
+ (void *) __mp_share_view_get_icon_of_grid_cb;
+ g_pShareViaHandle->pGenListItc->func.state_get = NULL;
+ g_pShareViaHandle->pGenListItc->func.del = NULL;
+ g_pShareViaHandle->pGenListItc->decorate_item_style = NULL;
+
+ MP_DEL_ITC(g_pShareViaHandle->pGenListLandscapeItc);
+ g_pShareViaHandle->pGenListLandscapeItc = elm_genlist_item_class_new();
+ g_pShareViaHandle->pGenListLandscapeItc->item_style =
+ "video/1icon.thumbnail.landscape";
+ g_pShareViaHandle->pGenListLandscapeItc->func.text_get = NULL;
+ g_pShareViaHandle->pGenListLandscapeItc->func.content_get =
+ (void *) __mp_share_view_get_icon_of_grid_cb;
+ g_pShareViaHandle->pGenListLandscapeItc->func.state_get = NULL;
+ g_pShareViaHandle->pGenListLandscapeItc->func.del = NULL;
+ g_pShareViaHandle->pGenListLandscapeItc->decorate_item_style = NULL;
+
+ int nGenlistRow = 0;
+ nGenlistRow =
+ mp_share_view_thumbnail_to_genlist_index(nVideoListSize - 1);
+
+ if (mp_rotate_ctrl_check_landspace_by_win((Evas_Object *)
+ mp_util_get_main_window_handle
+ ())) {
+ for (nIndex = 0; nIndex <= nGenlistRow; nIndex++) {
+ elm_genlist_item_append(pGenlist,
+ g_pShareViaHandle->
+ pGenListLandscapeItc, (void *) nIndex,
+ NULL, ELM_GENLIST_ITEM_NONE, NULL,
+ NULL);
+ }
+ } else {
+ for (nIndex = 0; nIndex <= nGenlistRow; nIndex++) {
+ elm_genlist_item_append(pGenlist,
+ g_pShareViaHandle->pGenListItc,
+ (void *) nIndex,
+ NULL,
+ ELM_GENLIST_ITEM_NONE, NULL, NULL);
+ }
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __mp_share_via_view_rotate_cb(void *data, Evas_Object * obj,
+ void *event_info)
+{
+ if (!g_pShareViaHandle) {
+ VideoLogError("__mp_share_via_view_rotate_cb IS null");
+ return;
+ }
+ bool bLandscape = mp_rotate_ctrl_check_landspace_by_win((Evas_Object *)
+ mp_util_get_main_window_handle
+ ());
+ if (bLandscape) {
+ VideoLogInfo("Landscape mode");
+ g_pShareViaHandle->bLandscape = true;
+ } else {
+ VideoLogInfo("Portrait mode");
+ g_pShareViaHandle->bLandscape = false;
+ }
+ __mp_share_view_arrange_video_list(g_pShareViaHandle->pObjVideosList,
+ TRUE);
+ mp_share_view_change_title_info();
+}
+#endif
+
+/**
+ *
+ * @param pObjVideosList
+ */
+static void __mp_share_view_append_video_items(void *pObjVideosList)
+{
+ VideoLogInfo("");
+ if (!g_pShareViaHandle) {
+ VideoLogError("No exist g_pShareViaHandle.");
+ return;
+ }
+
+ int nIndex = 0;
+ int nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+ MP_DEL_ITC(g_pShareViaHandle->pGenListItc);
+ g_pShareViaHandle->pGenListItc = elm_genlist_item_class_new();
+ g_pShareViaHandle->pGenListItc->item_style = "2line.top";
+ g_pShareViaHandle->pGenListItc->func.text_get =
+ (void *) mp_share_view_get_label_of_video_item_cb;
+ g_pShareViaHandle->pGenListItc->func.content_get =
+ (void *) mp_share_view_get_icon_of_video_item_cb;
+ g_pShareViaHandle->pGenListItc->func.state_get = NULL;
+ g_pShareViaHandle->pGenListItc->func.del = NULL;
+
+ for (nIndex = 0; nIndex < nVideoListSize; nIndex++) {
+ elm_genlist_item_append(pObjVideosList,
+ g_pShareViaHandle->pGenListItc,
+ (void *) nIndex, NULL,
+ ELM_GENLIST_ITEM_NONE,
+ mp_share_view_select_video_item_cb, NULL);
+ }
+}
+
+/**
+ *
+ * @param nTotalSize
+ */
+void mp_share_view_set_value(int nTotalSize)
+{
+ VideoLogInfo("nTotalSize : [%d]", nTotalSize);
+
+ if (g_pShareViaHandle->pCheckedItemsEditList) {
+ free(g_pShareViaHandle->pCheckedItemsEditList);
+ g_pShareViaHandle->pCheckedItemsEditList = NULL;
+ }
+
+ if (nTotalSize > 0) {
+ g_pShareViaHandle->pCheckedItemsEditList =
+ (bool *) malloc(sizeof(bool) * nTotalSize);
+ memset(g_pShareViaHandle->pCheckedItemsEditList, 0,
+ sizeof(bool) * nTotalSize);
+ }
+
+ g_pShareViaHandle->bSelectallCheckBoxState = FALSE;
+}
+
+/**
+ *
+ * @param pObjVideosList
+ * @param bNeedSvc
+ * @return
+ */
+bool __mp_share_view_arrange_video_list(void *pObjVideosList,
+ bool bNeedSvc)
+{
+ if (!g_pShareViaWidget || !g_pShareViaHandle) {
+ VideoLogError("No exist g_pShareViaListViewWidget.");
+ return FALSE;
+ }
+
+ if (!pObjVideosList) {
+ VideoLogError("No exist genlist object.");
+ return FALSE;
+ }
+
+ int nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+ int nSortType = mp_share_view_get_sort_type();
+ int nViewType = mp_view_as_ctrl_get_type();
+
+ if ((nViewType == MP_LIST_VIEW_AS_FOLDER_LIST) &&
+ (g_pShareViaHandle->pFolderPath)) {
+ VideoSecureLogInfo("szFolderPath : %s",
+ g_pShareViaHandle->pFolderPath);
+ if (g_pShareViaHandle->pFolderPath) {
+ if (vp_file_exists(g_pShareViaHandle->pFolderPath)) {
+ /* update video-list */
+ VideoLogInfo("update delete item");
+ mp_util_svc_destory_video_item_list();
+ mp_util_svc_extract_video_list_from_folder
+ (g_pShareViaHandle->pFolderPath, nSortType,
+ MP_LIST_VIEW_PHONE);
+#ifdef ENABLE_DRM_FEATURE
+ mp_util_svc_filter_drm_video_item_list();
+#endif
+ if (bNeedSvc) {
+ } else {
+ mp_share_view_set_value(nVideoListSize);
+ }
+ } else {
+ VideoLogInfo("popup folder item");
+ elm_naviframe_item_pop(g_pShareViaHandle->
+ pNaviFrameHandle);
+ return FALSE;
+ }
+ }
+ } else {
+ mp_util_svc_destory_video_item_list();
+ mp_util_svc_extract_video_list_by_item_type(nSortType,
+ MP_LIST_VIEW_PHONE);
+#ifdef ENABLE_DRM_FEATURE
+ mp_util_svc_filter_drm_video_item_list();
+#endif
+ if (bNeedSvc) {
+ } else {
+ mp_share_view_set_value(nVideoListSize);
+ }
+ }
+
+ VideoLogInfo("nVideoListSize : %d", nVideoListSize);
+
+ if (nVideoListSize > 0) {
+#ifdef VS_FEATURE_THUMBNAIL_VIEW
+ if (g_pShareViaHandle->bThumbnailView) {
+ elm_genlist_clear(pObjVideosList);
+ __mp_share_view_append_grid_layout(pObjVideosList);
+ } else
+#endif
+ {
+ elm_genlist_clear(pObjVideosList);
+ __mp_share_view_append_video_items(pObjVideosList);
+ }
+ } else {
+ elm_naviframe_item_pop(g_pShareViaHandle->pNaviFrameHandle);
+ return FALSE;
+ }
+#ifdef VS_FEATURE_THUMBNAIL_VIEW
+ if (!g_pShareViaHandle->bThumbnailView) {
+ elm_genlist_decorate_mode_set(pObjVideosList, EINA_TRUE);
+ }
+#endif
+ evas_object_show(pObjVideosList);
+ return TRUE;
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+Evas_Object *mp_share_view_create_internal_layout(void *pParent)
+{
+ if (!pParent) {
+ VideoLogInfo("[ERR]");
+ return NULL;
+ }
+
+ VideoLogInfo("");
+
+ if (g_pShareViaWidget->pChareViaViewBaselayout) {
+ evas_object_del(g_pShareViaWidget->pChareViaViewBaselayout);
+ g_pShareViaWidget->pChareViaViewBaselayout = NULL;
+ }
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VIDEO_PLAYER_REMOVE_LIST_EDJ);
+ free(path);
+ g_pShareViaWidget->pChareViaViewBaselayout = elm_layout_add(pParent);
+ elm_layout_file_set(g_pShareViaWidget->pChareViaViewBaselayout,
+ edj_path, REMOVE_LIST_EDJ_GROUP);
+ evas_object_size_hint_weight_set(g_pShareViaWidget->
+ pChareViaViewBaselayout,
+ EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(g_pShareViaWidget->
+ pChareViaViewBaselayout,
+ EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+ return g_pShareViaWidget->pChareViaViewBaselayout;
+}
+
+/**
+ *
+ * @param nSelectedSize
+ * @return
+ */
+static bool __mp_share_view_get_selected_video_list(int nSelectedSize)
+{
+ if (!g_pShareViaHandle || !g_pShareViaWidget) {
+ VideoLogError("Main handles of list view are not existed.");
+ return FALSE;
+ }
+
+ int nVideoListSize = 0;
+
+ if (LIST_TAB_TYPE_PERSONAL != g_pShareViaHandle->eTabType) {
+ return FALSE;
+ }
+
+ if (!g_pShareViaHandle->nSelectCounterForEditList || nSelectedSize < 1) {
+ return FALSE;
+ }
+
+ nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+
+ __mp_share_view_free_selected_list();
+
+ int nIndex = 0;
+ int nCounter = 0;
+ char *pMediaId = NULL;
+
+ g_pShareViaHandle->pSelectedList = (char **) calloc(sizeof(char *),
+ nSelectedSize);
+ if (g_pShareViaHandle->pSelectedList) {
+ VideoLogError("pSelectedList is NULL");
+ return FALSE;
+ }
+
+ VideoLogInfo("current edit size===%d", nSelectedSize);
+
+ for (nCounter = 0; nCounter < nVideoListSize; nCounter++) {
+ if (g_pShareViaHandle->pCheckedItemsEditList[nCounter]) {
+ pMediaId = mp_util_svc_get_video_id_by_index(nCounter);
+
+ if (pMediaId) {
+ g_pShareViaHandle->pSelectedList[nIndex] =
+ strdup(pMediaId);
+ MP_FREE_STRING(pMediaId);
+ nIndex++;
+ }
+ }
+ }
+ return TRUE;
+}
+
+/**
+ *
+ * @param pUserData
+ */
+static void __mp_share_view_db_changed_cb(void *pUserData)
+{
+ if (!g_pShareViaHandle || !g_pShareViaWidget) {
+ VideoLogError("Main handles of list view are not existed.");
+ return;
+ }
+ bool bNormalShow = TRUE;
+ bNormalShow =
+ __mp_share_view_arrange_video_list(g_pShareViaHandle->
+ pObjVideosList, TRUE);
+ if (!bNormalShow) {
+ VideoLogError("invalid view");
+ return;
+ }
+
+ Elm_Object_Item *pItem = NULL;
+#ifdef VS_FEATURE_THUMBNAIL_VIEW
+ if (g_pShareViaHandle->bThumbnailView) {
+ pItem =
+ elm_gengrid_first_item_get(g_pShareViaHandle->pObjVideosList);
+ if (pItem) {
+ elm_gengrid_item_bring_in(pItem, ELM_GENGRID_ITEM_SCROLLTO_IN);
+ }
+ } else
+#endif
+ {
+ pItem =
+ elm_genlist_first_item_get(g_pShareViaHandle->pObjVideosList);
+ if (pItem) {
+ elm_genlist_item_bring_in(pItem, ELM_GENLIST_ITEM_SCROLLTO_IN);
+ }
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ */
+static void __mp_share_view_db_backup_cb(void *pUserData)
+{
+ if (!g_pShareViaHandle || !g_pShareViaWidget) {
+ VideoLogError("Main handles of list view are not existed.");
+ return;
+ }
+ __mp_share_view_get_selected_video_list(g_pShareViaHandle->
+ nSelectCounterForEditList);
+}
+
+/**
+ *
+ * @param data
+ * @param evas
+ * @param obj
+ * @param event_info
+ */
+static void __mp_share_select_all_layout_down_cb(void *data, Evas * evas,
+ Evas_Object * obj,
+ void *event_info)
+{
+ if (!g_pShareViaHandle || !g_pShareViaWidget) {
+ VideoLogError("Main handles of list view are not existed.");
+ return;
+ }
+
+ int nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+ VideoLogInfo("nVideoListSize : %d", nVideoListSize);
+
+ Evas_Object *check =
+ elm_object_part_content_get(g_pShareViaWidget->pSelAllLayout,
+ "elm.icon");
+ Eina_Bool state = elm_check_state_get(check);
+
+ if (nVideoListSize <= VIDEO_SHARE_ITEM_MAX) {
+ elm_check_state_set(check, !state);
+ }
+
+ __mp_share_view_select_all_change_check_box_cb(data, check, NULL);
+}
+
+/**
+ *
+ * @param pParent
+ */
+void mp_share_view_init(void *pParent)
+{
+ if (!g_pShareViaHandle || !g_pShareViaWidget) {
+ VideoLogError("Main handles of list view are not existed.");
+ return;
+ }
+
+ VideoLogInfo("");
+ g_pShareViaWidget->pChareViaViewBaselayout =
+ mp_share_view_create_internal_layout(pParent);
+ if (!g_pShareViaWidget->pChareViaViewBaselayout) {
+ VideoLogError("pChareViaViewBaselayout is not existed.");
+ return;
+ }
+ evas_object_event_callback_add(g_pShareViaWidget->
+ pChareViaViewBaselayout,
+ EVAS_CALLBACK_DEL,
+ __mp_share_view_base_layout_del_cb,
+ NULL);
+
+ g_pShareViaWidget->pVideoListBox =
+ elm_box_add(g_pShareViaWidget->pChareViaViewBaselayout);
+ if (!g_pShareViaWidget->pVideoListBox) {
+ VideoLogError("pVideoListBox is not existed.");
+ return;
+ }
+
+ evas_object_size_hint_weight_set(g_pShareViaWidget->pVideoListBox,
+ EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(g_pShareViaWidget->pVideoListBox,
+ EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+ mp_widget_ctrl_create_select_all_layout(g_pShareViaWidget->
+ pVideoListBox,
+ __mp_share_view_select_all_change_check_box_cb,
+ __mp_share_select_all_layout_down_cb,
+ (void *) g_pShareViaWidget,
+ &g_pShareViaWidget->
+ pSelectallbtn,
+ &g_pShareViaWidget->
+ pSelAllLayout);
+
+ if (!g_pShareViaWidget->pSelAllLayout) {
+ VideoLogError("pSelAllLayout is not existed.");
+ return;
+ }
+
+ elm_box_pack_start(g_pShareViaWidget->pVideoListBox,
+ g_pShareViaWidget->pSelAllLayout);
+
+
+#ifdef VS_FEATURE_THUMBNAIL_VIEW
+ if (g_pShareViaHandle->bThumbnailView) {
+ g_pShareViaHandle->pObjVideosList =
+ elm_genlist_add(g_pShareViaWidget->pVideoListBox);
+ if (!g_pShareViaHandle->pObjVideosList) {
+ VideoLogError("pObjVideosList does not exist.");
+ return;
+ }
+ elm_scroller_bounce_set(g_pShareViaHandle->pObjVideosList,
+ EINA_FALSE, EINA_TRUE);
+ evas_object_size_hint_weight_set(g_pShareViaHandle->pObjVideosList,
+ EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(g_pShareViaHandle->pObjVideosList,
+ EVAS_HINT_FILL, EVAS_HINT_FILL);
+ elm_genlist_block_count_set(g_pShareViaHandle->pObjVideosList,
+ VIDEO_GENLIST_BLOCK_COUNT);
+ elm_genlist_homogeneous_set(g_pShareViaHandle->pObjVideosList,
+ EINA_TRUE);
+ elm_genlist_mode_set(g_pShareViaHandle->pObjVideosList,
+ ELM_LIST_COMPRESS);
+ } else
+#endif
+ {
+ g_pShareViaHandle->pObjVideosList =
+ elm_genlist_add(g_pShareViaWidget->pVideoListBox);
+ if (!g_pShareViaHandle->pObjVideosList) {
+ VideoLogError("pObjVideosList is not existed.");
+ return;
+ }
+ evas_object_size_hint_weight_set(g_pShareViaHandle->pObjVideosList,
+ EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(g_pShareViaHandle->pObjVideosList,
+ EVAS_HINT_FILL, EVAS_HINT_FILL);
+ elm_genlist_block_count_set(g_pShareViaHandle->pObjVideosList,
+ VIDEO_GENLIST_BLOCK_COUNT);
+ elm_genlist_homogeneous_set(g_pShareViaHandle->pObjVideosList,
+ EINA_TRUE);
+ elm_genlist_mode_set(g_pShareViaHandle->pObjVideosList,
+ ELM_LIST_COMPRESS);
+ }
+
+ elm_box_pack_end(g_pShareViaWidget->pVideoListBox,
+ g_pShareViaHandle->pObjVideosList);
+ elm_object_part_content_set(g_pShareViaWidget->pChareViaViewBaselayout,
+ SWALLOW_LISTVIEW_CONTENT,
+ g_pShareViaWidget->pVideoListBox);
+
+ bool bNormalShow = TRUE;
+ bNormalShow =
+ __mp_share_view_arrange_video_list(g_pShareViaHandle->
+ pObjVideosList, FALSE);
+ if (!bNormalShow) {
+ VideoLogError("invalid view");
+ return;
+ }
+
+ char *szTitle = g_strdup_printf(VIDEOS_SELECTVIEW_HEADER_PD_SELECTED,
+ g_pShareViaHandle->
+ nSelectCounterForEditList);
+
+ g_pShareViaHandle->pNaviFrameItem =
+ elm_naviframe_item_push(g_pShareViaHandle->pNaviFrameHandle,
+ szTitle, NULL, NULL,
+ g_pShareViaWidget->pChareViaViewBaselayout,
+ NULL);
+ elm_object_item_domain_text_translatable_set(g_pShareViaHandle->
+ pNaviFrameItem,
+ VIDEOS_STRING, EINA_TRUE);
+ elm_naviframe_item_pop_cb_set(g_pShareViaHandle->pNaviFrameItem,
+ mp_share_view_back_btn_cb,
+ g_pShareViaHandle);
+
+ elm_naviframe_item_title_enabled_set(g_pShareViaHandle->pNaviFrameItem,
+ EINA_TRUE, EINA_FALSE);
+ evas_object_smart_callback_add(g_pShareViaHandle->pNaviFrameHandle,
+ "transition,finished",
+ mp_share_view_naviframe_transition_effect_cb,
+ NULL);
+
+
+ g_pShareViaWidget->pCancelbtn =
+ elm_button_add(g_pShareViaHandle->pNaviFrameHandle);
+ elm_object_style_set(g_pShareViaWidget->pCancelbtn,
+ "naviframe/title_left");
+ mp_util_set_translate_str(g_pShareViaWidget->pCancelbtn,
+ "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB");
+ elm_object_signal_callback_add(g_pShareViaWidget->pCancelbtn,
+ "elm,action,click", "",
+ __mp_share_view_show_cancel_cb,
+ (void *) g_pShareViaHandle);
+ elm_object_item_part_content_set(g_pShareViaHandle->pNaviFrameItem,
+ "title_left_btn",
+ g_pShareViaWidget->pCancelbtn);
+ evas_object_show(g_pShareViaWidget->pCancelbtn);
+
+ /* Title Done layout */
+ g_pShareViaWidget->pSavebtn =
+ elm_button_add(g_pShareViaHandle->pNaviFrameHandle);
+ elm_object_style_set(g_pShareViaWidget->pSavebtn,
+ "naviframe/title_right");
+ mp_util_set_translate_str(g_pShareViaWidget->pSavebtn,
+ "IDS_TPLATFORM_ACBUTTON_DONE_ABB");
+ elm_object_signal_callback_add(g_pShareViaWidget->pSavebtn,
+ "elm,action,click", "",
+ __mp_share_view_show_share_via_panel_cb,
+ (void *) g_pShareViaHandle);
+ elm_object_item_part_content_set(g_pShareViaHandle->pNaviFrameItem,
+ "title_right_btn",
+ g_pShareViaWidget->pSavebtn);
+ evas_object_show(g_pShareViaWidget->pSavebtn);
+ elm_object_disabled_set(g_pShareViaWidget->pSavebtn, EINA_TRUE);
+
+ evas_object_show(g_pShareViaHandle->pObjVideosList);
+ evas_object_show(g_pShareViaWidget->pChareViaViewBaselayout);
+
+ mp_util_db_set_update_fun(g_pShareViaHandle->euLev,
+ __mp_share_view_db_changed_cb);
+ mp_util_db_set_backup_fun(g_pShareViaHandle->euLev,
+ __mp_share_view_db_backup_cb);
+
+ MP_FREE_STRING(szTitle);
+ mp_util_hide_indicator();
+}
+
+/**
+ *
+ * @param pNaviFrame
+ * @param pChangeViewCb
+ * @param pFolderPath
+ * @param eTabType
+ */
+void mp_share_view_push(void *pNaviFrame,
+ ChangeListShareViewCbFunc pChangeViewCb,
+ char *pFolderPath, MpVideoListTabType eTabType)
+{
+ VideoLogInfo("");
+ if (g_pShareViaHandle || g_pShareViaWidget) {
+ mp_share_view_destroy();
+ }
+
+ g_pShareViaHandle = (st_VideoListShareViaViewHandle *) calloc(1,
+ sizeof
+ (st_VideoListShareViaViewHandle));
+ g_pShareViaWidget =
+ (st_VideoListShareViaViewWidget *) calloc(1,
+ sizeof
+ (st_VideoListShareViaViewWidget));
+
+ memset(g_pShareViaHandle, 0, sizeof(st_VideoListShareViaViewHandle));
+ memset(g_pShareViaWidget, 0, sizeof(st_VideoListShareViaViewWidget));
+ mp_share_view_reset_value();
+
+ g_pShareViaHandle->pNaviFrameHandle = pNaviFrame;
+ g_pShareViaHandle->pChangeViewUserCbFunc = pChangeViewCb;
+ if (pFolderPath) {
+ g_pShareViaHandle->pFolderPath = strdup(pFolderPath);
+ }
+
+ g_pShareViaHandle->eTabType = eTabType;
+ g_pShareViaHandle->euLev = MP_DB_UPDATE_LEV_1;
+
+ int nViewType = mp_view_as_ctrl_get_type();
+
+ if (nViewType == MP_LIST_VIEW_AS_FOLDER_LIST &&
+ g_pShareViaHandle->pFolderPath) {
+ g_pShareViaHandle->euLev = MP_DB_UPDATE_LEV_2;
+ }
+#ifdef VS_FEATURE_THUMBNAIL_VIEW
+ if ((nViewType == MP_LIST_VIEW_AS_THUMBNAIL_LIST ||
+ nViewType == MP_LIST_VIEW_AS_FOLDER_LIST) &&
+ (LIST_TAB_TYPE_PERSONAL == eTabType)) {
+ g_pShareViaHandle->bThumbnailView = TRUE;
+ } else {
+ g_pShareViaHandle->bThumbnailView = FALSE;
+ }
+#endif
+
+ mp_share_view_init(g_pShareViaHandle->pNaviFrameHandle);
+ evas_object_smart_callback_add((Evas_Object *)
+ mp_util_get_main_window_handle(),
+ "wm,rotation,changed",
+ __mp_share_via_view_rotate_cb,
+ (void *) g_pShareViaHandle);
+}
+
+/**
+ *
+ */
+void mp_share_view_pop(void)
+{
+ VideoLogInfo("");
+
+ if (!g_pShareViaHandle) {
+ VideoLogError("No existed handle of share view.");
+ return;
+ }
+ if (g_pShareViaHandle->pChangeViewUserCbFunc) {
+ g_pShareViaHandle->pChangeViewUserCbFunc();
+ }
+
+ mp_util_hide_indicator();
+}
+
+/**
+ *
+ * @return
+ */
+bool mp_share_view_is_top_view(void)
+{
+ VideoLogInfo("");
+
+ return FALSE;
+}
+
+/**
+ *
+ */
+void mp_share_view_change_language(void)
+{
+ if (!g_pShareViaHandle || !g_pShareViaWidget) {
+ VideoLogError("No existed handle of share view.");
+ return;
+ }
+
+ VideoLogInfo("");
+
+ mp_share_view_change_title_info();
+}
+
+/**
+ *
+ * @param pUserData
+ * @param e
+ * @param pObject
+ * @param pEventInfo
+ */
+static void
+__mp_share_view_base_layout_del_cb(void *pUserData, Evas * e,
+ Evas_Object * pObject, void *pEventInfo)
+{
+ __mp_share_view_reset();
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "mp-video-list-view-common.h"
+
+/**
+ *
+ * @param viewHandle
+ * @param pGenlistItemtLanguageChangedCb
+ * @param pGenlistItemtRealizeCb
+ * @param pGenlistItemtPressCb
+ * @param pGenlistItemtLongPressCb
+ */
+void mp_list_common_set_callabcks(void *viewHandle,
+ Evas_Smart_Cb
+ pGenlistItemtLanguageChangedCb,
+ Evas_Smart_Cb pGenlistItemtRealizeCb,
+ Evas_Smart_Cb pGenlistItemtPressCb,
+ Evas_Smart_Cb pGenlistItemtLongPressCb)
+{
+ st_VideoListViewMainViewHandle *handle =
+ (st_VideoListViewMainViewHandle *) viewHandle;
+ if (handle) {
+ handle->pGenlistItemtLanguageChangedCb =
+ pGenlistItemtLanguageChangedCb;
+ handle->pGenlistItemtRealizeCb = pGenlistItemtRealizeCb;
+ handle->pGenlistItemtPressCb = pGenlistItemtPressCb;
+ handle->pGenlistItemtLongPressCb = pGenlistItemtLongPressCb;
+ }
+}
+
+/**
+ *
+ * @param viewHandle
+ */
+void mp_list_common_unset_callabcks(void *viewHandle)
+{
+ st_VideoListViewMainViewHandle *handle =
+ (st_VideoListViewMainViewHandle *) viewHandle;
+ if (handle) {
+ handle->pGenlistItemtLanguageChangedCb = NULL;
+ handle->pGenlistItemtRealizeCb = NULL;
+ handle->pGenlistItemtPressCb = NULL;
+ handle->pGenlistItemtLongPressCb = NULL;
+ }
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#include <glib.h>
+#include <media_content.h>
+
+#include "mp-util.h"
+#include "video-player.h"
+#include "mp-video-log.h"
+#include "mp-video-string-define.h"
+#include "mp-video-value-define.h"
+
+#include "mp-util-media-service.h"
+#include "mp-video-list-view-folder.h"
+#include "mp-video-view-popup-ctrl.h"
+#include "mp-video-list-sort-ctrl.h"
+#include "mp-footer-toolbar.h"
+#include "mp-video-search-view.h"
+#include "mp-external-ug.h"
+#include "videos-view-mgr.h"
+#include "mp-video-list-view-common.h"
+#include "mp-video-list-view-item-of-folder.h"
+#include "mp-video-list-option-ctrl.h"
+#include "vp-util.h"
+#include "vp-file-util.h"
+#include "mp-video-list-view-main.h"
+#include "mp-video-nocontent-layout.h"
+#include "mp-video-list-share-via-view.h"
+#include "mp-video-detail-view.h"
+#include "mp-rotate-ctrl.h"
+
+#define NO_CONTENTS_W 720
+#define NO_CONTENTS_H 897
+
+
+typedef struct {
+ st_VideoListViewMainViewHandle *pMainHandle;
+ st_VideoListViewMainViewWidget *pMainWidget;
+ UpdateListItemsCbFunc fUpdateListItemUserCb;
+
+ Evas_Object *pVideosGenlist;
+ Evas_Object *pNocontentlayout;
+ Elm_Genlist_Item_Class *pFolderList_Itc;
+ Elm_Genlist_Item_Class *pFolderListLandscape_Itc;
+ Elm_Genlist_Item_Class *pGenGridItc;
+
+ bool bItemSelected;
+
+ /*start popup */
+ Ecore_Idler *pRemoveIdler;
+ Evas_Object *pRemovePopUpHandle;
+ Evas_Object *pProgressbar;
+ Ecore_Timer *pStartDelTimer;
+ Ecore_Timer *pFinishDelTimer;
+ int nCompltedDeleteItem;
+ /*end popup */
+#ifdef VS_FEATURE_THUMBNAIL_VIEW
+ bool bLandscape;
+#endif
+
+} stFolderView;
+
+
+static stFolderView *g_pFolderView = NULL;
+
+static void __mp_folder_view_button_popup_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo);
+static void __mp_folder_view_delete_popup_handle(void);
+
+/**
+ *
+ */
+void __mp_folder_view_create_no_content()
+{
+ if (!g_pFolderView) {
+ VideoLogError("");
+ return;
+ }
+
+ if (!g_pFolderView->pNocontentlayout) {
+ g_pFolderView->pNocontentlayout =
+ mp_create_nocontent_layout(g_pFolderView->
+ pMainWidget->pListViewBaselayout,
+ VIDEOS_NOCONTENT_MSG_NO_VIDEOS_IDS,
+ VIDEOS_NOCONTENT_MSG_NO_VIDEOS_DESC_IDS);
+ elm_object_part_content_unset(g_pFolderView->
+ pMainWidget->pListViewBaselayout,
+ SWALLOW_LISTVIEW_CONTENT);
+ if (g_pFolderView->pVideosGenlist) {
+ evas_object_hide(g_pFolderView->pVideosGenlist);
+ }
+ evas_object_show(g_pFolderView->pMainWidget->pListViewBaselayout);
+ elm_object_part_content_set(g_pFolderView->
+ pMainWidget->pListViewBaselayout,
+ SWALLOW_LISTVIEW_CONTENT,
+ g_pFolderView->pNocontentlayout);
+ }
+
+}
+
+/**
+ *
+ * @return
+ */
+bool mp_folder_view_is_top_view(void)
+{
+ VideoLogInfo("");
+
+
+ if (!g_pFolderView) {
+ VideoLogError("g_pFolderView is NULL");
+ return FALSE;
+ }
+
+ if (mp_mgr_get_library_naviframe()) {
+ int count =
+ eina_list_count(elm_naviframe_items_get
+ (mp_mgr_get_library_naviframe()));
+ return (count == 1);
+ }
+ return FALSE;
+}
+
+/**
+ *
+ */
+void mp_folder_view_destroy(void)
+{
+ VideoLogInfo("");
+
+ if (g_pFolderView) {
+ __mp_folder_view_delete_popup_handle();
+
+ MP_DEL_ITC(g_pFolderView->pFolderList_Itc);
+ g_pFolderView->fUpdateListItemUserCb = NULL;
+ g_pFolderView->pMainHandle = NULL;
+ g_pFolderView->pMainWidget = NULL;
+ MP_DEL_OBJ(g_pFolderView->pNocontentlayout);
+ MP_DEL_OBJ(g_pFolderView->pVideosGenlist);
+ }
+ MP_FREE_STRING(g_pFolderView);
+
+}
+
+/**
+ *
+ * @param eUpdateType
+ */
+static void __mp_folder_view_reset(MpListUpdateType eUpdateType)
+{
+ if (g_pFolderView) {
+ __mp_folder_view_delete_popup_handle();
+
+ MP_DEL_ITC(g_pFolderView->pFolderList_Itc);
+ g_pFolderView->fUpdateListItemUserCb = NULL;
+ g_pFolderView->pMainHandle = NULL;
+ g_pFolderView->pMainWidget = NULL;
+ if (g_pFolderView->pVideosGenlist) {
+ elm_genlist_clear(g_pFolderView->pVideosGenlist);
+ }
+
+ }
+
+}
+
+/**
+ *
+ */
+static void __mp_folder_view_delete_popup_handle(void)
+{
+ VideoLogInfo("");
+ if (g_pFolderView->pRemovePopUpHandle) {
+ eext_object_event_callback_del(g_pFolderView->pRemovePopUpHandle,
+ EEXT_CALLBACK_BACK,
+ __mp_folder_view_button_popup_cb);
+ }
+ MP_DEL_TIMER(g_pFolderView->pStartDelTimer);
+ MP_DEL_TIMER(g_pFolderView->pFinishDelTimer);
+ MP_DEL_IDLER(g_pFolderView->pRemoveIdler);
+ MP_DEL_OBJ(g_pFolderView->pProgressbar);
+ MP_DEL_OBJ(g_pFolderView->pRemovePopUpHandle);
+ g_pFolderView->nCompltedDeleteItem = 0;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+void mp_folder_view_warning_popup_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ VideoLogInfo("");
+
+ mp_util_delete_popup_handle();
+}
+
+
+/*//////////////////////////////////////////////////*/
+/* For Folder View*/
+/**
+ *
+ * @param nFolderItemIndex
+ * @return
+ */
+static int mp_folder_view_get_respective_video_no(int nFolderItemIndex)
+{
+ mp_util_svc_destory_video_item_list();
+ char *szPath = mp_util_svc_get_video_folder_url(nFolderItemIndex);
+ mp_util_svc_extract_video_list_from_folder(szPath,
+ mp_sort_ctrl_get_sort_state
+ (), MP_LIST_VIEW_ALL);
+ int nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+
+ MP_FREE_STRING(szPath);
+
+ return nVideoListSize;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+static char *mp_folder_view_get_label_of_folder_cb(const void *pUserData,
+ Evas_Object * pObject,
+ const char *pPart)
+{
+
+ int nFolderItemIndex = (int) pUserData;
+
+ if (!g_strcmp0(pPart, "elm.text.main.left.top")) {
+ char *szTitle = NULL;
+ szTitle = mp_util_svc_get_video_folder_name(nFolderItemIndex);
+
+ char *szTitleUtf8 = elm_entry_utf8_to_markup(szTitle);
+
+ MP_FREE_STRING(szTitle);
+ return szTitleUtf8;
+ } else if (!g_strcmp0(pPart, "elm.text.sub.left.bottom")) {
+ char *szFolderPath = NULL;
+ szFolderPath = mp_util_svc_get_video_folder_url(nFolderItemIndex);
+ char *pDes_path = mp_util_get_dir_by_path(szFolderPath);
+ MP_FREE_STRING(szFolderPath);
+ char *szFolderUtf8 = elm_entry_utf8_to_markup(pDes_path);
+ MP_FREE_STRING(pDes_path);
+ return szFolderUtf8;
+
+ } else if (!strcmp(pPart, "elm.text")) {
+ char *szTitle1 = NULL;
+ szTitle1 = mp_util_svc_get_video_folder_name(nFolderItemIndex);
+ char *szTitleUtf8 = elm_entry_utf8_to_markup(szTitle1);
+
+ MP_FREE_STRING(szTitle1);
+
+ return szTitleUtf8;
+ } else if (!strcmp(pPart, "elm.text.number")) {
+ char szTitle2[10] = { 0, };
+ int nVideoListSize =
+ mp_folder_view_get_respective_video_no(nFolderItemIndex);
+ snprintf(szTitle2, 10, "(%d)", nVideoListSize);
+ char *szTitleUtf8 = elm_entry_utf8_to_markup(szTitle2);
+
+ return szTitleUtf8;
+ }
+
+ return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+static Evas_Object *mp_folder_view_get_icon_of_folder_cb(const void
+ *pUserData,
+ Evas_Object *
+ pObject,
+ const char
+ *pPart)
+{
+ int nFolderItemIndex = (int) pUserData;
+ VideoLogInfo("Index : %d", nFolderItemIndex);
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje", VIDEO_CUSTOM_THEME);
+ free(path);
+ if (!g_strcmp0(pPart, "elm.icon.1")) {
+ VideoLogInfo("pPart: elm.icon.1 - thumbnail");
+
+ Evas_Object *pLayout = NULL;
+ Evas_Object *pBg = NULL;
+ char *pThumbIconUri =
+ mp_util_get_folder_thumbnail(nFolderItemIndex,
+ mp_sort_ctrl_get_sort_state());
+
+ pLayout = elm_layout_add(pObject);
+ elm_layout_file_set(pLayout, edj_path,
+ "listview.thumbnail.layout");
+
+ if (!pThumbIconUri || !vp_file_exists(pThumbIconUri)) {
+ MP_FREE_STRING(pThumbIconUri);
+ }
+
+ pBg =
+ mp_util_create_preload_image(pLayout, pThumbIconUri,
+ VIDEO_ICON_WIDTH);
+ elm_layout_content_set(pLayout, "elm.thumbnail.icon", pBg);
+ if (pBg)
+ evas_object_show(pBg);
+
+ if (!mp_util_create_folder_sub_icon(pLayout, nFolderItemIndex)) {
+ VideoLogWarning
+ ("Create sub icon is failed. nFolderItemIndex: %d",
+ nFolderItemIndex);
+ }
+
+ MP_FREE_STRING(pThumbIconUri);
+
+ evas_object_show(pLayout);
+
+ return pLayout;
+ } else if (!strcmp(pPart, "elm.swallow.icon")) {
+ char *pThumbIconUri =
+ mp_util_get_folder_thumbnail(nFolderItemIndex,
+ mp_sort_ctrl_get_sort_state());
+ Evas_Object *thumb = NULL;
+ int nWidth = 0;
+ int nHeight = 0;
+
+ thumb = elm_image_add(pObject);
+
+ elm_image_preload_disabled_set(thumb, EINA_FALSE);
+ elm_image_smooth_set(thumb, EINA_FALSE);
+ elm_image_prescale_set(thumb, 50 * MP_SCALE);
+ elm_image_file_set(thumb, pThumbIconUri, NULL);
+ elm_image_object_size_get(thumb, &nWidth, &nHeight);
+
+ if (nWidth > nHeight) {
+ elm_image_aspect_fixed_set(thumb, EINA_FALSE);
+ }
+ if (thumb)
+ evas_object_show(thumb);
+ MP_FREE_STRING(pThumbIconUri);
+
+ return thumb;
+ } else if (!strcmp(pPart, "elm.sdcard.icon")) {
+ MpMediaStorageType StorageType = MP_MEDIA_TYPE_STORAGE_UNKNOWN;
+ StorageType = mp_util_svc_get_folder_storage(nFolderItemIndex);
+ if (StorageType == MP_MEDIA_TYPE_STORAGE_EXTERNAL) {
+ Evas_Object *pSdcardIcon = elm_image_add(pObject);
+ elm_image_file_set(pSdcardIcon, edj_path,
+ VIDEO_LIST_VIEW_ICON_FOLDER_SDCARD);
+ evas_object_size_hint_align_set(pSdcardIcon, EVAS_HINT_FILL,
+ EVAS_HINT_FILL);
+ evas_object_size_hint_weight_set(pSdcardIcon,
+ EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_show(pSdcardIcon);
+ return pSdcardIcon;
+ } else {
+ return NULL;
+ }
+ }
+
+ return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+Evas_Object *mp_folder_view_get_icon_of_no_folder_item_cb(const void
+ *pUserData,
+ Evas_Object *
+ pObject,
+ const char
+ *pPart)
+{
+ VideoSecureLogInfo("");
+
+ if (!strcmp(pPart, "elm.icon")) {
+ int width = NO_ITEM_GENLIST_WIDTH * elm_config_scale_get();
+ int height = NO_ITEM_GENLIST_HEIGHT * elm_config_scale_get();
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VIDEO_PLAYER_NO_ITEM_EDJ);
+ free(path);
+ Evas_Object *pNoItemLayout = NULL;
+ pNoItemLayout = elm_layout_add(pObject);
+ elm_layout_file_set(pNoItemLayout, edj_path,
+ GENLIST_NOITEM_EDJ_GROUP);
+ evas_object_size_hint_min_set(pNoItemLayout, width, height);
+
+ elm_object_part_text_set(pNoItemLayout,
+ SWALLOW_LISTVIEW_NO_ITEM_TEXT,
+ VIDEOS_NOCONTENT_MSG_NO_VIDEOS_DESC);
+
+ evas_object_show(pNoItemLayout);
+ return pNoItemLayout;
+ }
+
+ return NULL;
+}
+
+/**
+ *
+ * @param isSelected
+ */
+void mp_folder_view_set_is_item_view(bool isSelected)
+{
+ if (g_pFolderView)
+ g_pFolderView->bItemSelected = isSelected;
+}
+
+/**
+ *
+ * @return
+ */
+bool mp_folder_view_is_item_view()
+{
+ if (g_pFolderView)
+ return g_pFolderView->bItemSelected;
+ else
+ return false;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void mp_folder_view_gen_select_video_folder_cb(void *pUserData,
+ Evas_Object *
+ pObject,
+ void *pEventInfo)
+{
+ if (!g_pFolderView || !pObject) {
+ VideoLogWarning
+ ("[WARNING] Main handles of list view are not existed.");
+ return;
+ }
+ Elm_Object_Item *pSelectedItem =
+ elm_genlist_selected_item_get(pObject);
+ if (pSelectedItem) {
+ VideoLogInfo("pSelectedItem is NULL");
+ elm_genlist_item_selected_set(pSelectedItem, EINA_FALSE);
+ }
+ Evas_Object *pPopup = evas_object_data_get(pObject, "popup"); /* Get popup */
+ if (pPopup) {
+ VideoLogInfo("long press is called");
+ return; /* If popup exists, do nothing */
+ }
+
+ if (!g_pFolderView->fUpdateListItemUserCb) {
+ VideoLogWarning("[WARNING] No existed pMainViewWidget.");
+ return;
+ }
+
+ VideoLogInfo("");
+
+ int nFolderItemIndex = 0;
+
+ Elm_Object_Item *pItem = (Elm_Object_Item *) pEventInfo;
+
+ if (!pItem) {
+ VideoLogInfo("[ERR]Error item number.");
+ return;
+ }
+ nFolderItemIndex = (int) elm_object_item_data_get(pItem);
+ g_pFolderView->bItemSelected = true;
+
+ VideoLogInfo("nFolderItemIndex:%d", nFolderItemIndex);
+ mp_folder_item_view_push((void *) mp_mgr_get_library_naviframe(),
+ nFolderItemIndex,
+ (UpdateListItemsCbFunc)
+ g_pFolderView->fUpdateListItemUserCb);
+}
+
+#ifdef VS_FEATURE_THUMBNAIL_VIEW
+/**
+ *
+ * @param pObjVideosList
+ * @param nGenItemIndex
+ */
+static void __mp_folder_view_append_gengrid_items(void *pObjVideosList,
+ int nGenItemIndex)
+{
+ if (!g_pFolderView) {
+ VideoLogInfo("invalid handle");
+ return;
+ }
+
+ MP_DEL_GRID_ITC(g_pFolderView->pGenGridItc);
+ g_pFolderView->pGenGridItc = elm_gengrid_item_class_new();
+ g_pFolderView->pGenGridItc->item_style = "video/folder_grid";
+ g_pFolderView->pGenGridItc->func.text_get =
+ (void *) mp_folder_view_get_label_of_folder_cb;
+ g_pFolderView->pGenGridItc->func.content_get =
+ (void *) mp_folder_view_get_icon_of_folder_cb;
+ g_pFolderView->pGenGridItc->func.state_get = NULL;
+ g_pFolderView->pGenGridItc->func.del = NULL;
+
+ int nCount =
+ (mp_rotate_ctrl_check_landspace() ?
+ VP_GENLIST_THUMB_LANDSPACE_COUNT :
+ VP_GENLIST_THUMB_PORTRAIT_COUNT);
+ int nIndex = nGenItemIndex * nCount;
+ int nMaxIndex = nIndex + nCount;
+ int nVideoListSize = mp_util_svc_get_video_folder_size();
+
+ Elm_Object_Item *gridItem = NULL;
+ for (; (nIndex < nMaxIndex) && (nIndex < nVideoListSize); nIndex++) {
+ elm_gengrid_item_append(pObjVideosList,
+ g_pFolderView->pGenGridItc,
+ (void *) nIndex,
+ mp_folder_view_gen_select_video_folder_cb,
+ NULL);
+ elm_object_item_data_set(gridItem, (void *) nIndex);
+ }
+}
+
+/**
+ *
+ * @param parent
+ * @param nWidth
+ * @param nHeight
+ * @return
+ */
+static Evas_Object *__mp_folder_view_create_gengrid(Evas_Object * parent,
+ int nWidth,
+ int nHeight)
+{
+ Evas_Object *pGengrid;
+ pGengrid = elm_gengrid_add(parent);
+ if (!pGengrid) {
+ VideoLogError("pVideoGrid is not existed.");
+ return NULL;
+ }
+ evas_object_size_hint_weight_set(pGengrid, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(pGengrid, EVAS_HINT_FILL,
+ EVAS_HINT_FILL);
+ elm_gengrid_item_size_set(pGengrid, nWidth, nHeight);
+ elm_gengrid_align_set(pGengrid, 0.0, 0.0);
+ elm_gengrid_horizontal_set(pGengrid, EINA_TRUE);
+
+ return pGengrid;
+}
+
+/**
+ *
+ * @param height
+ * @param width
+ */
+static void mp_folder_view_get_icon_dimensions(int *height, int *width)
+{
+ int winHeight = 0;
+ int winWidth = 0;
+ elm_win_screen_size_get(mp_util_get_main_window_handle(), NULL, NULL,
+ &winWidth, &winHeight);
+
+ bool bLandscape =
+ mp_rotate_ctrl_check_landspace_by_win((Evas_Object *)
+ mp_util_get_main_window_handle
+ ());
+ if (bLandscape) {
+ *width = winHeight / VP_GENLIST_THUMB_LANDSPACE_COUNT;
+ } else {
+ *width = winWidth / VP_GENLIST_THUMB_PORTRAIT_COUNT;
+ }
+ *height = VP_ALBUM_THUMB_ICON_HEIGHT * MP_SCALE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+static Evas_Object *__mp_folder_view_get_icon_of_grid_cb(const void
+ *pUserData,
+ Evas_Object *
+ pObject,
+ const char
+ *pPart)
+{
+ VideoLogInfo("in __mp_folder_view_get_icon_of_grid_cb");
+ if (!g_pFolderView || !pObject) {
+ VideoLogError("g_pMainViewWidgetOfFolderList is NULL");
+ return NULL;
+ }
+
+ int nGenItemIndex = (int) pUserData;
+ int nHeight = 0;
+ int nWidth = 0;
+ mp_folder_view_get_icon_dimensions(&nHeight, &nWidth);
+
+ Evas_Object *pGengrid =
+ __mp_folder_view_create_gengrid(pObject, nWidth, nHeight);
+ __mp_folder_view_append_gengrid_items(pGengrid, nGenItemIndex);
+
+ return pGengrid;
+}
+
+/**
+ *
+ * @param nVideoItemIndex
+ * @return
+ */
+int mp_folder_view_thumbnail_to_genlist_index(int nVideoItemIndex)
+{
+ if (nVideoItemIndex < 0) {
+ VideoLogDebug("invalid nVideoItemIndex");
+ return 0;
+ }
+ int nItemCount = VP_GENLIST_THUMB_PORTRAIT_COUNT;
+ int nGenlistIndex = 0;
+ if (g_pFolderView->bLandscape) {
+ nItemCount = VP_GENLIST_THUMB_LANDSPACE_COUNT;
+ }
+ nGenlistIndex = nVideoItemIndex / nItemCount;
+ return nGenlistIndex;
+}
+
+/**
+ *
+ * @param pGenlist
+ * @return
+ */
+static bool __mp_folder_view_append_grid_layout(void *pGenlist)
+{
+ if (!pGenlist || !g_pFolderView) {
+ VideoLogError("error handle.");
+ return FALSE;
+ }
+ int nIndex = 0;
+ int nVideoListSize = mp_util_svc_get_video_folder_size();
+ if (nVideoListSize <= 0) {
+ VideoLogWarning("nVideoListSize = %d", nVideoListSize);
+ return FALSE;
+ }
+
+ MP_DEL_ITC(g_pFolderView->pGenGridItc);
+ g_pFolderView->pFolderList_Itc = elm_genlist_item_class_new();
+
+ g_pFolderView->pFolderList_Itc->item_style = "video/1icon.thumbnail";
+ g_pFolderView->pFolderList_Itc->func.text_get = NULL;
+ g_pFolderView->pFolderList_Itc->func.content_get =
+ (void *) __mp_folder_view_get_icon_of_grid_cb;
+ g_pFolderView->pFolderList_Itc->func.state_get = NULL;
+ g_pFolderView->pFolderList_Itc->func.del = NULL;
+ g_pFolderView->pFolderList_Itc->decorate_item_style = NULL;
+
+ MP_DEL_ITC(g_pFolderView->pFolderListLandscape_Itc);
+ g_pFolderView->pFolderListLandscape_Itc = elm_genlist_item_class_new();
+ g_pFolderView->pFolderListLandscape_Itc->item_style =
+ "video/1icon.thumbnail.landscape";
+ g_pFolderView->pFolderListLandscape_Itc->func.text_get = NULL;
+ g_pFolderView->pFolderListLandscape_Itc->func.content_get =
+ (void *) __mp_folder_view_get_icon_of_grid_cb;
+ g_pFolderView->pFolderListLandscape_Itc->func.state_get = NULL;
+ g_pFolderView->pFolderListLandscape_Itc->func.del = NULL;
+ g_pFolderView->pFolderListLandscape_Itc->decorate_item_style = NULL;
+
+ int nGenlistRow = 0;
+ nGenlistRow =
+ mp_folder_view_thumbnail_to_genlist_index(nVideoListSize - 1);
+
+ if (mp_rotate_ctrl_check_landspace()) {
+ for (nIndex = 0; nIndex <= nGenlistRow; nIndex++) {
+ elm_genlist_item_append(pGenlist,
+ g_pFolderView->pFolderListLandscape_Itc,
+ (void *) nIndex, NULL,
+ ELM_GENLIST_ITEM_NONE, NULL, NULL);
+ }
+ } else {
+ for (nIndex = 0; nIndex <= nGenlistRow; nIndex++) {
+ elm_genlist_item_append(pGenlist,
+ g_pFolderView->pFolderList_Itc,
+ (void *) nIndex, NULL,
+ ELM_GENLIST_ITEM_NONE, NULL, NULL);
+ }
+ }
+
+ return TRUE;
+}
+#endif
+
+
+#ifdef ENABLE_LONGPRESS
+static void __mp_folder_view_delete_popup_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ VideoLogInfo("");
+
+ mp_util_delete_popup_handle();
+}
+
+static void __mp_folder_view_mouse_back_up_popup_cb(void *pUserData,
+ Evas * pEvas,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ Evas_Event_Mouse_Up *pEvent = pEventInfo;
+ if (!pEvent) {
+ return;
+ }
+
+ if (pEvent->button == 3) {
+ mp_util_delete_popup_handle();
+ }
+}
+#endif
+
+/**
+ *
+ * @param pUserData
+ * @param pEvas
+ * @param pObject
+ * @param pEventInfo
+ */
+void __mp_folder_view_key_back_popup_cb(void *pUserData, Evas * pEvas,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ Evas_Event_Key_Down *pEvent = pEventInfo;
+ if (!pEvent) {
+ return;
+ }
+
+ if (!g_strcmp0(pEvent->keyname, "XF86Back")) {
+ mp_util_delete_popup_handle();
+ }
+}
+
+#ifdef ENABLE_LONGPRESS
+static void __mp_folder_view_remove_video_item(int nVideoItemIndex)
+{
+ char *szFileUrl = mp_util_svc_get_video_url(nVideoItemIndex);
+ if (szFileUrl) {
+ VideoSecureLogInfo("Delete file url : %s", szFileUrl);
+ mp_util_svc_remove_item_from_db_by_list_index(nVideoItemIndex);
+ unlink(szFileUrl);
+ free(szFileUrl);
+ szFileUrl = NULL;
+
+ }
+}
+
+static Eina_Bool __mp_folder_view_finish_del_timer_cb(void *pUserData)
+{
+
+ g_pFolderView->pFinishDelTimer = NULL;
+ if (pUserData) {
+ int nFolderItemIndex = (int) pUserData;
+ char *szTmpFolderUrl =
+ mp_util_svc_get_video_folder_url(nFolderItemIndex);
+ if (szTmpFolderUrl) {
+ if (vp_file_rmdir(szTmpFolderUrl) == EINA_FALSE) {
+ VideoLogError("vp_file_rmdir failed!");
+ }
+
+ MP_FREE_STRING(szTmpFolderUrl);
+ }
+ }
+ mp_util_svc_destory_video_item_list();
+ __mp_folder_view_delete_popup_handle();
+
+ if (g_pFolderView->fUpdateListItemUserCb) {
+ g_pFolderView->fUpdateListItemUserCb(LIST_UPDATE_TYPE_ALL);
+ }
+
+ return FALSE;
+}
+
+static Eina_Bool __mp_folder_view_delete_item_idler_cb(void *pUserData)
+{
+
+ int nVideoTotal = mp_util_svc_get_video_list_size_for_checking_index();
+ VideoLogInfo("nVideoTotal = %d", nVideoTotal);
+ double nDeleteRate = 0.0;
+
+ __mp_folder_view_remove_video_item(g_pFolderView->nCompltedDeleteItem);
+
+ g_pFolderView->nCompltedDeleteItem++;
+
+ if (g_pFolderView->pProgressbar) {
+ VideoLogInfo("Set progress bar");
+ nDeleteRate =
+ ((double) g_pFolderView->nCompltedDeleteItem) /
+ ((double) nVideoTotal);
+ elm_progressbar_value_set(g_pFolderView->pProgressbar,
+ nDeleteRate);
+ }
+
+ if (g_pFolderView->nCompltedDeleteItem == nVideoTotal) {
+ g_pFolderView->pRemoveIdler = NULL;
+ MP_DEL_TIMER(g_pFolderView->pFinishDelTimer);
+ g_pFolderView->pFinishDelTimer =
+ ecore_timer_add(0.1, __mp_folder_view_finish_del_timer_cb,
+ pUserData);
+
+ return FALSE;
+ }
+ return TRUE;
+}
+#endif
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_folder_view_button_popup_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ VideoLogInfo("");
+ __mp_folder_view_delete_popup_handle();
+
+ if (g_pFolderView->fUpdateListItemUserCb) {
+ g_pFolderView->fUpdateListItemUserCb(LIST_UPDATE_TYPE_ALL);
+ }
+
+}
+
+#ifdef ENABLE_LONGPRESS
+static Eina_Bool __mp_folder_view_start_del_timer_cb(void *pUserData)
+{
+ g_pFolderView->pStartDelTimer = NULL;
+ g_pFolderView->pRemoveIdler =
+ ecore_idler_add(__mp_folder_view_delete_item_idler_cb, pUserData);
+ return FALSE;
+}
+
+static void __mp_folder_view_respones_delete_popup_cb(void *pUserData,
+ Evas_Object *
+ pObject,
+ void *pEventInfo)
+{
+ mp_util_delete_popup_handle();
+
+ int nFolderItemIndex = (int) pUserData;
+ if (nFolderItemIndex < 0
+ || nFolderItemIndex >= mp_util_svc_get_video_folder_size()) {
+ VideoLogError("nFolderItemIndex is invalid");
+ return;
+ }
+
+ char *szTmpFolderUrl =
+ mp_util_svc_get_video_folder_url(nFolderItemIndex);
+
+ VideoSecureLogInfo("folder_index : %d, szTmpFolderUrl : %s",
+ nFolderItemIndex, szTmpFolderUrl);
+ mp_util_svc_destory_video_item_list();
+
+ if (szTmpFolderUrl) {
+ mp_util_svc_extract_video_list_from_folder(szTmpFolderUrl,
+ MP_MEDIA_SORT_BY_NAME,
+ MP_LIST_VIEW_ALL);
+ } else {
+ VideoLogError("folder path is NULL");
+ return;
+ }
+ MP_FREE_STRING(szTmpFolderUrl);
+#ifdef _MULTI_WINDOW
+ g_pFolderView->pRemovePopUpHandle =
+ ea_center_popup_add(mp_util_get_main_window_handle());
+#else
+ g_pFolderView->pRemovePopUpHandle =
+ elm_popup_add(mp_util_get_main_window_handle());
+#endif
+ eext_object_event_callback_add(g_pFolderView->pRemovePopUpHandle,
+ EEXT_CALLBACK_BACK,
+ __mp_folder_view_button_popup_cb, NULL);
+ Evas_Object *pLabel = elm_label_add(g_pFolderView->pRemovePopUpHandle);
+ elm_object_style_set(pLabel, "popup/default");
+ elm_label_line_wrap_set(pLabel, ELM_WRAP_MIXED);
+ elm_object_domain_translatable_text_set(pLabel, MP_SYS_STRING,
+ VIDEOS_DELETEPOP_MSG_DELETING_IDS);
+ evas_object_size_hint_weight_set(pLabel, EVAS_HINT_EXPAND, 0.0);
+ evas_object_size_hint_align_set(pLabel, EVAS_HINT_FILL,
+ EVAS_HINT_FILL);
+ evas_object_show(pLabel);
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VIDEO_PLAYER_POPUP_PROGRESSBAR_EDJ);
+ free(path);
+ Evas_Object *pPopupLayout =
+ elm_layout_add(g_pFolderView->pRemovePopUpHandle);
+ elm_layout_file_set(pPopupLayout, edj_path,
+ "popup_center_text_progressview");
+ evas_object_size_hint_weight_set(pPopupLayout, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+
+ Evas_Object *pProgressbar =
+ elm_progressbar_add(g_pFolderView->pRemovePopUpHandle);
+ elm_object_style_set(pProgressbar, "list_progress");
+ elm_progressbar_horizontal_set(pProgressbar, EINA_TRUE);
+ evas_object_size_hint_align_set(pProgressbar, EVAS_HINT_FILL,
+ EVAS_HINT_FILL);
+ evas_object_size_hint_weight_set(pProgressbar, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ elm_progressbar_value_set(pProgressbar, 0.0);
+
+ evas_object_show(pProgressbar);
+ g_pFolderView->pProgressbar = pProgressbar;
+
+ elm_object_part_content_set(pPopupLayout, "elm.swallow.content",
+ pLabel);
+ elm_object_part_content_set(pPopupLayout, "elm.swallow.end",
+ pProgressbar);
+ elm_object_part_text_set(pPopupLayout, "elm.text.subtext1", "");
+ elm_object_part_text_set(pPopupLayout, "elm.text.subtext2", "");
+
+ elm_object_content_set(g_pFolderView->pRemovePopUpHandle,
+ pPopupLayout);
+ Evas_Object *pButton =
+ elm_button_add(g_pFolderView->pRemovePopUpHandle);
+ elm_object_style_set(pButton, "popup_button/default");
+ elm_object_domain_translatable_text_set(pButton, VIDEOS_STRING,
+ VIDEOS_COMMON_BUTTON_CANCEL_IDS);
+ elm_object_part_content_set(g_pFolderView->pRemovePopUpHandle,
+ "button1", pButton);
+ evas_object_smart_callback_add(pButton, "clicked",
+ __mp_folder_view_button_popup_cb,
+ pUserData);
+
+ evas_object_show(g_pFolderView->pRemovePopUpHandle);
+ g_pFolderView->nCompltedDeleteItem = 0;
+
+ MP_DEL_TIMER(g_pFolderView->pStartDelTimer);
+ g_pFolderView->pStartDelTimer =
+ ecore_timer_add(0.3, __mp_folder_view_start_del_timer_cb,
+ pUserData);
+
+}
+
+static void __mp_folder_view_popup_delete_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ mp_option_ctrl_delete_handle();
+
+ if (!g_pFolderView) {
+ VideoLogError("g_pFolderView of list view are not existed.");
+ return;
+ }
+
+ int nFolderItemIndex = (int) pUserData;
+ MpListViewAsType type = MP_LIST_VIEW_AS_FOLDER_LIST;
+ mp_util_remove_question_popup(nFolderItemIndex, type,
+ __mp_folder_view_respones_delete_popup_cb,
+ __mp_folder_view_delete_popup_cb,
+ __mp_folder_view_mouse_back_up_popup_cb,
+ __mp_folder_view_key_back_popup_cb);
+
+ VideoLogInfo("");
+}
+
+static void __mp_folder_view_share_via_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ mp_option_ctrl_delete_handle();
+
+ if (!g_pFolderView) {
+ VideoLogError("g_pFolderView of list view are not existed.");
+ return;
+ }
+
+ if (!g_pFolderView->pMainHandle) {
+ VideoLogError("pMainHandle is null.");
+ return;
+ }
+
+ int nFolderItemIndex = (int) pUserData;
+ char *szFolderPath = NULL;
+ szFolderPath = mp_util_svc_get_video_folder_url(nFolderItemIndex);
+ VideoSecureLogInfo("nFolderItemIndex=%d, szFolderPath=%s",
+ nFolderItemIndex, szFolderPath);
+ mp_share_view_push(g_pFolderView->pMainHandle->pNaviFrameHandle,
+ (ChangeListShareViewCbFunc)
+ g_pFolderView->fUpdateListItemUserCb, szFolderPath,
+ LIST_TAB_TYPE_PERSONAL);
+
+ Elm_Object_Item *pSelectedItem =
+ elm_genlist_selected_item_get(pObject);
+ if (pSelectedItem) {
+ elm_genlist_item_selected_set(pSelectedItem, EINA_FALSE);
+ }
+}
+
+static void __mp_folder_view_normal_result_popup()
+{
+ if (!g_pFolderView) {
+ VideoLogError("Invalid list and object");
+ return;
+ }
+ evas_object_data_set(g_pFolderView->pVideosGenlist, "popup", NULL);
+ elm_object_scroll_freeze_pop(g_pFolderView->pVideosGenlist);
+}
+
+static void __mp_folder_view_long_press_item_cb(void *pUserData,
+ Evas_Object * obj,
+ void *event_info)
+{
+
+ if (!g_pFolderView || !event_info || !obj) {
+ VideoLogError("Invalid list and object");
+ return;
+ }
+
+ Elm_Object_Item *long_item = (Elm_Object_Item *) event_info;
+ int nFolderItemIndex = elm_genlist_item_index_get(long_item);
+ if (nFolderItemIndex < 0) {
+ VideoLogError("nGenlistItemIndex is invalid");
+ return;
+ }
+
+ st_RegisteOptionCbFunc *pRegisteCbFunc =
+ (st_RegisteOptionCbFunc *) calloc(1,
+ sizeof(st_RegisteOptionCbFunc));
+ if (pRegisteCbFunc) {
+ pRegisteCbFunc->ShareViaItemCb =
+ (void *) __mp_folder_view_share_via_cb;
+ pRegisteCbFunc->AddToHomeItemCb = NULL;
+ pRegisteCbFunc->DeleteItemCb =
+ (void *) __mp_folder_view_popup_delete_cb;
+ }
+
+ VideoLogDebug("nVideoItemIndex=%d", nFolderItemIndex);
+ char *title = mp_util_svc_get_video_folder_name(nFolderItemIndex);
+ mp_option_ctrl_show(g_pFolderView->pMainHandle->pNaviFrameHandle,
+ (const char *) title, nFolderItemIndex,
+ pRegisteCbFunc,
+ __mp_folder_view_normal_result_popup, NULL,
+ MP_LIST_OPTION_DOWNLOAD_NONE);
+ if (mp_option_ctrl_get_handle()) {
+ evas_object_data_set(g_pFolderView->pVideosGenlist, "popup",
+ mp_option_ctrl_get_handle());
+ elm_object_scroll_freeze_push(g_pFolderView->pVideosGenlist);
+ }
+ MP_FREE_STRING(pRegisteCbFunc);
+ MP_FREE_STRING(title);
+
+}
+
+static void __mp_folder_view_del_genlist_cb(Evas_Object * pVideosGenlist)
+{
+ if (!pVideosGenlist) {
+ VideoSecureLogError("pVideosGenlist is NULL");
+ return;
+ }
+ evas_object_smart_callback_del(pVideosGenlist, "longpressed",
+ __mp_folder_view_long_press_item_cb);
+}
+
+static void __mp_folder_view_add_genlist_cb(Evas_Object * pVideosGenlist)
+{
+ if (!pVideosGenlist) {
+ VideoSecureLogError("pVideosGenlist is NULL");
+ return;
+ }
+
+ evas_object_smart_callback_add(pVideosGenlist, "longpressed",
+ __mp_folder_view_long_press_item_cb,
+ NULL);
+
+}
+#endif
+
+/* External APIs*/
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __mp_folder_view_rotate_cb(void *data, Evas_Object * obj,
+ void *event_info)
+{
+ if (!g_pFolderView) {
+ VideoLogError("__mp_folder_view_rotate_cb IS null");
+ return;
+ }
+ if (!mp_folder_view_is_top_view())
+ return;
+ bool bLandscape = mp_rotate_ctrl_check_landspace_by_win((Evas_Object *)
+ mp_util_get_main_window_handle
+ ());
+ if (bLandscape) {
+ VideoLogInfo("landscape mode");
+ g_pFolderView->bLandscape = true;
+ } else {
+ g_pFolderView->bLandscape = false;
+ }
+ elm_genlist_clear(g_pFolderView->pVideosGenlist);
+ __mp_folder_view_append_grid_layout(g_pFolderView->pVideosGenlist);
+}
+
+/**
+ *
+ * @param pMainViewHandle
+ * @param pMainViewWidget
+ * @param eUpdateType
+ * @param pUpdateVideoListUserCb
+ */
+void mp_folder_view_arrange_folder_list(void *pMainViewHandle,
+ void *pMainViewWidget,
+ MpListUpdateType eUpdateType,
+ UpdateListItemsCbFunc
+ pUpdateVideoListUserCb)
+{
+ if (!pMainViewHandle || !pMainViewWidget || !pUpdateVideoListUserCb) {
+ VideoLogInfo
+ ("pMainViewHandle or pMainViewHandle or pUpdateVideoListUserCb are not existed.");
+ return;
+ }
+ if (eUpdateType == LIST_UPDATE_TYPE_NONE) {
+ VideoLogInfo("don't need to update and create");
+ return;
+ }
+
+ __mp_folder_view_reset(eUpdateType);
+
+ if (!g_pFolderView) {
+ g_pFolderView = (stFolderView *) calloc(1, sizeof(stFolderView));
+ if (!g_pFolderView) {
+ return;
+ }
+ }
+
+ g_pFolderView->bItemSelected = false;
+ g_pFolderView->pMainHandle = pMainViewHandle;
+ g_pFolderView->pMainWidget = pMainViewWidget;
+ g_pFolderView->fUpdateListItemUserCb = pUpdateVideoListUserCb;
+ g_pFolderView->bLandscape =
+ mp_rotate_ctrl_check_landspace_by_win((Evas_Object *)
+ mp_util_get_main_window_handle
+ ());
+
+ elm_object_item_part_text_set(g_pFolderView->
+ pMainHandle->pNaviFrameItem,
+ "elm.text.title",
+ VIDEOS_TITLE_OPT_FOLDER);
+
+ VideoLogInfo("");
+
+ int nFolderListSize = 0;
+
+ if (eUpdateType == LIST_UPDATE_TYPE_ALL
+ || eUpdateType == LIST_UPDATE_TYPE_DATA) {
+ mp_util_svc_destory_video_list();
+ mp_util_svc_extract_video_list_by_item_type
+ (mp_sort_ctrl_get_sort_state(), mp_view_ctrl_get_list_type());
+ mp_util_svc_extract_video_folder_list_by_type
+ (mp_sort_ctrl_get_sort_state(), mp_view_ctrl_get_list_type());
+ }
+
+ nFolderListSize = mp_util_svc_get_video_folder_size();
+ VideoLogInfo("nVideoListSize : %d", nFolderListSize);
+
+ if (nFolderListSize > 0) {
+ if (g_pFolderView->pNocontentlayout) {
+ elm_object_part_content_unset(g_pFolderView->pNocontentlayout,
+ SWALLOW_LISTVIEW_CONTENT);
+ MP_DEL_OBJ(g_pFolderView->pNocontentlayout);
+ }
+ if (!g_pFolderView->pVideosGenlist) {
+ g_pFolderView->pVideosGenlist =
+ elm_genlist_add(g_pFolderView->
+ pMainHandle->pNaviFrameHandle);
+ elm_scroller_bounce_set(g_pFolderView->pVideosGenlist,
+ EINA_FALSE, EINA_TRUE);
+ evas_object_size_hint_weight_set(g_pFolderView->pVideosGenlist,
+ EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(g_pFolderView->pVideosGenlist,
+ EVAS_HINT_FILL,
+ EVAS_HINT_FILL);
+ elm_genlist_mode_set(g_pFolderView->pVideosGenlist,
+ ELM_LIST_COMPRESS);
+ elm_genlist_homogeneous_set(g_pFolderView->pVideosGenlist,
+ EINA_TRUE);
+
+ elm_genlist_block_count_set(g_pFolderView->pVideosGenlist,
+ VIDEO_MAIN_LIST_BLOCK_COUNT);
+ elm_scroller_single_direction_set
+ (g_pFolderView->pVideosGenlist,
+ ELM_SCROLLER_SINGLE_DIRECTION_HARD);
+#ifdef ENABLE_LONGPRESS
+ __mp_folder_view_del_genlist_cb(g_pFolderView->pVideosGenlist);
+ __mp_folder_view_add_genlist_cb(g_pFolderView->pVideosGenlist);
+#endif
+ }
+ elm_object_part_content_set(g_pFolderView->
+ pMainWidget->pListViewBaselayout,
+ SWALLOW_LISTVIEW_CONTENT,
+ g_pFolderView->pVideosGenlist);
+ __mp_folder_view_append_grid_layout(g_pFolderView->pVideosGenlist);
+ evas_object_smart_callback_add((Evas_Object *)
+ mp_util_get_main_window_handle(),
+ "wm,rotation,changed",
+ __mp_folder_view_rotate_cb, NULL);
+ evas_object_show(g_pFolderView->pVideosGenlist);
+ } else {
+ __mp_folder_view_create_no_content();
+ }
+
+ mp_list_view_update_count_layout();
+
+}
+
+/**
+ *
+ */
+void mp_folder_view_update_video_items(void)
+{
+ if (!g_pFolderView->pVideosGenlist) {
+ VideoLogWarning
+ ("[WARNING] g_pFolderView->pFolderItemList is not existed.");
+ return;
+ }
+
+ VideoLogInfo("");
+
+ int nFolderListSize = mp_util_svc_get_video_folder_size();
+ Elm_Object_Item *pTmpVideoGenlistItem = NULL;
+ if (nFolderListSize > 0) {
+
+ pTmpVideoGenlistItem =
+ elm_genlist_first_item_get(g_pFolderView->pVideosGenlist);
+ while (pTmpVideoGenlistItem) {
+ elm_genlist_item_update(pTmpVideoGenlistItem);
+ pTmpVideoGenlistItem =
+ elm_genlist_item_next_get(pTmpVideoGenlistItem);
+ }
+ }
+}
+
+/**
+ *
+ */
+void mp_folder_view_change_language(void)
+{
+ if (!g_pFolderView) {
+ VideoLogInfo("No existed handle of Folder view.");
+ return;
+ }
+
+ VideoLogInfo("");
+
+ mp_folder_view_update_video_items();
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <glib.h>
+
+#include "vp-util.h"
+#include "vp-file-util.h"
+#include "mp-video-log.h"
+#include "mp-util.h"
+#include "video-player.h"
+#include "mp-video-string-define.h"
+#include "mp-video-value-define.h"
+#include "mp-video-type-define.h"
+
+#include "mp-util-media-service.h"
+#include "mp-video-list-view-item-of-folder.h"
+#include "mp-video-view-popup-ctrl.h"
+#include "mp-video-list-sort-ctrl.h"
+#include "mp-footer-toolbar.h"
+#include "mp-video-search-view.h"
+#include "mp-external-ug.h"
+#include "mp-launching-video-displayer.h"
+#ifdef ENABLE_DRM_FEATURE
+#include "mp-drm-ctrl.h"
+#endif
+#include "videos-view-mgr.h"
+#include "mp-video-list-remove-view.h"
+#include "mp-video-list-view-as-ctrl.h"
+#include "mp-video-list-option-ctrl.h"
+#include "mp-video-list-share-via-view.h"
+
+#include "mp-video-list-personal-view.h"
+#include "mp-video-rename-ctrl.h"
+#include "mp-video-info-ctrl.h"
+#include "mp-util-widget-ctrl.h"
+#include "mp-video-util-db-controller.h"
+#include "mp-video-list-view-select.h"
+#include "mp-video-nocontent-layout.h"
+#include "mp-video-detail-view.h"
+#include "mp-rotate-ctrl.h"
+
+#define NO_CONTENTS_W 720
+#define NO_CONTENTS_H 897
+
+
+/****************************folder view***************************/
+
+typedef struct {
+ void *pNaviFrameHandle;
+ void *pNaviFrameItem;
+ void *pVideosGenlist;
+
+ Elm_Genlist_Item_Class *pGenGridItc;
+ Elm_Genlist_Item_Class *pGenGridLandscapeItc;
+ Elm_Gengrid_Item_Class *pGenGridItc_l;
+
+ int nFolder_index;
+ int currentItemCount;
+ char *pFolderUrl;
+ int nPlayVideoIndex;
+ bool bExist;
+ bool bLandscape;
+ MpDbUpdateViewLev euLev;
+ UpdateListItemsCbFunc pUpdateListUserCbFunc;
+
+} st_VideoFolderViewHandle;
+
+typedef struct {
+ Evas_Object *pFolderViewBox;
+ Evas_Object *pFolderViewCountlayout;
+ Evas_Object *pFolderViewBaselayout;
+ Evas_Object *pNocontentsLayout;
+ Evas_Object *pViewButton;
+
+ Evas_Object *pFolderViewGenlistTitle;
+ Elm_Genlist_Item_Class *pFolderViewGenlistTitleItc;
+ Elm_Object_Item *pFolderViewGenlistItemForTitle;
+ Eina_List *pVideolistItemList;
+} st_VideoFolderViewWidget;
+
+st_VideoFolderViewHandle *g_pFolderViewHandle = NULL;
+st_VideoFolderViewWidget *g_pFolderViewWidget = NULL;
+Elm_Genlist_Item_Class VideoFolder_Itc;
+
+
+static bool __mp_folder_item_view_update_video_list(MpListUpdateType
+ eUpdateType);
+static void __mp_folder_item_view_db_changed_cb(void *pUserData);
+#ifdef ENABLE_LONGPRESS
+static void __mp_folder_item_view_delete_video_items(int nVideoItemIndex);
+#endif
+static void __mp_folder_item_view_db_result_data_update_cb(void);
+static void __mp_folder_item_view_result_user_cb(MpListUpdateType
+ eUpdateType);
+static void __mp_folder_item_view_result_view_update_cb(void);
+static void __mp_folder_item_view_rotate_cb(void *data, Evas_Object * obj,
+ void *event_info);
+static void mp_folder_view_cancel_thumbnail_update(int nIndexGenlist);
+static int mp_folder_item_view_thumbnail_to_genlist_index(int
+ nVideoItemIndex);
+static int __mp_folder_item_view_get_sort_type(void);
+
+/**
+ *
+ * @return
+ */
+static bool __mp_folder_item_view_free_video_genlistItem(void)
+{
+ if (!g_pFolderViewWidget || !g_pFolderViewWidget->pVideolistItemList) {
+ VideoLogError
+ ("g_pMainViewWidget->pVideoGenlistItemList is already empty.");
+ return FALSE;
+ }
+
+ VideoLogInfo("");
+
+ Elm_Object_Item *pTmpVideoGenlistItem = NULL;
+ EINA_LIST_FREE(g_pFolderViewWidget->pVideolistItemList,
+ pTmpVideoGenlistItem) {
+ if (pTmpVideoGenlistItem) {
+ int nIndex =
+ (int) elm_object_item_data_get(pTmpVideoGenlistItem);
+
+ mp_folder_view_cancel_thumbnail_update(nIndex);
+ pTmpVideoGenlistItem = NULL;
+ }
+ }
+
+ g_pFolderViewWidget->pVideolistItemList = NULL;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pVideosGenlist
+ */
+static void __mp_folder_item_view_clear_genlist(void *pVideosGenlist)
+{
+ VideoLogInfo("");
+ if (pVideosGenlist && g_pFolderViewWidget) {
+ __mp_folder_item_view_free_video_genlistItem();
+ elm_genlist_clear(pVideosGenlist);
+ }
+}
+
+/**
+ *
+ */
+static void __mp_folder_item_view_destroy(void)
+{
+ VideoLogInfo("");
+ if (g_pFolderViewHandle) {
+ g_pFolderViewHandle->nFolder_index = 0;
+ __mp_folder_item_view_clear_genlist(g_pFolderViewHandle->
+ pVideosGenlist);
+ MP_DEL_OBJ(g_pFolderViewHandle->pVideosGenlist);
+
+ g_pFolderViewHandle->nPlayVideoIndex = -1;
+ MP_FREE_STRING(g_pFolderViewHandle->pFolderUrl);
+
+ free(g_pFolderViewHandle);
+ g_pFolderViewHandle = NULL;
+ }
+
+ if (g_pFolderViewWidget) {
+ MP_DEL_ITC(g_pFolderViewWidget->pFolderViewGenlistTitleItc);
+ MP_DEL_OBJ(g_pFolderViewWidget->pViewButton);
+ MP_DEL_OBJ(g_pFolderViewWidget->pNocontentsLayout);
+ MP_DEL_OBJ(g_pFolderViewWidget->pFolderViewBaselayout);
+ MP_DEL_OBJ(g_pFolderViewWidget->pFolderViewCountlayout);
+ MP_DEL_OBJ(g_pFolderViewWidget->pFolderViewBox);
+
+ free(g_pFolderViewWidget);
+ g_pFolderViewWidget = NULL;
+ }
+ evas_object_smart_callback_del((Evas_Object *)
+ mp_util_get_main_window_handle(),
+ "wm,rotation,changed",
+ __mp_folder_item_view_rotate_cb);
+}
+
+/**
+ *
+ */
+static void __mp_folder_item_view_reset(void)
+{
+ VideoLogInfo("");
+ if (g_pFolderViewHandle) {
+ mp_util_db_set_update_fun(g_pFolderViewHandle->euLev, NULL);
+ g_pFolderViewHandle->nFolder_index = 0;
+ __mp_folder_item_view_clear_genlist(g_pFolderViewHandle->
+ pVideosGenlist);
+ g_pFolderViewHandle->pVideosGenlist = NULL;
+
+ MP_FREE_STRING(g_pFolderViewHandle->pFolderUrl);
+
+ g_pFolderViewHandle->nPlayVideoIndex = -1;
+
+ free(g_pFolderViewHandle);
+ g_pFolderViewHandle = NULL;
+ }
+
+ if (g_pFolderViewWidget) {
+ MP_DEL_ITC(g_pFolderViewWidget->pFolderViewGenlistTitleItc);
+ g_pFolderViewWidget->pFolderViewBaselayout = NULL;
+ g_pFolderViewWidget->pNocontentsLayout = NULL;
+ g_pFolderViewWidget->pViewButton = NULL;
+
+ free(g_pFolderViewWidget);
+ g_pFolderViewWidget = NULL;
+ }
+ evas_object_smart_callback_del((Evas_Object *)
+ mp_util_get_main_window_handle(),
+ "wm,rotation,changed",
+ __mp_folder_item_view_rotate_cb);
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+static Evas_Object *__mp_folder_item_view_init_base_layout(void *pParent)
+{
+ if (!pParent) {
+ VideoLogError("[ERR]");
+ return NULL;
+ }
+
+ VideoLogInfo("");
+
+ MP_DEL_OBJ(g_pFolderViewWidget->pFolderViewBaselayout);
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VIDEO_PLAYER_LISTVIEW_EDJ);
+ free(path);
+ // Create folder view base layout.
+ g_pFolderViewWidget->pFolderViewBaselayout = elm_layout_add(pParent);
+ elm_layout_file_set(g_pFolderViewWidget->pFolderViewBaselayout,
+ edj_path, LISTVIEW_EDJ_GROUP);
+ evas_object_size_hint_weight_set(g_pFolderViewWidget->
+ pFolderViewBaselayout,
+ EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(g_pFolderViewWidget->
+ pFolderViewBaselayout, EVAS_HINT_FILL,
+ EVAS_HINT_FILL);
+ return g_pFolderViewWidget->pFolderViewBaselayout;
+}
+
+/**
+ *
+ * @param pNaviFrame
+ * @param pUserData
+ */
+static void __mp_folder_item_view_pop(void *pNaviFrame, void *pUserData)
+{
+ if (!g_pFolderViewHandle) {
+ VideoLogInfo("[ERR] g_pFolderViewHandle");
+ return;
+ }
+ mp_ft_ctrl_destroy();
+
+ if (g_pFolderViewHandle && g_pFolderViewHandle->pUpdateListUserCbFunc) {
+ g_pFolderViewHandle->pUpdateListUserCbFunc(LIST_UPDATE_TYPE_ALL);
+
+ VideoLogInfo("");
+ }
+
+}
+
+/**
+ *
+ * @param pUserData
+ * @param obj
+ * @param event_info
+ */
+static void __mp_folder_item_view_trans_finished_cb(void *pUserData,
+ Evas_Object * obj,
+ void *event_info)
+{
+ if (!obj) {
+ VideoLogError("[ERR] g_pAsfDeviceListViewHandle is NULL.");
+ return;
+ }
+
+ mp_widget_ctrl_enable_navi_handle_focus(obj);
+
+ evas_object_smart_callback_del(obj, "transition,finished",
+ __mp_folder_item_view_trans_finished_cb);
+}
+
+// Back button
+/**
+ *
+ * @param pUserData
+ * @param pItem
+ * @return
+ */
+static Eina_Bool __mp_folder_item_view_back_btn_cb(void *pUserData,
+ Elm_Object_Item * pItem)
+{
+ if (!g_pFolderViewHandle) {
+ VideoLogInfo("[ERR] g_pListRemoveViewHandle is NULL.");
+ return EINA_TRUE;
+ }
+ VideoLogInfo("");
+ g_pFolderViewHandle->bExist = true;
+ mp_widget_ctrl_disable_navi_handle_focus_except_item
+ (g_pFolderViewHandle->pNaviFrameHandle,
+ g_pFolderViewHandle->pNaviFrameItem);
+ evas_object_smart_callback_add(g_pFolderViewHandle->pNaviFrameHandle,
+ "transition,finished",
+ __mp_folder_item_view_trans_finished_cb,
+ NULL);
+ __mp_folder_item_view_pop(g_pFolderViewHandle->pNaviFrameHandle, NULL);
+ mp_folder_view_set_is_item_view(false);
+
+ return EINA_TRUE;
+}
+
+/**
+ *
+ * @param nVideoItemIndex
+ * @return
+ */
+static char *__mp_folder_item_view_get_guration_time(int nVideoItemIndex)
+{
+ VideoLogInfo("");
+
+ char szTmpStr[STR_LEN_MAX] = { 0, };
+ char szTmpStrDurationTime[STR_LEN_MAX] = { 0, };
+
+ unsigned int nVideoInfoDuration =
+ mp_util_svc_get_video_duration_time(nVideoItemIndex);
+
+ mp_util_convert_time(nVideoInfoDuration, szTmpStrDurationTime, FALSE);
+ snprintf(szTmpStr, STR_LEN_MAX, "%s", szTmpStrDurationTime);
+
+ return strdup(szTmpStr);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+static char *__mp_folder_item_view_get_label_of_video_item_cb(void
+ *pUserData,
+ Evas_Object *
+ pObject,
+ const char
+ *pPart)
+{
+
+ int nVideoItemIndex = (int) pUserData;
+ mp_util_svc_destory_video_item_list();
+ mp_util_svc_extract_video_list_from_folder(g_pFolderViewHandle->
+ pFolderUrl,
+ __mp_folder_item_view_get_sort_type
+ (), MP_LIST_VIEW_ALL);
+ if (!strcmp(pPart, "elm.text.main.left.top")) {
+ char *szTitle;
+ szTitle = mp_util_svc_get_video_title(nVideoItemIndex);
+ char *szTitleUtf8 = elm_entry_utf8_to_markup(szTitle);
+ VideoLogWarning("testestesteste = %d, %s", nVideoItemIndex,
+ szTitleUtf8);
+
+ if (szTitle) {
+ free(szTitle);
+ szTitle = NULL;
+ }
+
+ return szTitleUtf8;
+ } else if (!strcmp(pPart, "elm.text.sub.left.bottom")) {
+ return __mp_folder_item_view_get_guration_time(nVideoItemIndex);
+ } else if (!strcmp(pPart, "elm.text")) {
+ char *szTitle;
+ szTitle = mp_util_svc_get_video_title(nVideoItemIndex);
+ char *szTitleUtf8 = elm_entry_utf8_to_markup(szTitle);
+ VideoLogInfo("%s", szTitle);
+ if (szTitle) {
+ free(szTitle);
+ szTitle = NULL;
+ }
+
+ return szTitleUtf8;
+ } else if (!strcmp(pPart, "elm.text.2")) {
+ return __mp_folder_item_view_get_guration_time(nVideoItemIndex);
+ }
+
+ return NULL;
+}
+
+#ifdef ENABLE_LONGPRESS
+static void __mp_folder_item_view_HW_mouse_back_up_popup_cb(void
+ *pUserData,
+ Evas * pEvas,
+ Evas_Object *
+ pObject,
+ void
+ *pEventInfo)
+{
+ Evas_Event_Mouse_Up *pEvent = pEventInfo;
+
+ if (pEvent->button == 3) {
+ mp_util_delete_popup_handle();
+ }
+}
+
+static void __mp_folder_item_view_HW_key_back_popup_cb(void *pUserData,
+ Evas * pEvas,
+ Evas_Object *
+ pObject,
+ void *pEventInfo)
+{
+ Evas_Event_Key_Down *pEvent = pEventInfo;
+
+ if (!g_strcmp0(pEvent->keyname, "XF86Back")) {
+ mp_util_delete_popup_handle();
+ }
+}
+#endif
+
+#ifdef ENABLE_LONGPRESS
+static void __mp_folder_item_view_respones_delete_popup_cb(void *pUserData,
+ Evas_Object *
+ pObject,
+ void
+ *pEventInfo)
+{
+ mp_util_delete_popup_handle();
+
+ int nVideoItemIndex = (int) pUserData;
+
+ VideoLogInfo("nVideoItemIndex : %d", nVideoItemIndex);
+
+ if (nVideoItemIndex < 0
+ || nVideoItemIndex >=
+ mp_util_svc_get_video_list_size_for_checking_index()) {
+ VideoLogError("[ERR] list item index.");
+ return;
+ }
+
+ char *szFileUrl = mp_util_svc_get_video_url(nVideoItemIndex);
+ if (szFileUrl) {
+ VideoLogInfo("Delete file url : %s", szFileUrl);
+ vp_file_unlink(szFileUrl);
+ free(szFileUrl);
+ szFileUrl = NULL;
+
+ mp_util_svc_remove_item_by_list_index(nVideoItemIndex);
+ __mp_folder_item_view_delete_video_items(nVideoItemIndex);
+
+ }
+}
+
+static void __mp_folder_item_view_respones_cancel_popup_cb(void *pUserData,
+ Evas_Object *
+ pObject,
+ void
+ *pEventInfo)
+{
+ VideoLogInfo("");
+
+ mp_util_delete_popup_handle();
+}
+
+static void __mp_folder_item_view_delete_btn_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ VideoLogInfo("");
+ mp_option_ctrl_delete_handle();
+
+ int nVideoItemIndex = (int) pUserData;
+ MpListViewAsType type = MP_LIST_VIEW_AS_THUMBNAIL_LIST;
+ mp_util_remove_question_popup(nVideoItemIndex, type,
+ __mp_folder_item_view_respones_delete_popup_cb,
+ __mp_folder_item_view_respones_cancel_popup_cb,
+ __mp_folder_item_view_HW_mouse_back_up_popup_cb,
+ __mp_folder_item_view_HW_key_back_popup_cb);
+}
+#endif
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+Evas_Object *__mp_folder_item_view_get_icon_of_video_item_cb(void
+ *pUserData,
+ Evas_Object *
+ pObject,
+ const char
+ *pPart)
+{
+
+ Evas_Object *pLayout = NULL;
+
+ int nVideoItemIndex = (int) pUserData;
+ if (!pPart || !pObject) {
+ return NULL;
+ }
+ mp_util_svc_destory_video_item_list();
+ mp_util_svc_extract_video_list_from_folder(g_pFolderViewHandle->
+ pFolderUrl,
+ __mp_folder_item_view_get_sort_type
+ (), MP_LIST_VIEW_ALL);
+ if (!strcmp(pPart, "elm.icon.1")) {
+ VideoLogInfo("pPart: elm.icon.1 - thumbnail");
+
+ char *pThumbIconUri =
+ mp_util_svc_get_video_thumbnail(nVideoItemIndex);
+ Evas_Object *pBg = NULL;
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VIDEO_CUSTOM_THEME);
+ free(path);
+ pLayout = elm_layout_add(pObject);
+ elm_layout_file_set(pLayout, edj_path,
+ "listview.thumbnail.layout");
+
+ if (!pThumbIconUri || !vp_file_exists(pThumbIconUri)) {
+ MP_FREE_STRING(pThumbIconUri);
+ }
+
+ pBg =
+ mp_util_create_preload_image(pLayout, pThumbIconUri,
+ VIDEO_ICON_WIDTH);
+ elm_layout_content_set(pLayout, "elm.thumbnail.icon", pBg);
+
+ if (pBg)
+ evas_object_show(pBg);
+
+ MP_FREE_STRING(pThumbIconUri);
+
+ if (!mp_util_create_video_sub_icon(pLayout, nVideoItemIndex)) {
+ VideoLogWarning("Local File or Create sub icon is failed.",
+ nVideoItemIndex);
+ }
+
+ if (pLayout) {
+ evas_object_show(pLayout);
+ }
+
+ return pLayout;
+ } else if (!strcmp(pPart, "elm.swallow.icon")) {
+ char *pThumbIconUri =
+ mp_util_svc_get_video_thumbnail(nVideoItemIndex);
+ Evas_Object *thumb = NULL;
+ int nWidth = 0;
+ int nHeight = 0;
+
+ thumb = elm_image_add(pObject);
+ elm_image_preload_disabled_set(thumb, EINA_FALSE);
+ elm_image_smooth_set(thumb, EINA_FALSE);
+ elm_image_prescale_set(thumb, 50 * MP_SCALE);
+ elm_image_file_set(thumb, pThumbIconUri, NULL);
+ elm_image_object_size_get(thumb, &nWidth, &nHeight);
+
+ if (nWidth > nHeight) {
+ elm_image_aspect_fixed_set(thumb, EINA_FALSE);
+ }
+ if (thumb)
+ evas_object_show(thumb);
+
+ MP_FREE_STRING(pThumbIconUri);
+
+ return thumb;
+ } else if (!strcmp(pPart, "elm.progressbar.icon")) {
+ return NULL;
+ }
+
+ MP_DEL_OBJ(pLayout);
+
+ return NULL;
+}
+
+// Genlist item callback.
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_folder_item_view_warning_popup_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ if (!pUserData) {
+ VideoLogInfo("No exist pUserData");
+ return;
+ }
+
+ VideoLogInfo("");
+
+ mp_util_delete_popup_handle();
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_folder_item_view_select_video_item_cb(void *pUserData,
+ Evas_Object *
+ pObject,
+ void *pEventInfo)
+{
+ if (!pObject) {
+ VideoLogError("[ERR]No have pUserData");
+ return;
+ }
+ Evas_Object *pPopup = evas_object_data_get(pObject, "popup"); // Get popup
+ if (pPopup) {
+ VideoLogError("long press is called");
+ return; // If popup exists, do nothing
+ }
+
+ if (!mp_util_call_off()) {
+ mp_util_ticker_toast_popup
+ (VIDEOS_NOTIPOP_MSG_UNABLE_TO_PLAY_VIDEO_DURING_CALL, false,
+ false);
+ return;
+ }
+
+ if (!mp_launch_video_allow_check()) {
+ VideoLogWarning("nVideoItemIndex < 0 ===>>> RETURN");
+ return;
+ }
+
+ int nVideoItemIndex = (int) pUserData;
+ int nVideoListSize = g_pFolderViewHandle->currentItemCount;
+
+ VideoLogDebug("nVideoItemIndex = %d--%d", nVideoItemIndex,
+ nVideoListSize);
+
+ if (nVideoItemIndex < 0 || nVideoItemIndex >= nVideoListSize) {
+ VideoLogError("nVideoItemIndex < 0 ===>>> RETURN");
+ return;
+ }
+
+ g_pFolderViewHandle->nPlayVideoIndex = nVideoItemIndex;
+
+ char *szVideoUrl = mp_util_svc_get_video_url(nVideoItemIndex);
+
+ if (szVideoUrl) {
+ if (!mp_util_check_local_file_exist(szVideoUrl)) {
+ mp_util_notify_popup(NULL, VIDEOS_COMMON_HEADER_ERROR,
+ VIDEOS_NOTIPOP_MSG_FILE_NOT_EXIST,
+ __mp_folder_item_view_warning_popup_cb);
+ MP_FREE_STRING(szVideoUrl);
+ return;
+ }
+ mp_launch_video_play(szVideoUrl, MP_PLAYER_TYPE_VIDEO, NULL);
+ } else {
+ VideoLogInfo("[Err] Fail to get video uri from media service.");
+ return;
+ }
+
+ MP_FREE_STRING(szVideoUrl);
+}
+
+/**
+ *
+ * @param nIndexGenlist
+ */
+static void mp_folder_view_cancel_thumbnail_update(int nIndexGenlist)
+{
+ if (!g_pFolderViewWidget) {
+ VideoLogError("");
+ return;
+ }
+ bool bLandscape = mp_rotate_ctrl_check_landspace();
+ int nVideoItemIndex = 0;
+ int nItemCount = VP_GENLIST_THUMB_PORTRAIT_COUNT;
+
+ if (bLandscape) {
+ nItemCount = VP_GENLIST_THUMB_LANDSPACE_COUNT;
+ }
+
+ nVideoItemIndex = nIndexGenlist * nItemCount;
+ int nVideoListSize = g_pFolderViewHandle->currentItemCount;
+ VideoLogInfo("realize is %d--%d--%d", nItemCount, nVideoItemIndex,
+ nVideoListSize);
+
+ int nIndex = 0;
+ for (; (nIndex < nItemCount) && (nVideoItemIndex < nVideoListSize);
+ nIndex++) {
+ mp_util_svc_cancel_thumbnail_update(nVideoItemIndex);
+ nVideoItemIndex++;
+ }
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __mp_folder_item_view_video_item_del_cb(void *data,
+ Evas_Object * obj,
+ void *event_info)
+{
+ if (!g_pFolderViewWidget || !event_info
+ || !g_pFolderViewWidget->pVideolistItemList) {
+ VideoLogError("g_pMainViewWidge is NULL");
+ return;
+ }
+
+ int nIndexGenlist = 0;
+ Elm_Object_Item *pCurrentItem = (Elm_Object_Item *) event_info;
+ Eina_List *pCurList = NULL;
+ Elm_Object_Item *pTmpVideoItem = NULL;
+ EINA_LIST_FOREACH(g_pFolderViewWidget->pVideolistItemList, pCurList,
+ pTmpVideoItem) {
+ if (pCurrentItem == pTmpVideoItem) {
+ nIndexGenlist = (int) elm_object_item_data_get(pCurrentItem);
+ mp_folder_view_cancel_thumbnail_update(nIndexGenlist);
+ pTmpVideoItem = NULL;
+ pCurList->data = NULL;
+ break;
+ }
+ }
+}
+
+#ifdef VS_FEATURE_THUMBNAIL_VIEW
+/**
+ *
+ * @param pObjVideosList
+ * @param nGenItemIndex
+ */
+static void __mp_folder_item_view_append_gengrid_items(Evas_Object *
+ pObjVideosList,
+ int nGenItemIndex)
+{
+ if (!g_pFolderViewHandle) {
+ VideoLogInfo("invalid handle");
+ return;
+ }
+ MP_DEL_GRID_ITC(g_pFolderViewHandle->pGenGridItc_l);
+ g_pFolderViewHandle->pGenGridItc_l = elm_gengrid_item_class_new();
+ g_pFolderViewHandle->pGenGridItc_l->item_style = "video/album_grid";
+ g_pFolderViewHandle->pGenGridItc_l->func.text_get =
+ (void *) __mp_folder_item_view_get_label_of_video_item_cb;
+ g_pFolderViewHandle->pGenGridItc_l->func.content_get =
+ (void *) __mp_folder_item_view_get_icon_of_video_item_cb;
+ g_pFolderViewHandle->pGenGridItc_l->func.state_get = NULL;
+ g_pFolderViewHandle->pGenGridItc_l->func.del = NULL;
+
+ int nCount =
+ (mp_rotate_ctrl_check_landspace() ? VP_GENLIST_THUMB_LANDSPACE_COUNT
+ : VP_GENLIST_THUMB_PORTRAIT_COUNT);
+ int nIndex = nGenItemIndex * nCount;
+ int nMaxIndex = nIndex + nCount;
+ int nVideoListSize = g_pFolderViewHandle->currentItemCount;
+ Elm_Object_Item *gridItem = NULL;
+ for (; (nIndex < nMaxIndex) && (nIndex < nVideoListSize); nIndex++) {
+ gridItem =
+ elm_gengrid_item_append(pObjVideosList,
+ g_pFolderViewHandle->pGenGridItc_l,
+ (void *) nIndex,
+ __mp_folder_item_view_select_video_item_cb,
+ (void *) nIndex);
+ elm_gengrid_item_select_mode_set(gridItem,
+ ELM_OBJECT_SELECT_MODE_ALWAYS);
+ elm_object_item_data_set(gridItem, (void *) nIndex);
+ }
+}
+
+/**
+ *
+ * @param parent
+ * @param nWidth
+ * @param nHeight
+ * @return
+ */
+static Evas_Object *__mp_folder_item_view_create_gengrid(Evas_Object *
+ parent,
+ int nWidth,
+ int nHeight)
+{
+ Evas_Object *pGengrid;
+ pGengrid = elm_gengrid_add(parent);
+ if (!pGengrid) {
+ VideoLogError("pVideoGrid is not existed.");
+ return NULL;
+ }
+ evas_object_size_hint_weight_set(pGengrid, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(pGengrid, EVAS_HINT_FILL,
+ EVAS_HINT_FILL);
+ elm_gengrid_item_size_set(pGengrid, nWidth, nHeight);
+ elm_gengrid_align_set(pGengrid, 0.0, 0.0);
+ elm_gengrid_horizontal_set(pGengrid, EINA_TRUE);
+
+ return pGengrid;
+}
+
+/**
+ *
+ * @param height
+ * @param width
+ */
+static void mp_item_of_folder_view_get_icon_dimensions(int *height,
+ int *width)
+{
+ int winHeight = 0;
+ int winWidth = 0;
+ elm_win_screen_size_get(mp_util_get_main_window_handle(), NULL, NULL,
+ &winWidth, &winHeight);
+
+ bool bLandscape =
+ mp_rotate_ctrl_check_landspace_by_win((Evas_Object *)
+ mp_util_get_main_window_handle
+ ());
+ if (bLandscape) {
+ *width = winHeight / VP_GENLIST_THUMB_LANDSPACE_COUNT;
+ } else {
+ *width = winWidth / VP_GENLIST_THUMB_PORTRAIT_COUNT;
+ }
+ *height = VP_ALBUM_THUMB_ICON_HEIGHT * MP_SCALE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+static Evas_Object *__mp_folder_item_view_get_icon_of_grid_cb(const void
+ *pUserData,
+ Evas_Object *
+ pObject,
+ const char
+ *pPart)
+{
+ if (!g_pFolderViewHandle || !pObject) {
+ VideoLogError("g_pMainViewWidgetOfFolderItemList is NULL");
+ return NULL;
+ }
+
+ int nGenItemIndex = (int) pUserData;
+ int nHeight = 0;
+ int nWidth = 0;
+ mp_item_of_folder_view_get_icon_dimensions(&nHeight, &nWidth);
+
+ Evas_Object *pGengrid =
+ __mp_folder_item_view_create_gengrid(pObject, nWidth, nHeight);
+ __mp_folder_item_view_append_gengrid_items(pGengrid, nGenItemIndex);
+
+ return pGengrid;
+}
+
+/**
+ *
+ * @param nVideoItemIndex
+ * @return
+ */
+static int mp_folder_item_view_thumbnail_to_genlist_index(int
+ nVideoItemIndex)
+{
+ if (nVideoItemIndex < 0) {
+ VideoLogDebug("invalid nVideoItemIndex");
+ return 0;
+ }
+ int nItemCount = VP_GENLIST_THUMB_PORTRAIT_COUNT;
+ int nGenlistIndex = 0;
+ if (g_pFolderViewHandle->bLandscape) {
+ nItemCount = VP_GENLIST_THUMB_LANDSPACE_COUNT;
+ }
+ nGenlistIndex = nVideoItemIndex / nItemCount;
+ return nGenlistIndex;
+}
+
+/**
+ *
+ * @param pGenlist
+ */
+static void __mp_folder_item_view_append_grid_layout(void *pGenlist)
+{
+ if (!pGenlist || !g_pFolderViewHandle) {
+ VideoLogError("error handle.");
+ return;
+ }
+ int nIndex = 0;
+ int nVideoListSize = g_pFolderViewHandle->currentItemCount;
+ if (nVideoListSize <= 0) {
+ VideoLogWarning("nVideoListSize = %d", nVideoListSize);
+ return;
+ }
+
+ MP_DEL_ITC(g_pFolderViewHandle->pGenGridItc);
+ g_pFolderViewHandle->pGenGridItc = elm_genlist_item_class_new();
+ g_pFolderViewHandle->pGenGridItc->item_style = "video/1icon.thumbnail";
+ g_pFolderViewHandle->pGenGridItc->func.text_get = NULL;
+ g_pFolderViewHandle->pGenGridItc->func.content_get =
+ (void *) __mp_folder_item_view_get_icon_of_grid_cb;
+ g_pFolderViewHandle->pGenGridItc->func.state_get = NULL;
+ g_pFolderViewHandle->pGenGridItc->func.del = NULL;
+ g_pFolderViewHandle->pGenGridItc->decorate_item_style = NULL;
+
+ MP_DEL_ITC(g_pFolderViewHandle->pGenGridLandscapeItc);
+ g_pFolderViewHandle->pGenGridLandscapeItc =
+ elm_genlist_item_class_new();
+ g_pFolderViewHandle->pGenGridLandscapeItc->item_style =
+ "video/1icon.thumbnail.landscape";
+ g_pFolderViewHandle->pGenGridLandscapeItc->func.text_get = NULL;
+ g_pFolderViewHandle->pGenGridLandscapeItc->func.content_get =
+ (void *) __mp_folder_item_view_get_icon_of_grid_cb;
+ g_pFolderViewHandle->pGenGridLandscapeItc->func.state_get = NULL;
+ g_pFolderViewHandle->pGenGridLandscapeItc->func.del = NULL;
+ g_pFolderViewHandle->pGenGridLandscapeItc->decorate_item_style = NULL;
+
+ int nGenlistRow = 0;
+ nGenlistRow =
+ mp_folder_item_view_thumbnail_to_genlist_index(nVideoListSize - 1);
+ Elm_Object_Item *pTmpVideoGenlistItem = NULL;
+
+ if (mp_rotate_ctrl_check_landspace()) {
+ for (nIndex = 0; nIndex <= nGenlistRow; nIndex++) {
+ pTmpVideoGenlistItem =
+ elm_genlist_item_append(pGenlist,
+ g_pFolderViewHandle->pGenGridItc,
+ (void *) nIndex, NULL,
+ ELM_GENLIST_ITEM_NONE, NULL, NULL);
+ g_pFolderViewWidget->pVideolistItemList =
+ eina_list_append(g_pFolderViewWidget->pVideolistItemList,
+ pTmpVideoGenlistItem);
+ elm_object_item_del_cb_set(pTmpVideoGenlistItem,
+ __mp_folder_item_view_video_item_del_cb);
+ }
+ } else {
+ for (nIndex = 0; nIndex <= nGenlistRow; nIndex++) {
+ pTmpVideoGenlistItem =
+ elm_genlist_item_append(pGenlist,
+ g_pFolderViewHandle->
+ pGenGridLandscapeItc,
+ (void *) nIndex, NULL,
+ ELM_GENLIST_ITEM_NONE, NULL, NULL);
+ g_pFolderViewWidget->pVideolistItemList =
+ eina_list_append(g_pFolderViewWidget->pVideolistItemList,
+ pTmpVideoGenlistItem);
+ elm_object_item_del_cb_set(pTmpVideoGenlistItem,
+ __mp_folder_item_view_video_item_del_cb);
+ }
+ }
+}
+#endif
+
+/**
+ *
+ */
+static void __mp_folder_item_view_hide_genlist(void)
+{
+ if (!g_pFolderViewWidget || !g_pFolderViewHandle) {
+ VideoLogError("g_pSearchViewWidget == NULL");
+ return;
+ }
+
+ elm_object_part_content_unset(g_pFolderViewWidget->
+ pFolderViewBaselayout,
+ SWALLOW_LISTVIEW_CONTENT);
+ if (g_pFolderViewHandle->pVideosGenlist) {
+ evas_object_hide(g_pFolderViewHandle->pVideosGenlist);
+ }
+}
+
+/**
+ *
+ */
+static void __mp_folder_item_view_hide_no_layout(void)
+{
+ if (!g_pFolderViewWidget || !g_pFolderViewHandle) {
+ VideoLogError("g_pSearchViewWidget == NULL");
+ return;
+ }
+ if (g_pFolderViewWidget->pNocontentsLayout) {
+ elm_object_part_content_unset(g_pFolderViewWidget->
+ pFolderViewBaselayout,
+ SWALLOW_LISTVIEW_CONTENT);
+ MP_DEL_OBJ(g_pFolderViewWidget->pNocontentsLayout);
+ }
+}
+
+/**
+ *
+ * @return
+ */
+static Evas_Object *__mp_folder_item_view_add_no_contents_layout()
+{
+ if (!g_pFolderViewWidget) {
+ VideoLogError("g_pFolderViewWidget is not existed.");
+ return NULL;
+ }
+ VideoLogInfo("");
+ MP_DEL_OBJ(g_pFolderViewWidget->pNocontentsLayout);
+ g_pFolderViewWidget->pNocontentsLayout =
+ mp_create_nocontent_layout(g_pFolderViewWidget->
+ pFolderViewBaselayout,
+ VIDEOS_NOCONTENT_MSG_NO_VIDEOS_IDS,
+ NULL);
+ return g_pFolderViewWidget->pNocontentsLayout;
+}
+
+/**
+ *
+ * @param nItemSortType
+ * @param eUpdateType
+ * @param pVideosGenlist
+ * @return
+ */
+static bool __mp_folder_item_view_arrange_video_list(int nItemSortType,
+ MpListUpdateType
+ eUpdateType,
+ void *pVideosGenlist)
+{
+ if (!g_pFolderViewWidget || !g_pFolderViewHandle) {
+ VideoLogError("No exist g_pSearchViewWidget.");
+ return false;
+ }
+
+ int nVideoListSize = 0;
+ bool bUnset = FALSE;
+ if (eUpdateType == LIST_UPDATE_TYPE_ALL
+ || eUpdateType == LIST_UPDATE_TYPE_DATA) {
+ mp_util_svc_destory_video_item_list();
+ if (g_pFolderViewHandle->pFolderUrl) {
+ mp_util_svc_extract_video_list_from_folder
+ (g_pFolderViewHandle->pFolderUrl, nItemSortType,
+ MP_LIST_VIEW_ALL);
+ }
+ }
+ nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+ g_pFolderViewHandle->currentItemCount = nVideoListSize;
+
+ elm_genlist_clear(pVideosGenlist);
+
+ if (nVideoListSize > 0) {
+ __mp_folder_item_view_free_video_genlistItem();
+ if (g_pFolderViewWidget->pNocontentsLayout) {
+ __mp_folder_item_view_hide_no_layout();
+ bUnset = TRUE;
+ }
+ __mp_folder_item_view_append_grid_layout(pVideosGenlist);
+ if (bUnset) {
+ elm_object_part_content_set(g_pFolderViewWidget->
+ pFolderViewBaselayout,
+ SWALLOW_LISTVIEW_CONTENT,
+ pVideosGenlist);
+ evas_object_show(pVideosGenlist);
+ }
+ } else {
+ __mp_folder_item_view_hide_genlist();
+ __mp_folder_item_view_add_no_contents_layout();
+ elm_object_part_content_set(g_pFolderViewWidget->
+ pFolderViewBaselayout,
+ SWALLOW_LISTVIEW_CONTENT,
+ g_pFolderViewWidget->
+ pNocontentsLayout);
+ evas_object_show(g_pFolderViewWidget->pNocontentsLayout);
+ }
+
+ return true;
+}
+
+/**
+ *
+ */
+void __mp_folder_item_view_show_search_view(void)
+{
+ VideoLogInfo("");
+
+ mp_ft_ctrl_hide_more_popup();
+
+ char *szFolderPath = NULL;
+ szFolderPath =
+ mp_util_svc_get_video_folder_url(g_pFolderViewHandle->
+ nFolder_index);
+ mp_search_view_push((void *) mp_mgr_get_library_naviframe(),
+ szFolderPath);
+ MP_FREE_STRING(szFolderPath);
+
+ mp_search_view_register_update_list_func
+ (__mp_folder_item_view_result_user_cb,
+ __mp_folder_item_view_result_view_update_cb);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+void __mp_folder_item_view_search_item_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ VideoLogInfo("");
+
+ __mp_folder_item_view_show_search_view();
+}
+
+// Naviframe title button
+/**
+ *
+ * @param pParent
+ * @param pFunc
+ * @return
+ */
+Evas_Object *__mp_folder_item_view_create_title_btn(Evas_Object * pParent,
+ Evas_Smart_Cb pFunc)
+{
+ VideoLogInfo("");
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VIDEO_PLAYER_IMAGE_NAME_EDJ);
+ free(path);
+ Evas_Object *search_ic = elm_image_add(pParent);
+ elm_image_file_set(search_ic, edj_path, VIDEO_LIST_VIEW_ICON_SEARCH);
+ elm_image_resizable_set(search_ic, EINA_TRUE, EINA_TRUE);
+ evas_object_show(search_ic);
+
+ Evas_Object *pTitleBtn = elm_button_add(pParent);
+ elm_object_style_set(pTitleBtn, "naviframe/title_icon");
+ elm_object_part_content_set(pTitleBtn, "icon", search_ic);
+ evas_object_smart_callback_add(pTitleBtn, "clicked", pFunc, NULL);
+
+ return pTitleBtn;
+}
+
+// Smart callback of Genlist.
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_folder_item_view_realize_genlist_item_cb(void *pUserData,
+ Evas_Object *
+ pObject,
+ void *pEventInfo)
+{
+ if (!pEventInfo) {
+ VideoLogError("invalid pEveninfo");
+ return;
+ }
+ if (elm_config_access_get()) {
+ VideoLogWarning("Support TTS.");
+ const Eina_List *org =
+ elm_object_item_access_order_get(pEventInfo);
+ Evas_Object *content =
+ elm_object_item_part_content_get(pEventInfo, "elm.icon");
+ if (content && !eina_list_data_find(org, content)) {
+ Evas_Object *tmp;
+ Eina_List *l;
+ Eina_List *items = NULL;
+ // Duplicate original access order
+ EINA_LIST_FOREACH((Eina_List *) org, l, tmp)
+ items = eina_list_append(items, tmp);
+ Evas_Object *ao = elm_access_object_register(content, pObject);
+ items = eina_list_append(items, ao);
+ elm_object_item_access_order_set(pEventInfo, items);
+ }
+ }
+}
+
+/**
+ *
+ * @return
+ */
+static int __mp_folder_item_view_get_sort_type(void)
+{
+
+ int nSortType = MP_MEDIA_SORT_BY_RECENTLY_VIEWED;
+
+ switch (mp_sort_ctrl_get_sort_state()) {
+ case MP_LIST_SORT_BY_RECENTLY_ADDED:
+ nSortType = MP_MEDIA_SORT_BY_RECENTLY_ADDED;
+ break;
+
+ case MP_LIST_SORT_BY_NAME:
+ nSortType = MP_MEDIA_SORT_BY_NAME;
+ break;
+ }
+
+ VideoLogInfo("current sorttype = %d", nSortType);
+
+ return nSortType;
+}
+
+/**
+ *
+ * @param pVideosGenlist
+ */
+static void __mp_folder_item_view_update_video_items(void *pVideosGenlist)
+{
+ if (!pVideosGenlist) {
+ VideoLogInfo
+ ("[ERR] pVideosGenlist or g_pMainViewWidget are NULL.");
+ return;
+ }
+
+ VideoLogInfo("");
+
+ Elm_Object_Item *pNextGenlistItem = NULL;
+ Elm_Object_Item *pCurrGenlistItem =
+ elm_genlist_first_item_get(pVideosGenlist);
+
+ while (pCurrGenlistItem) {
+
+ pNextGenlistItem = elm_genlist_item_next_get(pCurrGenlistItem);
+ elm_genlist_item_update(pCurrGenlistItem);
+ pCurrGenlistItem = pNextGenlistItem;
+ }
+}
+
+/**
+ *
+ */
+static void __mp_folder_item_view_db_result_data_update_cb(void)
+{
+ if (!g_pFolderViewHandle) {
+ VideoLogInfo
+ ("g_pFolderViewHandle handles of list view are not existed.");
+ return;
+ }
+
+ VideoLogInfo("");
+
+ if (!g_pFolderViewHandle->pVideosGenlist) {
+ VideoLogInfo("g_pMainViewHandle->pVideosGenlist is NULL.");
+ return;
+ }
+ if (g_pFolderViewHandle->pFolderUrl) {
+ mp_util_svc_destory_video_item_list();
+ mp_util_svc_extract_video_list_from_folder(g_pFolderViewHandle->
+ pFolderUrl,
+ __mp_folder_item_view_get_sort_type
+ (), MP_LIST_VIEW_ALL);
+ } else {
+ VideoLogError("url is NULL.");
+ }
+
+ __mp_folder_item_view_update_video_items(g_pFolderViewHandle->
+ pVideosGenlist);
+}
+
+/**
+ *
+ */
+static void __mp_folder_item_view_result_view_update_cb(void)
+{
+ if (!g_pFolderViewHandle) {
+ VideoLogInfo("Main handles of list view are not existed.");
+ return;
+ }
+ VideoLogInfo("");
+ if (g_pFolderViewHandle->pFolderUrl) {
+ mp_util_svc_destory_video_item_list();
+ mp_util_svc_extract_video_list_from_folder(g_pFolderViewHandle->
+ pFolderUrl,
+ mp_sort_ctrl_get_sort_state
+ (), MP_LIST_VIEW_ALL);
+ } else {
+ VideoLogError("url is NULL.");
+ }
+ __mp_folder_item_view_update_video_list(LIST_UPDATE_TYPE_ALL);
+
+ VideoLogInfo("");
+}
+
+/**
+ *
+ * @param eUpdateType
+ */
+static void __mp_folder_item_view_result_user_cb(MpListUpdateType
+ eUpdateType)
+{
+ if (!g_pFolderViewHandle) {
+ VideoLogInfo("Main handles of list view are not existed.");
+ return;
+ }
+
+ VideoLogInfo("");
+ if (__mp_folder_item_view_update_video_list(eUpdateType)) {
+ Elm_Object_Item *pItem =
+ elm_genlist_first_item_get(g_pFolderViewHandle->
+ pVideosGenlist);
+ if (pItem) {
+ elm_genlist_item_bring_in(pItem, ELM_GENLIST_ITEM_SCROLLTO_IN);
+ }
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_folder_item_view_delete_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ if (!g_pFolderViewHandle) {
+ VideoLogError("g_pFolderViewHandle == NULL");
+ return;
+ }
+
+ VideoLogInfo("");
+
+ mp_ft_ctrl_hide_more_popup();
+ char *szFolderPath = NULL;
+ szFolderPath =
+ mp_util_svc_get_video_folder_url(g_pFolderViewHandle->
+ nFolder_index);
+
+ mp_remove_view_push(g_pFolderViewHandle->pNaviFrameHandle,
+ __mp_folder_item_view_result_user_cb,
+ __mp_folder_item_view_result_view_update_cb,
+ szFolderPath, LIST_TAB_TYPE_PERSONAL);
+ MP_FREE_STRING(szFolderPath);
+
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_folder_item_view_sort_item_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ VideoLogInfo("");
+
+ mp_ft_ctrl_hide_more_popup();
+
+ mp_sort_ctrl_show(__mp_folder_item_view_db_result_data_update_cb);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+void __mp_folder_item_view_auto_play_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+
+ mp_ft_ctrl_hide_more_popup();
+
+ MpFooterLibraryMainListTabType footerTabType =
+ (MpFooterLibraryMainListTabType) pUserData;
+ if (FOOTER_TAB_TYPE_PERSONAL == footerTabType) {
+ mp_auto_play_ctrl_show();
+ } else {
+ VideoLogError("invalid footer type");
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+void __mp_folder_item_view_rename_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ if (!g_pFolderViewHandle) {
+ VideoLogError("g_pFolderViewHandle == NULL");
+ return;
+ }
+
+ VideoLogInfo("");
+
+ mp_ft_ctrl_hide_more_popup();
+ char *szFolderPath = NULL;
+ szFolderPath =
+ mp_util_svc_get_video_folder_url(g_pFolderViewHandle->
+ nFolder_index);
+ mp_select_view_push((void *) mp_mgr_get_library_naviframe(),
+ g_pFolderViewHandle->pNaviFrameItem,
+ __mp_folder_item_view_result_user_cb, szFolderPath,
+ SELECT_TYPE_RENAME, LIST_TAB_TYPE_PERSONAL);
+ MP_FREE_STRING(szFolderPath);
+
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_folder_item_view_download_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ if (!g_pFolderViewHandle) {
+ VideoLogError("g_pFolderViewHandle == NULL");
+ return;
+ }
+
+ VideoLogInfo("");
+
+ mp_ft_ctrl_hide_more_popup();
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_folder_item_view_share_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ if (!g_pFolderViewHandle) {
+ VideoLogInfo("Main handles of list view are not existed.");
+ return;
+ }
+
+ mp_ft_ctrl_hide_more_popup();
+
+ char *szFolderPath = NULL;
+ szFolderPath =
+ mp_util_svc_get_video_folder_url(g_pFolderViewHandle->
+ nFolder_index);
+
+ mp_share_view_push(g_pFolderViewHandle->pNaviFrameHandle,
+ __mp_folder_item_view_result_view_update_cb,
+ szFolderPath, LIST_TAB_TYPE_PERSONAL);
+ MP_FREE_STRING(szFolderPath);
+}
+
+#ifdef ENABLE_PRIVATE_MODE
+static void __mp_folder_item_view_add_personal_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ if (!g_pFolderViewHandle) {
+ VideoLogInfo("Main handles of list view are not existed.");
+ return;
+ }
+
+ mp_ft_ctrl_hide_more_popup();
+ char *szFolderPath = NULL;
+ szFolderPath =
+ mp_util_svc_get_video_folder_url(g_pFolderViewHandle->
+ nFolder_index);
+
+ mp_personal_view_push(g_pFolderViewHandle->pNaviFrameHandle,
+ __mp_folder_item_view_result_user_cb,
+ szFolderPath, 0);
+ MP_FREE_STRING(szFolderPath);
+}
+
+static void __mp_folder_item_view_remove_personal_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ if (!g_pFolderViewHandle) {
+ VideoLogInfo("Main handles of list view are not existed.");
+ return;
+ }
+
+ mp_ft_ctrl_hide_more_popup();
+ char *szFolderPath = NULL;
+ szFolderPath =
+ mp_util_svc_get_video_folder_url(g_pFolderViewHandle->
+ nFolder_index);
+ mp_personal_view_push(g_pFolderViewHandle->pNaviFrameHandle,
+ __mp_folder_item_view_result_user_cb,
+ szFolderPath, 1);
+ MP_FREE_STRING(szFolderPath);
+}
+#endif
+#ifdef ENABLE_LONGPRESS
+static void __mp_folder_item_view_share_via_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ mp_option_ctrl_delete_handle();
+
+ if (!g_pFolderViewHandle) {
+ VideoLogError("g_pFolderViewHandle of list view are not existed.");
+ return;
+ }
+
+ int videoItemIndex = (int) pUserData;
+ char *pVideo_url = mp_util_svc_get_video_url(videoItemIndex);
+#ifdef ENABLE_DRM_FEATURE
+ bool bDRMLock = FALSE;
+ mp_util_check_drm_lock((const char *) pVideo_url, &bDRMLock);
+ if (bDRMLock) {
+ MP_FREE_STRING(pVideo_url);
+ mp_util_notify_popup(NULL, VIDEOS_COMMON_HEADER_ERROR,
+ VIDEOS_NOTIPOP_MSG_UNABLE_TO_SHARE_DRM_FILE,
+ __mp_folder_item_view_warning_popup_cb);
+ return;
+ }
+#endif
+ mp_external_service_share_panel(pVideo_url);
+ MP_FREE_STRING(pVideo_url);
+ //to do share
+}
+#endif
+
+/**
+ *
+ */
+void mp_folder_item_view_result_user_cb(void)
+{
+ VideoLogInfo("");
+ __mp_folder_item_view_update_video_list(LIST_UPDATE_TYPE_ALL);
+}
+
+#ifdef ENABLE_LONGPRESS
+static void __mp_folder_item_view_add_to_home_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ mp_option_ctrl_delete_handle();
+
+ if (!g_pFolderViewHandle) {
+ VideoLogInfo("g_pFolderViewHandle of list view are not existed.");
+ return;
+ }
+
+ int nVideoItemIndex = (int) pUserData;
+
+ VideoLogInfo("nVideoItemIndex : %d", nVideoItemIndex);
+
+
+ char *pVideo_id = mp_util_svc_get_video_id_by_index(nVideoItemIndex);
+ char *pVideo_thumbnail =
+ mp_util_svc_get_video_thumbnail(nVideoItemIndex);
+ if (pVideo_id) {
+ {
+ mp_util_status_bar_noti_popup_show(MP_COM_OPT_UNABLE_ADDED);
+ }
+ } else {
+ VideoLogError("[ERR] No exist file uri.");
+ }
+ MP_FREE_STRING(pVideo_id);
+ MP_FREE_STRING(pVideo_thumbnail);
+
+ //to do share
+}
+#endif
+
+#if 0 //Unused function
+bool __mp_folder_item_view_get_detail_info(int nVideoItemIndex,
+ stDetailInfo ** pDetailInfo)
+{
+ char *szFilePath = NULL;
+ char *szVideoTitle = NULL;
+
+ char szTmpStr[FORMAT_LEN_MAX] = { 0, };
+ char szTmpFileDate[FORMAT_LEN_MAX] = { 0, };
+ char szTmpFileExtension[FORMAT_LEN_MAX] = { 0, };
+ char szTmpFileSize[FORMAT_LEN_MAX] = { 0, };
+ char *szTmpModifiedTime = NULL;
+
+ int nWidth = 0;
+ int nHeight = 0;
+ stDetailInfo *pDetail = NULL;
+
+ szFilePath = mp_util_svc_get_video_url(nVideoItemIndex);
+ szVideoTitle = mp_util_svc_get_video_title(nVideoItemIndex);
+
+ mp_info_ctrl_get_file_info(szFilePath, szTmpFileDate,
+ FORMAT_LEN_MAX - 1, szTmpFileExtension,
+ FORMAT_LEN_MAX - 1, szTmpFileSize,
+ FORMAT_LEN_MAX - 1);
+
+ nWidth = mp_util_svc_get_video_item_width(nVideoItemIndex);
+ nHeight = mp_util_svc_get_video_item_height(nVideoItemIndex);
+ szTmpModifiedTime =
+ mp_util_svc_get_video_item_modified_time(nVideoItemIndex);
+
+ pDetail = calloc(1, sizeof(stDetailInfo));
+ if (!pDetail) {
+ MP_FREE_STRING(szFilePath);
+ MP_FREE_STRING(szVideoTitle);
+ VideoLogError("pDetailPopup alloc fail");
+ return FALSE;
+ }
+
+ pDetail->szTitle = g_strdup(szVideoTitle);
+ pDetail->szLocation = vp_util_convert_file_location(szFilePath);
+ MP_FREE_STRING(szFilePath);
+
+ snprintf(szTmpStr, FORMAT_LEN_MAX - 1, "%s", szTmpFileExtension);
+ pDetail->szFormat = g_strdup(szTmpStr);
+ memset(szTmpStr, 0, FORMAT_LEN_MAX);
+
+ snprintf(szTmpStr, FORMAT_LEN_MAX - 1, "%s", szTmpFileSize);
+ pDetail->szSize = g_strdup(szTmpStr);
+ memset(szTmpStr, 0, FORMAT_LEN_MAX);
+
+ pDetail->szLastModifiedTime = g_strdup(szTmpModifiedTime);
+ MP_FREE_STRING(szTmpModifiedTime);
+
+ snprintf(szTmpStr, FORMAT_LEN_MAX - 1, "%d X %d", nWidth, nHeight);
+ pDetail->szResolution = g_strdup(szTmpStr);
+ memset(szTmpStr, 0, FORMAT_LEN_MAX);
+
+ *pDetailInfo = pDetail;
+ return TRUE;
+}
+#endif
+
+#ifdef ENABLE_LONGPRESS
+static void __mp_folder_item_view_normal_result_popup()
+{
+ if (!g_pFolderViewHandle) {
+ VideoLogError("Invalid list and object");
+ return;
+ }
+ evas_object_data_set(g_pFolderViewHandle->pVideosGenlist, "popup",
+ NULL);
+ elm_object_scroll_freeze_pop(g_pFolderViewHandle->pVideosGenlist);
+}
+
+static void __mp_folder_item_view_long_press_item_cb(void *data,
+ Evas_Object * obj,
+ void *pEventInfo)
+{
+ if (!g_pFolderViewHandle || !pEventInfo) {
+ VideoLogError("Invalid list");
+ return;
+ }
+
+ Elm_Object_Item *long_item = (Elm_Object_Item *) pEventInfo;
+
+ int nIndexGenlist = elm_genlist_item_index_get(long_item);
+ VideoLogDebug("nIndexGenlist : %d", nIndexGenlist);
+
+ if (nIndexGenlist < 0
+ || nIndexGenlist >=
+ mp_util_svc_get_video_list_size_for_checking_index()) {
+ VideoSecureLogError("nVideoItemIndex is invalid");
+ return;
+ }
+ st_RegisteOptionCbFunc *pRegisteCbFunc =
+ (st_RegisteOptionCbFunc *) calloc(1,
+ sizeof(st_RegisteOptionCbFunc));
+ if (pRegisteCbFunc) {
+ pRegisteCbFunc->ShareViaItemCb =
+ (void *) __mp_folder_item_view_share_via_cb;
+ pRegisteCbFunc->AddToHomeItemCb =
+ (void *) __mp_folder_item_view_add_to_home_cb;
+ pRegisteCbFunc->DeleteItemCb =
+ (void *) __mp_folder_item_view_delete_btn_cb;
+ }
+
+ char *title = mp_util_svc_get_video_title(nIndexGenlist);
+ mp_option_ctrl_show(g_pFolderViewHandle->pNaviFrameHandle,
+ (const char *) title, nIndexGenlist,
+ pRegisteCbFunc,
+ __mp_folder_item_view_normal_result_popup, NULL,
+ 0);
+ if (mp_option_ctrl_get_handle()) {
+ evas_object_data_set(g_pFolderViewHandle->pVideosGenlist, "popup",
+ mp_option_ctrl_get_handle());
+ elm_object_scroll_freeze_push(g_pFolderViewHandle->pVideosGenlist);
+ }
+ MP_FREE_STRING(pRegisteCbFunc);
+ MP_FREE_STRING(title);
+
+}
+#endif
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+void __mp_folder_item_view_language_changed(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ VideoLogInfo("");
+ if (!pObject) {
+ VideoSecureLogError("error genlist handle");
+ }
+ elm_genlist_realized_items_update(pObject);
+}
+
+
+/*internal*/
+/**
+ *
+ */
+static void __mp_folder_item_view_del_genlist_cb(void)
+{
+ if (!g_pFolderViewHandle || !g_pFolderViewHandle->pVideosGenlist) {
+ VideoSecureLogError
+ ("g_pFolderViewHandle or pVideosGenlist is NULL");
+ return;
+ }
+ VideoLogInfo("");
+ evas_object_smart_callback_del(g_pFolderViewHandle->pVideosGenlist,
+ "language,changed",
+ __mp_folder_item_view_language_changed);
+ evas_object_smart_callback_del(g_pFolderViewHandle->pVideosGenlist,
+ "realized",
+ __mp_folder_item_view_realize_genlist_item_cb);
+#ifdef ENABLE_LONGPRESS
+ evas_object_smart_callback_del(g_pFolderViewHandle->pVideosGenlist,
+ "longpressed",
+ __mp_folder_item_view_long_press_item_cb);
+#endif
+}
+
+/*internal*/
+/**
+ *
+ * @param pVideosGenlist
+ */
+static void __mp_folder_item_view_add_genlist_cb(void *pVideosGenlist)
+{
+ if (!g_pFolderViewHandle || !g_pFolderViewHandle->pVideosGenlist) {
+ VideoSecureLogError("g_pFolderViewHandle is NULL");
+ return;
+ }
+ VideoLogInfo("");
+
+ evas_object_smart_callback_add(g_pFolderViewHandle->pVideosGenlist,
+ "language,changed",
+ __mp_folder_item_view_language_changed,
+ NULL);
+ evas_object_smart_callback_add(g_pFolderViewHandle->pVideosGenlist,
+ "realized",
+ __mp_folder_item_view_realize_genlist_item_cb,
+ NULL);
+#ifdef ENABLE_LONGPRESS
+ evas_object_smart_callback_add(g_pFolderViewHandle->pVideosGenlist,
+ "longpressed",
+ __mp_folder_item_view_long_press_item_cb,
+ NULL);
+#endif
+}
+
+/**
+ *
+ * @param eUpdateType
+ * @return
+ */
+static bool __mp_folder_item_view_update_video_list(MpListUpdateType
+ eUpdateType)
+{
+ if (!g_pFolderViewHandle || !g_pFolderViewWidget
+ || !g_pFolderViewHandle->pVideosGenlist) {
+ VideoLogError("handles of list view are not existed.");
+ return false;
+ }
+
+ __mp_folder_item_view_del_genlist_cb();
+
+ bool bRet =
+ __mp_folder_item_view_arrange_video_list
+ (__mp_folder_item_view_get_sort_type(), eUpdateType,
+ g_pFolderViewHandle->pVideosGenlist);
+ int nVideoListSize = 0;
+ if (bRet) {
+ nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+
+ if (nVideoListSize > 0) {
+ VideoLogInfo("listsize:%d", nVideoListSize);
+ g_pFolderViewHandle->currentItemCount = nVideoListSize;
+ __mp_folder_item_view_add_genlist_cb(g_pFolderViewHandle->
+ pVideosGenlist);
+ }
+ }
+
+ return bRet;
+}
+
+/**
+ *
+ * @param pUserData
+ */
+static void __mp_folder_item_view_db_changed_cb(void *pUserData)
+{
+ if (!g_pFolderViewHandle || !g_pFolderViewWidget) {
+ VideoLogError("Main handles of list view are not existed.");
+ return;
+ }
+
+ if (g_pFolderViewHandle->pFolderUrl) {
+ VideoSecureLogInfo("szFolderPath : %s",
+ g_pFolderViewHandle->pFolderUrl);
+ if (vp_file_exists(g_pFolderViewHandle->pFolderUrl)) {
+ //update video-list
+ VideoLogInfo("update folder item");
+ __mp_folder_item_view_result_user_cb(LIST_UPDATE_TYPE_ALL);
+ } else {
+ VideoLogInfo("pop folder item");
+ elm_naviframe_item_pop(g_pFolderViewHandle->pNaviFrameHandle);
+ }
+ }
+}
+
+#ifdef ENABLE_LONGPRESS
+static void __mp_folder_item_view_delete_video_items(int nVideoItemIndex)
+{
+ int nVideoListSize = g_pFolderViewHandle->currentItemCount;
+
+ if (nVideoListSize == 0) {
+ __mp_folder_item_view_update_video_list(LIST_UPDATE_TYPE_ALL);
+ return;
+ }
+
+ if (!g_pFolderViewHandle || !g_pFolderViewWidget
+ || !g_pFolderViewWidget->pVideolistItemList) {
+ VideoLogWarning("[WARNING] g_pFolderViewWidget is not existed.");
+ return;
+ }
+
+ Elm_Object_Item *pTmpVideoGenlistItem =
+ (Elm_Object_Item *) eina_list_nth(g_pFolderViewWidget->
+ pVideolistItemList,
+ nVideoItemIndex);
+ if (!pTmpVideoGenlistItem) {
+ VideoLogWarning("[WARNING] pVideolistItemList is not existed.");
+ return;
+ }
+
+
+ Elm_Object_Item *pNextGenlistItem = NULL;
+ Elm_Object_Item *pCurrGenlistItem =
+ elm_genlist_item_next_get(pTmpVideoGenlistItem);
+
+ g_pFolderViewWidget->pVideolistItemList =
+ eina_list_remove(g_pFolderViewWidget->pVideolistItemList,
+ pTmpVideoGenlistItem);
+ elm_object_item_del(pTmpVideoGenlistItem);
+
+ if (!pCurrGenlistItem) {
+ return;
+ }
+
+ while (pCurrGenlistItem) {
+ pNextGenlistItem = elm_genlist_item_next_get(pCurrGenlistItem);
+ g_pFolderViewWidget->pVideolistItemList =
+ eina_list_remove(g_pFolderViewWidget->pVideolistItemList,
+ pCurrGenlistItem);
+ elm_object_item_del(pCurrGenlistItem);
+ pCurrGenlistItem = pNextGenlistItem;
+ }
+
+ int nIndex = nVideoItemIndex;
+ for (nIndex = nVideoItemIndex; nIndex < nVideoListSize; nIndex++) {
+ pTmpVideoGenlistItem =
+ elm_genlist_item_append(g_pFolderViewHandle->pVideosGenlist,
+ &VideoFolder_Itc, (void *) nIndex,
+ NULL, ELM_GENLIST_ITEM_NONE,
+ __mp_folder_item_view_select_video_item_cb,
+ NULL);
+ g_pFolderViewWidget->pVideolistItemList =
+ eina_list_append(g_pFolderViewWidget->pVideolistItemList,
+ pTmpVideoGenlistItem);
+
+ elm_object_item_del_cb_set(pTmpVideoGenlistItem,
+ __mp_folder_item_view_video_item_del_cb);
+ }
+}
+#endif
+
+/**
+ *
+ * @param pUserData
+ * @param e
+ * @param pObject
+ * @param pEventInfo
+ */
+static void
+__mp_folder_item_view_base_layout_del_cb(void *pUserData, Evas * e,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ VideoLogInfo("");
+ __mp_folder_item_view_reset();
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __mp_folder_item_view_rotate_cb(void *data, Evas_Object * obj,
+ void *event_info)
+{
+ if (!g_pFolderViewWidget || !g_pFolderViewHandle) {
+ VideoLogError("__mp_folder_view_rotate_cb IS null");
+ return;
+ }
+ bool bLandscape =
+ mp_rotate_ctrl_check_landspace_by_win((Evas_Object *)
+ mp_util_get_main_window_handle
+ ());
+ if (bLandscape) {
+ g_pFolderViewHandle->bLandscape = true;
+ } else {
+ g_pFolderViewHandle->bLandscape = false;
+ }
+ elm_genlist_clear(g_pFolderViewHandle->pVideosGenlist);
+ __mp_folder_item_view_append_grid_layout(g_pFolderViewHandle->
+ pVideosGenlist);
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+void __mp_folder_soft_back_button_cb(void *data, Evas_Object * obj,
+ void *event_info)
+{
+ VideoLogInfo(" ");
+ Evas_Object *pTopNaviFrame = NULL;
+ pTopNaviFrame =
+ elm_naviframe_item_pop(g_pFolderViewHandle->pNaviFrameHandle);
+ evas_object_del(pTopNaviFrame);
+}
+
+/**
+ *
+ * @param pParent
+ */
+static void __mp_folder_item_view_init(void *pParent)
+{
+ if (!g_pFolderViewHandle || !g_pFolderViewWidget) {
+ VideoLogError("Main handles of list view are not existed.");
+ return;
+ }
+
+ VideoLogInfo("");
+
+ g_pFolderViewWidget->pFolderViewBox =
+ elm_box_add((Evas_Object *) pParent);
+ elm_box_horizontal_set(g_pFolderViewWidget->pFolderViewBox,
+ EINA_FALSE);
+ evas_object_show(g_pFolderViewWidget->pFolderViewBox);
+
+ g_pFolderViewWidget->pFolderViewBaselayout =
+ __mp_folder_item_view_init_base_layout(g_pFolderViewWidget->
+ pFolderViewBox);
+ evas_object_show(g_pFolderViewWidget->pFolderViewBaselayout);
+
+ elm_box_pack_end(g_pFolderViewWidget->pFolderViewBox,
+ g_pFolderViewWidget->pFolderViewBaselayout);
+
+ evas_object_event_callback_add(g_pFolderViewWidget->
+ pFolderViewBaselayout,
+ EVAS_CALLBACK_DEL,
+ __mp_folder_item_view_base_layout_del_cb,
+ NULL);
+
+ g_pFolderViewHandle->pVideosGenlist =
+ elm_genlist_add(g_pFolderViewWidget->pFolderViewBaselayout);
+ elm_scroller_bounce_set(g_pFolderViewHandle->pVideosGenlist,
+ EINA_FALSE, EINA_TRUE);
+ evas_object_size_hint_weight_set(g_pFolderViewHandle->pVideosGenlist,
+ EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(g_pFolderViewHandle->pVideosGenlist,
+ EVAS_HINT_FILL, EVAS_HINT_FILL);
+ elm_genlist_block_count_set(g_pFolderViewHandle->pVideosGenlist,
+ VIDEO_GENLIST_BLOCK_COUNT);
+ elm_scroller_single_direction_set(g_pFolderViewHandle->pVideosGenlist,
+ ELM_SCROLLER_SINGLE_DIRECTION_HARD);
+ elm_genlist_mode_set(g_pFolderViewHandle->pVideosGenlist,
+ ELM_LIST_COMPRESS);
+ elm_object_part_content_set(g_pFolderViewWidget->pFolderViewBaselayout,
+ SWALLOW_LISTVIEW_CONTENT,
+ g_pFolderViewHandle->pVideosGenlist);
+ __mp_folder_item_view_update_video_list(LIST_UPDATE_TYPE_ALL);
+ evas_object_show(g_pFolderViewHandle->pVideosGenlist);
+ g_pFolderViewHandle->bLandscape = false;
+ evas_object_smart_callback_add((Evas_Object *)
+ mp_util_get_main_window_handle(),
+ "wm,rotation,changed",
+ __mp_folder_item_view_rotate_cb, NULL);
+
+ Evas_Object *pLeftbtn =
+ elm_button_add(g_pFolderViewHandle->pNaviFrameHandle);
+ elm_object_style_set(pLeftbtn, "naviframe/end_btn/default");
+ evas_object_smart_callback_add(pLeftbtn, "clicked",
+ __mp_folder_soft_back_button_cb, NULL);
+
+ char *folder_name =
+ mp_util_svc_get_video_folder_name(g_pFolderViewHandle->
+ nFolder_index);
+
+ g_pFolderViewHandle->pNaviFrameItem =
+ elm_naviframe_item_push(g_pFolderViewHandle->pNaviFrameHandle,
+ (const char *) folder_name, pLeftbtn, NULL,
+ g_pFolderViewWidget->pFolderViewBox, NULL);
+
+ elm_naviframe_item_pop_cb_set(g_pFolderViewHandle->pNaviFrameItem,
+ __mp_folder_item_view_back_btn_cb,
+ g_pFolderViewHandle);
+
+ MP_FREE_STRING(folder_name);
+
+ mp_folder_item_view_check_more_button_of_toolbar();
+
+ elm_naviframe_item_title_enabled_set(g_pFolderViewHandle->
+ pNaviFrameItem, TRUE, EINA_FALSE);
+
+ mp_util_db_set_update_fun(g_pFolderViewHandle->euLev,
+ __mp_folder_item_view_db_changed_cb);
+
+ mp_util_hide_indicator();
+
+}
+
+/**
+ *
+ * @return
+ */
+bool mp_folder_item_view_is_current_view()
+{
+ return (g_pFolderViewHandle != NULL && !g_pFolderViewHandle->bExist);
+}
+
+/**
+ *
+ */
+void mp_folder_item_view_check_more_button_of_toolbar(void)
+{
+ if (!g_pFolderViewHandle) {
+ VideoLogError("g_pFolderViewHandle is null");
+ return;
+ }
+
+ st_RegisteCbFunc *pRegisteCbFunc =
+ (st_RegisteCbFunc *) calloc(1, sizeof(st_RegisteCbFunc));
+ if (!pRegisteCbFunc) {
+ VideoLogError("failed to allocate memory");
+ return;
+ }
+
+ pRegisteCbFunc->DownloadCb =
+ (void *) __mp_folder_item_view_download_cb;
+ pRegisteCbFunc->SearchCb =
+ (void *) __mp_folder_item_view_search_item_cb;
+ pRegisteCbFunc->ShareViaCb = (void *) __mp_folder_item_view_share_cb;
+ pRegisteCbFunc->DeleteCb = (void *) __mp_folder_item_view_delete_cb;
+ pRegisteCbFunc->SortItemCb =
+ (void *) __mp_folder_item_view_sort_item_cb;
+ pRegisteCbFunc->RenameCb = (void *) __mp_folder_item_view_rename_cb;
+ pRegisteCbFunc->AutoPlayCb =
+ (void *) __mp_folder_item_view_auto_play_cb;
+#ifdef ENABLE_PRIVATE_MODE
+ pRegisteCbFunc->AddToPersonalCB =
+ (void *) __mp_folder_item_view_add_personal_cb;
+ pRegisteCbFunc->RemoveFromPersonalCB =
+ (void *) __mp_folder_item_view_remove_personal_cb;
+#endif
+ mp_ft_ctrl_create(g_pFolderViewHandle->pNaviFrameHandle,
+ g_pFolderViewHandle->pNaviFrameItem,
+ FOOTER_TAB_TYPE_PERSONAL, pRegisteCbFunc);
+ free(pRegisteCbFunc);
+
+ elm_naviframe_item_title_enabled_set(g_pFolderViewHandle->
+ pNaviFrameItem, EINA_TRUE,
+ EINA_FALSE);
+ mp_util_db_set_update_fun(g_pFolderViewHandle->euLev,
+ __mp_folder_item_view_db_changed_cb);
+
+ mp_util_hide_indicator();
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param part
+ * @return
+ */
+char *__mp_folder_item_view_text_get_video_number_cb(void *pUserData,
+ Evas_Object * pObj,
+ const char *part)
+{
+ VideoLogInfo("");
+
+ if (!g_pFolderViewHandle) {
+ VideoLogWarning("g_pFolderViewHandle is NULL.");
+ return NULL;
+ }
+
+ if (!g_pFolderViewWidget) {
+ VideoLogWarning("g_pFolderViewWidget is NULL.");
+ return NULL;
+ }
+
+ if (!g_strcmp0(part, "elm.text.sub")) {
+ int nCount = (int) pUserData;
+
+ if (nCount == 1) {
+ return g_strdup_printf(VIDEOS_LISTVIEW_BODY_ONE_VIDEO);
+ } else {
+ return g_strdup_printf(VIDEOS_LISTVIEW_BODY_PD_VIDEOS, nCount);
+ }
+ }
+
+ return NULL;
+}
+
+
+/**
+ *
+ * @param pNaviFrame
+ * @param folder_index
+ * @param pChangeViewCb
+ */
+void mp_folder_item_view_push(void *pNaviFrame, int folder_index,
+ UpdateListItemsCbFunc pChangeViewCb)
+{
+ if (!pNaviFrame) {
+ VideoLogError("[ERR] pNaviFrame");
+ return;
+ }
+
+ VideoLogInfo("");
+ __mp_folder_item_view_destroy();
+ g_pFolderViewHandle =
+ (st_VideoFolderViewHandle *) calloc(1,
+ sizeof
+ (st_VideoFolderViewHandle));
+ g_pFolderViewWidget =
+ (st_VideoFolderViewWidget *) calloc(1,
+ sizeof
+ (st_VideoFolderViewWidget));
+
+ memset(g_pFolderViewHandle, 0, sizeof(st_VideoFolderViewHandle));
+ memset(g_pFolderViewWidget, 0, sizeof(st_VideoFolderViewWidget));
+
+ g_pFolderViewHandle->pNaviFrameHandle = pNaviFrame;
+ g_pFolderViewHandle->pUpdateListUserCbFunc = pChangeViewCb;
+ g_pFolderViewHandle->nFolder_index = folder_index;
+ g_pFolderViewHandle->bExist = false;
+ g_pFolderViewHandle->bLandscape =
+ mp_rotate_ctrl_check_landspace_by_win((Evas_Object *)
+ mp_util_get_main_window_handle
+ ());
+ char *szPath = mp_util_svc_get_video_folder_url(folder_index);
+ g_pFolderViewHandle->pFolderUrl = g_strdup(szPath);
+ VideoSecureLogInfo("folder path = %s", szPath);
+ MP_FREE_STRING(szPath);
+
+ g_pFolderViewHandle->euLev = MP_DB_UPDATE_LEV_1;
+
+ __mp_folder_item_view_init(g_pFolderViewHandle->pNaviFrameHandle);
+ g_pFolderViewHandle->nPlayVideoIndex = -1;
+
+}
+
+/**
+ *
+ */
+void mp_folder_item_view_update_played_item(void)
+{
+ if (!g_pFolderViewHandle || !g_pFolderViewWidget) {
+ VideoLogInfo("Folderitem View does not exist.");
+ return;
+ }
+ VideoLogInfo("");
+
+ if (g_pFolderViewHandle->pVideosGenlist) {
+ int nGenItemIndex = g_pFolderViewHandle->nPlayVideoIndex;
+ VideoLogInfo("%d", nGenItemIndex);
+
+ int nGenlistIndex = nGenItemIndex;
+ if (!g_pFolderViewHandle->bLandscape)
+ nGenlistIndex =
+ nGenlistIndex / VP_GENLIST_THUMB_PORTRAIT_COUNT;
+ else
+ nGenlistIndex =
+ nGenlistIndex / VP_GENLIST_THUMB_LANDSPACE_COUNT;
+
+ Elm_Object_Item *pTmpVideoGenlistItem = NULL;
+ pTmpVideoGenlistItem =
+ elm_genlist_nth_item_get((const Evas_Object *)
+ g_pFolderViewHandle->pVideosGenlist,
+ nGenlistIndex);
+ mp_util_svc_destory_video_item_list();
+ mp_util_svc_extract_video_list_from_folder(g_pFolderViewHandle->
+ pFolderUrl,
+ __mp_folder_item_view_get_sort_type
+ (), MP_LIST_VIEW_ALL);
+ mp_util_svc_update_thumbnail_info(g_pFolderViewHandle->
+ nPlayVideoIndex);
+ elm_genlist_item_update(pTmpVideoGenlistItem);
+ if (pTmpVideoGenlistItem) {
+ elm_genlist_item_selected_set(pTmpVideoGenlistItem,
+ EINA_FALSE);
+ Evas_Object *pIconContent =
+ elm_object_item_part_content_get(pTmpVideoGenlistItem,
+ "elm.icon.1");
+ if (!pIconContent) {
+ VideoLogError("");
+ return;
+ }
+ Evas_Object *pProgressbar =
+ elm_layout_content_get(pIconContent,
+ "elm.progressbar.icon");
+
+ if (pProgressbar) {
+ elm_layout_content_unset(pIconContent,
+ "elm.progressbar.icon");
+ MP_DEL_OBJ(pProgressbar);
+ }
+
+ elm_genlist_item_fields_update(pTmpVideoGenlistItem,
+ "elm.text.sub.left.bottom",
+ ELM_GENLIST_ITEM_FIELD_TEXT);
+ }
+ }
+}
+
+/**
+ *
+ */
+void mp_folder_item_view_change_language(void)
+{
+ if (!g_pFolderViewHandle || !g_pFolderViewWidget) {
+ VideoLogError("No existed handle of Folder item view.");
+ return;
+ }
+
+ VideoLogInfo("");
+
+}
+
+/*external interface*/
+/**
+ *
+ * @param eUpdateType
+ */
+void mp_folder_item_view_update_video_list(MpListUpdateType eUpdateType)
+{
+ if (!g_pFolderViewHandle || !g_pFolderViewWidget
+ || !g_pFolderViewHandle->pVideosGenlist) {
+ VideoLogError("handles of list view are not existed.");
+ return;
+ }
+ if (eUpdateType != LIST_UPDATE_TYPE_NONE) {
+ __mp_folder_item_view_update_video_list(eUpdateType);
+ }
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#include <app.h>
+#include <glib.h>
+#include <unistd.h>
+#include <stdbool.h>
+#include <media_content.h>
+
+
+#include "mp-util.h"
+#include "vp-util.h"
+#include "mp-video-log.h"
+#include "mp-external-ug.h"
+#include "mp-video-value-define.h"
+#include "mp-video-string-define.h"
+#include "mp-util-media-service.h"
+
+#include "mp-footer-toolbar.h"
+#include "mp-video-list-view-main.h"
+#include "mp-video-list-sort-ctrl.h"
+#include "mp-video-view-popup-ctrl.h"
+#include "mp-video-list-remove-ctrl.h"
+#include "mp-video-list-remove-view.h"
+#include "mp-video-search-view.h"
+#include "mp-video-list-view-as-ctrl.h"
+#include "mp-video-list-auto-play-ctrl.h"
+#include "mp-launching-video-displayer.h"
+#include "mp-video-list-view-normal.h"
+#include "mp-video-info-ctrl.h"
+#include "mp-rotate-ctrl.h"
+#include "mp-video-list-view-thumbnail.h"
+#include "mp-video-list-view-item-of-folder.h"
+#include "mp-util-widget-ctrl.h"
+
+#include "videos-view-mgr.h"
+#include "mp-video-list-view-folder.h"
+#include "mp-video-list-share-via-view.h"
+#include "mp-video-list-view-common.h"
+#include "mp-video-list-option-ctrl.h"
+#include "mp-video-list-personal-view.h"
+#include "mp-video-nocontent-layout.h"
+
+#include "mp-video-rename-ctrl.h"
+#include "mp-video-util-db-controller.h"
+#include "mp-video-list-view-select.h"
+#include "mp-video-list-folder-share-via-view.h"
+
+#include "mp-util-preference.h"
+#include "mp-util-config.h"
+
+
+static st_VideoListViewMainViewHandle *g_pMainViewHandle = NULL;
+static st_VideoListViewMainViewWidget *g_pMainViewWidget = NULL;
+
+
+/*///////////////////////////////////////////////////*/
+/* Pre-define function for building.*/
+static void __mp_list_view_update_list(int nListTabType,
+ MpListUpdateType eUpdateType);
+/*static void mp_list_view_check_center_button_of_toolbar(void);*/
+static void mp_list_view_check_more_button_of_toolbar(void);
+
+static bool __mp_list_view_is_top_view(void);
+
+/*use used for poping view situation,update data list-->reset DB callback*/
+static void __mp_list_view_result_view_update_cb(void);
+
+/*use used for popup situation,update data list-->update videos items*/
+static void __mp_list_view_result_data_update_cb(void);
+
+/*use used for whole update, clear videos items -->update data list-->append video items*/
+static void __mp_list_view_result_user_cb(MpListUpdateType eUpdateType);
+
+/*use used for personal storage style -->update data list-->update video items*/
+static void __mp_list_view_result_media_data_update_cb(void);
+
+static char *__mp_list_view_count_layout_tts_cb(void *data,
+ Evas_Object * obj);
+
+/**
+ *
+ * @param key
+ * @param data
+ */
+static void __mp_list_view_recently_change_cb(const char *key, void *data)
+{
+ VideoLogInfo("");
+ char *pszVideo = mp_util_config_get_preview();
+ if (!pszVideo) {
+ return;
+ }
+ MP_FREE_STRING(pszVideo);
+
+ mp_list_view_update_widget();
+}
+
+/**
+ *
+ */
+static void __mp_list_view_register_recently_config()
+{
+ mp_util_config_ignore_preview_key_changed_cb();
+ mp_util_config_preview_key_changed_cb
+ (__mp_list_view_recently_change_cb, NULL);
+}
+
+/**
+ *
+ */
+void mp_list_view_free_main_view_widget(void)
+{
+ VideoLogInfo("");
+
+ if (g_pMainViewWidget) {
+ if (g_pMainViewWidget->pToolBar) {
+ evas_object_del(g_pMainViewWidget->pToolBar);
+ g_pMainViewWidget->pToolBar = NULL;
+ }
+
+ if (g_pMainViewWidget->pListViewBaselayout) {
+ evas_object_del(g_pMainViewWidget->pListViewBaselayout);
+ g_pMainViewWidget->pListViewBaselayout = NULL;
+ }
+
+ if (g_pMainViewWidget->pListViewTitlelayout) {
+ evas_object_del(g_pMainViewWidget->pListViewTitlelayout);
+ g_pMainViewWidget->pListViewTitlelayout = NULL;
+ }
+
+ if (g_pMainViewWidget->pBox) {
+ evas_object_del(g_pMainViewWidget->pBox);
+ g_pMainViewWidget->pBox = NULL;
+ }
+ MP_DEL_ITC(g_pMainViewWidget->pVideoGenlistTitleItc);
+ free(g_pMainViewWidget);
+ g_pMainViewWidget = NULL;
+ }
+}
+
+
+/*//////////////////////////////////////////////////*/
+/* Callback function of more of footer widget.*/
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+void mp_list_view_delete_cb(void *pUserData, Evas_Object * pObject,
+ void *pEventInfo)
+{
+ if (!g_pMainViewHandle) {
+ VideoLogWarning
+ ("[WARNING] Main handles of list view are not existed.");
+ return;
+ }
+
+ mp_ft_ctrl_hide_more_popup();
+
+ MpFooterLibraryMainListTabType footerTabType =
+ (MpFooterLibraryMainListTabType) pUserData;
+ if (FOOTER_TAB_TYPE_PERSONAL == footerTabType) {
+ mp_remove_view_push((void *) mp_mgr_get_library_naviframe(),
+ (void *) __mp_list_view_result_user_cb,
+ (void *) __mp_list_view_result_view_update_cb,
+ NULL, LIST_TAB_TYPE_PERSONAL);
+ } else {
+ VideoLogError("invalid footer type");
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+void mp_list_view_sort_item_cb(void *pUserData, Evas_Object * pObject,
+ void *pEventInfo)
+{
+
+ mp_ft_ctrl_hide_more_popup();
+
+ MpFooterLibraryMainListTabType footerTabType =
+ (MpFooterLibraryMainListTabType) pUserData;
+ if (FOOTER_TAB_TYPE_PERSONAL == footerTabType) {
+ mp_sort_ctrl_show((void *) __mp_list_view_result_data_update_cb);
+ } else {
+ VideoLogError("invalid footer type");
+ }
+}
+
+/**
+ *
+ */
+static void __mp_list_view_view_as_result_user_cb(void)
+{
+ if (!g_pMainViewHandle) {
+ VideoLogWarning("g_pMainViewHandle == NULL");
+ return;
+ }
+
+ int nPreViewType = g_pMainViewHandle->nCurrentViewType;
+ g_pMainViewHandle->nCurrentViewType = mp_view_as_ctrl_get_type();
+
+ if (g_pMainViewHandle->nCurrentViewType != nPreViewType) {
+
+ elm_object_part_content_unset
+ (g_pMainViewWidget->pListViewBaselayout,
+ SWALLOW_LISTVIEW_CONTENT);
+#ifdef VS_FEATURE_LIST_VIEW
+ if (nPreViewType == MP_LIST_VIEW_AS_NORMAL_LIST) {
+ mp_normal_view_destroy();
+ } else
+#endif
+ if (nPreViewType == MP_LIST_VIEW_AS_FOLDER_LIST) {
+ mp_folder_view_destroy();
+ } else if (nPreViewType == MP_LIST_VIEW_AS_THUMBNAIL_LIST) {
+ mp_thumbnail_view_destroy();
+ } else {
+ VideoLogError("invalid type");
+#ifdef VS_FEATURE_LIST_VIEW
+ mp_normal_view_destroy();
+#endif
+ mp_folder_view_destroy();
+ mp_thumbnail_view_destroy();
+ }
+ }
+ __mp_list_view_result_user_cb(LIST_UPDATE_TYPE_ALL);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+void mp_list_view_view_as_cb(void *pUserData, Evas_Object * pObject,
+ void *pEventInfo)
+{
+
+ mp_ft_ctrl_hide_more_popup();
+
+ MpFooterLibraryMainListTabType footerTabType =
+ (MpFooterLibraryMainListTabType) pUserData;
+ if (FOOTER_TAB_TYPE_PERSONAL == footerTabType) {
+ mp_view_as_ctrl_show(footerTabType, (void *)
+ __mp_list_view_view_as_result_user_cb);
+ } else {
+ VideoLogError("invalid footer type");
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+void mp_list_view_auto_play_cb(void *pUserData, Evas_Object * pObject,
+ void *pEventInfo)
+{
+
+ mp_ft_ctrl_hide_more_popup();
+
+ MpFooterLibraryMainListTabType footerTabType =
+ (MpFooterLibraryMainListTabType) pUserData;
+ if (FOOTER_TAB_TYPE_PERSONAL == footerTabType) {
+ mp_auto_play_ctrl_show();
+ } else {
+ VideoLogError("invalid footer type");
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+void mp_list_view_rename_cb(void *pUserData, Evas_Object * pObject,
+ void *pEventInfo)
+{
+ if (!g_pMainViewHandle) {
+ VideoLogWarning
+ ("[WARNING] Main handles of list view are not existed.");
+ return;
+ }
+
+ mp_ft_ctrl_hide_more_popup();
+ mp_select_view_push((void *) mp_mgr_get_library_naviframe(),
+ g_pMainViewHandle->pNaviFrameItem,
+ __mp_list_view_result_user_cb, NULL,
+ SELECT_TYPE_RENAME, LIST_TAB_TYPE_PERSONAL);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+void mp_list_view_content_to_display_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ mp_ft_ctrl_hide_more_popup();
+
+ mp_view_ctrl_show((void *) __mp_list_view_result_user_cb);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+void mp_list_view_sign_in_cb(void *pUserData, Evas_Object * pObject,
+ void *pEventInfo)
+{
+
+ mp_ft_ctrl_hide_more_popup();
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+void mp_list_view_share_via_cb(void *pUserData, Evas_Object * pObject,
+ void *pEventInfo)
+{
+ if (!g_pMainViewHandle) {
+ VideoLogError("Main handles of list view are not existed.");
+ return;
+ }
+
+ mp_ft_ctrl_hide_more_popup();
+
+ if (mp_view_as_ctrl_get_type() == MP_LIST_VIEW_AS_FOLDER_LIST) {
+ VideoLogWarning("Select folder for sharing.");
+ mp_folder_share_view_push((void *) mp_mgr_get_library_naviframe(),
+ (void *)
+ __mp_list_view_result_view_update_cb,
+ LIST_TAB_TYPE_PERSONAL);
+ } else {
+ mp_share_view_push((void *) mp_mgr_get_library_naviframe(),
+ (void *) __mp_list_view_result_view_update_cb,
+ NULL, LIST_TAB_TYPE_PERSONAL);
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+void mp_list_view_add_personal_cb(void *pUserData, Evas_Object * pObject,
+ void *pEventInfo)
+{
+ if (!g_pMainViewHandle) {
+ VideoLogError("Main handles of list view are not existed.");
+ return;
+ }
+
+ mp_ft_ctrl_hide_more_popup();
+
+ mp_personal_view_push((void *) mp_mgr_get_library_naviframe(), (void *)
+ __mp_list_view_result_media_data_update_cb,
+ NULL, 0);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+void mp_list_view_remove_personal_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ if (!g_pMainViewHandle) {
+ VideoLogError("Main handles of list view are not existed.");
+ return;
+ }
+
+ mp_ft_ctrl_hide_more_popup();
+
+ mp_personal_view_push((void *) mp_mgr_get_library_naviframe(), (void *)
+ __mp_list_view_result_media_data_update_cb,
+ NULL, 1);
+}
+
+
+ /**/
+/*//////////////////////////////////////////////////*/
+/*//////////////////////////////////////////////////*/
+/* Footer widgets*/
+/**
+ *
+ */
+void mp_list_view_check_more_button_of_toolbar(void)
+{
+ if (!g_pMainViewHandle) {
+ VideoLogInfo("g_pMainViewHandle == NULL");
+ return;
+ }
+
+ VideoLogInfo("nListTabType=%d", g_pMainViewHandle->nListTabType);
+
+ if (g_pMainViewHandle->nListTabType == LIST_TAB_TYPE_PERSONAL) {
+ if (mp_folder_item_view_is_current_view()) {
+ VideoLogInfo("Update more button of folder item view");
+ mp_folder_item_view_check_more_button_of_toolbar();
+ } else {
+ VideoLogInfo("Update more button of main list view");
+ st_RegisteCbFunc *pRegisteCbFunc =
+ (st_RegisteCbFunc *) calloc(1, sizeof(st_RegisteCbFunc));
+ if (!pRegisteCbFunc) {
+ VideoLogError("failed to allocate memory");
+ return;
+ }
+
+ pRegisteCbFunc->SearchCb =
+ (void *) mp_list_view_search_item_cb;
+ pRegisteCbFunc->DeleteCb = (void *) mp_list_view_delete_cb;
+ pRegisteCbFunc->ViewAsCb = (void *) mp_list_view_view_as_cb;
+ if (mp_view_as_ctrl_get_type() != MP_LIST_VIEW_AS_FOLDER_LIST) {
+ pRegisteCbFunc->SortItemCb =
+ (void *) mp_list_view_sort_item_cb;
+ pRegisteCbFunc->RenameCb = (void *) mp_list_view_rename_cb;
+ /*pRegisteCbFunc->DetailsCb= (void*)mp_list_view_details_cb; */
+ pRegisteCbFunc->ShareViaCb =
+ (void *) mp_list_view_share_via_cb;
+ pRegisteCbFunc->AutoPlayCb =
+ (void *) mp_list_view_auto_play_cb;
+ }
+ pRegisteCbFunc->SignInCb = (void *) mp_list_view_sign_in_cb;
+
+#ifdef ENABLE_PRIVATE_MODE
+ pRegisteCbFunc->AddToPersonalCB =
+ (void *) mp_list_view_add_personal_cb;
+ pRegisteCbFunc->RemoveFromPersonalCB =
+ (void *) mp_list_view_remove_personal_cb;
+#endif
+ bool bShowFT = mp_ft_ctrl_is_show();
+ if (bShowFT == FALSE) {
+ mp_ft_ctrl_create(g_pMainViewHandle->pNaviFrameHandle,
+ g_pMainViewHandle->pNaviFrameItem,
+ g_pMainViewHandle->nListTabType,
+ pRegisteCbFunc);
+ }
+ free(pRegisteCbFunc);
+ }
+ } else {
+ mp_ft_ctrl_disable();
+ }
+}
+
+ /**/
+/*//////////////////////////////////////////////////*/
+/*//////////////////////////////////////////////////*/
+/* Search view*/
+/**
+ *
+ */
+void mp_list_view_show_search_view(void)
+{
+ if (!g_pMainViewHandle) {
+ VideoLogInfo("Main handles of list view are not existed.");
+ return;
+ }
+
+ VideoLogInfo("");
+
+ mp_ft_ctrl_hide_more_popup();
+
+ mp_search_view_push((void *) mp_mgr_get_library_naviframe(), NULL);
+
+ mp_search_view_register_update_list_func((void *)
+ __mp_list_view_result_user_cb,
+ (void *)
+ __mp_list_view_result_view_update_cb);
+}
+
+ /**/
+/*//////////////////////////////////////////////////*/
+/*//////////////////////////////////////////////////*/
+/* Callback function of base widget in main list view.*/
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+void mp_list_view_naviframe_transition_effect_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ if (!g_pMainViewHandle) {
+ VideoLogInfo("Main handles of list view are not existed.");
+ return;
+ }
+
+ VideoLogInfo("");
+
+ Evas_Object *pTmpContents = NULL;
+ Elm_Object_Item *pTmpItem = NULL;
+
+ if (!g_pMainViewHandle->pNaviFrameHandle) {
+ VideoLogInfo("[ERR] No exist naviframe handle.");
+ return;
+ }
+
+ pTmpItem =
+ elm_naviframe_top_item_get(g_pMainViewHandle->pNaviFrameHandle);
+ pTmpContents = elm_object_item_content_get(pTmpItem);
+ if (pTmpContents) {
+ } else {
+ VideoLogInfo("[ERR] No exist naviframe top item.");
+ }
+}
+
+/**
+ *
+ */
+void mp_list_view_double_tap_sensor_cb(void)
+{
+ if (!g_pMainViewHandle) {
+ VideoLogInfo("Main handles of list view are not existed.");
+ return;
+ }
+
+ VideoLogInfo("");
+
+ if (!__mp_list_view_is_top_view()) {
+ VideoLogInfo("Main list view is not top view.");
+ return;
+ }
+
+}
+
+/**
+ *
+ */
+static void __mp_list_view_result_media_data_update_cb(void)
+{
+ if (!g_pMainViewHandle || !g_pMainViewWidget) {
+ VideoLogInfo("Main handles of list view are not existed.");
+ return;
+ }
+
+ VideoLogInfo("");
+
+ mp_util_svc_destory_video_list();
+ mp_util_svc_extract_video_list_by_item_type
+ (mp_sort_ctrl_get_sort_state(), mp_view_ctrl_get_list_type());
+
+ int nViewType = mp_view_as_ctrl_get_type();
+#ifdef VS_FEATURE_LIST_VIEW
+ if (nViewType == MP_LIST_VIEW_AS_NORMAL_LIST) {
+ mp_normal_view_update_video_list();
+ } else
+#endif
+ if (nViewType == MP_LIST_VIEW_AS_FOLDER_LIST) {
+ mp_folder_view_update_video_items();
+ mp_util_svc_extract_video_folder_list_by_type
+ (mp_sort_ctrl_get_sort_state(), MP_LIST_VIEW_ALL);
+ } else {
+ VideoLogError("");
+ }
+
+ mp_list_view_check_more_button_of_toolbar();
+ /*mp_list_view_check_center_button_of_toolbar(); */
+}
+
+/**
+ *
+ * @param eUpdateType
+ */
+static void __mp_list_view_result_user_cb(MpListUpdateType eUpdateType)
+{
+ if (!g_pMainViewHandle || !g_pMainViewWidget) {
+ VideoLogInfo("Main handles of list view are not existed.");
+ return;
+ }
+
+ VideoLogInfo("");
+ elm_object_item_part_text_set(g_pMainViewHandle->pNaviFrameItem,
+ "elm.text.title", VIDEOS_TITLE_VIDEO);
+
+ __mp_list_view_update_list(g_pMainViewHandle->nListTabType,
+ eUpdateType);
+
+ mp_list_view_check_more_button_of_toolbar();
+}
+
+/**
+ *
+ */
+static void __mp_list_view_result_data_update_cb(void)
+{
+ if (!g_pMainViewHandle || !g_pMainViewWidget) {
+ VideoLogInfo("Main handles of list view are not existed.");
+ return;
+ }
+
+ VideoLogInfo("");
+
+ int nViewType = mp_view_as_ctrl_get_type();
+#ifdef VS_FEATURE_LIST_VIEW
+ if (nViewType == MP_LIST_VIEW_AS_NORMAL_LIST) {
+ mp_util_svc_destory_video_item_list();
+ mp_util_svc_extract_video_list_by_item_type
+ (mp_sort_ctrl_get_sort_state(), mp_view_ctrl_get_list_type());
+ mp_normal_view_update_video_list();
+ } else
+#endif
+ if (nViewType == MP_LIST_VIEW_AS_FOLDER_LIST) {
+ mp_util_svc_destory_video_folder_list();
+ mp_util_svc_extract_video_folder_list_by_type
+ (mp_sort_ctrl_get_sort_state(), MP_LIST_VIEW_ALL);
+ mp_folder_view_update_video_items();
+ } else if (nViewType == MP_LIST_VIEW_AS_THUMBNAIL_LIST) {
+ mp_util_svc_destory_video_item_list();
+ mp_util_svc_extract_video_list_by_item_type
+ (mp_sort_ctrl_get_sort_state(), mp_view_ctrl_get_list_type());
+ mp_thumbnail_view_update_video_list();
+ } else {
+
+ VideoLogError("");
+ }
+
+ mp_list_view_check_more_button_of_toolbar();
+}
+
+/**
+ *
+ */
+static void __mp_list_view_result_view_update_cb(void)
+{
+ if (!g_pMainViewHandle || !g_pMainViewWidget) {
+ VideoLogInfo("Main handles of list view are not existed.");
+ return;
+ }
+ VideoLogInfo("");
+ int nViewType = mp_view_as_ctrl_get_type();
+ mp_util_svc_destory_video_list();
+ mp_util_svc_extract_video_list_by_item_type
+ (mp_sort_ctrl_get_sort_state(), mp_view_ctrl_get_list_type());
+
+ if (nViewType == MP_LIST_VIEW_AS_FOLDER_LIST) {
+ /*refresh folder view */
+ mp_util_svc_extract_video_folder_list_by_type
+ (mp_sort_ctrl_get_sort_state(), MP_LIST_VIEW_ALL);
+ if (!mp_folder_view_is_item_view()
+ && !mp_search_view_get_active_view())
+ mp_folder_view_arrange_folder_list(g_pMainViewHandle,
+ g_pMainViewWidget,
+ LIST_UPDATE_TYPE_VIEW,
+ (void *)
+ __mp_list_view_result_user_cb);
+ }
+ if (nViewType == MP_LIST_VIEW_AS_THUMBNAIL_LIST) {
+ /*refresh thumbnail view */
+ mp_thumbnail_view_update_video_list();
+ }
+ mp_list_view_check_more_button_of_toolbar();
+
+}
+
+/**
+ *
+ * @param nUpdateStyle
+ */
+static void __mp_list_view_db_update(int nUpdateStyle)
+{
+
+ if (!g_pMainViewHandle || !g_pMainViewWidget) {
+ VideoLogInfo("Main handles of list view are not existed.");
+ return;
+ }
+
+ mp_util_db_run_backup_fun_except_lev0(NULL, NULL, NULL, NULL);
+ __mp_list_view_update_list(g_pMainViewHandle->nListTabType,
+ LIST_UPDATE_TYPE_ALL);
+
+ mp_util_db_run_update_fun_except_lev0(NULL, NULL, NULL, NULL);
+
+ g_pMainViewHandle->pDbUpdateTimer = NULL;
+ VideoLogInfo("db change ----update");
+}
+
+/*pUserData = update style, insert, delete, update or -1*/
+/**
+ *
+ * @param pUserData
+ * @return
+ */
+static Eina_Bool __mp_list_view_db_update_timer_cb(void *pUserData)
+{
+
+ if (!g_pMainViewHandle || !g_pMainViewWidget) {
+ VideoLogInfo("Main handles of list view are not existed.");
+ return ECORE_CALLBACK_CANCEL;
+ }
+ if (!g_pMainViewHandle->pDbUpdateTimer) {
+ return ECORE_CALLBACK_CANCEL;
+ }
+
+ int nUpdateStyle = (int) pUserData;
+
+ __mp_list_view_db_update(nUpdateStyle);
+
+ return ECORE_CALLBACK_CANCEL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param fTime
+ * @param nUpdateStyle
+ */
+static void __mp_list_view_db_change_cb(void *pUserData, float fTime,
+ int nUpdateStyle)
+{
+ if (!g_pMainViewHandle || !g_pMainViewWidget) {
+ VideoLogInfo("Main handles of list view are not existed.");
+ return;
+ }
+
+ VideoLogInfo("db change----");
+
+ MP_DEL_TIMER(g_pMainViewHandle->pDbUpdateTimer);
+ g_pMainViewHandle->pDbUpdateTimer =
+ ecore_timer_add(fTime, __mp_list_view_db_update_timer_cb,
+ (void *) nUpdateStyle);
+
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+void mp_list_view_search_item_cb(void *pUserData, Evas_Object * pObject,
+ void *pEventInfo)
+{
+ VideoLogInfo("");
+
+ if (!g_pMainViewHandle || !g_pMainViewWidget) {
+ VideoLogInfo("Main handles of list view are not existed.");
+ return;
+ }
+
+ mp_list_view_show_search_view();
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pItem
+ * @return
+ */
+Eina_Bool mp_list_view_back_btn_cb(void *pUserData,
+ Elm_Object_Item * pItem)
+{
+ VideoLogInfo("");
+
+ if (mp_util_get_main_window_handle()) {
+ elm_win_lower(mp_util_get_main_window_handle());
+ }
+
+ return EINA_FALSE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pBuffer
+ * @param nBufferSize
+ */
+void mp_list_view_launching_video_player_cb(void *pUserData,
+ void *pBuffer,
+ unsigned int nBufferSize)
+{
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+
+}
+
+
+/*//////////////////////////////////////////////////*/
+ /**/
+/**
+ *
+ * @param nListTabType
+ * @param eUpdateType
+ */
+ void __mp_list_view_update_list(int nListTabType,
+ MpListUpdateType eUpdateType)
+{
+ VideoLogInfo("");
+
+ mp_option_ctrl_delete_handle();
+ mp_util_delete_popup_handle();
+
+ int nViewType = mp_view_as_ctrl_get_type();
+#ifdef VS_FEATURE_LIST_VIEW
+ if (nViewType == MP_LIST_VIEW_AS_NORMAL_LIST) {
+ mp_normal_view_arrange_list_item(g_pMainViewHandle,
+ g_pMainViewWidget, eUpdateType,
+ (void *)
+ __mp_list_view_result_user_cb);
+ } else
+#endif
+ if (nViewType == MP_LIST_VIEW_AS_FOLDER_LIST) {
+ mp_folder_view_arrange_folder_list(g_pMainViewHandle,
+ g_pMainViewWidget, eUpdateType,
+ (void *)
+ __mp_list_view_result_user_cb);
+ } else if (nViewType == MP_LIST_VIEW_AS_THUMBNAIL_LIST) {
+ mp_thumbnail_view_arrange_list_item(g_pMainViewHandle,
+ g_pMainViewWidget,
+ eUpdateType, (void *)
+ __mp_list_view_result_user_cb);
+ }
+
+ mp_list_view_check_more_button_of_toolbar();
+
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param part
+ * @return
+ */
+char *__mp_list_view_text_get_video_number_cb(void *pUserData,
+ Evas_Object * pObj,
+ const char *part)
+{
+ VideoLogInfo("");
+
+ if (g_pMainViewHandle == NULL) {
+ VideoLogError("g_pMainViewHandle == NUL!!!");
+ VideoLogAssert(0);
+ return NULL;
+ }
+
+ if (g_pMainViewWidget == NULL) {
+ VideoLogError("g_pMainViewWidget == NUL!!!");
+ VideoLogAssert(0);
+ return NULL;
+ }
+
+ if (!strcmp(part, "elm.text.sub")) {
+ unsigned int nCount = 0;
+ int nViewType = mp_view_as_ctrl_get_type();
+
+ if (nViewType == MP_LIST_VIEW_AS_FOLDER_LIST) {
+ nCount = mp_util_svc_get_video_folder_size();
+ } else {
+ nCount = mp_util_svc_get_number_of_video_item_by_type();
+ }
+
+ VideoLogInfo("nViewType : [%d], nCount : [%d]", nViewType, nCount);
+
+ if (nCount == 1) {
+ if (nViewType == MP_LIST_VIEW_AS_FOLDER_LIST) {
+ return g_strdup_printf("%s",
+ VIDEOS_FOLDERVIEW_BODY_ONE_FOLDER);
+ } else {
+ return g_strdup_printf("%s",
+ VIDEOS_LISTVIEW_BODY_ONE_VIDEO);
+ }
+ } else {
+ if (nViewType == MP_LIST_VIEW_AS_FOLDER_LIST) {
+ return g_strdup_printf(VIDEOS_FOLDERVIEW_BODY_PD_FOLDERS,
+ nCount);
+ } else {
+ return g_strdup_printf(VIDEOS_LISTVIEW_BODY_PD_VIDEOS,
+ nCount);
+ }
+ }
+ }
+
+ return NULL;
+}
+
+ /**/
+/*//////////////////////////////////////////////////*/
+/**
+ *
+ * @param eUpdateType
+ */
+void mp_list_view_update_whole_genlist(MpListUpdateType eUpdateType)
+{
+ if (!g_pMainViewHandle) {
+ VideoLogInfo("[ERR] g_pMainViewHandle is NULL.");
+ return;
+ }
+
+ VideoLogInfo("");
+
+ if (g_pMainViewHandle->nListTabType == LIST_TAB_TYPE_PERSONAL) {
+ int nViewType = mp_view_as_ctrl_get_type();
+#ifdef VS_FEATURE_LIST_VIEW
+ if (nViewType == MP_LIST_VIEW_AS_NORMAL_LIST) {
+ mp_normal_view_arrange_list_item(g_pMainViewHandle,
+ g_pMainViewWidget,
+ eUpdateType, (void *)
+ __mp_list_view_result_user_cb);
+ } else
+#endif
+ if (nViewType == MP_LIST_VIEW_AS_FOLDER_LIST) {
+ mp_folder_view_arrange_folder_list(g_pMainViewHandle,
+ g_pMainViewWidget,
+ eUpdateType, (void *)
+ __mp_list_view_result_user_cb);
+ mp_folder_item_view_update_video_list(LIST_UPDATE_TYPE_NONE); /*folder item view, update NONE */
+ }
+ if (mp_personal_view_is_top_view()) {
+ mp_personal_view_update();
+ }
+ } else {
+ VideoLogInfo("It's not relevant list arrange.");
+ }
+
+ mp_ft_ctrl_rotate_update();
+}
+
+/**
+ *
+ * @param eUpdateType
+ */
+void mp_list_view_rotate_view(MpListUpdateType eUpdateType)
+{
+ if (!g_pMainViewHandle) {
+ VideoLogInfo("[ERR] g_pMainViewHandle is NULL.");
+ return;
+ }
+
+ VideoLogInfo("");
+
+ mp_ft_ctrl_rotate_update();
+}
+
+/**
+ *
+ * @param pUserData
+ * @param e
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_main_title_layout_del_cb(void *pUserData, Evas * e,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ if (!g_pMainViewWidget) {
+ VideoLogError("g_pMainViewWidget == NUL!!!");
+ return;
+ }
+
+ g_pMainViewWidget->pListViewTitlelayout = NULL;
+ g_pMainViewWidget->pVideoGenlistTitle = NULL;
+ g_pMainViewWidget->pVideoGenlistItemForTitle = NULL;
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __mp_main_video_index_item_del_cb(void *data,
+ Evas_Object * obj,
+ void *event_info)
+{
+ if (!g_pMainViewWidget) {
+ VideoLogError("g_pMainViewWidget == NUL!!!");
+ return;
+ }
+ g_pMainViewWidget->pVideoGenlistItemForTitle = NULL;
+}
+
+/**
+ *
+ */
+void mp_list_view_update_count_layout()
+{
+ unsigned int nCount = 0;
+ int nViewType = mp_view_as_ctrl_get_type();
+
+ if (g_pMainViewHandle == NULL) {
+ VideoLogError("g_pMainViewHandle == NUL!!!");
+ VideoLogAssert(0);
+
+ return;
+ }
+
+ if (g_pMainViewWidget == NULL) {
+ VideoLogError("g_pMainViewWidget == NUL!!!");
+ VideoLogAssert(0);
+
+ return;
+ }
+
+ if (nViewType == MP_LIST_VIEW_AS_FOLDER_LIST) {
+ nCount = mp_util_svc_get_video_folder_size();
+ } else {
+ nCount = mp_util_svc_get_number_of_video_item_by_type();
+ }
+
+ VideoLogInfo("nViewType : [%d], nCount : [%d]", nViewType, nCount);
+
+ if (nCount == 0) {
+ if (g_pMainViewWidget->pListViewTitlelayout != NULL) {
+ elm_box_unpack(g_pMainViewWidget->pBox,
+ g_pMainViewWidget->pListViewTitlelayout);
+ evas_object_del(g_pMainViewWidget->pListViewTitlelayout);
+ g_pMainViewWidget->pListViewTitlelayout = NULL;
+ }
+ } else {
+ /* genlist - groupindex */
+ if (g_pMainViewWidget->pVideoGenlistItemForTitle != NULL) {
+ elm_object_item_del
+ (g_pMainViewWidget->pVideoGenlistItemForTitle);
+ }
+
+ if (g_pMainViewWidget->pVideoGenlistTitleItc == NULL) {
+ g_pMainViewWidget->pVideoGenlistTitleItc =
+ elm_genlist_item_class_new();
+ g_pMainViewWidget->pVideoGenlistTitleItc->item_style =
+ "groupindex.sub";
+ g_pMainViewWidget->pVideoGenlistTitleItc->func.text_get =
+ __mp_list_view_text_get_video_number_cb;
+ g_pMainViewWidget->pVideoGenlistTitleItc->func.content_get =
+ NULL;
+ g_pMainViewWidget->pVideoGenlistTitleItc->func.del = NULL;
+ }
+
+ if (g_pMainViewWidget->pVideoGenlistTitle == NULL) {
+ g_pMainViewWidget->pVideoGenlistTitle =
+ elm_genlist_add(g_pMainViewWidget->pBox);
+ elm_genlist_mode_set(g_pMainViewWidget->pVideoGenlistTitle,
+ ELM_LIST_COMPRESS);
+ evas_object_show(g_pMainViewWidget->pVideoGenlistTitle);
+ }
+
+ if (g_pMainViewWidget->pListViewTitlelayout == NULL) {
+ Evas_Object *pTTSObject = NULL;
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VIDEO_CUSTOM_THEME);
+
+ /* create layout */
+ g_pMainViewWidget->pListViewTitlelayout =
+ elm_layout_add(g_pMainViewWidget->pBox);
+ evas_object_size_hint_weight_set
+ (g_pMainViewWidget->pListViewTitlelayout, EVAS_HINT_EXPAND,
+ 0);
+ evas_object_size_hint_align_set
+ (g_pMainViewWidget->pListViewTitlelayout, EVAS_HINT_FILL,
+ EVAS_HINT_FILL);
+ elm_layout_file_set(g_pMainViewWidget->pListViewTitlelayout,
+ edj_path, "count_info_groupindex");
+ evas_object_event_callback_add
+ (g_pMainViewWidget->pListViewTitlelayout,
+ EVAS_CALLBACK_DEL, __mp_main_title_layout_del_cb, NULL);
+
+ evas_object_show(g_pMainViewWidget->pListViewTitlelayout);
+
+ pTTSObject =
+ elm_access_object_register
+ (g_pMainViewWidget->pListViewTitlelayout,
+ g_pMainViewWidget->pBox);
+ elm_access_info_cb_set(pTTSObject, ELM_ACCESS_TYPE,
+ __mp_list_view_count_layout_tts_cb,
+ NULL);
+
+ elm_layout_content_set(g_pMainViewWidget->pListViewTitlelayout,
+ "elm.swallow.groupindex",
+ g_pMainViewWidget->pVideoGenlistTitle);
+
+ elm_box_pack_start(g_pMainViewWidget->pBox,
+ g_pMainViewWidget->pListViewTitlelayout);
+ }
+
+ g_pMainViewWidget->pVideoGenlistItemForTitle =
+ elm_genlist_item_append(g_pMainViewWidget->pVideoGenlistTitle,
+ g_pMainViewWidget->pVideoGenlistTitleItc,
+ NULL, NULL, ELM_GENLIST_ITEM_NONE,
+ NULL, NULL);
+ elm_object_item_del_cb_set
+ (g_pMainViewWidget->pVideoGenlistItemForTitle,
+ __mp_main_video_index_item_del_cb);
+ }
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+Evas_Object *mp_list_view_create_base_layout(void *pParent)
+{
+ if (!g_pMainViewWidget) {
+ VideoLogInfo("Main handles of list view are not existed.");
+ return NULL;
+ }
+
+ if (!pParent) {
+ VideoLogInfo("[ERR]");
+ return NULL;
+ }
+
+ VideoLogInfo("");
+
+ if (g_pMainViewWidget->pListViewBaselayout) {
+ evas_object_del(g_pMainViewWidget->pListViewBaselayout);
+ g_pMainViewWidget->pListViewBaselayout = NULL;
+ }
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VIDEO_PLAYER_LISTVIEW_EDJ);
+
+ g_pMainViewWidget->pListViewBaselayout = elm_layout_add(pParent);
+ elm_layout_file_set(g_pMainViewWidget->pListViewBaselayout,
+ edj_path, LISTVIEW_EDJ_GROUP);
+ evas_object_size_hint_weight_set
+ (g_pMainViewWidget->pListViewBaselayout, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(g_pMainViewWidget->pListViewBaselayout,
+ EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+ return g_pMainViewWidget->pListViewBaselayout;
+}
+
+/**
+ *
+ */
+static void __mp_list_personal_view_display(void)
+{
+ if (g_pMainViewHandle == NULL) {
+ VideoLogError("g_pMainViewHandle == NULL!!!");
+ VideoLogAssert(0);
+ return;
+ }
+
+ if (g_pMainViewWidget == NULL) {
+ VideoLogError("g_pMainViewWidget == NULL!!!");
+ VideoLogAssert(0);
+ return;
+ }
+
+ evas_object_show(g_pMainViewWidget->pListViewBaselayout);
+ mp_list_view_check_more_button_of_toolbar();
+ __mp_list_view_update_list(g_pMainViewHandle->nListTabType,
+ LIST_UPDATE_TYPE_ALL);
+}
+
+/**
+ *
+ * @param pNaviFrameHandle
+ */
+void mp_list_view_init_widget(void *pNaviFrameHandle)
+{
+ if (!g_pMainViewHandle || !g_pMainViewWidget || !pNaviFrameHandle) {
+ VideoLogInfo("Main handles of list view are not existed.");
+ return;
+ }
+
+ g_pMainViewHandle->nListTabType = mp_util_get_main_tab_type();
+
+ VideoLogInfo("g_pMainViewHandle->nListTabType : [%d]",
+ g_pMainViewHandle->nListTabType);
+
+ if (g_pMainViewHandle->nListTabType != LIST_TAB_TYPE_PERSONAL
+ && g_pMainViewHandle->nListTabType != LIST_TAB_TYPE_DEVICES) {
+ VideoLogError("ListTabType error : [%d]!!!",
+ g_pMainViewHandle->nListTabType);
+ g_pMainViewHandle->nListTabType = LIST_TAB_TYPE_PERSONAL;
+ mp_util_set_main_tab_type(g_pMainViewHandle->nListTabType);
+ }
+
+ g_pMainViewHandle->pNaviFrameHandle = pNaviFrameHandle;
+
+ if (g_pMainViewWidget->pListViewBaselayout == NULL) {
+ g_pMainViewWidget->pListViewBaselayout =
+ mp_list_view_create_base_layout
+ (g_pMainViewHandle->pNaviFrameHandle);
+ }
+
+ g_pMainViewHandle->pNaviFrameItem =
+ elm_naviframe_item_push(g_pMainViewHandle->pNaviFrameHandle,
+ VIDEOS_TITLE_VIDEO, NULL, NULL,
+ g_pMainViewWidget->pListViewBaselayout,
+ NULL);
+
+ elm_naviframe_item_pop_cb_set(g_pMainViewHandle->pNaviFrameItem,
+ mp_list_view_back_btn_cb,
+ g_pMainViewHandle);
+ elm_naviframe_item_title_enabled_set(g_pMainViewHandle->pNaviFrameItem,
+ EINA_TRUE, EINA_FALSE);
+ evas_object_smart_callback_add(g_pMainViewHandle->pNaviFrameHandle,
+ "transition,finished",
+ mp_list_view_naviframe_transition_effect_cb,
+ NULL);
+
+ __mp_list_view_register_recently_config();
+ mp_util_svc_set_update_db_cb_func((UpdateDatabaseCbFunc)
+ __mp_list_view_db_change_cb);
+ mp_util_hide_indicator();
+
+ g_pMainViewHandle->nListTabType = mp_util_get_main_tab_type();
+
+ if (g_pMainViewHandle->nListTabType == LIST_TAB_TYPE_PERSONAL) {
+ __mp_list_personal_view_display();
+ }
+}
+
+/**
+ *
+ */
+void mp_list_view_init_handles(void)
+{
+ VideoLogInfo("");
+
+ if (g_pMainViewHandle) {
+ free(g_pMainViewHandle);
+ g_pMainViewHandle = NULL;
+ }
+
+ if (g_pMainViewWidget) {
+ free(g_pMainViewWidget);
+ g_pMainViewWidget = NULL;
+ }
+
+ g_pMainViewHandle =
+ (st_VideoListViewMainViewHandle *) calloc(1,
+ sizeof
+ (st_VideoListViewMainViewHandle));
+ g_pMainViewWidget =
+ (st_VideoListViewMainViewWidget *) calloc(1,
+ sizeof
+ (st_VideoListViewMainViewWidget));
+}
+
+
+/*///////////////////////////////////////////////////////////////*/
+/* External APIs*/
+/**
+ *
+ * @param pNaviFrame
+ */
+void mp_list_view_push(void *pNaviFrame)
+{
+ VideoLogInfo("");
+
+ mp_list_view_init_handles();
+ mp_list_view_init_widget(pNaviFrame);
+}
+
+/**
+ *
+ */
+void mp_list_view_destroy(void)
+{
+ if (!g_pMainViewHandle) {
+ VideoLogInfo("Main handles of list view are not existed.");
+ return;
+ }
+#ifdef VS_FEATURE_LIST_VIEW
+ mp_normal_view_destroy();
+#endif
+ mp_folder_view_destroy();
+ mp_thumbnail_view_destroy();
+ VideoLogInfo("");
+
+ mp_util_db_reset_all_update_fun();
+ mp_util_db_reset_all_backup_fun();
+
+ mp_ft_ctrl_destroy();
+ mp_ft_ctrl_delete_center_toolbar();
+
+ mp_list_view_free_main_view_widget();
+ mp_util_svc_unset_update_db_cb_func();
+ mp_util_config_ignore_preview_key_changed_cb();
+
+ if (g_pMainViewHandle) {
+ g_pMainViewHandle->pNaviFrameHandle = NULL;
+ g_pMainViewHandle->pNaviFrameItem = NULL;
+ g_pMainViewHandle->nListTabType = LIST_TAB_TYPE_PERSONAL;
+ MP_DEL_TIMER(g_pMainViewHandle->pDbUpdateTimer);
+
+ free(g_pMainViewHandle);
+ g_pMainViewHandle = NULL;
+ }
+}
+
+/**
+ *
+ * @return
+ */
+static bool __mp_list_view_is_top_view(void)
+{
+
+ if (!g_pMainViewHandle || !g_pMainViewWidget) {
+ VideoLogInfo("Main handles of list view are not existed.");
+ return FALSE;
+ }
+
+ if (!g_pMainViewHandle->pNaviFrameHandle) {
+ VideoLogInfo("[ERR] No exist naviframe handle.");
+ return FALSE;
+ }
+ if (mp_mgr_get_library_naviframe()) {
+ int count =
+ eina_list_count(elm_naviframe_items_get
+ (mp_mgr_get_library_naviframe()));
+ VideoLogInfo("eina_list_count = %d", count);
+ return (count == 1);
+ }
+ return FALSE;
+
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @return
+ */
+static char *__mp_list_view_count_layout_tts_cb(void *data,
+ Evas_Object * obj)
+{
+ Elm_Object_Item *pItem = NULL;
+ const char *pText = NULL;
+
+ if (g_pMainViewHandle == NULL) {
+ VideoLogError("g_pMainViewHandle == NULL!!!");
+ return NULL;
+ }
+
+ if (g_pMainViewWidget == NULL) {
+ VideoLogError("g_pMainViewWidget == NULL!!!");
+ return NULL;
+ }
+
+ if (g_pMainViewWidget->pListViewTitlelayout == NULL) {
+ VideoLogError
+ ("g_pMainViewWidget->pListViewTitlelayout == NULL!!!");
+ return NULL;
+ }
+
+ pItem =
+ elm_genlist_first_item_get(g_pMainViewWidget->pVideoGenlistTitle);
+ pText = elm_object_item_part_text_get(pItem, "elm.text.sub");
+ if (pText != NULL) {
+ VideoLogInfo("pText : [%s]", pText);
+ return g_strdup(pText);
+ } else {
+ VideoLogError("pText == NULL!!!");
+ }
+
+ return NULL;
+}
+
+/* update---------------------------------------------- situation *
+ * 1,When it is folder view or download view, *
+ * only update recently played part; *
+ * 2,When it is normal view or thumbnail view, *
+ * update both recently played part and genlist item. *
+ * Consider different situation for clicking recently played part and genlist item, *
+ * First to get just played url,Get genlist index by this url, *
+ * If url is NULL, get genlist index by related view. */
+
+/**
+ *
+ */
+void mp_list_view_update_widget(void)
+{
+ if (!g_pMainViewHandle || !g_pMainViewWidget) {
+ VideoLogInfo("Main handles of list view are not existed.");
+ return;
+ }
+
+ int nViewType = mp_view_as_ctrl_get_type();
+ int nVideoCount = mp_util_svc_get_number_of_video_item_by_type();
+ if (nViewType == MP_LIST_VIEW_AS_FOLDER_LIST) {
+ nVideoCount = mp_util_svc_get_video_folder_size();
+ }
+
+ if (nVideoCount < 1) {
+ VideoLogWarning("No video item");
+ return;
+ }
+
+ mp_ft_ctrl_hide_more_popup();
+
+ if (g_pMainViewHandle->nListTabType == LIST_TAB_TYPE_PERSONAL) {
+ mp_search_view_update_played_item(-1);
+#ifdef VS_FEATURE_LIST_VIEW
+ if (nViewType == MP_LIST_VIEW_AS_NORMAL_LIST) {
+ int nSelectedVideoItemIndex =
+ mp_normal_view_get_selected_video_item_index();
+ if (MP_LIST_SORT_BY_RECENTLY_ADDED == nSortType) {
+ nSelectedVideoItemIndex = 0;
+ }
+ mp_util_svc_update_thumbnail_info(nSelectedVideoItemIndex);
+ mp_normal_view_update_video_items(nSelectedVideoItemIndex);
+ } else
+#endif
+ if (nViewType == MP_LIST_VIEW_AS_FOLDER_LIST) {
+ VideoLogInfo("MP_LIST_VIEW_AS_FOLDER_LIST");
+ mp_folder_item_view_update_played_item();
+ mp_search_view_update_genlist();
+ } else if (nViewType == MP_LIST_VIEW_AS_THUMBNAIL_LIST) {
+ VideoLogInfo("MP_LIST_VIEW_AS_THUMBNAIL_LIST");
+ mp_thumbnail_view_update_played_item();
+ } else {
+ VideoLogInfo("Don't need to update video item");
+ }
+
+ }
+
+}
+
+/**
+ *
+ */
+void mp_list_view_update_widget_resume(void)
+{
+ if (!g_pMainViewHandle || !g_pMainViewWidget) {
+ VideoLogInfo("Main handles of list view are not existed.");
+ return;
+ }
+
+ __mp_list_view_result_view_update_cb();
+ int nViewType = mp_view_as_ctrl_get_type();
+ mp_search_view_update_played_item(-1);
+ if (nViewType == MP_LIST_VIEW_AS_FOLDER_LIST) {
+ VideoLogInfo("MP_LIST_VIEW_AS_FOLDER_LIST");
+ mp_folder_item_view_update_played_item();
+ mp_search_view_update_genlist();
+ } else if (nViewType == MP_LIST_VIEW_AS_THUMBNAIL_LIST) {
+ VideoLogInfo("MP_LIST_VIEW_AS_THUMBNAIL_LIST");
+ mp_thumbnail_view_update_played_item();
+ } else {
+ VideoLogInfo("Don't need to update video item");
+ }
+}
+
+/**
+ *
+ */
+void mp_list_view_change_language(void)
+{
+ if (!g_pMainViewHandle || !g_pMainViewWidget) {
+ VideoLogInfo("Main handles of list view are not existed.");
+ return;
+ }
+
+ VideoLogInfo("");
+
+ elm_object_item_domain_translatable_part_text_set
+ (g_pMainViewHandle->pNaviFrameItem, "elm.text.title", PACKAGE,
+ VIDEOS_TITLE_VIDEO);
+#ifdef VS_FEATURE_LIST_VIEW
+ mp_normal_view_change_language();
+#endif
+ mp_folder_item_view_change_language();
+ mp_remove_view_change_language();
+ mp_sort_ctrl_change_language();
+ mp_folder_view_change_language();
+ mp_view_ctrl_change_language();
+ mp_search_view_change_language();
+ mp_share_view_change_language();
+ mp_select_view_change_language();
+ mp_view_as_ctrl_change_language();
+ mp_option_ctrl_change_language();
+ mp_list_view_update_count_layout();
+ mp_auto_play_ctrl_change_language();
+}
+
+/**
+ *
+ */
+void mp_list_view_change_color(void)
+{
+ if (!g_pMainViewHandle || !g_pMainViewWidget) {
+ VideoLogError("Main handles of list view are not existed.");
+ return;
+ }
+}
+
+/**
+ *
+ */
+void mp_list_view_destroy_player(void)
+{
+ mp_launch_video_stop();
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#include <app.h>
+#include <glib.h>
+#include <unistd.h>
+#include <stdbool.h>
+#include <Ecore_Evas.h>
+#include <Elementary.h>
+
+#include "vp-util.h"
+#include "vp-file-util.h"
+#include "mp-util.h"
+#ifdef ENABLE_DRM_FEATURE
+#include "mp-drm-ctrl.h"
+#endif
+#include "mp-video-log.h"
+#include "mp-util-media-service.h"
+#include "mp-video-value-define.h"
+#include "mp-video-string-define.h"
+
+#include "mp-footer-toolbar.h"
+#include "mp-video-list-sort-ctrl.h"
+#include "mp-video-view-popup-ctrl.h"
+#include "mp-video-list-view-common.h"
+#include "mp-video-list-view-normal.h"
+#include "mp-video-list-view-as-ctrl.h"
+#include "mp-launching-video-displayer.h"
+#include "mp-video-list-option-ctrl.h"
+#include "mp-video-rename-ctrl.h"
+#include "mp-external-ug.h"
+#include "videos-view-mgr.h"
+#include "mp-video-rename-ctrl.h"
+#include "mp-video-info-ctrl.h"
+#include "mp-video-list-view-main.h"
+#include "mp-video-nocontent-layout.h"
+#include "mp-video-list-personal-ctrl.h"
+#include "mp-video-detail-view.h"
+#include "mp-util-preference.h"
+#include "mp-util-config.h"
+#include "mp-util-widget-ctrl.h"
+
+#ifdef VS_FEATURE_LIST_VIEW
+typedef struct {
+ st_VideoListViewMainViewHandle *pMainHandle;
+ st_VideoListViewMainViewWidget *pMainWidget;
+ UpdateListItemsCbFunc fUpdateListItemUserCb;
+
+ Evas_Object *pVideosGenlist;
+ Evas_Object *pNocontentlayout;
+ Elm_Genlist_Item_Class *pVideoList_Itc;
+
+ Eina_List *pVideoItemList;
+
+ int nSelectedVideoItem;
+ bool bRunLongPress;
+
+} stNormalView;
+
+
+static stNormalView *g_pNormalView = NULL;
+
+/**
+ *
+ */
+void __mp_normal_view_create_no_content()
+{
+ if (!g_pNormalView) {
+ VideoLogError("");
+ return;
+ }
+
+ if (!g_pNormalView->pNocontentlayout) {
+ g_pNormalView->pNocontentlayout =
+ mp_create_nocontent_layout(g_pNormalView->
+ pMainWidget->pListViewBaselayout,
+ VIDEOS_NOCONTENT_MSG_NO_VIDEOS_IDS,
+ VIDEOS_NOCONTENT_MSG_NO_VIDEOS_DESC_IDS);
+ elm_object_part_content_unset(g_pNormalView->
+ pMainWidget->pListViewBaselayout,
+ SWALLOW_LISTVIEW_CONTENT);
+ if (g_pNormalView->pVideosGenlist) {
+ evas_object_hide(g_pNormalView->pVideosGenlist);
+ }
+ evas_object_show(g_pNormalView->pMainWidget->pListViewBaselayout);
+ elm_object_part_content_set(g_pNormalView->
+ pMainWidget->pListViewBaselayout,
+ SWALLOW_LISTVIEW_CONTENT,
+ g_pNormalView->pNocontentlayout);
+ }
+
+}
+
+/**
+ *
+ * @return
+ */
+static bool __mp_normal_view_clear_genlist_item(void)
+{
+ if (!g_pNormalView) {
+ VideoLogError("");
+ return FALSE;
+ }
+ if (g_pNormalView->pVideoItemList) {
+ Elm_Object_Item *pTmpVideoGenlistItem = NULL;
+ EINA_LIST_FREE(g_pNormalView->pVideoItemList, pTmpVideoGenlistItem) {
+ if (pTmpVideoGenlistItem) {
+ int nIndex =
+ (int) elm_object_item_data_get(pTmpVideoGenlistItem);
+ mp_util_svc_cancel_thumbnail_update(nIndex);
+ elm_object_item_del(pTmpVideoGenlistItem);
+ }
+
+ pTmpVideoGenlistItem = NULL;
+ }
+
+ g_pNormalView->pVideoItemList = NULL;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ */
+void mp_normal_view_destroy(void)
+{
+ VideoLogInfo("");
+
+ if (g_pNormalView) {
+ __mp_normal_view_clear_genlist_item();
+
+ MP_DEL_ITC(g_pNormalView->pVideoList_Itc);
+ g_pNormalView->bRunLongPress = FALSE;
+ g_pNormalView->fUpdateListItemUserCb = NULL;
+ g_pNormalView->pMainHandle = NULL;
+ g_pNormalView->pMainWidget = NULL;
+ g_pNormalView->nSelectedVideoItem = -1;
+ MP_DEL_OBJ(g_pNormalView->pNocontentlayout);
+ MP_DEL_OBJ(g_pNormalView->pVideosGenlist);
+ }
+ MP_FREE_STRING(g_pNormalView);
+
+}
+
+/**
+ *
+ * @param eUpdateType
+ */
+static void __mp_normal_view_reset(MpListUpdateType eUpdateType)
+{
+ if (g_pNormalView) {
+ __mp_normal_view_clear_genlist_item();
+
+ MP_DEL_ITC(g_pNormalView->pVideoList_Itc);
+ g_pNormalView->bRunLongPress = FALSE;
+ g_pNormalView->fUpdateListItemUserCb = NULL;
+ g_pNormalView->pMainHandle = NULL;
+ g_pNormalView->pMainWidget = NULL;
+ if (g_pNormalView->pVideosGenlist) {
+ elm_genlist_clear(g_pNormalView->pVideosGenlist);
+ }
+
+ }
+
+}
+
+/**
+ *
+ * @param nVideoItemIndex
+ */
+void mp_normal_view_update_video_items(int nVideoItemIndex)
+{
+ if (!g_pNormalView) {
+ VideoLogError("");
+ return;
+ }
+
+ if (!g_pNormalView->pVideoItemList) {
+ VideoLogWarning
+ ("[WARNING] g_pNormalView->pVideoItemList is not existed.");
+ return;
+ }
+
+ Elm_Object_Item *pTmpVideoGenlistItem =
+ (Elm_Object_Item *) eina_list_nth(g_pNormalView->pVideoItemList,
+ nVideoItemIndex);
+ if (pTmpVideoGenlistItem) {
+ elm_genlist_item_selected_set(pTmpVideoGenlistItem, EINA_FALSE);
+ Evas_Object *pIconContent =
+ elm_object_item_part_content_get(pTmpVideoGenlistItem,
+ "elm.icon.1");
+ if (!pIconContent) {
+ VideoLogError("");
+ return;
+ }
+ Evas_Object *pProgressbar =
+ elm_layout_content_get(pIconContent, "elm.progressbar.icon");
+ if (pProgressbar) {
+ elm_layout_content_unset(pIconContent,
+ "elm.progressbar.icon");
+ MP_DEL_OBJ(pProgressbar);
+ }
+
+ elm_genlist_item_fields_update(pTmpVideoGenlistItem,
+ "elm.text.sub.left.bottom",
+ ELM_GENLIST_ITEM_FIELD_TEXT);
+ }
+}
+
+/**
+ *
+ * @return
+ */
+bool mp_normal_view_is_top_view(void)
+{
+ VideoLogInfo("");
+
+
+ if (!g_pNormalView || !g_pNormalView->pMainHandle) {
+ VideoLogError("g_pNormalView->pMainHandle is NULL");
+ return FALSE;
+ }
+ if (!g_pNormalView->pMainHandle->pNaviFrameHandle) {
+ VideoLogInfo("[ERR] No exist naviframe handle.");
+ return FALSE;
+ }
+ if (mp_mgr_get_library_naviframe()) {
+ int count =
+ eina_list_count(elm_naviframe_items_get
+ (mp_mgr_get_library_naviframe()));
+ return (count == 1);
+ }
+ return FALSE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_normal_view_warning_popup_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ VideoLogInfo("");
+
+ mp_util_delete_popup_handle();
+}
+
+/**
+ *
+ * @return
+ */
+bool mp_normal_view_is_normal_list(void)
+{
+ if (!g_pNormalView || !g_pNormalView->pMainHandle) {
+ VideoLogError("");
+ return FALSE;
+ }
+
+ if (mp_view_as_ctrl_get_type() != MP_LIST_VIEW_AS_NORMAL_LIST) {
+ VideoLogError("Invalid to call realize function.");
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+ /**/
+/*////////////////////////////////////////////////////////////*/
+/*////////////////////////////////////////////////////////////*/
+ /**/
+/**
+ *
+ * @param nError
+ * @param szPath
+ * @param pUserData
+ */
+ void mp_normal_view_thumbnail_update_cb(int nError, const char *szPath,
+ void *pUserData)
+{
+ if (!g_pNormalView) {
+ VideoLogError("");
+ return;
+ }
+
+ if (mp_normal_view_is_normal_list() == FALSE) {
+ VideoLogError("Current list is not for normal video item.");
+ return;
+ }
+
+ int nVideoItemIndex = (int) pUserData;
+
+ VideoLogInfo("Index : %d", nVideoItemIndex);
+
+ if (!g_pNormalView->pMainHandle) {
+ VideoLogError("g_pNormalView->pMainHandle is not existed.");
+ return;
+ }
+
+ if (!g_pNormalView->pMainWidget) {
+ VideoLogError("g_pNormalView->pMainWidget is not existed.");
+ return;
+ }
+
+ if (!mp_normal_view_is_top_view()) {
+ VideoLogError("Main list view is not top view.");
+ return;
+ }
+
+ mp_util_svc_update_thumbnail_info(nVideoItemIndex);
+
+ if (g_pNormalView->pVideoItemList) {
+ Elm_Object_Item *pTmpVideoGenlistItem =
+ (Elm_Object_Item *)
+ eina_list_nth(g_pNormalView->pVideoItemList,
+ nVideoItemIndex);
+ if (pTmpVideoGenlistItem) {
+ elm_genlist_item_fields_update(pTmpVideoGenlistItem,
+ "elm.icon.1",
+ ELM_GENLIST_ITEM_FIELD_CONTENT);
+ } else {
+ VideoLogError
+ ("[ERR] Fail to update genlist filed thumbnail icon.");
+ }
+ } else {
+ VideoLogError("[ERR] No exist g_pNormalView->pVideoItemList.");
+ }
+}
+
+ /**/
+/*////////////////////////////////////////////////////////////*/
+/*////////////////////////////////////////////////////////////*/
+/* Smart callback of Genlist about normal.*/
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_normal_view_genlist_language_changed_cb(void *pUserData,
+ Evas_Object *
+ pObject,
+ void *pEventInfo)
+{
+ if (mp_normal_view_is_normal_list() == FALSE) {
+ VideoLogError("Current list is not for normal video item.");
+ return;
+ }
+
+ VideoLogInfo("");
+
+ elm_genlist_realized_items_update(pObject);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_normal_view_realize_genlist_item_cb(void *pUserData,
+ Evas_Object *
+ pObject,
+ void *pEventInfo)
+{
+ if (!g_pNormalView) {
+ VideoLogError("");
+ return;
+ }
+
+ if (!pEventInfo) {
+ VideoLogError("Invalid pEveninfo.");
+ return;
+ }
+
+ int nIndexGenlist = elm_genlist_item_index_get(pEventInfo);
+
+ if (nIndexGenlist < 0) {
+ VideoLogError("nIndexGenlist < 0 = RETURN");
+ return;
+ }
+
+ if ((nIndexGenlist < 0)
+ || (nIndexGenlist >=
+ mp_util_svc_get_number_of_video_item_by_type())) {
+ VideoLogError("nIndexGenlist < 0 = RETURN = %d", nIndexGenlist);
+ return;
+ }
+
+ char *pThumbIconUri = mp_util_svc_get_video_thumbnail(nIndexGenlist);
+ if (!pThumbIconUri) {
+ VideoLogInfo("nIndexGenlist : %d", nIndexGenlist);
+ mp_util_svc_register_thumbnail_update_func(nIndexGenlist, (void *)
+ mp_normal_view_thumbnail_update_cb,
+ (void *)
+ nIndexGenlist);
+ } else {
+ free(pThumbIconUri);
+ pThumbIconUri = NULL;
+ }
+}
+
+/*////////////////////////////////////////////////////////////*/
+/* Content/Text Callback of Elm_Genlist_Item_Class.*/
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+char *mp_normal_view_get_label_of_video_item_cb(const void *pUserData,
+ Evas_Object * pObject,
+ const char *pPart)
+{
+ int nVideoItemIndex = (int) pUserData;
+
+ if (!strcmp(pPart, "elm.text.main.left.top")) {
+ char *szTitle = mp_util_svc_get_video_title(nVideoItemIndex);
+ char *szTitleUtf8 = elm_entry_utf8_to_markup(szTitle);
+ if (szTitle) {
+ free(szTitle);
+ szTitle = NULL;
+ }
+
+ return szTitleUtf8;
+ } else if (!strcmp(pPart, "elm.text.sub.left.bottom")) {
+ return mp_util_svc_get_duration_str_time(nVideoItemIndex);
+ }
+ return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+Evas_Object *mp_normal_view_get_icon_of_video_item_cb(const void
+ *pUserData,
+ Evas_Object *
+ pObject,
+ const char *pPart)
+{
+ Evas_Object *pLayout = NULL;
+
+ int nVideoItemIndex = (int) pUserData;
+ if (!pPart || !pObject) {
+ return NULL;
+ }
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje", VIDEO_CUSTOM_THEME);
+ free(path);
+ if (!strcmp(pPart, "elm.icon.1")) {
+ VideoLogInfo("pPart: elm.icon.1 - thumbnail");
+
+ char *pThumbIconUri =
+ mp_util_svc_get_video_thumbnail(nVideoItemIndex);
+ Evas_Object *pBg = NULL;
+
+ pLayout = elm_layout_add(pObject);
+ elm_layout_file_set(pLayout, edj_path,
+ "listview.thumbnail.layout");
+
+ if (!pThumbIconUri || !vp_file_exists(pThumbIconUri)) {
+ MP_FREE_STRING(pThumbIconUri);
+ }
+
+ pBg =
+ mp_util_create_preload_image(pLayout, pThumbIconUri,
+ VIDEO_ICON_WIDTH);
+ elm_layout_content_set(pLayout, "elm.thumbnail.icon", pBg);
+
+ if (pBg)
+ evas_object_show(pBg);
+
+ MP_FREE_STRING(pThumbIconUri);
+
+ if (!mp_util_create_video_sub_icon(pLayout, nVideoItemIndex)) {
+ VideoLogWarning("Local File or Create sub icon is failed.",
+ nVideoItemIndex);
+ }
+
+ if (pLayout) {
+ evas_object_show(pLayout);
+ }
+
+ return pLayout;
+ }
+
+ MP_DEL_OBJ(pLayout);
+
+ return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+Evas_Object *mp_normal_view_get_icon_of_no_item_cb(const void *pUserData,
+ Evas_Object * pObject,
+ const char *pPart)
+{
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VIDEO_PLAYER_NO_ITEM_EDJ);
+ free(path);
+ if (!strcmp(pPart, "elm.icon")) {
+ int width = NO_ITEM_GENLIST_WIDTH * elm_config_scale_get();
+ int height = NO_ITEM_GENLIST_HEIGHT * elm_config_scale_get();
+
+ Evas_Object *pNoItemLayout = NULL;
+ pNoItemLayout = elm_layout_add(pObject);
+ elm_layout_file_set(pNoItemLayout, edj_path,
+ GENLIST_NOITEM_EDJ_GROUP);
+ evas_object_size_hint_min_set(pNoItemLayout, width, height);
+
+ elm_object_part_text_set(pNoItemLayout,
+ SWALLOW_LISTVIEW_NO_ITEM_TEXT,
+ VIDEOS_NOCONTENT_MSG_NO_VIDEOS_DESC);
+ evas_object_show(pNoItemLayout);
+ return pNoItemLayout;
+ }
+
+ return NULL;
+}
+
+
+/*////////////////////////////////////////////////////////////*/
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+ static void mp_normal_view_select_video_item_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ if (!pObject) {
+ VideoLogError("[ERR]No have pUserData");
+ return;
+ }
+
+ Elm_Object_Item *pSelectedItem =
+ elm_genlist_selected_item_get(pObject);
+ if (!pSelectedItem) {
+ VideoLogInfo("pSelectedItem is NULL");
+ return;
+ } else {
+ elm_genlist_item_selected_set(pSelectedItem, EINA_FALSE);
+ }
+
+ if (g_pNormalView->bRunLongPress) {
+ VideoLogInfo("run long pressed event");
+ g_pNormalView->bRunLongPress = false;
+
+ return;
+ }
+
+ if (!mp_launch_video_allow_check()) {
+ return;
+ }
+ Evas_Object *pPopup = evas_object_data_get(pObject, "popup"); /* Get popup */
+ if (pPopup) {
+ VideoLogError("long press is called");
+ return; /* If popup exists, do nothing */
+ }
+
+ int nTotal = elm_genlist_items_count(pObject);
+
+ int nVideoItemIndex = (int) elm_object_item_data_get(pSelectedItem);
+
+ if (nVideoItemIndex < 0) {
+ VideoLogError("nGenlistItemIndex is invalid");
+ return;
+ }
+
+ VideoLogInfo("nVideoIndex:ngenIndex : %d:%d", nVideoItemIndex, nTotal);
+
+
+ if (nVideoItemIndex < 0) {
+ VideoLogWarning("nVideoItemIndex < 0 ===>>> RETURN");
+ return;
+ }
+
+ if (!mp_util_call_off()) {
+ mp_util_ticker_toast_popup
+ (VIDEOS_NOTIPOP_MSG_UNABLE_TO_PLAY_VIDEO_DURING_CALL, false,
+ false);
+ return;
+ }
+
+ g_pNormalView->nSelectedVideoItem = nVideoItemIndex;
+
+ char *szMediaUrl = mp_util_svc_get_video_url(nVideoItemIndex);
+
+ if (szMediaUrl) {
+ if (!mp_util_check_local_file_exist(szMediaUrl)) {
+ mp_util_notify_popup(NULL, VIDEOS_COMMON_HEADER_ERROR,
+ VIDEOS_NOTIPOP_MSG_FILE_NOT_EXIST,
+ __mp_normal_view_warning_popup_cb);
+ free(szMediaUrl);
+ return;
+ }
+ mp_launch_video_play(szMediaUrl, MP_PLAYER_TYPE_VIDEO, NULL);
+ } else {
+ VideoLogInfo("[Err] Fail to get video uri from media service.");
+ return;
+ }
+
+ if (szMediaUrl) {
+ free(szMediaUrl);
+ }
+}
+
+ /**/
+/*////////////////////////////////////////////////////////////*/
+/*////////////////////////////////////////////////////////////*/
+/* Append item into genlist.*/
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __mp_normal_view_video_item_del_cb(void *data,
+ Evas_Object * obj,
+ void *event_info)
+{
+ if (!g_pNormalView) {
+ VideoLogError("");
+ return;
+ }
+
+ if (!g_pNormalView->pVideoItemList || !event_info) {
+ VideoLogError("g_pMainViewWidge is NULL");
+ return;
+ }
+
+ int nIndexGenlist = 0;
+ Elm_Object_Item *pCurrentItem = (Elm_Object_Item *) event_info;
+
+ Eina_List *pCurList = NULL;
+ Elm_Object_Item *pTmpVideoItem = NULL;
+ EINA_LIST_FOREACH(g_pNormalView->pVideoItemList, pCurList,
+ pTmpVideoItem) {
+ if (pCurrentItem == pTmpVideoItem) {
+ mp_util_svc_cancel_thumbnail_update(nIndexGenlist);
+ VideoLogInfo("testestesteste=%p", pCurrentItem);
+ pTmpVideoItem = NULL;
+ pCurList->data = NULL;
+ break;
+ }
+ nIndexGenlist++;
+ }
+}
+
+/**
+ *
+ * @param pVideosGenlist
+ */
+void mp_normal_view_append_video_items(void *pVideosGenlist)
+{
+ VideoLogInfo("");
+ if (!g_pNormalView) {
+ VideoLogError("");
+ return;
+ }
+
+ int nIndex = 0;
+ int nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+ Elm_Object_Item *pTmpVideoGenlistItem = NULL;
+
+ MP_DEL_ITC(g_pNormalView->pVideoList_Itc);
+ g_pNormalView->pVideoList_Itc = elm_genlist_item_class_new();
+ g_pNormalView->pVideoList_Itc->item_style = "2line.top";
+ g_pNormalView->pVideoList_Itc->func.text_get =
+ (void *) mp_normal_view_get_label_of_video_item_cb;
+ g_pNormalView->pVideoList_Itc->func.content_get =
+ (void *) mp_normal_view_get_icon_of_video_item_cb;
+ g_pNormalView->pVideoList_Itc->func.state_get = NULL;
+ g_pNormalView->pVideoList_Itc->func.del = NULL;
+ g_pNormalView->pVideoList_Itc->decorate_item_style = NULL;
+
+ for (nIndex = 0; nIndex < nVideoListSize; nIndex++) {
+ pTmpVideoGenlistItem =
+ elm_genlist_item_append(pVideosGenlist,
+ g_pNormalView->pVideoList_Itc,
+ (void *) nIndex, NULL,
+ ELM_GENLIST_ITEM_NONE,
+ mp_normal_view_select_video_item_cb,
+ NULL);
+ g_pNormalView->pVideoItemList =
+ eina_list_append(g_pNormalView->pVideoItemList,
+ pTmpVideoGenlistItem);
+ elm_object_item_data_set(pTmpVideoGenlistItem, (void *) nIndex);
+ elm_object_item_del_cb_set(pTmpVideoGenlistItem,
+ __mp_normal_view_video_item_del_cb);
+ }
+}
+
+#ifdef ENABLE_LONGPRESS
+static void __mp_normal_view_share_via_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ mp_option_ctrl_delete_handle();
+
+ if (!g_pNormalView->pMainHandle) {
+ VideoLogInfo
+ ("g_pNormalView->pMainHandle of list view are not existed.");
+ return;
+ }
+ VideoLogInfo("");
+
+ int videoItemIndex = (int) pUserData;
+ char *pVideo_url = mp_util_svc_get_video_url(videoItemIndex);
+#ifdef ENABLE_DRM_FEATURE
+ bool bDRMLock = FALSE;
+ mp_util_check_drm_lock((const char *) pVideo_url, &bDRMLock);
+ if (bDRMLock) {
+ MP_FREE_STRING(pVideo_url);
+ mp_util_notify_popup(NULL, VIDEOS_COMMON_HEADER_ERROR,
+ VIDEOS_NOTIPOP_MSG_UNABLE_TO_SHARE_DRM_FILE,
+ __mp_normal_view_warning_popup_cb);
+ return;
+ }
+#endif
+ if (g_pNormalView->pMainHandle) {
+ mp_external_service_share_panel(pVideo_url); /*, g_pNormalView->pMainHandle->pNaviFrameHandle); */
+ }
+ MP_FREE_STRING(pVideo_url);
+}
+
+static void __mp_normal_view_add_to_home_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ mp_option_ctrl_delete_handle();
+
+ if (!g_pNormalView->pMainHandle) {
+ VideoLogError
+ ("g_pNormalView->pMainHandle of list view are not existed.");
+ return;
+ }
+
+ int nVideoItemIndex = (int) pUserData;
+
+ VideoLogInfo("nVideoItemIndex : %d", nVideoItemIndex);
+
+
+ char *pVideo_id = mp_util_svc_get_video_id_by_index(nVideoItemIndex);
+ char *pVideo_thumbnail =
+ mp_util_svc_get_video_thumbnail(nVideoItemIndex);
+
+ if (pVideo_id) {
+ {
+ mp_util_status_bar_noti_popup_show(MP_COM_OPT_UNABLE_ADDED);
+ }
+ } else {
+ VideoLogError("[ERR] No exist file uri.");
+ }
+ MP_FREE_STRING(pVideo_id);
+ MP_FREE_STRING(pVideo_thumbnail);
+
+ /*to do share */
+}
+#endif
+
+/**
+ *
+ */
+void mp_normal_view_result_user_cb(void)
+{
+ VideoLogInfo("");
+ if (!g_pNormalView) {
+ VideoLogError("");
+ return;
+ }
+ if (g_pNormalView->fUpdateListItemUserCb) {
+ g_pNormalView->fUpdateListItemUserCb(LIST_UPDATE_TYPE_ALL);
+ }
+}
+
+#ifdef ENABLE_LONGPRESS
+static void mp_normal_view_detail_video_popup_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ mp_util_delete_popup_handle();
+}
+
+static void mp_normal_view_detail_mouse_back_popup_cb(void *pUserData,
+ Evas * pEvas,
+ Evas_Object *
+ pObject,
+ void *pEventInfo)
+{
+ Evas_Event_Mouse_Up *pEvent = pEventInfo;
+ if (!pEvent) {
+ return;
+ }
+
+ if (pEvent->button == 3) {
+ mp_util_delete_popup_handle();
+ }
+}
+#endif
+
+/**
+ *
+ * @param pUserData
+ * @param pEvas
+ * @param pObject
+ * @param pEventInfo
+ */
+void mp_normal_view_detail_key_back_popup_cb(void *pUserData,
+ Evas * pEvas,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ Evas_Event_Key_Down *pEvent = pEventInfo;
+ if (!pEvent) {
+ return;
+ }
+
+ if (!g_strcmp0(pEvent->keyname, "XF86Back")) {
+ mp_util_delete_popup_handle();
+ }
+}
+
+#ifdef ENABLE_LONGPRESS
+static void __mp_normal_view_delete_video_items(int nVideoItemIndex)
+{
+ if (!g_pNormalView->pVideoItemList || !g_pNormalView->pMainHandle) {
+ VideoLogWarning
+ ("[WARNING] g_pNormalView->pVideoItemList is not existed.");
+ return;
+ }
+
+ Elm_Object_Item *pTmpVideoGenlistItem =
+ (Elm_Object_Item *) eina_list_nth(g_pNormalView->pVideoItemList,
+ nVideoItemIndex);
+ if (!pTmpVideoGenlistItem) {
+ VideoLogWarning
+ ("[WARNING] g_pNormalView->pVideoItemList is not existed.");
+ return;
+ }
+
+
+ Elm_Object_Item *pNextGenlistItem = NULL;
+ Elm_Object_Item *pCurrGenlistItem =
+ elm_genlist_item_next_get(pTmpVideoGenlistItem);
+
+ g_pNormalView->pVideoItemList =
+ eina_list_remove(g_pNormalView->pVideoItemList,
+ pTmpVideoGenlistItem);
+ elm_object_item_del(pTmpVideoGenlistItem);
+
+ if (!pCurrGenlistItem) {
+ return;
+ }
+
+ while (pCurrGenlistItem) {
+ pNextGenlistItem = elm_genlist_item_next_get(pCurrGenlistItem);
+ g_pNormalView->pVideoItemList =
+ eina_list_remove(g_pNormalView->pVideoItemList,
+ pCurrGenlistItem);
+ elm_object_item_del(pCurrGenlistItem);
+ pCurrGenlistItem = pNextGenlistItem;
+ }
+
+ int nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+ int nIndex = nVideoItemIndex;
+ for (nIndex = nVideoItemIndex; nIndex < nVideoListSize; nIndex++) {
+ pTmpVideoGenlistItem =
+ elm_genlist_item_append(g_pNormalView->pVideosGenlist,
+ g_pNormalView->pVideoList_Itc,
+ (void *) nIndex, NULL,
+ ELM_GENLIST_ITEM_NONE,
+ mp_normal_view_select_video_item_cb,
+ NULL);
+ g_pNormalView->pVideoItemList =
+ eina_list_append(g_pNormalView->pVideoItemList,
+ pTmpVideoGenlistItem);
+ elm_object_item_del_cb_set(pTmpVideoGenlistItem,
+ __mp_normal_view_video_item_del_cb);
+ }
+
+ if (nVideoListSize == 0) {
+ if (g_pNormalView->fUpdateListItemUserCb) {
+ g_pNormalView->fUpdateListItemUserCb(LIST_UPDATE_TYPE_VIEW);
+ }
+ }
+
+
+}
+
+
+static void mp_normal_view_respones_delete_popup_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ mp_util_delete_popup_handle();
+
+ int nVideoItemIndex = (int) pUserData;
+
+ VideoLogInfo("nVideoItemIndex : %d", nVideoItemIndex);
+
+ if (nVideoItemIndex < 0
+ || nVideoItemIndex >=
+ mp_util_svc_get_video_list_size_for_checking_index()) {
+ VideoLogError("[ERR] list item index.");
+ return;
+ }
+
+ char *szFileUrl = mp_util_svc_get_video_url(nVideoItemIndex);
+ if (szFileUrl) {
+
+ char *szMediaUrlForPreview = mp_util_config_get_preview();
+ if (szMediaUrlForPreview) {
+ if (!g_strcmp0(szMediaUrlForPreview, szFileUrl)) {
+ VideoLogInfo("Erase preview url.");
+ mp_util_config_set_preview(NULL);
+ }
+ }
+ MP_FREE_STRING(szMediaUrlForPreview);
+ VideoSecureLogInfo("Delete file url : %s", szFileUrl);
+
+ vp_file_unlink(szFileUrl);
+ free(szFileUrl);
+ szFileUrl = NULL;
+ mp_util_svc_remove_item_by_list_index(nVideoItemIndex);
+
+ __mp_normal_view_delete_video_items(nVideoItemIndex);
+
+ mp_list_view_update_count_layout();
+ int nCount = mp_util_svc_get_number_of_video_item_by_type();
+ if (nCount < 1) {
+ __mp_normal_view_create_no_content();
+ }
+ }
+}
+
+static void __mp_normal_view_delete_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ mp_option_ctrl_delete_handle();
+
+ if (!g_pNormalView->pMainHandle) {
+ VideoLogError
+ ("g_pNormalView->pMainHandle of list view are not existed.");
+ return;
+ }
+
+ int nVideoItemIndex = (int) pUserData;
+ MpListViewAsType type = MP_LIST_VIEW_AS_NORMAL_LIST;
+ mp_util_remove_question_popup(nVideoItemIndex, type,
+ mp_normal_view_respones_delete_popup_cb,
+ mp_normal_view_detail_video_popup_cb,
+ mp_normal_view_detail_mouse_back_popup_cb,
+ mp_normal_view_detail_mouse_back_popup_cb);
+
+}
+
+static void __mp_normal_view_result_pop_up()
+{
+ if (!g_pNormalView) {
+ VideoLogError("");
+ return;
+ }
+
+ if (!g_pNormalView->pMainHandle) {
+ VideoLogError("Invalid list and object");
+ return;
+ }
+ evas_object_data_set(g_pNormalView->pVideosGenlist, "popup", NULL);
+ elm_object_scroll_freeze_pop(g_pNormalView->pVideosGenlist);
+}
+
+ /**/
+/*////////////////////////////////////////////////////////////*/
+static void __mp_normal_view_long_pressed_item_cb(void *data,
+ Evas_Object * obj,
+ void *event_info)
+{
+ if (!g_pNormalView || !event_info || !obj) {
+ VideoLogError("Invalid list and object");
+ return;
+ }
+ g_pNormalView->bRunLongPress = true;
+
+ Elm_Object_Item *long_item = (Elm_Object_Item *) event_info;
+ int nVideoItemIndex = elm_genlist_item_index_get(long_item);
+ if (nVideoItemIndex < 0) {
+ VideoLogError("nGenlistItemIndex is invalid");
+ return;
+ }
+
+ if (nVideoItemIndex < 0
+ || nVideoItemIndex >=
+ mp_util_svc_get_video_list_size_for_checking_index()) {
+ VideoSecureLogError("nVideoItemIndex is invalid");
+ return;
+ }
+
+ st_RegisteOptionCbFunc *pRegisteCbFunc =
+ (st_RegisteOptionCbFunc *) calloc(1,
+ sizeof(st_RegisteOptionCbFunc));
+ if (pRegisteCbFunc) {
+ pRegisteCbFunc->ShareViaItemCb =
+ (void *) __mp_normal_view_share_via_cb;
+ pRegisteCbFunc->AddToHomeItemCb =
+ (void *) __mp_normal_view_add_to_home_cb;
+ pRegisteCbFunc->DeleteItemCb = (void *) __mp_normal_view_delete_cb;
+ }
+
+ VideoLogDebug("nVideoItemIndex=:%d", nVideoItemIndex);
+
+ char *szTitle = mp_util_svc_get_video_title(nVideoItemIndex);
+ mp_option_ctrl_show(g_pNormalView->pMainHandle->pNaviFrameHandle,
+ (const char *) szTitle, nVideoItemIndex,
+ pRegisteCbFunc, __mp_normal_view_result_pop_up,
+ NULL, 0);
+ if (mp_option_ctrl_get_handle()) {
+ evas_object_data_set(g_pNormalView->pVideosGenlist, "popup",
+ mp_option_ctrl_get_handle());
+ elm_object_scroll_freeze_push(g_pNormalView->pVideosGenlist);
+ }
+
+ MP_FREE_STRING(pRegisteCbFunc);
+ MP_FREE_STRING(szTitle);
+}
+#endif
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __mp_normal_view_pressed_item_cb(void *data,
+ Evas_Object * obj,
+ void *event_info)
+{
+ if (!g_pNormalView) {
+ VideoLogError("Invalid list");
+ return;
+ }
+ VideoLogInfo("");
+ g_pNormalView->bRunLongPress = false;
+}
+
+/**
+ *
+ * @param pVideosGenlist
+ */
+static void __mp_normal_view_del_genlist_cb(Evas_Object * pVideosGenlist)
+{
+ if (!pVideosGenlist) {
+ VideoSecureLogError("pVideosGenlist is NULL");
+ return;
+ }
+ evas_object_smart_callback_del(pVideosGenlist, "language,changed",
+ __mp_normal_view_genlist_language_changed_cb);
+ evas_object_smart_callback_del(pVideosGenlist, "realized",
+ __mp_normal_view_realize_genlist_item_cb);
+#ifdef ENABLE_LONGPRESS
+ evas_object_smart_callback_del(pVideosGenlist, "longpressed",
+ __mp_normal_view_long_pressed_item_cb);
+#endif
+ evas_object_smart_callback_del(pVideosGenlist, "pressed",
+ __mp_normal_view_pressed_item_cb);
+}
+
+/**
+ *
+ * @param pVideosGenlist
+ */
+static void __mp_normal_view_add_genlist_cb(Evas_Object * pVideosGenlist)
+{
+ if (!pVideosGenlist) {
+ VideoSecureLogError("pVideosGenlist is NULL");
+ return;
+ }
+
+ evas_object_smart_callback_add(pVideosGenlist, "language,changed",
+ __mp_normal_view_genlist_language_changed_cb,
+ NULL);
+ evas_object_smart_callback_add(pVideosGenlist, "realized",
+ __mp_normal_view_realize_genlist_item_cb,
+ NULL);
+#ifdef ENABLE_LONGPRESS
+ evas_object_smart_callback_add(pVideosGenlist, "longpressed",
+ __mp_normal_view_long_pressed_item_cb,
+ NULL);
+#endif
+ evas_object_smart_callback_add(pVideosGenlist, "pressed",
+ __mp_normal_view_pressed_item_cb, NULL);
+
+}
+
+/*//////////////////////////////////////////////////*/
+/* External APIs*/
+/**
+ *
+ * @param pMainViewHandle
+ * @param pMainViewWidget
+ * @param eUpdateType
+ * @param pUpdateVideoListUserCb
+ * @return
+ */
+bool mp_normal_view_arrange_list_item(void *pMainViewHandle,
+ void *pMainViewWidget,
+ MpListUpdateType eUpdateType,
+ UpdateListItemsCbFunc
+ pUpdateVideoListUserCb)
+{
+ if (!pMainViewHandle || !pMainViewWidget || !pUpdateVideoListUserCb) {
+ VideoLogError
+ ("pMainViewHandle or pMainViewHandle or pUpdateVideoListUserCb are not existed.");
+ return FALSE;
+ }
+
+ if (eUpdateType == LIST_UPDATE_TYPE_NONE) {
+ VideoLogInfo("don't need to update and create");
+ return TRUE;
+ }
+
+ __mp_normal_view_reset(eUpdateType);
+
+ if (!g_pNormalView) {
+ g_pNormalView = (stNormalView *) calloc(1, sizeof(stNormalView));
+ }
+
+ g_pNormalView->pMainHandle = pMainViewHandle;
+ g_pNormalView->pMainWidget = pMainViewWidget;
+ g_pNormalView->fUpdateListItemUserCb = pUpdateVideoListUserCb;
+
+ int nVideoListSize = 0;
+
+ if (eUpdateType == LIST_UPDATE_TYPE_ALL
+ || eUpdateType == LIST_UPDATE_TYPE_DATA) {
+ mp_util_svc_destory_video_list();
+ mp_util_svc_extract_video_list_by_item_type
+ (mp_sort_ctrl_get_sort_state(), mp_view_ctrl_get_list_type());
+ }
+
+ nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+ VideoLogInfo("nVideoListSize : %d", nVideoListSize);
+
+ mp_list_view_update_count_layout();
+
+ if (nVideoListSize > 0) {
+ if (g_pNormalView->pNocontentlayout) {
+ elm_object_part_content_unset(g_pNormalView->pNocontentlayout,
+ SWALLOW_LISTVIEW_CONTENT);
+ MP_DEL_OBJ(g_pNormalView->pNocontentlayout);
+ }
+ if (!g_pNormalView->pVideosGenlist) {
+ g_pNormalView->pVideosGenlist =
+ elm_genlist_add(g_pNormalView->
+ pMainWidget->pListViewBaselayout);
+ elm_scroller_bounce_set(g_pNormalView->pVideosGenlist,
+ EINA_FALSE, EINA_TRUE);
+ evas_object_size_hint_weight_set(g_pNormalView->pVideosGenlist,
+ EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(g_pNormalView->pVideosGenlist,
+ EVAS_HINT_FILL,
+ EVAS_HINT_FILL);
+ elm_genlist_mode_set(g_pNormalView->pVideosGenlist,
+ ELM_LIST_COMPRESS);
+ elm_genlist_homogeneous_set(g_pNormalView->pVideosGenlist,
+ EINA_TRUE);
+
+ elm_genlist_block_count_set(g_pNormalView->pVideosGenlist,
+ VIDEO_MAIN_LIST_BLOCK_COUNT);
+ elm_scroller_single_direction_set
+ (g_pNormalView->pVideosGenlist,
+ ELM_SCROLLER_SINGLE_DIRECTION_HARD);
+ evas_object_show(g_pNormalView->
+ pMainWidget->pListViewBaselayout);
+ __mp_normal_view_del_genlist_cb(g_pNormalView->pVideosGenlist);
+ __mp_normal_view_add_genlist_cb(g_pNormalView->pVideosGenlist);
+ }
+ elm_object_part_content_set(g_pNormalView->
+ pMainWidget->pListViewBaselayout,
+ SWALLOW_LISTVIEW_CONTENT,
+ g_pNormalView->pVideosGenlist);
+
+ mp_normal_view_append_video_items(g_pNormalView->pVideosGenlist);
+
+ evas_object_show(g_pNormalView->pVideosGenlist);
+ } else {
+ __mp_normal_view_create_no_content();
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @return
+ */
+int mp_normal_view_get_selected_video_item_index(void)
+{
+
+ return g_pNormalView->nSelectedVideoItem;
+}
+
+/**
+ *
+ */
+void mp_normal_view_change_language(void)
+{
+ if (!mp_normal_view_is_top_view()) {
+ VideoLogError("Main list view is not top view.");
+ return;
+ }
+
+ VideoLogInfo("");
+}
+
+/**
+ *
+ */
+void mp_normal_view_update_video_list(void)
+{
+ if (!g_pNormalView || !g_pNormalView->pVideosGenlist) {
+ VideoLogWarning
+ ("[ERR] pVideosGenlist or g_pMainViewWidget are NULL.");
+ return;
+ }
+
+ VideoLogInfo("");
+
+ Elm_Object_Item *pNextGenlistItem = NULL;
+ Elm_Object_Item *pCurrGenlistItem =
+ elm_genlist_first_item_get(g_pNormalView->pVideosGenlist);
+
+ while (pCurrGenlistItem) {
+ elm_genlist_item_update(pCurrGenlistItem);
+ pNextGenlistItem = elm_genlist_item_next_get(pCurrGenlistItem);
+ pCurrGenlistItem = pNextGenlistItem;
+ }
+}
+#endif
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <Eina.h>
+#include <Ecore_Evas.h>
+#include <Elementary.h>
+#include <glib.h>
+
+#include "mp-util.h"
+#include "mp-video-log.h"
+#include "mp-external-ug.h"
+#include "mp-video-string-define.h"
+#include "mp-video-value-define.h"
+#include "mp-util-media-service.h"
+#include "mp-video-list-view-select.h"
+#include "mp-video-list-sort-ctrl.h"
+#include "mp-video-view-popup-ctrl.h"
+#include "mp-video-list-view-as-ctrl.h"
+#include "mp-util-widget-ctrl.h"
+#include "mp-video-util-db-controller.h"
+#include "mp-video-rename-ctrl.h"
+#include "mp-video-detail-view.h"
+#include "vp-file-util.h"
+#include "mp-rotate-ctrl.h"
+#include "videos-view-mgr.h"
+
+typedef struct {
+ void *pNaviFrameHandle;
+ void *pNaviFrameItem;
+ void *pPreNaviItem;
+ void *pGenlist;
+ Elm_Genlist_Item_Class *pGenListItc;
+ Elm_Genlist_Item_Class *pGenListLandscapeItc;
+ Elm_Gengrid_Item_Class *pGenGridItc_1;
+ Elm_Gengrid_Item_Class *pGenGridItc_2;
+ MpMediaSvcSortType nSortType;
+ MpDbUpdateViewLev euLev;
+ ChangeSelectViewCbFunc pChangeViewUserCbFunc;
+ char *pFolderUrl;
+ MpVideoListTabType eTabType;
+ SelectType eSelType;
+ int nViewType;
+ bool bRename;
+#ifdef VS_FEATURE_THUMBNAIL_VIEW //
+ bool bLandscape;
+#endif
+} st_SelectViewHandle;
+
+typedef struct {
+ Evas_Object *pBox;
+ Evas_Object *pBaselayout;
+} st_SelectViewWidget;
+
+static st_SelectViewHandle *g_pSelectHandle = NULL;
+static st_SelectViewWidget *g_pSelectWidget = NULL;
+
+static Evas_Object *g_pRenameLayout = NULL;
+
+// Pre define function
+int mp_select_view_get_sort_type(void);
+bool mp_select_view_arrange_video_list(void *pGenlist, bool bNeedSvc);
+void mp_select_view_naviframe_transition_effect_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo);
+static void __mp_select_view_base_layout_del_cb(void *pUserData, Evas * e,
+ Evas_Object * pObject,
+ void *pEventInfo);
+
+/**
+ *
+ */
+void mp_select_view_destroy(void)
+{
+ VideoLogInfo("");
+
+ if (g_pSelectHandle) {
+ evas_object_smart_callback_del(g_pSelectHandle->pNaviFrameHandle,
+ "transition,finished",
+ mp_select_view_naviframe_transition_effect_cb);
+
+ MP_DEL_OBJ(g_pSelectHandle->pGenlist);
+ MP_DEL_ITC(g_pSelectHandle->pGenListItc);
+ MP_FREE_STRING(g_pSelectHandle->pFolderUrl);
+ MP_FREE_STRING(g_pSelectHandle);
+ }
+
+ if (g_pSelectWidget) {
+ MP_DEL_OBJ(g_pSelectWidget->pBox);
+
+ if (g_pSelectWidget->pBaselayout != NULL) {
+ evas_object_event_callback_del(g_pSelectWidget->pBaselayout,
+ EVAS_CALLBACK_DEL,
+ __mp_select_view_base_layout_del_cb);
+ MP_DEL_OBJ(g_pSelectWidget->pBaselayout);
+ }
+ MP_FREE_STRING(g_pSelectWidget);
+ }
+}
+
+/**
+ *
+ */
+static void __mp_select_view_reset(void)
+{
+ VideoLogInfo("");
+
+ if (g_pSelectHandle) {
+ MP_FREE_STRING(g_pSelectHandle->pFolderUrl);
+ mp_util_db_set_update_fun(g_pSelectHandle->euLev, NULL);
+ mp_util_db_set_backup_fun(g_pSelectHandle->euLev, NULL);
+ evas_object_smart_callback_del(g_pSelectHandle->pNaviFrameHandle,
+ "transition,finished",
+ mp_select_view_naviframe_transition_effect_cb);
+ g_pSelectHandle->pGenlist = NULL;
+ MP_FREE_STRING(g_pSelectHandle);
+ }
+
+ if (g_pSelectWidget) {
+
+ g_pSelectWidget->pBox = NULL;
+ g_pSelectWidget->pBaselayout = NULL;
+
+ MP_FREE_STRING(g_pSelectWidget);
+ }
+}
+
+/**
+ *
+ */
+void mp_select_view_reset_value(void)
+{
+ VideoLogInfo("");
+
+ if (!g_pSelectHandle) {
+ VideoLogError("[ERR] g_pSelectHandle is not existed.");
+ return;
+ }
+
+ g_pSelectHandle->pNaviFrameHandle = NULL;
+ g_pSelectHandle->pNaviFrameItem = NULL;
+ g_pSelectHandle->pChangeViewUserCbFunc = NULL;
+ g_pSelectHandle->nSortType = MP_MEDIA_SORT_BY_RECENTLY_VIEWED;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param obj
+ * @param event_info
+ */
+static void __mp_select_view_trans_finished_cb(void *pUserData,
+ Evas_Object * obj,
+ void *event_info)
+{
+ if (!obj) {
+ VideoLogError("[ERR] g_pSelectHandle is NULL.");
+ return;
+ }
+
+ mp_widget_ctrl_enable_navi_handle_focus(obj);
+
+ evas_object_smart_callback_del(obj, "transition,finished",
+ __mp_select_view_trans_finished_cb);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pItem
+ * @return
+ */
+static Eina_Bool mp_select_view_back_btn_cb(void *pUserData,
+ Elm_Object_Item * pItem)
+{
+ if (!g_pSelectHandle) {
+ VideoLogInfo("[ERR] g_pSelectHandle is NULL.");
+ return EINA_TRUE;
+ }
+ // Register transition finished callback.
+ mp_widget_ctrl_disable_navi_handle_focus_except_item(g_pSelectHandle->
+ pNaviFrameHandle,
+ g_pSelectHandle->
+ pNaviFrameItem);
+ evas_object_smart_callback_add(g_pSelectHandle->pNaviFrameHandle,
+ "transition,finished",
+ __mp_select_view_trans_finished_cb,
+ NULL);
+
+ mp_select_view_pop();
+
+ return EINA_TRUE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+void mp_select_view_naviframe_transition_effect_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ if (!g_pSelectHandle) {
+ VideoLogError("[ERR] No exist g_pSelectHandle.");
+ return;
+ }
+
+ VideoLogInfo("");
+
+ Evas_Object *pTmpContents = NULL;
+ Elm_Object_Item *pTmpItem = NULL;
+
+ if (!g_pSelectHandle->pNaviFrameHandle) {
+ VideoLogInfo("[ERR] No exist naviframe handle.");
+ return;
+ }
+
+ pTmpItem =
+ elm_naviframe_top_item_get(g_pSelectHandle->pNaviFrameHandle);
+ pTmpContents = elm_object_item_content_get(pTmpItem);
+
+ if (g_pRenameLayout) {
+ mp_rename_ctrl_set_focus();
+ }
+
+ if (pTmpContents) {
+ if (pTmpContents == g_pSelectWidget->pBox) {
+ } else {
+ VideoLogInfo
+ ("It's not pListShareViaViewTabbarLayout in top screen.");
+ }
+ } else {
+ VideoLogError("[ERR] No exist naviframe top item.");
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+static char *__mp_select_view_get_label_of_folder_cb(const void *pUserData,
+ Evas_Object * pObject,
+ const char *pPart)
+{
+
+ int nFolderItemIndex = (int) pUserData;
+
+ if (!g_strcmp0(pPart, "elm.text.main.left.top")) {
+ char *szTitle = NULL;
+ szTitle = mp_util_svc_get_video_folder_name(nFolderItemIndex);
+
+ char *szTitleUtf8 = elm_entry_utf8_to_markup(szTitle);
+
+ MP_FREE_STRING(szTitle);
+ return szTitleUtf8;
+ } else if (!g_strcmp0(pPart, "elm.text.sub.left.bottom")) {
+ char *szFolderPath = NULL;
+ szFolderPath = mp_util_svc_get_video_folder_url(nFolderItemIndex);
+ char *pDes_path = mp_util_get_dir_by_path(szFolderPath);
+ MP_FREE_STRING(szFolderPath);
+ char *szFolderUtf8 = elm_entry_utf8_to_markup(pDes_path);
+ MP_FREE_STRING(pDes_path);
+ return szFolderUtf8;
+
+ }
+
+ return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+static Evas_Object *__mp_select_view_get_icon_of_folder_cb(const void
+ *pUserData,
+ Evas_Object *
+ pObject,
+ const char
+ *pPart)
+{
+ int nFolderItemIndex = (int) pUserData;
+ VideoLogInfo("Index : %d", nFolderItemIndex);
+
+ if (!g_strcmp0(pPart, "elm.icon.1")) {
+ VideoLogInfo("pPart: elm.icon.1 - thumbnail");
+
+ Evas_Object *pLayout = NULL;
+ Evas_Object *pBg = NULL;
+ char *pThumbIconUri =
+ mp_util_get_folder_thumbnail(nFolderItemIndex,
+ mp_sort_ctrl_get_sort_state());
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VIDEO_CUSTOM_THEME);
+ free(path);
+ pLayout = elm_layout_add(pObject);
+ elm_layout_file_set(pLayout, edj_path,
+ "listview.thumbnail.layout");
+
+ if (!pThumbIconUri || !vp_file_exists(pThumbIconUri)) {
+ MP_FREE_STRING(pThumbIconUri);
+ }
+
+ pBg =
+ mp_util_create_preload_image(pLayout, pThumbIconUri,
+ VIDEO_ICON_WIDTH);
+ elm_layout_content_set(pLayout, "elm.thumbnail.icon", pBg);
+ if (pBg)
+ evas_object_show(pBg);
+
+ if (!mp_util_create_folder_sub_icon(pLayout, nFolderItemIndex)) {
+ VideoLogWarning
+ ("Create sub icon is failed. nFolderItemIndex: %d",
+ nFolderItemIndex);
+ }
+
+ MP_FREE_STRING(pThumbIconUri);
+
+ evas_object_show(pLayout);
+
+ return pLayout;
+ }
+
+ return NULL;
+}
+
+/**
+ *
+ * @return
+ */
+int mp_select_view_get_sort_type(void)
+{
+
+ switch (mp_sort_ctrl_get_sort_state()) {
+ case MP_LIST_SORT_BY_RECENTLY_ADDED:
+ g_pSelectHandle->nSortType = MP_MEDIA_SORT_BY_RECENTLY_ADDED;
+ break;
+
+ case MP_LIST_SORT_BY_NAME:
+ g_pSelectHandle->nSortType = MP_MEDIA_SORT_BY_NAME;
+ break;
+ }
+
+ return g_pSelectHandle->nSortType;
+}
+
+#ifdef VS_FEATURE_LIST_VIEW
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+static char *__mp_select_view_get_label_of_video_item_cb(const void
+ *pUserData,
+ Evas_Object *
+ pObject,
+ const char *pPart)
+{
+ int nVideoItemIndex = (int) pUserData;
+
+ if (!strcmp(pPart, "elm.text.main.left.top")) {
+ char *szTitle = mp_util_svc_get_video_title(nVideoItemIndex);
+ char *szTitleUtf8 = elm_entry_utf8_to_markup(szTitle);
+ if (szTitle) {
+ free(szTitle);
+ szTitle = NULL;
+ }
+
+ return szTitleUtf8;
+ } else if (!strcmp(pPart, "elm.text.sub.left.bottom")) {
+ return mp_util_svc_get_duration_str_time(nVideoItemIndex);
+ }
+ return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+static Evas_Object *__mp_select_view_get_icon_of_video_item_cb(const void
+ *pUserData,
+ Evas_Object
+ *pObject,
+ const char
+ *pPart)
+{
+ Evas_Object *pLayout = NULL;
+
+ int nVideoItemIndex = (int) pUserData;
+ if (!pPart || !pObject) {
+ return NULL;
+ }
+
+ if (!strcmp(pPart, "elm.icon.1")) {
+ VideoLogInfo("pPart: elm.icon.1 - thumbnail");
+
+ char *pThumbIconUri =
+ mp_util_svc_get_video_thumbnail(nVideoItemIndex);
+ Evas_Object *pBg = NULL;
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VIDEO_CUSTOM_THEME);
+ free(path);
+ pLayout = elm_layout_add(pObject);
+ elm_layout_file_set(pLayout, edj_path,
+ "listview.thumbnail.layout");
+
+ if (!pThumbIconUri || !vp_file_exists(pThumbIconUri)) {
+ MP_FREE_STRING(pThumbIconUri);
+ }
+
+ pBg =
+ mp_util_create_preload_image(pLayout, pThumbIconUri,
+ VIDEO_ICON_WIDTH);
+ elm_layout_content_set(pLayout, "elm.thumbnail.icon", pBg);
+
+ if (pBg)
+ evas_object_show(pBg);
+
+ MP_FREE_STRING(pThumbIconUri);
+
+ if (!mp_util_create_video_sub_icon(pLayout, nVideoItemIndex)) {
+ VideoLogWarning("Local File or Create sub icon is failed.",
+ nVideoItemIndex);
+ }
+
+ if (pLayout) {
+ evas_object_show(pLayout);
+ }
+
+ return pLayout;
+ }
+
+ MP_DEL_OBJ(pLayout);
+
+ return NULL;
+}
+#endif
+
+/*if other view need update select view, need register this update callback*/
+/**
+ *
+ */
+static void __mp_select_view_result_view_update_cb(void)
+{
+ if (!g_pSelectHandle) {
+ VideoLogInfo("g_pSelectHandle is null.");
+ return;
+ }
+ if (!g_pSelectHandle->bRename)
+ g_pSelectHandle->bRename = TRUE;
+
+
+ bool bNormalShow =
+ mp_select_view_arrange_video_list(g_pSelectHandle->pGenlist, TRUE);
+ if (bNormalShow) {
+ Elm_Object_Item *pItem = NULL;
+ pItem = elm_genlist_first_item_get(g_pSelectHandle->pGenlist);
+ if (pItem) {
+ elm_genlist_item_bring_in(pItem, ELM_GENLIST_ITEM_SCROLLTO_IN);
+ }
+ } else {
+ elm_naviframe_item_pop(g_pSelectHandle->pNaviFrameHandle);
+ }
+ g_pSelectHandle->pChangeViewUserCbFunc(LIST_UPDATE_TYPE_ALL);
+ elm_naviframe_item_pop_to(g_pSelectHandle->pPreNaviItem);
+}
+
+/**
+ *
+ * @param nIndex
+ * @param IsFolder
+ */
+static void __mp_select_view_show_detail_view(int nIndex, bool IsFolder)
+{
+
+ if (!g_pSelectHandle) {
+ VideoLogInfo("g_pSelectHandle of list view are not existed.");
+ return;
+ }
+
+ VideoLogInfo("nVideoItemIndex : %d", nIndex);
+
+ stDetailInfo *pDetail = NULL;
+ char *pMediaId = NULL;
+ if (IsFolder) {
+ mp_detail_view_get_folder_detail_info(nIndex, &pDetail);
+ pMediaId = mp_util_svc_get_video_folder_id(nIndex);
+ } else {
+ mp_detail_view_get_video_detail_info(nIndex, &pDetail);
+ pMediaId = mp_util_svc_get_video_id_by_index(nIndex);
+ }
+
+ mp_detail_view_push((void *) g_pSelectHandle->pNaviFrameHandle,
+ IsFolder, pMediaId, pDetail);
+ mp_detail_view_free_detail_info(pDetail);
+ MP_FREE_STRING(pMediaId);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_select_view_genlist_selected_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ if (!g_pSelectHandle || !pObject) {
+ VideoLogWarning
+ ("[WARNING] Main handles of list view are not existed.");
+ return;
+ }
+#ifdef VS_FEATURE_THUMBNAIL_VIEW
+ Elm_Object_Item *pSelectedItem =
+ elm_gengrid_selected_item_get(pObject);
+ if (pSelectedItem) {
+ elm_gengrid_item_selected_set(pSelectedItem, EINA_FALSE);
+ }
+#else
+ Elm_Object_Item *pSelectedItem =
+ elm_genlist_selected_item_get(pObject);
+ if (pSelectedItem) {
+ elm_genlist_item_selected_set(pSelectedItem, EINA_FALSE);
+ }
+#endif
+ int nSelectedIndex = (int) pUserData;
+ VideoLogInfo("selected index is %d", nSelectedIndex);
+
+ if (SELECT_TYPE_DETAIL == g_pSelectHandle->eSelType) {
+ VideoLogInfo("Show detail view");
+ /*Todo: show detail view */
+ if (MP_LIST_VIEW_AS_THUMBNAIL_LIST == g_pSelectHandle->nViewType) {
+ __mp_select_view_show_detail_view(nSelectedIndex, FALSE);
+ } else if (MP_LIST_VIEW_AS_FOLDER_LIST ==
+ g_pSelectHandle->nViewType) {
+ if (g_pSelectHandle->pFolderUrl) {
+ VideoLogWarning("Folder item view");
+ __mp_select_view_show_detail_view(nSelectedIndex, FALSE);
+ } else {
+ VideoLogWarning("Folder view");
+ __mp_select_view_show_detail_view(nSelectedIndex, TRUE);
+ }
+ }
+ } else if (SELECT_TYPE_RENAME == g_pSelectHandle->eSelType) {
+ VideoLogInfo("Show rename popup");
+
+ g_pRenameLayout =
+ mp_rename_ctrl_show(g_pSelectHandle->pNaviFrameHandle, NULL,
+ (void *)
+ __mp_select_view_result_view_update_cb,
+ nSelectedIndex);
+ }
+}
+
+/**
+ *
+ * @param pFolderGenlist
+ */
+static void __mp_select_view_append_folder_items(void *pFolderGenlist)
+{
+ VideoLogInfo("");
+ int nIndex = 0;
+ int nFolderListSize = 0;
+
+ nFolderListSize = mp_util_svc_get_video_folder_size();
+ VideoLogInfo("nVideoListSize : %d", nFolderListSize);
+
+ if (nFolderListSize > 0) {
+ MP_DEL_ITC(g_pSelectHandle->pGenListItc);
+ g_pSelectHandle->pGenListItc = elm_genlist_item_class_new();
+ g_pSelectHandle->pGenListItc->item_style = "2line.top";
+ g_pSelectHandle->pGenListItc->func.text_get =
+ (void *) __mp_select_view_get_label_of_folder_cb;
+ g_pSelectHandle->pGenListItc->func.content_get =
+ (void *) __mp_select_view_get_icon_of_folder_cb;
+ g_pSelectHandle->pGenListItc->func.state_get = NULL;
+ g_pSelectHandle->pGenListItc->func.del = NULL;
+ g_pSelectHandle->pGenListItc->decorate_item_style = NULL;
+
+ for (nIndex = 0; nIndex < nFolderListSize; nIndex++) {
+ VideoLogInfo("nCounter : %d", nIndex);
+ elm_genlist_item_append(pFolderGenlist,
+ g_pSelectHandle->pGenListItc,
+ (void *) nIndex, NULL,
+ ELM_GENLIST_ITEM_NONE,
+ __mp_select_view_genlist_selected_cb,
+ (void *) nIndex);
+ }
+ }
+}
+
+#ifdef VS_FEATURE_THUMBNAIL_VIEW
+/**
+ *
+ * @param parent
+ * @param nWidth
+ * @param nHeight
+ * @return
+ */
+static Evas_Object *__mp_select_view_create_gengrid(Evas_Object * parent,
+ int nWidth,
+ int nHeight)
+{
+ Evas_Object *pGengrid;
+ pGengrid = elm_gengrid_add(parent);
+ if (!pGengrid) {
+ VideoLogError("pVideoGrid does not exist.");
+ return NULL;
+ }
+ evas_object_size_hint_weight_set(pGengrid, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(pGengrid, EVAS_HINT_FILL,
+ EVAS_HINT_FILL);
+ elm_gengrid_item_size_set(pGengrid, nWidth, nHeight);
+ elm_gengrid_align_set(pGengrid, 0.0, 0.0);
+ elm_gengrid_horizontal_set(pGengrid, EINA_TRUE);
+
+ return pGengrid;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+static char *__mp_select_view_get_label_of_grid_item_cb(const void
+ *pUserData,
+ Evas_Object *
+ pObject,
+ const char *pPart)
+{
+ int nVideoItemIndex = (int) pUserData;
+
+ if (!strcmp(pPart, "elm.text")) {
+ char *szTitle;
+ szTitle = mp_util_svc_get_video_title(nVideoItemIndex);
+ char *szTitleUtf8 = elm_entry_utf8_to_markup(szTitle);
+
+ if (szTitle) {
+ free(szTitle);
+ szTitle = NULL;
+ }
+
+ return szTitleUtf8;
+ } else if (!strcmp(pPart, "elm.text.2")) {
+ return mp_util_svc_get_duration_str_time(nVideoItemIndex);
+ }
+
+ return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+static Evas_Object *__mp_select_view_get_grid_icon_cb(const void
+ *pUserData,
+ Evas_Object *
+ pObject,
+ const char *pPart)
+{
+ int nVideoItemIndex = (int) pUserData;
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VIDEO_PLAYER_IMAGE_NAME_EDJ);
+ free(path);
+ if (!strcmp(pPart, "elm.swallow.icon")) {
+ char *pThumbIconUri =
+ mp_util_svc_get_video_thumbnail(nVideoItemIndex);
+ Evas_Object *pBg = NULL;
+
+ if (!pThumbIconUri || !vp_file_exists(pThumbIconUri)) {
+ pBg = elm_image_add(pObject);
+ MP_FREE_STRING(pThumbIconUri);
+ evas_object_size_hint_aspect_set(pBg, EVAS_ASPECT_CONTROL_BOTH,
+ 1, 1);
+ elm_image_file_set(pBg, pThumbIconUri, NULL);
+ } else {
+ pBg =
+ mp_util_create_preload_image(pObject, pThumbIconUri,
+ GRID_VIDEO_ICON_WIDTH);
+ }
+
+ MP_FREE_STRING(pThumbIconUri);
+
+ return pBg;
+ } else if (!strcmp(pPart, "elm.progressbar.icon")) {
+ return NULL;
+ } else if (!strcmp(pPart, "elm.lock.icon")) {
+ char *pVideoFile = mp_util_svc_get_video_url(nVideoItemIndex);
+ bool bRet =
+ mp_util_check_video_personal_status((const char *) pVideoFile);
+ MP_FREE_STRING(pVideoFile);
+ if (bRet) {
+ Evas_Object *pLockIcon = elm_image_add(pObject);
+ elm_image_file_set(pLockIcon, edj_path,
+ VIDEO_LIST_VIEW_ICON_PERSONAL_LOCK);
+ evas_object_size_hint_align_set(pLockIcon, EVAS_HINT_FILL,
+ EVAS_HINT_FILL);
+ evas_object_size_hint_weight_set(pLockIcon, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_show(pLockIcon);
+ return pLockIcon;
+ } else {
+ return NULL;
+ }
+ } else if (!strcmp(pPart, "elm.dropbox.icon")) {
+ bool bRet = mp_util_svc_is_cloud_storage(nVideoItemIndex);
+ if (bRet) {
+ Evas_Object *pDropboxIcon = elm_image_add(pObject);
+ elm_image_file_set(pDropboxIcon, edj_path,
+ VIDEO_LIST_VIEW_ICON_DROPBOX);
+ evas_object_size_hint_align_set(pDropboxIcon, EVAS_HINT_FILL,
+ EVAS_HINT_FILL);
+ evas_object_size_hint_weight_set(pDropboxIcon,
+ EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_show(pDropboxIcon);
+ return pDropboxIcon;
+ } else {
+ return NULL;
+ }
+ } else if (!strcmp(pPart, "elm.swallow.end")) {
+ }
+ return NULL;
+}
+
+/**
+ *
+ * @param pObjVideosList
+ * @param nGenItemIndex
+ */
+static void __mp_select_view_append_grid_items(void *pObjVideosList,
+ int nGenItemIndex)
+{
+ if (!g_pSelectHandle) {
+ VideoLogInfo("invalid handle");
+ return;
+ }
+
+ MP_DEL_GRID_ITC(g_pSelectHandle->pGenGridItc_1);
+ MP_DEL_GRID_ITC(g_pSelectHandle->pGenGridItc_2);
+ g_pSelectHandle->pGenGridItc_1 = elm_gengrid_item_class_new();
+ g_pSelectHandle->pGenGridItc_1->item_style = "video/album_grid";
+ g_pSelectHandle->pGenGridItc_1->func.text_get =
+ (void *) __mp_select_view_get_label_of_grid_item_cb;
+ g_pSelectHandle->pGenGridItc_1->func.content_get =
+ (void *) __mp_select_view_get_grid_icon_cb;
+ g_pSelectHandle->pGenGridItc_1->func.state_get = NULL;
+ g_pSelectHandle->pGenGridItc_1->func.del = NULL;
+
+ g_pSelectHandle->pGenGridItc_2 = elm_gengrid_item_class_new();
+ g_pSelectHandle->pGenGridItc_2->item_style = "video/album_grid";
+ g_pSelectHandle->pGenGridItc_2->func.text_get =
+ (void *) __mp_select_view_get_label_of_grid_item_cb;
+ g_pSelectHandle->pGenGridItc_2->func.content_get =
+ (void *) __mp_select_view_get_grid_icon_cb;
+ g_pSelectHandle->pGenGridItc_2->func.state_get = NULL;
+ g_pSelectHandle->pGenGridItc_2->func.del = NULL;
+
+ int nCount =
+ (mp_rotate_ctrl_check_landspace() ? VP_GENLIST_THUMB_LANDSPACE_COUNT
+ : VP_GENLIST_THUMB_PORTRAIT_COUNT);
+ int nIndex = nGenItemIndex * nCount;
+ int nMaxIndex = nIndex + nCount;
+ int nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+
+ Elm_Object_Item *gridItem = NULL;
+ for (; (nIndex < nMaxIndex) && (nIndex < nVideoListSize); nIndex++) {
+ if (nIndex % 2 == 0) {
+ elm_gengrid_item_append(pObjVideosList,
+ g_pSelectHandle->pGenGridItc_1,
+ (void *) nIndex,
+ __mp_select_view_genlist_selected_cb,
+ (void *) nIndex);
+ } else {
+ elm_gengrid_item_append(pObjVideosList,
+ g_pSelectHandle->pGenGridItc_2,
+ (void *) nIndex,
+ __mp_select_view_genlist_selected_cb,
+ (void *) nIndex);
+ }
+ elm_object_item_data_set(gridItem, (void *) nIndex);
+ }
+}
+
+/**
+ *
+ * @param height
+ * @param width
+ */
+static void mp_select_view_get_icon_dimensions(int *height, int *width)
+{
+ int winHeight = 0;
+ int winWidth = 0;
+ elm_win_screen_size_get(mp_util_get_main_window_handle(), NULL, NULL,
+ &winWidth, &winHeight);
+
+ bool bLandscape =
+ mp_rotate_ctrl_check_landspace_by_win((Evas_Object *)
+ mp_util_get_main_window_handle
+ ());
+ if (bLandscape) {
+ *width = winHeight / VP_GENLIST_THUMB_LANDSPACE_COUNT;
+ } else {
+ *width = winWidth / VP_GENLIST_THUMB_PORTRAIT_COUNT;
+ }
+ *height = VP_ALBUM_THUMB_ICON_HEIGHT * MP_SCALE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+static Evas_Object *__mp_select_view_get_icon_of_grid_cb(const void
+ *pUserData,
+ Evas_Object *
+ pObject,
+ const char *pPart)
+{
+ VideoLogInfo("in __mp_select_view_get_icon_of_grid_cb");
+ if (!g_pSelectHandle || !pObject) {
+ VideoLogError("g_pMainViewWidgetOfSelectList is NULL");
+ return NULL;
+ }
+
+ int nGenItemIndex = (int) pUserData;
+ int nHeight = 0;
+ int nWidth = 0;
+ mp_select_view_get_icon_dimensions(&nHeight, &nWidth);
+
+ Evas_Object *pGengrid =
+ __mp_select_view_create_gengrid(pObject, nWidth, nHeight);
+ __mp_select_view_append_grid_items(pGengrid, nGenItemIndex);
+
+ return pGengrid;
+}
+
+/**
+ *
+ * @param nVideoItemIndex
+ * @return
+ */
+int mp_select_view_thumbnail_to_genlist_index(int nVideoItemIndex)
+{
+ /*nVideoItemIndex = 0-->max */
+ if (nVideoItemIndex < 0) {
+ VideoLogDebug("invalid nVideoItemIndex");
+ return 0;
+ }
+ g_pSelectHandle->bLandscape =
+ mp_rotate_ctrl_check_landspace_by_win((Evas_Object *)
+ mp_util_get_main_window_handle
+ ());
+ int nItemCount = VP_GENLIST_THUMB_PORTRAIT_COUNT;
+ int nGenlistIndex = 0;
+ if (g_pSelectHandle->bLandscape) {
+ nItemCount = VP_GENLIST_THUMB_LANDSPACE_COUNT;
+ }
+ nGenlistIndex = nVideoItemIndex / nItemCount;
+ VideoLogWarning("in mp_select_view_thumbnail_to_genlist_index %d",
+ nGenlistIndex);
+ return nGenlistIndex;
+}
+
+/**
+ *
+ * @param pGenlist
+ * @return
+ */
+static bool __mp_select_view_append_grid_layout(void *pGenlist)
+{
+ VideoLogInfo("in append grid layout");
+ if (!pGenlist || !g_pSelectHandle) {
+ VideoLogError("error handle.");
+ return FALSE;
+ }
+ int nIndex = 0;
+ int nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+ if (nVideoListSize <= 0) {
+ VideoLogWarning("nVideoListSize = %d", nVideoListSize);
+ return FALSE;
+ } else
+ VideoLogWarning("nVideoListSize = %d", nVideoListSize);
+
+ MP_DEL_ITC(g_pSelectHandle->pGenListItc);
+ g_pSelectHandle->pGenListItc = elm_genlist_item_class_new();
+
+ g_pSelectHandle->pGenListItc->item_style = "video/1icon.thumbnail";
+ g_pSelectHandle->pGenListItc->func.text_get = NULL;
+ g_pSelectHandle->pGenListItc->func.content_get =
+ (void *) __mp_select_view_get_icon_of_grid_cb;
+ g_pSelectHandle->pGenListItc->func.state_get = NULL;
+ g_pSelectHandle->pGenListItc->func.del = NULL;
+ g_pSelectHandle->pGenListItc->decorate_item_style = NULL;
+
+ MP_DEL_ITC(g_pSelectHandle->pGenListLandscapeItc);
+ g_pSelectHandle->pGenListLandscapeItc = elm_genlist_item_class_new();
+ g_pSelectHandle->pGenListLandscapeItc->item_style =
+ "video/1icon.thumbnail.landscape";
+ g_pSelectHandle->pGenListLandscapeItc->func.text_get = NULL;
+ g_pSelectHandle->pGenListLandscapeItc->func.content_get =
+ (void *) __mp_select_view_get_icon_of_grid_cb;
+ g_pSelectHandle->pGenListLandscapeItc->func.state_get = NULL;
+ g_pSelectHandle->pGenListLandscapeItc->func.del = NULL;
+ g_pSelectHandle->pGenListLandscapeItc->decorate_item_style = NULL;
+
+ int nGenlistRow = 0;
+ nGenlistRow =
+ mp_select_view_thumbnail_to_genlist_index(nVideoListSize - 1);
+
+ if (g_pSelectHandle->bLandscape) {
+ for (nIndex = 0; nIndex <= nGenlistRow; nIndex++) {
+ elm_genlist_item_append(pGenlist,
+ g_pSelectHandle->pGenListLandscapeItc,
+ (void *) nIndex, NULL,
+ ELM_GENLIST_ITEM_NONE, NULL, NULL);
+ }
+ } else {
+ for (nIndex = 0; nIndex <= nGenlistRow; nIndex++) {
+ elm_genlist_item_append(pGenlist, g_pSelectHandle->pGenListItc,
+ (void *) nIndex, NULL,
+ ELM_GENLIST_ITEM_NONE, NULL, NULL);
+ }
+ }
+
+ return TRUE;
+}
+#endif
+
+#ifdef VS_FEATURE_LIST_VIEW
+/**
+ *
+ * @param pVideosGenlist
+ */
+static void __mp_select_view_append_video_items(void *pVideosGenlist)
+{
+ VideoLogInfo("");
+ if (!g_pSelectHandle) {
+ VideoLogError("");
+ return;
+ }
+
+ int nIndex = 0;
+ int nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+
+ MP_DEL_ITC(g_pSelectHandle->pGenListItc);
+ g_pSelectHandle->pGenListItc = elm_genlist_item_class_new();
+ g_pSelectHandle->pGenListItc->item_style = "2line.top";
+ g_pSelectHandle->pGenListItc->func.text_get =
+ (void *) __mp_select_view_get_label_of_video_item_cb;
+ g_pSelectHandle->pGenListItc->func.content_get =
+ (void *) __mp_select_view_get_icon_of_video_item_cb;
+ g_pSelectHandle->pGenListItc->func.state_get = NULL;
+ g_pSelectHandle->pGenListItc->func.del = NULL;
+ g_pSelectHandle->pGenListItc->decorate_item_style = NULL;
+
+ for (nIndex = 0; nIndex < nVideoListSize; nIndex++) {
+ elm_genlist_item_append(pVideosGenlist,
+ g_pSelectHandle->pGenListItc,
+ (void *) nIndex, NULL,
+ ELM_GENLIST_ITEM_NONE,
+ __mp_select_view_genlist_selected_cb,
+ (void *) nIndex);
+ }
+}
+#endif
+
+/**
+ *
+ * @param pGenlist
+ * @param bNeedSvc
+ * @return
+ */
+bool mp_select_view_arrange_video_list(void *pGenlist, bool bNeedSvc)
+{
+ if (!g_pSelectWidget || !g_pSelectHandle) {
+ VideoLogError("No exist g_pSelectListViewWidget.");
+ return FALSE;
+ }
+
+ if (!pGenlist) {
+ VideoLogError("No exist genlist object.");
+ return FALSE;
+ }
+
+ int nVideoListSize = 0;
+#ifdef VS_FEATURE_LIST_VIEW
+ if (g_pSelectHandle->nViewType == MP_LIST_VIEW_AS_NORMAL_LIST) {
+ /*update video list data */
+ mp_util_svc_destory_video_list();
+ mp_util_svc_extract_video_list_by_item_type
+ (mp_sort_ctrl_get_sort_state(), mp_view_ctrl_get_list_type());
+
+ nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+ if (nVideoListSize <= 0) {
+ VideoLogWarning("nVideoListSize=%d", nVideoListSize);
+ return FALSE;
+ }
+
+ elm_genlist_clear(pGenlist);
+ __mp_select_view_append_video_items(pGenlist);
+ } else
+#endif
+ if (g_pSelectHandle->nViewType == MP_LIST_VIEW_AS_FOLDER_LIST) {
+ if (g_pSelectHandle->pFolderUrl) {
+ VideoLogWarning("Folder item view");
+ /*update folder item list data */
+ mp_util_svc_destory_video_item_list();
+ mp_util_svc_extract_video_list_from_folder(g_pSelectHandle->
+ pFolderUrl,
+ mp_sort_ctrl_get_sort_state
+ (),
+ MP_LIST_VIEW_ALL);
+
+ nVideoListSize =
+ mp_util_svc_get_number_of_video_item_by_type();
+ if (nVideoListSize <= 0) {
+ VideoLogWarning("nVideoListSize=%d", nVideoListSize);
+ return FALSE;
+ }
+
+ elm_genlist_clear(pGenlist);
+ __mp_select_view_append_grid_layout(pGenlist);
+ } else {
+ VideoLogWarning("Folder view");
+ /*update folder list data */
+ mp_util_svc_destory_video_list();
+ mp_util_svc_extract_video_list_by_item_type
+ (mp_sort_ctrl_get_sort_state(),
+ mp_view_ctrl_get_list_type());
+ mp_util_svc_extract_video_folder_list_by_type
+ (mp_sort_ctrl_get_sort_state(),
+ mp_view_ctrl_get_list_type());
+
+ nVideoListSize = mp_util_svc_get_video_folder_size();
+ if (nVideoListSize <= 0) {
+ VideoLogWarning("nVideoListSize=%d", nVideoListSize);
+ return FALSE;
+ }
+
+ elm_genlist_clear(pGenlist);
+ __mp_select_view_append_folder_items(pGenlist);
+ }
+ } else if (g_pSelectHandle->nViewType ==
+ MP_LIST_VIEW_AS_THUMBNAIL_LIST) {
+ /*update video list data */
+ mp_util_svc_destory_video_list();
+ mp_util_svc_extract_video_list_by_item_type
+ (mp_sort_ctrl_get_sort_state(), mp_view_ctrl_get_list_type());
+
+ nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+ if (nVideoListSize <= 0) {
+ VideoLogWarning("nVideoListSize=%d", nVideoListSize);
+ return FALSE;
+ }
+
+ elm_genlist_clear(pGenlist);
+ __mp_select_view_append_grid_layout(pGenlist);
+ }
+
+ evas_object_show(pGenlist);
+ return TRUE;
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+Evas_Object *mp_select_view_create_internal_layout(void *pParent)
+{
+ if (!pParent) {
+ VideoLogInfo("[ERR]");
+ return NULL;
+ }
+
+ VideoLogInfo("");
+
+ if (g_pSelectWidget->pBaselayout) {
+ evas_object_del(g_pSelectWidget->pBaselayout);
+ g_pSelectWidget->pBaselayout = NULL;
+ }
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VIDEO_PLAYER_REMOVE_LIST_EDJ);
+ free(path);
+ g_pSelectWidget->pBaselayout = elm_layout_add(pParent);
+ elm_layout_file_set(g_pSelectWidget->pBaselayout, edj_path,
+ REMOVE_LIST_EDJ_GROUP);
+ evas_object_size_hint_weight_set(g_pSelectWidget->pBaselayout,
+ EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(g_pSelectWidget->pBaselayout,
+ EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+ return g_pSelectWidget->pBaselayout;
+}
+
+/**
+ *
+ * @param pUserData
+ */
+static void __mp_select_view_db_changed_cb(void *pUserData)
+{
+ VideoLogWarning("Video DB has been changed.");
+ if (!g_pSelectHandle || !g_pSelectWidget) {
+ VideoLogError("Main handles of list view are not existed.");
+ return;
+ }
+
+ bool bNormalShow = TRUE;
+
+ bNormalShow =
+ mp_select_view_arrange_video_list(g_pSelectHandle->pGenlist, TRUE);
+ if (bNormalShow) {
+ Elm_Object_Item *pItem = NULL;
+ pItem = elm_genlist_first_item_get(g_pSelectHandle->pGenlist);
+ if (pItem) {
+ elm_genlist_item_bring_in(pItem, ELM_GENLIST_ITEM_SCROLLTO_IN);
+ }
+ if (SELECT_TYPE_DETAIL == g_pSelectHandle->eSelType) {
+ mp_detail_view_update();
+ } else if (SELECT_TYPE_RENAME == g_pSelectHandle->eSelType) {
+ //if needed, todo;
+ }
+ }
+ mp_rename_ctrl_focus_out_cb();
+ g_pSelectHandle->pChangeViewUserCbFunc(LIST_UPDATE_TYPE_ALL);
+ elm_naviframe_item_pop_to(g_pSelectHandle->pPreNaviItem);
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+void __mp_select_soft_back_button_cb(void *data, Evas_Object * obj,
+ void *event_info)
+{
+ Evas_Object *pTopNaviFrame = NULL;
+ pTopNaviFrame =
+ elm_naviframe_item_pop(g_pSelectHandle->pNaviFrameHandle);
+ evas_object_del(pTopNaviFrame);
+}
+
+/**
+ *
+ */
+void mp_select_view_create_genlist()
+{
+ if (!g_pSelectHandle || !g_pSelectWidget) {
+ VideoLogError("Main handles of list view are not existed.");
+ return;
+ }
+
+ VideoLogInfo("");
+
+ g_pSelectHandle->pGenlist = elm_genlist_add(g_pSelectWidget->pBox);
+ if (!g_pSelectHandle->pGenlist) {
+ VideoLogError("pGenlist is not existed.");
+ return;
+ }
+ elm_scroller_bounce_set(g_pSelectHandle->pGenlist, EINA_FALSE,
+ EINA_TRUE);
+ evas_object_size_hint_weight_set(g_pSelectHandle->pGenlist,
+ EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(g_pSelectHandle->pGenlist,
+ EVAS_HINT_FILL, EVAS_HINT_FILL);
+ elm_genlist_block_count_set(g_pSelectHandle->pGenlist,
+ VIDEO_GENLIST_BLOCK_COUNT);
+ elm_genlist_homogeneous_set(g_pSelectHandle->pGenlist, EINA_TRUE);
+ elm_genlist_mode_set(g_pSelectHandle->pGenlist, ELM_LIST_COMPRESS);
+ elm_genlist_select_mode_set(g_pSelectHandle->pGenlist,
+ ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+
+ elm_box_pack_end(g_pSelectWidget->pBox, g_pSelectHandle->pGenlist);
+ elm_object_part_content_set(g_pSelectWidget->pBaselayout,
+ SWALLOW_LISTVIEW_CONTENT,
+ g_pSelectWidget->pBox);
+
+ bool bNormalShow = TRUE;
+ bNormalShow =
+ mp_select_view_arrange_video_list(g_pSelectHandle->pGenlist,
+ FALSE);
+ if (!bNormalShow) {
+ VideoLogError("invalid view");
+ mp_select_view_destroy();
+ return;
+ }
+ evas_object_show(g_pSelectHandle->pGenlist);
+}
+
+/**
+ *
+ * @param pParent
+ */
+void mp_select_view_init(void *pParent)
+{
+ if (!g_pSelectHandle || !g_pSelectWidget) {
+ VideoLogError("Main handles of list view are not existed.");
+ return;
+ }
+
+ VideoLogInfo("");
+ g_pSelectWidget->pBaselayout =
+ mp_select_view_create_internal_layout(pParent);
+ if (!g_pSelectWidget->pBaselayout) {
+ VideoLogError("pBaselayout is not existed.");
+ return;
+ }
+ evas_object_event_callback_add(g_pSelectWidget->pBaselayout,
+ EVAS_CALLBACK_DEL,
+ __mp_select_view_base_layout_del_cb,
+ NULL);
+
+ g_pSelectWidget->pBox = elm_box_add(g_pSelectWidget->pBaselayout);
+ if (!g_pSelectWidget->pBox) {
+ VideoLogError("pBox is not existed.");
+ return;
+ }
+
+ mp_select_view_create_genlist();
+
+ Evas_Object *pLeftbtn = elm_button_add(pParent);
+ elm_object_style_set(pLeftbtn, "naviframe/end_btn/default");
+ evas_object_smart_callback_add(pLeftbtn, "clicked",
+ __mp_select_soft_back_button_cb, NULL);
+
+ char *szTitle = NULL;
+ szTitle = g_strdup(VIDEOS_SELECTVIEW_HEADER_SELECT_VIDEO);
+
+ g_pSelectHandle->pNaviFrameItem =
+ elm_naviframe_item_push(g_pSelectHandle->pNaviFrameHandle, szTitle,
+ pLeftbtn, NULL,
+ g_pSelectWidget->pBaselayout, NULL);
+
+ elm_object_item_domain_text_translatable_set(g_pSelectHandle->
+ pNaviFrameItem,
+ VIDEOS_STRING, EINA_TRUE);
+ elm_naviframe_item_pop_cb_set(g_pSelectHandle->pNaviFrameItem,
+ mp_select_view_back_btn_cb,
+ g_pSelectHandle);
+ g_free(szTitle);
+
+ elm_naviframe_item_title_enabled_set(g_pSelectHandle->pNaviFrameItem,
+ EINA_TRUE, EINA_FALSE);
+ evas_object_smart_callback_add(g_pSelectHandle->pNaviFrameHandle,
+ "transition,finished",
+ mp_select_view_naviframe_transition_effect_cb,
+ NULL);
+
+ evas_object_show(g_pSelectWidget->pBaselayout);
+
+ mp_util_db_set_update_fun(g_pSelectHandle->euLev,
+ __mp_select_view_db_changed_cb);
+
+ mp_util_hide_indicator();
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __mp_select_view_rotate_cb(void *data, Evas_Object * obj,
+ void *event_info)
+{
+ if (!g_pSelectHandle) {
+ VideoLogError("__mp_select_view_rotate_cb IS null");
+ return;
+ }
+ bool bLandscape =
+ mp_rotate_ctrl_check_landspace_by_win((Evas_Object *)
+ mp_util_get_main_window_handle
+ ());
+ if (bLandscape) {
+ g_pSelectHandle->bLandscape = true;
+ } else {
+ g_pSelectHandle->bLandscape = false;
+ }
+
+}
+
+/**
+ *
+ * @param pNaviFrame
+ * @param pNaviItem
+ * @param pChangeViewCb
+ * @param pFolderUrl
+ * @param eSelType
+ * @param eTabType
+ */
+void mp_select_view_push(void *pNaviFrame, void *pNaviItem,
+ ChangeSelectViewCbFunc pChangeViewCb,
+ char *pFolderUrl, SelectType eSelType,
+ MpVideoListTabType eTabType)
+{
+ VideoLogInfo("");
+ if (g_pSelectHandle || g_pSelectWidget) {
+ mp_select_view_destroy();
+ }
+
+ g_pSelectHandle =
+ (st_SelectViewHandle *) calloc(1, sizeof(st_SelectViewHandle));
+ g_pSelectWidget =
+ (st_SelectViewWidget *) calloc(1, sizeof(st_SelectViewWidget));
+
+ memset(g_pSelectHandle, 0, sizeof(st_SelectViewHandle));
+ memset(g_pSelectWidget, 0, sizeof(st_SelectViewWidget));
+ mp_select_view_reset_value();
+
+ g_pSelectHandle->pNaviFrameHandle = pNaviFrame;
+ g_pSelectHandle->pPreNaviItem = pNaviItem;
+ g_pSelectHandle->pChangeViewUserCbFunc = pChangeViewCb;
+ g_pSelectHandle->pFolderUrl = g_strdup(pFolderUrl);
+ g_pSelectHandle->eSelType = eSelType;
+ g_pSelectHandle->eTabType = eTabType;
+ g_pSelectHandle->euLev =
+ pFolderUrl ? MP_DB_UPDATE_LEV_2 : MP_DB_UPDATE_LEV_1;
+ g_pSelectHandle->nViewType = mp_view_as_ctrl_get_type();
+ g_pSelectHandle->bLandscape =
+ mp_rotate_ctrl_check_landspace_by_win((Evas_Object *)
+ mp_util_get_main_window_handle
+ ());
+
+ mp_select_view_init(g_pSelectHandle->pNaviFrameHandle);
+ evas_object_smart_callback_add((Evas_Object *)
+ mp_util_get_main_window_handle(),
+ "wm,rotation,changed",
+ __mp_select_view_rotate_cb,
+ (void *) g_pSelectHandle);
+
+}
+
+/**
+ *
+ */
+void mp_select_view_pop(void)
+{
+ VideoLogInfo("");
+
+ if (!g_pSelectHandle) {
+ VideoLogError("No existed handle of select view.");
+ return;
+ }
+ if (g_pSelectHandle->bRename && g_pSelectHandle->pChangeViewUserCbFunc) {
+ g_pSelectHandle->pChangeViewUserCbFunc(LIST_UPDATE_TYPE_ALL);
+ }
+
+ mp_util_hide_indicator();
+}
+
+/**
+ *
+ */
+void mp_select_view_change_language(void)
+{
+ if (!g_pSelectHandle || !g_pSelectWidget) {
+ VideoLogError("No existed handle of select view.");
+ return;
+ }
+
+ VideoLogInfo("");
+ char *szTitle = NULL;
+ if (SELECT_TYPE_DETAIL == g_pSelectHandle->eSelType) {
+ szTitle = g_strdup(VIDEOS_DETAILVIEW_HEADER_DETAILS_IDS);
+ } else if (SELECT_TYPE_RENAME == g_pSelectHandle->eSelType) {
+ szTitle = g_strdup(VIDEOS_RENAMEVIEW_HEADER_RENAME_IDS);
+ }
+ elm_object_item_domain_translatable_part_text_set(g_pSelectHandle->
+ pNaviFrameItem,
+ "elm.text.title",
+ VIDEOS_STRING,
+ szTitle);
+ g_free(szTitle);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param e
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_select_view_base_layout_del_cb(void *pUserData, Evas * e,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ __mp_select_view_reset();
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#include <app.h>
+#include <glib.h>
+#include <unistd.h>
+#include <stdbool.h>
+#include <Ecore_Evas.h>
+#include <Elementary.h>
+
+#include "vp-play-log.h"
+#include "vp-util.h"
+#include "vp-file-util.h"
+#include "vp-pinch-zoom.h"
+#include "mp-util.h"
+#ifdef ENABLE_DRM_FEATURE
+#include "mp-drm-ctrl.h"
+#endif
+#include "mp-video-log.h"
+#include "mp-util-media-service.h"
+#include "mp-video-value-define.h"
+#include "mp-video-string-define.h"
+
+
+#include "mp-video-list-view-thumbnail.h"
+
+#include "mp-footer-toolbar.h"
+#include "mp-video-list-sort-ctrl.h"
+#include "mp-video-view-popup-ctrl.h"
+#include "mp-video-list-view-normal.h"
+#include "mp-video-list-view-as-ctrl.h"
+#include "mp-launching-video-displayer.h"
+#include "mp-video-list-option-ctrl.h"
+#include "mp-external-ug.h"
+#include "videos-view-mgr.h"
+#include "mp-rotate-ctrl.h"
+#include "mp-video-rename-ctrl.h"
+#include "mp-video-info-ctrl.h"
+#include "mp-video-list-view-main.h"
+#include "mp-video-detail-view.h"
+#include "mp-video-list-share-via-view.h"
+
+#include "mp-util-preference.h"
+#include "mp-util-config.h"
+#include "mp-video-util-db-controller.h"
+#include "mp-video-nocontent-layout.h"
+
+
+#define VIDEO_WALL_UPDATE_TIMER 0.3
+/*the max update waiting time is VIDEO_WALL_UPDATE_TIMER*VIDEO_WALL_UPDATE_TIMER_COUNTER*/
+#define VIDEO_WALL_UPDATE_TIMER_COUNTER 6
+
+typedef struct {
+ UpdateListItemsCbFunc fViewCbFunc;
+ st_VideoListViewMainViewHandle *pMainHandle;
+ st_VideoListViewMainViewWidget *pMainWidget;
+
+ Evas_Object *pVideosGenlist;
+
+ Eina_List *pVideoItemList;
+ Ecore_Idler *pPlayIdler;
+ Ecore_Timer *pStartWallTimer;
+ Ecore_Idler *pWallResolutionIdler;
+ MpListUpdateType eUpdateType;
+
+ /*wall */
+ Eina_List *pWallHandleList;
+ Evas_Object *pNocontentlayout;
+
+ Elm_Genlist_Item_Class *pGenGridItc;
+ Elm_Genlist_Item_Class *pGenGridZoomItc;
+ Elm_Genlist_Item_Class *pNoItemItc;
+ Elm_Gengrid_Item_Class *pGenGridItc_l;
+ Elm_Gengrid_Item_Class *pGenGridItc_r;
+
+ bool bLandscape;
+ int nSelectedVideoItem;
+ int nUpdateTimerCounter;
+
+ int zoom_level;
+} stThumbnailView;
+
+
+static stThumbnailView *g_pThumbnailView = NULL;
+
+
+static void __mp_thumbnail_view_update_cb(int nError, const char *szPath,
+ void *pUserData);
+static void __mp_thumbnail_view_language_changed_genlist_cb(void
+ *pUserData,
+ Evas_Object *
+ pObject, void
+ *pEventInfo);
+static void __mp_thumbnail_view_realize_genlist_item_cb(void *pUserData,
+ Evas_Object *
+ pObject,
+ void *pEventInfo);
+static void __mp_thumbnail_view_append_gengrid_items(Evas_Object *
+ pGengrid,
+ int nGenItemIndex);
+static Evas_Object *__mp_thumbnail_view_create_gengrid(Evas_Object *
+ parent, int nWidth,
+ int nHeight);
+static void __mp_thumbnail_view_reset(MpListUpdateType eUpdateType);
+
+/**
+ *
+ * @return
+ */
+static int mp_thumbnail_get_portrait_count()
+{
+ if (g_pThumbnailView->zoom_level == VP_ZOOM_IN_MAX)
+ return VP_GENLIST_THUMB_PORTRAIT_COUNT_ZOOM_IN;
+
+ return VP_GENLIST_THUMB_PORTRAIT_COUNT;
+}
+
+/**
+ *
+ * @return
+ */
+static int mp_thumbnail_get_landscape_count()
+{
+ if (g_pThumbnailView->zoom_level == VP_ZOOM_IN_MAX)
+ return VP_GENLIST_THUMB_LANDSPACE_COUNT_ZOOM_IN;
+
+ return VP_GENLIST_THUMB_LANDSPACE_COUNT;
+}
+
+/**
+ *
+ * @param height
+ * @param width
+ */
+void mp_thumbnail_get_icon_dimensions(int *height, int *width)
+{
+ int winHeight = 0;
+ int winWidth = 0;
+ elm_win_screen_size_get(mp_util_get_main_window_handle(), NULL, NULL,
+ &winWidth, &winHeight);
+
+ bool bLandscape = mp_rotate_ctrl_check_landspace();
+ if (bLandscape) {
+ *width = winHeight / mp_thumbnail_get_landscape_count();
+ } else {
+ *width = winWidth / mp_thumbnail_get_portrait_count();
+ }
+
+ if (g_pThumbnailView->zoom_level == VP_ZOOM_IN_MAX)
+ *height = VP_ALBUM_THUMB_ICON_HEIGHT_ZOOM_IN * MP_SCALE;
+ else
+ *height = VP_ALBUM_THUMB_ICON_HEIGHT * MP_SCALE;
+}
+
+/**
+ *
+ * @param nIndexGenlist
+ */
+void mp_thumbnail_view_cancel_thumbnail_update(int nIndexGenlist)
+{
+ if (!g_pThumbnailView) {
+ VideoLogError("");
+ return;
+ }
+
+ bool bLandscape = mp_rotate_ctrl_check_landspace();
+ int nVideoItemIndex = 0;
+ int nItemCount = VP_GENLIST_THUMB_PORTRAIT_COUNT;
+
+ if (bLandscape) {
+ nItemCount = VP_GENLIST_THUMB_LANDSPACE_COUNT;
+ }
+
+ nVideoItemIndex = nIndexGenlist * nItemCount;
+ int nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+ VideoLogInfo("realize is %d--%d--%d", nItemCount, nVideoItemIndex,
+ nVideoListSize);
+
+ int nIndex = 0;
+ for (; (nIndex < nItemCount) && (nVideoItemIndex < nVideoListSize);
+ nIndex++) {
+ nVideoItemIndex = nVideoItemIndex + nIndex;
+
+ mp_util_svc_cancel_thumbnail_update(nVideoItemIndex);
+ }
+
+}
+
+/**
+ *
+ * @param nVideoItemIndex
+ * @return
+ */
+int mp_thumbnail_view_thumbnail_to_genlist_index(int nVideoItemIndex)
+{
+ /*nVideoItemIndex = 0-->max */
+ if (nVideoItemIndex < 0) {
+ VideoLogDebug("invalid nVideoItemIndex");
+ return 0;
+ }
+ int nItemCount = mp_thumbnail_get_portrait_count();
+ int nGenlistIndex = 0;
+ if (g_pThumbnailView->bLandscape) {
+ nItemCount = mp_thumbnail_get_landscape_count();
+ }
+ nGenlistIndex = nVideoItemIndex / nItemCount;
+ return nGenlistIndex;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+void __mp_thumbnail_view_warning_popup_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ VideoLogInfo("");
+
+ mp_util_delete_popup_handle();
+}
+
+/**
+ *
+ * @param pUserData
+ * @return
+ */
+static Eina_Bool __mp_thumbnail_view_play_video_idler_cb(void *pUserData)
+{
+ if (!g_pThumbnailView) {
+ VideoLogError("");
+ return ECORE_CALLBACK_CANCEL;
+ }
+
+ g_pThumbnailView->pPlayIdler = NULL;
+
+ int nVideoItemIndex = (int) pUserData;
+
+ if (nVideoItemIndex < 0
+ || nVideoItemIndex >=
+ mp_util_svc_get_video_list_size_for_checking_index()) {
+ VideoLogError("[ERR] list item index.");
+ return ECORE_CALLBACK_CANCEL;
+ }
+
+ VideoLogInfo("nVideoItemIndex %d", nVideoItemIndex);
+
+ char *szMediaUrl = mp_util_svc_get_video_url(nVideoItemIndex);
+
+ if (szMediaUrl) {
+ if (!mp_util_check_local_file_exist(szMediaUrl)) {
+ mp_util_notify_popup(NULL, VIDEOS_COMMON_HEADER_ERROR,
+ VIDEOS_NOTIPOP_MSG_FILE_NOT_EXIST,
+ __mp_thumbnail_view_warning_popup_cb);
+ free(szMediaUrl);
+ return ECORE_CALLBACK_CANCEL;
+ }
+
+ mp_launch_video_play(szMediaUrl, MP_PLAYER_TYPE_VIDEO, NULL);
+ } else {
+ VideoLogInfo("[Err] Fail to get video uri from media service.");
+ return ECORE_CALLBACK_CANCEL;
+ }
+
+ MP_FREE_STRING(szMediaUrl);
+
+ return ECORE_CALLBACK_CANCEL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+static Evas_Object *__mp_thumbnail_view_get_icon_of_grid_cb(const void
+ *pUserData,
+ Evas_Object *
+ pObject,
+ const char
+ *pPart)
+{
+ if (!g_pThumbnailView || !pObject) {
+ VideoLogError("g_pMainViewWidgetOfThumbnailList is NULL");
+ return NULL;
+ }
+
+ int nGenItemIndex = (int) pUserData;
+ int nHeight = 0;
+ int nWidth = 0;
+ mp_thumbnail_get_icon_dimensions(&nHeight, &nWidth);
+
+ Evas_Object *pGengrid =
+ __mp_thumbnail_view_create_gengrid(pObject, nWidth, nHeight);
+ __mp_thumbnail_view_append_gengrid_items(pGengrid, nGenItemIndex);
+
+ return pGengrid;
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __mp_thumbnail_view_video_item_del_cb(void *data,
+ Evas_Object * obj,
+ void *event_info)
+{
+ if (!g_pThumbnailView || !event_info
+ || !g_pThumbnailView->pVideoItemList) {
+ VideoLogError("g_pMainViewWidge is NULL");
+ return;
+ }
+ int nIndexGenlist = 0;
+ Elm_Object_Item *pCurrentItem = (Elm_Object_Item *) event_info;
+
+ Eina_List *pCurList = NULL;
+ Elm_Object_Item *pTmpVideoItem = NULL;
+ EINA_LIST_FOREACH(g_pThumbnailView->pVideoItemList, pCurList,
+ pTmpVideoItem) {
+ if (pCurrentItem == pTmpVideoItem) {
+ nIndexGenlist = (int) elm_object_item_data_get(pCurrentItem);
+ mp_thumbnail_view_cancel_thumbnail_update(nIndexGenlist);
+ pTmpVideoItem = NULL;
+ pCurList->data = NULL;
+ break;
+ }
+ }
+}
+
+#ifdef ENABLE_LONGPRESS
+static void __mp_thumbnail_view_free_video_wall_item(char *pVideoItemId)
+{
+ if (!pVideoItemId || !g_pThumbnailView
+ || !g_pThumbnailView->pWallHandleList) {
+ VideoLogError("");
+ return;
+ }
+}
+#endif
+
+/**
+ *
+ * @param pGenlist
+ * @return
+ */
+static bool __mp_thumbnail_view_append_grid_layout(void *pGenlist)
+{
+ if (!pGenlist || !g_pThumbnailView) {
+ VideoLogError("error handle.");
+ return FALSE;
+ }
+ int nIndex = 0;
+ int nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+ if (nVideoListSize <= 0) {
+ VideoLogWarning("nVideoListSize = %d", nVideoListSize);
+ return FALSE;
+ }
+
+ MP_DEL_ITC(g_pThumbnailView->pGenGridItc);
+ g_pThumbnailView->pGenGridItc = elm_genlist_item_class_new();
+
+ g_pThumbnailView->pGenGridItc->item_style = "video/1icon.thumbnail";
+ g_pThumbnailView->pGenGridItc->func.text_get = NULL;
+ g_pThumbnailView->pGenGridItc->func.content_get =
+ (void *) __mp_thumbnail_view_get_icon_of_grid_cb;
+ g_pThumbnailView->pGenGridItc->func.state_get = NULL;
+ g_pThumbnailView->pGenGridItc->func.del = NULL;
+ g_pThumbnailView->pGenGridItc->decorate_item_style = NULL;
+
+ MP_DEL_ITC(g_pThumbnailView->pGenGridZoomItc);
+ g_pThumbnailView->pGenGridZoomItc = elm_genlist_item_class_new();
+ g_pThumbnailView->pGenGridZoomItc->item_style =
+ "video/1icon.thumbnail.zoom";
+ g_pThumbnailView->pGenGridZoomItc->func.text_get = NULL;
+ g_pThumbnailView->pGenGridZoomItc->func.content_get =
+ (void *) __mp_thumbnail_view_get_icon_of_grid_cb;
+ g_pThumbnailView->pGenGridZoomItc->func.state_get = NULL;
+ g_pThumbnailView->pGenGridZoomItc->func.del = NULL;
+ g_pThumbnailView->pGenGridZoomItc->decorate_item_style = NULL;
+
+ int nGenlistRow = 0;
+ nGenlistRow =
+ mp_thumbnail_view_thumbnail_to_genlist_index(nVideoListSize - 1);
+ Elm_Object_Item *pTmpVideoGenlistItem = NULL;
+
+ if (g_pThumbnailView->zoom_level == VP_ZOOM_IN_MAX) {
+ for (nIndex = 0; nIndex <= nGenlistRow; nIndex++) {
+ pTmpVideoGenlistItem =
+ elm_genlist_item_append(pGenlist,
+ g_pThumbnailView->pGenGridZoomItc,
+ (void *) nIndex, NULL,
+ ELM_GENLIST_ITEM_NONE, NULL, NULL);
+
+ g_pThumbnailView->pVideoItemList =
+ eina_list_append(g_pThumbnailView->pVideoItemList,
+ pTmpVideoGenlistItem);
+ elm_object_item_del_cb_set(pTmpVideoGenlistItem,
+ __mp_thumbnail_view_video_item_del_cb);
+ }
+ } else {
+ for (nIndex = 0; nIndex <= nGenlistRow; nIndex++) {
+ pTmpVideoGenlistItem =
+ elm_genlist_item_append(pGenlist,
+ g_pThumbnailView->pGenGridItc,
+ (void *) nIndex, NULL,
+ ELM_GENLIST_ITEM_NONE, NULL, NULL);
+
+ g_pThumbnailView->pVideoItemList =
+ eina_list_append(g_pThumbnailView->pVideoItemList,
+ pTmpVideoGenlistItem);
+ elm_object_item_del_cb_set(pTmpVideoGenlistItem,
+ __mp_thumbnail_view_video_item_del_cb);
+ }
+ }
+
+
+ MP_DEL_TIMER(g_pThumbnailView->pStartWallTimer);
+ g_pThumbnailView->nUpdateTimerCounter = 0;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+Evas_Object *__mp_thumbnail_view_get_icon_of_no_item_cb(const void
+ *pUserData,
+ Evas_Object *
+ pObject,
+ const char *pPart)
+{
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VIDEO_PLAYER_NO_ITEM_EDJ);
+ free(path);
+ if (!strcmp(pPart, "elm.icon")) {
+ int width = NO_ITEM_GENLIST_WIDTH * elm_config_scale_get();
+ int height = NO_ITEM_GENLIST_HEIGHT * elm_config_scale_get();
+
+ Evas_Object *pNoItemLayout = NULL;
+ pNoItemLayout = elm_layout_add(pObject);
+ elm_layout_file_set(pNoItemLayout, edj_path,
+ GENLIST_NOITEM_EDJ_GROUP);
+ evas_object_size_hint_min_set(pNoItemLayout, width, height);
+
+ elm_object_part_text_set(pNoItemLayout,
+ SWALLOW_LISTVIEW_NO_ITEM_TEXT,
+ VIDEOS_NOCONTENT_MSG_NO_VIDEOS_DESC);
+ evas_object_show(pNoItemLayout);
+ return pNoItemLayout;
+ }
+
+ return NULL;
+}
+
+
+/*//////////////////////////////////////////////////*/
+/* External APIs*/
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __mp_thumbnail_view_rotate_cb(void *data, Evas_Object * obj,
+ void *event_info)
+{
+ if (!g_pThumbnailView) {
+ VideoLogError("__mp_thumbnail_view_rotate_cb IS null");
+ return;
+ }
+ bool bLandscape = mp_rotate_ctrl_check_landspace_by_win((Evas_Object *)
+ mp_util_get_main_window_handle
+ ());
+ if (bLandscape) {
+ VideoLogInfo("landscape mode");
+ g_pThumbnailView->bLandscape = true;
+ } else {
+ g_pThumbnailView->bLandscape = false;
+ }
+ elm_genlist_clear(g_pThumbnailView->pVideosGenlist);
+ __mp_thumbnail_view_append_grid_layout
+ (g_pThumbnailView->pVideosGenlist);
+}
+
+/**
+ *
+ * @param data
+ * @param view
+ * @return
+ */
+int _grid_view_zoom_out(void *data, Evas_Object * view)
+{
+ st_VideoListViewMainViewWidget *ad =
+ (st_VideoListViewMainViewWidget *) data;
+
+ g_pThumbnailView->zoom_level = ad->zoom_level;
+ elm_genlist_clear(g_pThumbnailView->pVideosGenlist);
+ __mp_thumbnail_view_append_grid_layout
+ (g_pThumbnailView->pVideosGenlist);
+
+ return 0;
+}
+
+/**
+ *
+ * @param data
+ * @param view
+ * @return
+ */
+int _grid_view_zoom_in(void *data, Evas_Object * view)
+{
+ st_VideoListViewMainViewWidget *ad =
+ (st_VideoListViewMainViewWidget *) data;
+
+ g_pThumbnailView->zoom_level = ad->zoom_level;
+ elm_genlist_clear(g_pThumbnailView->pVideosGenlist);
+ __mp_thumbnail_view_append_grid_layout
+ (g_pThumbnailView->pVideosGenlist);
+
+ return 0;
+}
+
+/**
+ *
+ * @param pMainViewHandle
+ * @param pMainViewWidget
+ * @param eUpdateType
+ * @param pUpdateVideoListUserCb
+ * @return
+ */
+bool mp_thumbnail_view_arrange_list_item(void *pMainViewHandle,
+ void *pMainViewWidget,
+ MpListUpdateType eUpdateType,
+ UpdateListItemsCbFunc
+ pUpdateVideoListUserCb)
+{
+ VideoLogInfo("");
+
+ if (!pMainViewHandle || !pMainViewWidget || !pUpdateVideoListUserCb) {
+ VideoLogInfo("Main handles of list view are not existed.");
+ return FALSE;
+ }
+
+ if (eUpdateType == LIST_UPDATE_TYPE_NONE) {
+ VideoLogInfo("don't need to update and create");
+ return TRUE;
+ }
+
+ __mp_thumbnail_view_reset(eUpdateType);
+
+ if (!g_pThumbnailView) {
+ g_pThumbnailView =
+ (stThumbnailView *) calloc(1, sizeof(stThumbnailView));
+ if (g_pThumbnailView == NULL) {
+ return FALSE;
+ }
+ }
+
+ g_pThumbnailView->fViewCbFunc = pUpdateVideoListUserCb;
+ g_pThumbnailView->pMainHandle = pMainViewHandle;
+ g_pThumbnailView->pMainWidget = pMainViewWidget;
+ g_pThumbnailView->eUpdateType = eUpdateType;
+ g_pThumbnailView->zoom_level = VP_ZOOM_IN_DEFAULT;
+ g_pThumbnailView->bLandscape =
+ mp_rotate_ctrl_check_landspace_by_win((Evas_Object *)
+ mp_util_get_main_window_handle
+ ());
+
+ st_VideoListViewMainViewHandle *pMainHandle =
+ g_pThumbnailView->pMainHandle;
+ g_pThumbnailView->pVideosGenlist = pMainHandle->pVideosGenlist;
+
+ int nVideoListSize = 0;
+
+ if (g_pThumbnailView->eUpdateType == LIST_UPDATE_TYPE_ALL
+ || g_pThumbnailView->eUpdateType == LIST_UPDATE_TYPE_DATA) {
+ mp_util_svc_destory_video_list();
+ mp_util_svc_extract_video_list_by_item_type
+ (mp_sort_ctrl_get_sort_state(), mp_view_ctrl_get_list_type());
+ }
+
+ nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+
+ VideoLogInfo("nVideoListSize : %d", nVideoListSize);
+
+ if (nVideoListSize == 0) {
+ mp_ft_ctrl_destroy();
+ }
+
+
+ if (!g_pThumbnailView->pVideosGenlist) {
+ g_pThumbnailView->pVideosGenlist =
+ elm_genlist_add(g_pThumbnailView->
+ pMainWidget->pListViewBaselayout);
+ elm_scroller_bounce_set(g_pThumbnailView->pVideosGenlist,
+ EINA_FALSE, EINA_TRUE);
+ evas_object_size_hint_weight_set(g_pThumbnailView->pVideosGenlist,
+ EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(g_pThumbnailView->pVideosGenlist,
+ EVAS_HINT_FILL, EVAS_HINT_FILL);
+ elm_genlist_mode_set(g_pThumbnailView->pVideosGenlist,
+ ELM_LIST_COMPRESS);
+ elm_scroller_single_direction_set(g_pThumbnailView->pVideosGenlist,
+ ELM_SCROLLER_SINGLE_DIRECTION_HARD);
+ evas_object_show(g_pThumbnailView->
+ pMainWidget->pListViewBaselayout);
+ }
+
+ elm_object_part_content_set(g_pThumbnailView->
+ pMainWidget->pListViewBaselayout,
+ SWALLOW_LISTVIEW_CONTENT,
+ g_pThumbnailView->pVideosGenlist);
+ if (nVideoListSize > 0) {
+ if (g_pThumbnailView->pNocontentlayout) {
+ elm_object_part_content_unset
+ (g_pThumbnailView->pNocontentlayout,
+ SWALLOW_LISTVIEW_CONTENT);
+ MP_DEL_OBJ(g_pThumbnailView->pNocontentlayout);
+ }
+ _vp_pinch_add_event(g_pThumbnailView->pMainWidget,
+ g_pThumbnailView->
+ pMainWidget->pListViewBaselayout);
+ __mp_thumbnail_view_append_grid_layout
+ (g_pThumbnailView->pVideosGenlist);
+
+ } else {
+ g_pThumbnailView->pNocontentlayout =
+ mp_create_nocontent_layout(g_pThumbnailView->
+ pMainWidget->pListViewBaselayout,
+ VIDEOS_NOCONTENT_MSG_NO_VIDEOS_IDS,
+ VIDEOS_NOCONTENT_MSG_NO_VIDEOS_DESC_IDS);
+ elm_object_part_content_unset(g_pThumbnailView->
+ pMainWidget->pListViewBaselayout,
+ SWALLOW_LISTVIEW_CONTENT);
+ if (g_pThumbnailView->pVideosGenlist) {
+ evas_object_hide(g_pThumbnailView->pVideosGenlist);
+ }
+ evas_object_show(g_pThumbnailView->
+ pMainWidget->pListViewBaselayout);
+ elm_object_part_content_set(g_pThumbnailView->
+ pMainWidget->pListViewBaselayout,
+ SWALLOW_LISTVIEW_CONTENT,
+ g_pThumbnailView->pNocontentlayout);
+ }
+
+ evas_object_smart_callback_add((Evas_Object *)
+ mp_util_get_main_window_handle(),
+ "wm,rotation,changed",
+ __mp_thumbnail_view_rotate_cb, NULL);
+ mp_list_common_set_callabcks(g_pThumbnailView->pMainHandle,
+ __mp_thumbnail_view_language_changed_genlist_cb,
+ __mp_thumbnail_view_realize_genlist_item_cb,
+ NULL, NULL);
+
+ evas_object_show(g_pThumbnailView->pVideosGenlist);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @return
+ */
+int mp_thumbnail_view_get_selected_video_item_index(void)
+{
+ if (!g_pThumbnailView) {
+ VideoLogError("");
+ return 0;
+ }
+
+ VideoLogInfo("g_pThumbnailView->nSelectedVideoItem : %d",
+ g_pThumbnailView->nSelectedVideoItem);
+
+ return g_pThumbnailView->nSelectedVideoItem;
+}
+
+/**
+ *
+ * @param nVideoItemIndex
+ */
+static void __mp_thumbnail_view_update_video_items(int nVideoItemIndex)
+{
+ if (!g_pThumbnailView) {
+ VideoLogError("g_pMainViewHandleOfThumbnailList are not existed.");
+ return;
+ }
+
+ mp_util_svc_update_thumbnail_info(nVideoItemIndex);
+}
+
+/**
+ *
+ * @param nVideoItemIndex
+ */
+void mp_thumbnail_view_update_genlist_item(int nVideoItemIndex)
+{
+
+ if (!g_pThumbnailView || !g_pThumbnailView->pVideosGenlist) {
+ VideoSecureLogError("invalid handle.");
+ return;
+ }
+
+ if (!g_pThumbnailView->pVideoItemList) {
+ VideoSecureLogError
+ ("g_pThumbnailView->pVideosGenlist is not existed.");
+ return;
+ }
+
+ int nGenistIndex =
+ mp_thumbnail_view_thumbnail_to_genlist_index(nVideoItemIndex);
+ Elm_Object_Item *pTmpVideoGenlistItem =
+ (Elm_Object_Item *) eina_list_nth(g_pThumbnailView->pVideoItemList,
+ nGenistIndex);
+ if (pTmpVideoGenlistItem) {
+ VideoLogWarning("Update index: %d", nVideoItemIndex);
+ Evas_Object *gengrid =
+ elm_object_item_part_content_get(pTmpVideoGenlistItem,
+ "elm.icon");
+ if (gengrid) {
+ int nCount =
+ (mp_rotate_ctrl_check_landspace() ?
+ VP_GENLIST_THUMB_LANDSPACE_COUNT :
+ VP_GENLIST_THUMB_PORTRAIT_COUNT);
+ int nIndex = nVideoItemIndex % nCount;
+ Elm_Object_Item *updateItem =
+ elm_gengrid_first_item_get(gengrid);
+ while (nIndex > 0 && updateItem) {
+ updateItem = elm_gengrid_item_next_get(updateItem);
+ --nIndex;
+ }
+
+ VideoLogWarning("updateItem: %p", updateItem);
+ if (updateItem)
+ elm_gengrid_item_update(updateItem);
+ }
+ }
+}
+
+#ifdef ENABLE_LONGPRESS
+static void __mp_thumbnail_view_share_via_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ mp_option_ctrl_delete_handle();
+ if (!g_pThumbnailView) {
+ VideoLogError("g_pThumbnailView of list view is not existed.");
+ return;
+ }
+
+ int videoItemIndex = (int) pUserData;
+ char *pVideo_url = mp_util_svc_get_video_url(videoItemIndex);
+ bool bDRMLock = FALSE;
+#ifdef ENABLE_DRM_FEATURE
+ mp_util_check_drm_lock((const char *) pVideo_url, &bDRMLock);
+#endif
+ if (bDRMLock) {
+ MP_FREE_STRING(pVideo_url);
+ mp_util_notify_popup(NULL, VIDEOS_COMMON_HEADER_ERROR,
+ VIDEOS_NOTIPOP_MSG_UNABLE_TO_SHARE_DRM_FILE,
+ __mp_thumbnail_view_warning_popup_cb);
+ return;
+ }
+
+ mp_external_service_share_panel(pVideo_url);
+ MP_FREE_STRING(pVideo_url);
+}
+#endif
+
+/**
+ *
+ */
+void __mp_thumbnail_view_result_user_cb(void)
+{
+ if (!g_pThumbnailView) {
+ VideoLogError("");
+ return;
+ }
+ if (g_pThumbnailView->fViewCbFunc) {
+ g_pThumbnailView->fViewCbFunc(LIST_UPDATE_TYPE_ALL);
+ }
+}
+
+#ifdef ENABLE_LONGPRESS
+static void __mp_thumbnail_view_add_to_home_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ mp_option_ctrl_delete_handle();
+
+ if (!g_pThumbnailView) {
+ VideoLogInfo("g_pThumbnailView is not existed.");
+ return;
+ }
+
+ int nVideoItemIndex = (int) pUserData;
+
+ VideoLogInfo("nVideoItemIndex : %d", nVideoItemIndex);
+
+
+ char *pVideo_id = mp_util_svc_get_video_id_by_index(nVideoItemIndex);
+ char *pVideo_thumbnail =
+ mp_util_svc_get_video_thumbnail(nVideoItemIndex);
+
+ if (pVideo_id) {
+ {
+ mp_util_status_bar_noti_popup_show(MP_COM_OPT_UNABLE_ADDED);
+ }
+ } else {
+ VideoLogError("[ERR] No exist file uri.");
+ }
+ MP_FREE_STRING(pVideo_id);
+ MP_FREE_STRING(pVideo_thumbnail);
+
+}
+
+static void __mp_thumbnail_view_detail_video_popup_cb(void *pUserData,
+ Evas_Object *
+ pObject,
+ void *pEventInfo)
+{
+ VideoLogInfo("");
+
+ mp_util_delete_popup_handle();
+}
+
+static void __mp_thumbnail_view_detail_mouse_back_popup_cb(void
+ *pUserData,
+ Evas * pEvas,
+ Evas_Object *
+ pObject, void
+ *pEventInfo)
+{
+ Evas_Event_Mouse_Up *pEvent = pEventInfo;
+ if (!pEvent) {
+ return;
+ }
+ if (pEvent->button == 3) {
+ mp_util_delete_popup_handle();
+ }
+}
+#endif
+
+/**
+ *
+ * @param pUserData
+ * @param pEvas
+ * @param pObject
+ * @param pEventInfo
+ */
+void __mp_thumbnail_view_detail_key_back_popup_cb(void *pUserData,
+ Evas * pEvas,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ Evas_Event_Key_Down *pEvent = pEventInfo;
+ if (!pEvent) {
+ return;
+ }
+
+ if (!g_strcmp0(pEvent->keyname, "XF86Back")) {
+ mp_util_delete_popup_handle();
+ }
+}
+
+
+#ifdef ENABLE_LONGPRESS
+static void __mp_thumbnail_view_cloud_download_btn_cb(void *pUserData,
+ Evas_Object *
+ pObject,
+ void *pEventInfo)
+{
+ VideoLogInfo("");
+
+}
+
+static void __mp_thumbnail_view_respones_delete_popup_cb(void *pUserData,
+ Evas_Object *
+ pObject,
+ void *pEventInfo)
+{
+ if (!g_pThumbnailView) {
+ VideoLogError("");
+ return;
+ }
+
+ mp_util_delete_popup_handle();
+
+ int nVideoItemIndex = (int) pUserData;
+
+ VideoLogInfo("nVideoItemIndex : %d", nVideoItemIndex);
+
+ if (nVideoItemIndex < 0
+ || nVideoItemIndex >=
+ mp_util_svc_get_video_list_size_for_checking_index()) {
+ VideoLogInfo("[ERR] list item index.");
+ return;
+ }
+
+ char *szFileUrl = mp_util_svc_get_video_url(nVideoItemIndex);
+ if (szFileUrl) {
+ char *szMediaUrlForPreview = mp_util_config_get_preview();
+ if (szMediaUrlForPreview) {
+ if (!g_strcmp0(szMediaUrlForPreview, szFileUrl)) {
+ VideoLogInfo("Erase preview url.");
+ mp_util_config_set_preview(NULL);
+ }
+ }
+ MP_FREE_STRING(szMediaUrlForPreview);
+ VideoLogInfo("Delete file url : %s", szFileUrl);
+ vp_file_unlink(szFileUrl);
+ free(szFileUrl);
+ szFileUrl = NULL;
+ char *pVideoId = NULL;
+ pVideoId = mp_util_svc_get_video_id_by_index(nVideoItemIndex);
+ __mp_thumbnail_view_free_video_wall_item(pVideoId);
+ MP_FREE_STRING(pVideoId);
+ mp_util_svc_remove_item_by_list_index(nVideoItemIndex);
+
+ mp_list_view_update_count_layout();
+
+ if (g_pThumbnailView->fViewCbFunc) {
+ g_pThumbnailView->fViewCbFunc(LIST_UPDATE_TYPE_VIEW);
+ }
+
+ }
+
+}
+
+static void __mp_thumbnail_view_pop_up_delete_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ mp_option_ctrl_delete_handle();
+
+ if (!g_pThumbnailView) {
+ VideoLogError("g_pThumbnailView of list view are not existed.");
+ return;
+ }
+ int nVideoItemIndex = (int) pUserData;
+ mp_util_remove_question_popup(nVideoItemIndex,
+ (MpListViewAsType) 0,
+ __mp_thumbnail_view_respones_delete_popup_cb,
+ __mp_thumbnail_view_detail_video_popup_cb,
+ __mp_thumbnail_view_detail_mouse_back_popup_cb,
+ __mp_thumbnail_view_detail_key_back_popup_cb);
+
+}
+
+static void __mp_thumbnail_view_result_pop_up(void *pUserData)
+{
+ if (!pUserData) {
+ VideoLogError("Invalid list and object");
+ return;
+ }
+ Evas_Object *pGrid = (Evas_Object *) pUserData;
+ evas_object_data_set(pGrid, "popup", NULL);
+ elm_object_scroll_freeze_pop(pGrid);
+}
+#endif
+
+/**
+ *
+ * @return
+ */
+static bool __mp_thumbnail_view_normal_is_top_view(void)
+{
+ VideoLogInfo("");
+
+ if (!g_pThumbnailView) {
+ VideoLogError("g_pThumbnailView is NULL");
+ return FALSE;
+ }
+ if (!g_pThumbnailView->pMainHandle->pNaviFrameHandle) {
+ VideoLogInfo("[ERR] No exist naviframe handle.");
+ return FALSE;
+ }
+ if (mp_mgr_get_library_naviframe()) {
+ int count =
+ eina_list_count(elm_naviframe_items_get
+ (mp_mgr_get_library_naviframe()));
+ return (count == 1);
+ }
+ return FALSE;
+}
+
+/**
+ *
+ * @param nError
+ * @param szPath
+ * @param pUserData
+ */
+static void __mp_thumbnail_view_update_cb(int nError, const char *szPath,
+ void *pUserData)
+{
+ int nVideoItemIndex = (int) pUserData;
+
+ VideoLogInfo("nVideoItemIndex : %d", nVideoItemIndex);
+
+ if (!g_pThumbnailView) {
+ VideoLogError("g_pMainViewHandleOfThumbnailView is not existed.");
+ return;
+ }
+
+ if (!g_pThumbnailView) {
+ VideoLogError("g_pMainViewWidgetOfThumbnailView is not existed.");
+ return;
+ }
+
+ if (!__mp_thumbnail_view_normal_is_top_view()) {
+ VideoLogError("Main list view is not top view.");
+ return;
+ }
+
+ if (nVideoItemIndex < 0
+ || nVideoItemIndex >=
+ mp_util_svc_get_video_list_size_for_checking_index()) {
+ VideoSecureLogError("nVideoItemIndex is invalid = %d",
+ nVideoItemIndex);
+ return;
+ }
+
+ __mp_thumbnail_view_update_video_items(nVideoItemIndex);
+
+
+ if (g_pThumbnailView->pVideosGenlist) {
+ mp_thumbnail_view_update_genlist_item(nVideoItemIndex);
+ } else {
+ VideoLogError
+ ("[ERR] No exist g_pMainViewWidgetOfNormalList->pVideolistItemList.");
+ }
+}
+
+/**
+ *
+ * @param nError
+ * @param szPath
+ * @param pUserData
+ */
+static void __mp_thumbnail_view_update_empty_cb(int nError,
+ const char *szPath,
+ void *pUserData)
+{
+ int nVideoItemIndex = (int) pUserData;
+
+ VideoLogInfo("nVideoItemIndex : %d", nVideoItemIndex);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_thumbnail_view_realize_genlist_item_cb(void *pUserData,
+ Evas_Object *
+ pObject,
+ void *pEventInfo)
+{
+ if (!pEventInfo || !g_pThumbnailView) {
+ VideoLogError
+ ("invalid pEveninfo 0r g_pMainViewWidgetOfThumbnailList");
+ return;
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_thumbnail_view_language_changed_genlist_cb(void
+ *pUserData,
+ Evas_Object *
+ pObject, void
+ *pEventInfo)
+{
+ VideoLogInfo("");
+ if (!pObject) {
+ VideoLogError("pObject is NULL");
+ return;
+ }
+ elm_genlist_realized_items_update(pObject);
+}
+
+/**
+ *
+ */
+void mp_thumbnail_view_change_language(void)
+{
+ if (!g_pThumbnailView) {
+ VideoLogError("No existed handle of thumbnail view.");
+ return;
+ }
+
+ VideoLogInfo("");
+}
+
+#ifdef ENABLE_LONGPRESS
+static void __mp_thumbnail_view_gengrid_long_press_cb(void *pUserData,
+ Evas_Object *
+ pObject,
+ void *pEventInfo)
+{
+ if (!g_pThumbnailView) {
+ VideoLogError("");
+ return;
+ }
+
+ if (!pEventInfo) {
+ VideoLogError("pEventInfo is not existed.");
+ return;
+ }
+
+ int nVideoItemIndex =
+ (int) elm_object_item_data_get((Elm_Object_Item *) pEventInfo);
+ VideoLogInfo("Select nVideoItemIndex: %d", nVideoItemIndex);
+ if (nVideoItemIndex < 0
+ || nVideoItemIndex >=
+ mp_util_svc_get_video_list_size_for_checking_index()) {
+ VideoSecureLogError("nVideoItemIndex is invalid = %d",
+ nVideoItemIndex);
+ return;
+ }
+
+ st_RegisteOptionCbFunc *pRegisteCbFunc =
+ (st_RegisteOptionCbFunc *) calloc(1,
+ sizeof(st_RegisteOptionCbFunc));
+ if (pRegisteCbFunc) {
+ pRegisteCbFunc->ShareViaItemCb =
+ (void *) __mp_thumbnail_view_share_via_cb;
+ pRegisteCbFunc->AddToHomeItemCb =
+ (void *) __mp_thumbnail_view_add_to_home_cb;
+ pRegisteCbFunc->DeleteItemCb =
+ (void *) __mp_thumbnail_view_pop_up_delete_cb;
+ pRegisteCbFunc->DownloadCb =
+ (void *) __mp_thumbnail_view_cloud_download_btn_cb;
+ }
+
+ char *title = mp_util_svc_get_video_title(nVideoItemIndex);
+
+ mp_option_ctrl_show(g_pThumbnailView->pMainHandle->pNaviFrameHandle,
+ (const char *) title, nVideoItemIndex,
+ pRegisteCbFunc, __mp_thumbnail_view_result_pop_up,
+ g_pThumbnailView->pVideosGenlist,
+ MP_LIST_OPTION_CLOUD_DOWNLOAD_ITEM);
+ if (mp_option_ctrl_get_handle()) {
+ evas_object_data_set(g_pThumbnailView->pVideosGenlist, "popup",
+ mp_option_ctrl_get_handle());
+ elm_object_scroll_freeze_push(g_pThumbnailView->pVideosGenlist);
+ }
+ MP_FREE_STRING(pRegisteCbFunc);
+ MP_FREE_STRING(title);
+}
+#endif
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_thumbnail_view_gengrid_realize_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+
+ if (!pEventInfo) {
+ VideoLogError("pEventInfo is not existed.");
+ return;
+ }
+
+ vp_share_view_update_share_panel();
+
+ int nVideoItemIndex =
+ (int) elm_object_item_data_get((Elm_Object_Item *) pEventInfo);
+ VideoLogInfo("Select nVideoItemIndex: %d", nVideoItemIndex);
+ if (nVideoItemIndex < 0
+ || nVideoItemIndex >=
+ mp_util_svc_get_video_list_size_for_checking_index()) {
+ VideoSecureLogError("nVideoItemIndex is invalid = %d",
+ nVideoItemIndex);
+ return;
+ }
+
+ int nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+ char *pThumbIconUri = mp_util_svc_get_video_thumbnail(nVideoItemIndex);
+ VideoSecureLogInfo("pThumbIconUri = %s:%d", pThumbIconUri,
+ nVideoItemIndex);
+ if (!pThumbIconUri) {
+ if (nVideoItemIndex < nVideoListSize - 1) {
+ mp_util_svc_register_thumbnail_update_func(nVideoItemIndex,
+ __mp_thumbnail_view_update_empty_cb,
+ (void *)
+ nVideoItemIndex);
+ } else {
+ mp_util_svc_register_thumbnail_update_func(nVideoItemIndex,
+ (void *)
+ __mp_thumbnail_view_update_cb,
+ (void *)
+ nVideoItemIndex);
+ }
+ } else {
+ free(pThumbIconUri);
+ pThumbIconUri = NULL;
+ }
+}
+
+/**
+ *
+ * @param parent
+ * @param nWidth
+ * @param nHeight
+ * @return
+ */
+static Evas_Object *__mp_thumbnail_view_create_gengrid(Evas_Object *
+ parent, int nWidth,
+ int nHeight)
+{
+ Evas_Object *pGengrid =
+ mp_util_create_gengrid(parent, nWidth, nHeight, EINA_TRUE);
+ if (!pGengrid) {
+ VideoLogError("pVideoGrid is not existed.");
+ return NULL;
+ }
+#ifdef ENABLE_LONGPRESS
+ evas_object_smart_callback_add(pGengrid, "longpressed",
+ __mp_thumbnail_view_gengrid_long_press_cb,
+ NULL);
+#endif
+ evas_object_smart_callback_add(pGengrid, "realized",
+ __mp_thumbnail_view_gengrid_realize_cb,
+ NULL);
+
+ return pGengrid;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+static char *__mp_thumbnail_view_get_label_of_grid_item_cb(const void
+ *pUserData,
+ Evas_Object *
+ pObject,
+ const char
+ *pPart)
+{
+ int nVideoItemIndex = (int) pUserData;
+
+ if (!strcmp(pPart, "elm.text")) {
+ char *szTitle;
+ szTitle = mp_util_svc_get_video_title(nVideoItemIndex);
+ char *szTitleUtf8 = elm_entry_utf8_to_markup(szTitle);
+
+ if (szTitle) {
+ free(szTitle);
+ szTitle = NULL;
+ }
+
+ return szTitleUtf8;
+ } else if (!strcmp(pPart, "elm.text.2")) {
+ return mp_util_svc_get_duration_str_time(nVideoItemIndex);
+ } else {
+ }
+
+ return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+static Evas_Object *__mp_thumbnail_view_get_grid_icon_cb(const void
+ *pUserData,
+ Evas_Object *
+ pObject,
+ const char
+ *pPart)
+{
+ int nVideoItemIndex = (int) pUserData;
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VIDEO_PLAYER_IMAGE_NAME_EDJ);
+ free(path);
+ if (!strcmp(pPart, "elm.swallow.icon")) {
+ char *pThumbIconUri =
+ mp_util_svc_get_video_thumbnail(nVideoItemIndex);
+ Evas_Object *thumb = NULL;
+ int nWidth = 0;
+ int nHeight = 0;
+
+ thumb = elm_image_add(pObject);
+ elm_image_preload_disabled_set(thumb, EINA_FALSE);
+ elm_image_smooth_set(thumb, EINA_FALSE);
+ elm_image_prescale_set(thumb, 50 * MP_SCALE);
+ elm_image_file_set(thumb, pThumbIconUri, NULL);
+ elm_image_object_size_get(thumb, &nWidth, &nHeight);
+ if (nWidth > nHeight) {
+ elm_image_aspect_fixed_set(thumb, EINA_FALSE);
+ }
+ if (thumb)
+ evas_object_show(thumb);
+ MP_FREE_STRING(pThumbIconUri);
+ return thumb;
+ } else if (!strcmp(pPart, "elm.progressbar.icon")) {
+ return NULL;
+
+ } else if (!strcmp(pPart, "elm.lock.icon")) {
+ char *pVideoFile = mp_util_svc_get_video_url(nVideoItemIndex);
+ bool bRet = mp_util_check_video_personal_status((const char *)
+ pVideoFile);
+ MP_FREE_STRING(pVideoFile);
+ if (bRet) {
+ Evas_Object *pLockIcon = elm_image_add(pObject);
+ elm_image_file_set(pLockIcon, edj_path,
+ VIDEO_LIST_VIEW_ICON_PERSONAL_LOCK);
+ evas_object_size_hint_align_set(pLockIcon, EVAS_HINT_FILL,
+ EVAS_HINT_FILL);
+ evas_object_size_hint_weight_set(pLockIcon, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_show(pLockIcon);
+ return pLockIcon;
+ } else {
+ return NULL;
+ }
+ } else if (!strcmp(pPart, "elm.dropbox.icon")) {
+ bool bRet = mp_util_svc_is_cloud_storage(nVideoItemIndex);
+ if (bRet) {
+ Evas_Object *pDropboxIcon = elm_image_add(pObject);
+ elm_image_file_set(pDropboxIcon, edj_path,
+ VIDEO_LIST_VIEW_ICON_DROPBOX);
+ evas_object_size_hint_align_set(pDropboxIcon, EVAS_HINT_FILL,
+ EVAS_HINT_FILL);
+ evas_object_size_hint_weight_set(pDropboxIcon,
+ EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_show(pDropboxIcon);
+ return pDropboxIcon;
+ } else {
+ return NULL;
+ }
+ }
+
+ return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_thumbnail_view_select_grid_item_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ if (!g_pThumbnailView) {
+ VideoLogError("");
+ return;
+ }
+
+ if (!pObject) {
+ VideoLogInfo("[ERR]No have pUserData");
+ return;
+ }
+ Evas_Object *pPopup = evas_object_data_get(g_pThumbnailView->pVideosGenlist, "popup"); /* Get popup */
+ if (pPopup) {
+ VideoLogInfo("long press is called");
+ return; /* If popup exists, do nothing */
+ }
+
+ if (!mp_util_call_off()) {
+ mp_util_ticker_toast_popup
+ (VIDEOS_NOTIPOP_MSG_UNABLE_TO_PLAY_VIDEO_DURING_CALL, false,
+ false);
+ return;
+ }
+
+ if (!mp_launch_video_allow_check()) {
+ return;
+ }
+
+ int nVideoItemIndex = (int) pUserData;
+ int nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+
+ VideoLogDebug("nVideoItemIndex = %d--%d", nVideoItemIndex,
+ nVideoListSize);
+
+ if (nVideoItemIndex < 0 || nVideoItemIndex >= nVideoListSize) {
+ VideoLogError("nVideoItemIndex < 0 ===>>> RETURN");
+ return;
+ }
+
+ VideoLogInfo("nVideoItemIndex : %d", nVideoItemIndex);
+
+ g_pThumbnailView->nSelectedVideoItem = nVideoItemIndex;
+
+ MP_DEL_IDLER(g_pThumbnailView->pPlayIdler);
+ g_pThumbnailView->pPlayIdler =
+ ecore_idler_add(__mp_thumbnail_view_play_video_idler_cb,
+ (void *) nVideoItemIndex);
+}
+
+/**
+ *
+ * @param pUserdata
+ * @param obj
+ * @param event_info
+ */
+static void __mp_thumbnail_view_grid_item_del_cb(void *pUserdata,
+ Evas_Object * obj,
+ void *event_info)
+{
+ if (!g_pThumbnailView || !event_info
+ || !g_pThumbnailView->pVideoItemList) {
+ VideoLogError("g_pMainViewWidge is NULL");
+ return;
+ }
+}
+
+/**
+ *
+ * @param pGengrid
+ * @param nGenItemIndex
+ */
+static void __mp_thumbnail_view_append_gengrid_items(Evas_Object *
+ pGengrid,
+ int nGenItemIndex)
+{
+ if (!g_pThumbnailView) {
+ VideoLogError("");
+ return;
+ }
+
+ MP_DEL_GRID_ITC(g_pThumbnailView->pGenGridItc_l);
+ g_pThumbnailView->pGenGridItc_l = elm_gengrid_item_class_new();
+
+ g_pThumbnailView->pGenGridItc_l->item_style = "video/album_grid";
+ g_pThumbnailView->pGenGridItc_l->func.text_get =
+ (void *) __mp_thumbnail_view_get_label_of_grid_item_cb;
+ g_pThumbnailView->pGenGridItc_l->func.content_get =
+ (void *) __mp_thumbnail_view_get_grid_icon_cb;
+ g_pThumbnailView->pGenGridItc_l->func.state_get = NULL;
+ g_pThumbnailView->pGenGridItc_l->func.del = NULL;
+
+
+ int nCount =
+ (mp_rotate_ctrl_check_landspace() ?
+ mp_thumbnail_get_landscape_count() :
+ mp_thumbnail_get_portrait_count());
+ int nIndex = nGenItemIndex * nCount;
+ int nMaxIndex = nIndex + nCount;
+ int nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+ Elm_Object_Item *gridItem = NULL;
+ for (; (nIndex < nMaxIndex) && (nIndex < nVideoListSize); nIndex++) {
+ gridItem =
+ elm_gengrid_item_append(pGengrid,
+ g_pThumbnailView->pGenGridItc_l,
+ (void *) nIndex,
+ __mp_thumbnail_view_select_grid_item_cb,
+ (void *) nIndex);
+ elm_gengrid_item_select_mode_set(gridItem,
+ ELM_OBJECT_SELECT_MODE_ALWAYS);
+ elm_object_item_del_cb_set(gridItem,
+ __mp_thumbnail_view_grid_item_del_cb);
+ elm_object_item_data_set(gridItem, (void *) nIndex);
+ }
+}
+
+/**
+ *
+ */
+static void __mp_thumbnail_view_free_genlist_item_list(void)
+{
+ if (!g_pThumbnailView) {
+ VideoLogError("");
+ return;
+ }
+
+ if (g_pThumbnailView->pVideoItemList) {
+ Elm_Object_Item *pTmpVideoGenlistItem = NULL;
+ EINA_LIST_FREE(g_pThumbnailView->pVideoItemList,
+ pTmpVideoGenlistItem) {
+ if (pTmpVideoGenlistItem) {
+ int nIndex =
+ (int) elm_object_item_data_get(pTmpVideoGenlistItem);
+ mp_thumbnail_view_cancel_thumbnail_update(nIndex);
+ elm_object_item_del(pTmpVideoGenlistItem);
+ }
+
+ pTmpVideoGenlistItem = NULL;
+ }
+
+ g_pThumbnailView->pVideoItemList = NULL;
+ }
+
+}
+
+/**
+ *
+ */
+void mp_thumbnail_view_destroy(void)
+{
+ VideoLogInfo("");
+
+ if (g_pThumbnailView) {
+ __mp_thumbnail_view_free_genlist_item_list();
+
+ MP_DEL_ITC(g_pThumbnailView->pGenGridItc);
+ MP_DEL_ITC(g_pThumbnailView->pGenGridZoomItc);
+ MP_DEL_IDLER(g_pThumbnailView->pPlayIdler);
+ MP_DEL_TIMER(g_pThumbnailView->pStartWallTimer);
+ MP_DEL_IDLER(g_pThumbnailView->pWallResolutionIdler);
+ MP_DEL_GRID_ITC(g_pThumbnailView->pGenGridItc_l);
+ MP_DEL_GRID_ITC(g_pThumbnailView->pGenGridItc_r);
+ MP_DEL_OBJ(g_pThumbnailView->pVideosGenlist);
+
+ free(g_pThumbnailView);
+ g_pThumbnailView = NULL;
+ evas_object_smart_callback_del((Evas_Object *)
+ mp_util_get_main_window_handle(),
+ "wm,rotation,changed",
+ __mp_thumbnail_view_rotate_cb);
+ }
+}
+
+/**
+ *
+ * @param eUpdateType
+ */
+static void __mp_thumbnail_view_reset(MpListUpdateType eUpdateType)
+{
+ if (g_pThumbnailView) {
+ __mp_thumbnail_view_free_genlist_item_list();
+
+ MP_DEL_ITC(g_pThumbnailView->pGenGridItc);
+ MP_DEL_ITC(g_pThumbnailView->pGenGridZoomItc);
+ MP_DEL_IDLER(g_pThumbnailView->pPlayIdler);
+ MP_DEL_TIMER(g_pThumbnailView->pStartWallTimer);
+ MP_DEL_IDLER(g_pThumbnailView->pWallResolutionIdler);
+
+ MP_DEL_GRID_ITC(g_pThumbnailView->pGenGridItc_l);
+ MP_DEL_GRID_ITC(g_pThumbnailView->pGenGridItc_r);
+
+ g_pThumbnailView->fViewCbFunc = NULL;
+ g_pThumbnailView->pMainHandle = NULL;
+ g_pThumbnailView->pMainWidget = NULL;
+ g_pThumbnailView->nSelectedVideoItem = 0;
+ g_pThumbnailView->nUpdateTimerCounter = 0;
+ g_pThumbnailView->pVideosGenlist = NULL;
+ g_pThumbnailView->eUpdateType = LIST_UPDATE_TYPE_NONE;
+ if (g_pThumbnailView->pVideosGenlist) {
+ elm_genlist_clear(g_pThumbnailView->pVideosGenlist);
+ }
+ evas_object_smart_callback_del((Evas_Object *)
+ mp_util_get_main_window_handle(),
+ "wm,rotation,changed",
+ __mp_thumbnail_view_rotate_cb);
+ }
+
+}
+
+/**
+ *
+ */
+void mp_thumbnail_view_update_played_item(void)
+{
+ if (!g_pThumbnailView || (g_pThumbnailView->nSelectedVideoItem < 0)) {
+ VideoLogInfo("No item to update.");
+ return;
+ }
+ VideoLogInfo("%d", g_pThumbnailView->nSelectedVideoItem);
+
+ if (g_pThumbnailView->pVideosGenlist) {
+ int nGenItemIndex = g_pThumbnailView->nSelectedVideoItem;
+
+ int nGenlistIndex = nGenItemIndex;
+ g_pThumbnailView->bLandscape =
+ mp_rotate_ctrl_check_landspace_by_win((Evas_Object *)
+ mp_util_get_main_window_handle
+ ());
+ if (g_pThumbnailView->bLandscape) {
+ nGenlistIndex =
+ nGenlistIndex / mp_thumbnail_get_landscape_count();
+ } else {
+ nGenlistIndex =
+ nGenlistIndex / mp_thumbnail_get_portrait_count();
+ }
+ Elm_Object_Item *pTmpVideoGenlistItem = NULL;
+ pTmpVideoGenlistItem =
+ elm_genlist_nth_item_get((const Evas_Object *)
+ g_pThumbnailView->pVideosGenlist,
+ nGenlistIndex);
+ mp_util_svc_update_thumbnail_info
+ (g_pThumbnailView->nSelectedVideoItem);
+
+ Evas_Object *pGengrid =
+ elm_object_item_part_content_get(pTmpVideoGenlistItem,
+ "elm.icon");
+ Elm_Object_Item *pTmpVideoGengridItem = NULL;
+ pTmpVideoGengridItem = elm_gengrid_selected_item_get(pGengrid);
+ elm_gengrid_item_update(pTmpVideoGengridItem);
+ }
+}
+
+/**
+ *
+ */
+void mp_thumbnail_view_update_video_list(void)
+{
+ if (!g_pThumbnailView || !g_pThumbnailView->pVideosGenlist) {
+ VideoLogWarning
+ ("[ERR] pVideosGenlist or g_pMainViewWidget are NULL.");
+ return;
+ }
+
+ VideoLogInfo("");
+
+ Elm_Object_Item *pNextGenlistItem = NULL;
+ Elm_Object_Item *pCurrGenlistItem =
+ elm_genlist_first_item_get(g_pThumbnailView->pVideosGenlist);
+
+ while (pCurrGenlistItem) {
+ elm_genlist_item_update(pCurrGenlistItem);
+ pNextGenlistItem = elm_genlist_item_next_get(pCurrGenlistItem);
+ pCurrGenlistItem = pNextGenlistItem;
+ }
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#include <Eina.h>
+#include <Ecore_Evas.h>
+#include <Elementary.h>
+#include <glib.h>
+#include <stdbool.h>
+
+#include "mp-util.h"
+#include "mp-video-log.h"
+#include "mp-video-string-define.h"
+#include "mp-video-value-define.h"
+#include "mp-video-list-sort-ctrl.h"
+#include "mp-util-media-service.h"
+#include "mp-video-search-view.h"
+#include "mp-video-view-popup-ctrl.h"
+#include "mp-launching-video-displayer.h"
+#include "mp-util-widget-ctrl.h"
+#include "mp-video-util-db-controller.h"
+#include "mp-video-list-view-as-ctrl.h"
+#include "mp-video-list-option-ctrl.h"
+#include "mp-video-rename-ctrl.h"
+#include "mp-video-info-ctrl.h"
+#include "vp-util.h"
+#include "vp-file-util.h"
+#include "mp-external-ug.h"
+#include "mp-video-nocontent-layout.h"
+#include "mp-rotate-ctrl.h"
+
+#define DEF_BUF_STR_LEN 512
+#define DEF_BUF_STR_LEN_MAX 4096
+#define SEARCH_CHAR_LEN (VIDEO_FILE_SEARCH_CHAR_LEN_MAX*4+1)
+
+#define PREEDIT_START "<preedit>"
+#define PREEDIT_END "</preedit>"
+
+typedef struct {
+ void *pNaviFrameHandle;
+ void *pNaviFrameItem;
+ void *pVideosGenlist;
+
+ char szSearchWord[SEARCH_CHAR_LEN];
+ char *szMediaUrl;
+ Eina_List *SearchedIndexList;
+ int nPlayVideoIndex;
+ bool bShowNormalLayout;
+ MpDbUpdateViewLev euLev;
+ bool bUpdateList;
+ char *pFolderPath;
+ int nViewType;
+ bool isViewActive;
+
+ ListViewUpdateListItemCbFunc pChangeViewUserCbFunc;
+ ViewUpdateListItemCbFunc pChangeViewUpdateFunc;
+} st_VideoSearchViewHandle;
+
+typedef struct {
+ //Evas_Object *pDimminglayout;
+ Evas_Object *pSearchViewBaselayout;
+ Evas_Object *pSearchBarlayout;
+ Evas_Object *pSearchBarEntry;
+ Evas_Object *pCancelButton;
+ Evas_Object *pClearButton;
+ Evas_Object *pNocontentsLayout;
+} st_VideoSearchViewWidget;
+
+
+st_VideoSearchViewHandle *g_pSearchViewHandle = NULL;
+st_VideoSearchViewWidget *g_pSearchViewWidget = NULL;
+
+
+Elm_Genlist_Item_Class VideoSearch_Itc;
+
+
+
+// Pre-define function for building.
+static void __mp_search_view_naviframe_transition_effect_cb(void
+ *pUserData,
+ Evas_Object *
+ pObject,
+ void
+ *pEventInfo);
+static void __mp_search_view_append_video_items(void *pVideosGenlist,
+ bool bSearchedView);
+static int __mp_search_view_get_sort_type(void);
+static void __mp_search_view_arrange_video_list(int nItemSortType,
+ void *pVideosGenlist);
+static void __mp_search_view_base_layout_del_cb(void *data, Evas * e,
+ Evas_Object * obj,
+ void *event_info);
+static void __mp_search_view_pop(void *pNaviFrame);
+static void __mp_search_view_db_changed_cb(void *pUserData);
+static void __mp_search_view_reset(void);
+static void __mp_search_view_update_video_items(Evas_Object * pGenlist,
+ int nGenItemIndex,
+ int nPlayVideoIndex);
+
+/**
+ *
+ */
+static void __mp_search_view_reset(void)
+{
+ if (g_pSearchViewHandle) {
+ mp_util_db_set_update_fun(g_pSearchViewHandle->euLev, NULL);
+ g_pSearchViewHandle->nPlayVideoIndex = -1;
+ evas_object_smart_callback_del(g_pSearchViewHandle->
+ pNaviFrameHandle,
+ "transition,finished",
+ __mp_search_view_naviframe_transition_effect_cb);
+
+ MP_DEL_OBJ(g_pSearchViewHandle->pVideosGenlist);
+
+ MP_FREE_STRING(g_pSearchViewHandle->szMediaUrl);
+ MP_FREE_STRING(g_pSearchViewHandle->pFolderPath);
+
+ if (g_pSearchViewHandle->SearchedIndexList) {
+ eina_list_free(g_pSearchViewHandle->SearchedIndexList);
+ g_pSearchViewHandle->SearchedIndexList = NULL;
+ }
+ g_pSearchViewHandle->pNaviFrameHandle = NULL;
+ g_pSearchViewHandle->pNaviFrameItem = NULL;
+ g_pSearchViewHandle->pChangeViewUserCbFunc = NULL;
+ g_pSearchViewHandle->pChangeViewUpdateFunc = NULL;
+
+ free(g_pSearchViewHandle);
+ g_pSearchViewHandle = NULL;
+ }
+
+ if (g_pSearchViewWidget) {
+
+ g_pSearchViewWidget->pSearchViewBaselayout = NULL;
+
+ g_pSearchViewWidget->pSearchBarlayout = NULL;
+
+ g_pSearchViewWidget->pSearchBarEntry = NULL;
+
+ g_pSearchViewWidget->pCancelButton = NULL;
+
+ g_pSearchViewWidget->pNocontentsLayout = NULL;
+
+
+ free(g_pSearchViewWidget);
+ g_pSearchViewWidget = NULL;
+ }
+
+}
+
+/**
+ *
+ */
+void mp_search_view_destroy(void)
+{
+
+ if (g_pSearchViewHandle) {
+ mp_util_db_set_update_fun(g_pSearchViewHandle->euLev, NULL);
+ mp_util_db_set_backup_fun(g_pSearchViewHandle->euLev, NULL);
+ g_pSearchViewHandle->nPlayVideoIndex = -1;
+ evas_object_smart_callback_del(g_pSearchViewHandle->
+ pNaviFrameHandle,
+ "transition,finished",
+ __mp_search_view_naviframe_transition_effect_cb);
+
+ MP_DEL_OBJ(g_pSearchViewHandle->pVideosGenlist);
+ MP_FREE_STRING(g_pSearchViewHandle->szMediaUrl);
+ MP_FREE_STRING(g_pSearchViewHandle->pFolderPath);
+
+ if (g_pSearchViewHandle->SearchedIndexList) {
+ eina_list_free(g_pSearchViewHandle->SearchedIndexList);
+ g_pSearchViewHandle->SearchedIndexList = NULL;
+ }
+
+ free(g_pSearchViewHandle);
+ g_pSearchViewHandle = NULL;
+ }
+
+ if (g_pSearchViewWidget) {
+
+ MP_DEL_OBJ(g_pSearchViewWidget->pCancelButton);
+ MP_DEL_OBJ(g_pSearchViewWidget->pSearchBarEntry);
+ MP_DEL_OBJ(g_pSearchViewWidget->pSearchBarlayout);
+ MP_DEL_OBJ(g_pSearchViewWidget->pNocontentsLayout);
+
+ if (g_pSearchViewWidget->pSearchViewBaselayout != NULL) {
+ evas_object_event_callback_del(g_pSearchViewWidget->
+ pSearchViewBaselayout,
+ EVAS_CALLBACK_DEL,
+ __mp_search_view_base_layout_del_cb);
+ MP_DEL_OBJ(g_pSearchViewWidget->pSearchViewBaselayout);
+ }
+
+ free(g_pSearchViewWidget);
+ g_pSearchViewWidget = NULL;
+ }
+}
+
+/**
+ *
+ * @param szOriginStr
+ * @param szSearchWord
+ * @param bResult
+ * @return
+ */
+char *mp_search_view_search_markup_keyword(char *szOriginStr,
+ char *szSearchWord,
+ bool * bResult)
+{
+ if (!szOriginStr) {
+ VideoLogError("[ERR] szOriginStr is NULL.");
+ return NULL;
+ }
+
+ if (!szSearchWord) {
+ VideoLogError("[ERR] szSearchWord is NULL.");
+ return NULL;
+ }
+
+ if (!bResult) {
+ VideoLogError("[ERR] bResult is NULL.");
+ return NULL;
+ }
+
+ char szStr[DEF_BUF_STR_LEN + 1] = { 0, };
+ static char szTargetStr[DEF_BUF_STR_LEN + 1] = { 0, };
+ int nWordLength = 0;
+ int nSearchLength = 0;
+ int nCounter = 0;
+ bool bFound = FALSE;
+ gchar *szMarkupTextStart = NULL;
+ gchar *szMarkupTextEnd = NULL;
+ gchar *szMarkupText = NULL;
+ int r = 222;
+ int g = 111;
+ int b = 31;
+ int a = 255;
+
+ *bResult = TRUE;
+
+ if (g_utf8_validate(szOriginStr, -1, NULL)) {
+ strncpy(szStr, szOriginStr, DEF_BUF_STR_LEN);
+
+ nWordLength = strlen(szStr);
+ nSearchLength = strlen(szSearchWord);
+
+ for (nCounter = 0; nCounter < nWordLength; nCounter++) {
+ if (!strncasecmp
+ (szSearchWord, &szStr[nCounter], nSearchLength)) {
+ bFound = TRUE;
+ break;
+ }
+ }
+
+ *bResult = bFound;
+ memset(szTargetStr, 0x00, DEF_BUF_STR_LEN + 1);
+
+ if (bFound) {
+ if (nCounter == 0) {
+ szMarkupText =
+ g_markup_escape_text(&szStr[0], nSearchLength);
+ szMarkupTextEnd =
+ g_markup_escape_text(&szStr[nSearchLength],
+ nWordLength - nSearchLength);
+
+ if (!szMarkupText && !szMarkupTextEnd) {
+ VideoLogInfo
+ ("szMarkupText and szMarkupTextEnd are NULL.");
+ return NULL;
+ }
+
+ snprintf(szTargetStr, DEF_BUF_STR_LEN,
+ "<color=#%02x%02x%02x%02x>%s</color>%s", r, g, b,
+ a, szMarkupText, (char *) szMarkupTextEnd);
+
+ if (szMarkupText) {
+ free(szMarkupText);
+ szMarkupText = NULL;
+ }
+
+ if (szMarkupTextEnd) {
+ free(szMarkupTextEnd);
+ szMarkupTextEnd = NULL;
+ }
+ } else {
+ szMarkupTextStart =
+ g_markup_escape_text(&szStr[0], nCounter);
+ szMarkupText =
+ g_markup_escape_text(&szStr[nCounter], nSearchLength);
+ szMarkupTextEnd =
+ g_markup_escape_text(&szStr[nCounter + nSearchLength],
+ nWordLength - (nCounter +
+ nSearchLength));
+
+ if (!szMarkupTextStart && !szMarkupText
+ && !szMarkupTextEnd) {
+ VideoLogInfo
+ ("szMarkupTextStart and szMarkupText and szMarkupTextEnd are NULL.");
+ return NULL;
+ }
+
+ snprintf(szTargetStr, DEF_BUF_STR_LEN,
+ "%s<color=#%02x%02x%02x%02x>%s</color>%s",
+ (char *) szMarkupTextStart, r, g, b, a,
+ szMarkupText, (char *) szMarkupTextEnd);
+
+ if (szMarkupText) {
+ free(szMarkupText);
+ szMarkupText = NULL;
+ }
+
+ if (szMarkupTextStart) {
+ free(szMarkupTextStart);
+ szMarkupTextStart = NULL;
+ }
+
+ if (szMarkupTextEnd) {
+ free(szMarkupTextEnd);
+ szMarkupTextEnd = NULL;
+ }
+ }
+ } else {
+ snprintf(szTargetStr, DEF_BUF_STR_LEN, "%s", szStr);
+ }
+ }
+
+ VideoSecureLogInfo("szTargetStr=%s", szTargetStr);
+
+ return szTargetStr;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param obj
+ * @param event_info
+ */
+static void __mp_search_view_trans_finished_cb(void *pUserData,
+ Evas_Object * obj,
+ void *event_info)
+{
+ if (!obj) {
+ VideoLogError("[ERR] g_pListRemoveViewHandle is NULL.");
+ return;
+ }
+
+ mp_widget_ctrl_enable_navi_handle_focus(obj);
+
+ evas_object_smart_callback_del(obj, "transition,finished",
+ __mp_search_view_trans_finished_cb);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pItem
+ * @return
+ */
+static Eina_Bool mp_search_view_back_btn_cb(void *pUserData,
+ Elm_Object_Item * pItem)
+{
+ if (!g_pSearchViewHandle) {
+ VideoLogInfo("[ERR] g_pListRemoveViewHandle is NULL.");
+ return EINA_TRUE;
+ }
+ // Register transition finished callback.
+ mp_widget_ctrl_disable_navi_handle_focus_except_item
+ (g_pSearchViewHandle->pNaviFrameHandle,
+ g_pSearchViewHandle->pNaviFrameItem);
+ evas_object_smart_callback_add(g_pSearchViewHandle->pNaviFrameHandle,
+ "transition,finished",
+ __mp_search_view_trans_finished_cb,
+ (void *) g_pSearchViewHandle->
+ pNaviFrameHandle);
+
+ __mp_search_view_pop(g_pSearchViewHandle->pNaviFrameHandle);
+
+ return EINA_TRUE;
+}
+
+////////////////////////////////////////////////
+// Genlist callback
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+void __mp_search_view_naviframe_transition_effect_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ if (!g_pSearchViewHandle) {
+ VideoLogError("[ERR] No exist g_pSearchViewHandle.");
+ return;
+ }
+
+ VideoLogInfo("");
+
+ if (!g_pSearchViewHandle->pNaviFrameHandle) {
+ VideoLogInfo("[ERR] No exist naviframe handle.");
+ return;
+ }
+
+ elm_object_focus_set(g_pSearchViewWidget->pSearchBarEntry, EINA_TRUE);
+}
+
+
+// Genlist item callback.
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_search_view_select_video_item_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ if (!g_pSearchViewHandle) {
+ VideoLogError("g_pSearchViewHandle is not exist.");
+ return;
+ }
+
+ int nVideoItemIndex = 0;
+ Elm_Object_Item *pItem = (Elm_Object_Item *) pEventInfo;
+ Elm_Object_Item *pSelectedItem =
+ elm_genlist_selected_item_get(pObject);
+
+ if (pItem) {
+ nVideoItemIndex = (int) elm_object_item_data_get(pItem);
+ } else {
+
+ if (pSelectedItem) {
+ elm_genlist_item_selected_set(pSelectedItem, EINA_FALSE);
+ }
+
+ return;
+ }
+
+ VideoLogInfo("nVideoItemIndex : %d", nVideoItemIndex);
+
+ if (!pSelectedItem) {
+ VideoLogError("pSelectedItem is NULL");
+ return;
+ }
+ elm_genlist_item_selected_set(pSelectedItem, EINA_FALSE);
+
+ Evas_Object *pPopup = evas_object_data_get(pObject, "popup"); // Get popup
+ if (pPopup) {
+ VideoLogError("long press is called");
+ return; // If popup exists, do nothing
+ }
+
+ if (!mp_launch_video_allow_check()) {
+ return;
+ }
+
+ if (nVideoItemIndex < 0) {
+ VideoLogWarning("nVideoItemIndex < 0 ===>>> RETURN");
+ return;
+ }
+
+ if (!mp_util_call_off()) {
+ mp_util_ticker_toast_popup
+ (VIDEOS_NOTIPOP_MSG_UNABLE_TO_PLAY_VIDEO_DURING_CALL, false,
+ false);
+ return;
+ }
+
+ g_pSearchViewHandle->nPlayVideoIndex = nVideoItemIndex;
+
+ if (g_pSearchViewHandle->szMediaUrl) {
+ free(g_pSearchViewHandle->szMediaUrl);
+ g_pSearchViewHandle->szMediaUrl = NULL;
+ }
+
+ g_pSearchViewHandle->szMediaUrl =
+ mp_util_svc_get_video_url(nVideoItemIndex);
+
+ if (g_pSearchViewHandle->szMediaUrl) {
+ elm_object_focus_allow_set(g_pSearchViewWidget->pSearchBarlayout,
+ EINA_FALSE);
+ elm_object_focus_allow_set(g_pSearchViewWidget->pSearchBarEntry,
+ EINA_FALSE);
+ elm_object_focus_set(pObject, EINA_TRUE);
+ mp_launch_video_play(g_pSearchViewHandle->szMediaUrl,
+ MP_PLAYER_TYPE_VIDEO, NULL);
+
+ free(g_pSearchViewHandle->szMediaUrl);
+ g_pSearchViewHandle->szMediaUrl = NULL;
+ } else {
+ VideoLogError("[Err] Fail to get video uri from media service.");
+ }
+}
+
+/**
+ *
+ * @param nVideoItemIndex
+ * @return
+ */
+char *mp_search_view_get_duration_time(int nVideoItemIndex)
+{
+
+ char szTmpStr[DEF_BUF_STR_LEN_MAX] = { 0, };
+ char szTmpStrDurationTime[DEF_BUF_STR_LEN_MAX] = { 0, };
+ char szTmpStrLastPlayedPos[DEF_BUF_STR_LEN_MAX] = { 0, };
+
+ unsigned int nVideoInfoDuration =
+ mp_util_svc_get_video_duration_time(nVideoItemIndex);
+ unsigned int nVideoInfoLastTime = 0;
+
+ mp_util_convert_time(nVideoInfoDuration, szTmpStrDurationTime, FALSE);
+ mp_util_convert_time(nVideoInfoLastTime, szTmpStrLastPlayedPos, TRUE);
+
+ snprintf(szTmpStr, DEF_BUF_STR_LEN_MAX, "%s/%s", szTmpStrLastPlayedPos,
+ szTmpStrDurationTime);
+
+ return strdup(szTmpStr);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+char *mp_search_view_get_label_of_video_item_cb(const void *pUserData,
+ Evas_Object * pObject,
+ const char *pPart)
+{
+
+ int nVideoItemIndex = (int) pUserData;
+
+ if (!strcmp(pPart, "elm.text")) {
+ char *szTitle = NULL;
+ char *szTitleUtf8 = NULL;
+ char *szTitleWithSearchWordColor = NULL;
+ bool bResult = FALSE;
+
+ szTitle = mp_util_svc_get_video_title(nVideoItemIndex);
+
+ if (strlen(g_pSearchViewHandle->szSearchWord) > 0) {
+ szTitleWithSearchWordColor =
+ mp_search_view_search_markup_keyword(szTitle,
+ (char *)
+ g_pSearchViewHandle->
+ szSearchWord,
+ &bResult);
+ if (bResult) {
+ if (szTitle) {
+ free(szTitle);
+ szTitle = NULL;
+ }
+
+ if (szTitleWithSearchWordColor) {
+ VideoLogInfo("szTitleWithSearchWordColor : %s",
+ szTitleWithSearchWordColor);
+ return strdup(szTitleWithSearchWordColor);
+ } else {
+ return NULL;
+ }
+ }
+ }
+ szTitleUtf8 = elm_entry_utf8_to_markup(szTitle);
+
+ if (szTitle) {
+ free(szTitle);
+ szTitle = NULL;
+ }
+
+ return szTitleUtf8;
+ } else if (!strcmp(pPart, "elm.text.sub")) {
+ return mp_util_svc_get_duration_str_time(nVideoItemIndex);
+ }
+
+ return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+Evas_Object *mp_search_view_get_icon_of_video_item_cb(const void
+ *pUserData,
+ Evas_Object *
+ pObject,
+ const char *pPart)
+{
+ if (!strcmp(pPart, "elm.swallow.icon")) {
+ VideoLogError("pPart: elm.icon.1 - thumbnail");
+
+ int nVideoItemIndex = (int) pUserData;
+ Evas_Object *pLayout = elm_layout_add(pObject);
+
+ char *pThumbIconUri =
+ mp_util_svc_get_video_thumbnail(nVideoItemIndex);
+ Evas_Object *pBg = NULL;
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VIDEO_CUSTOM_THEME);
+ free(path);
+ pLayout = elm_layout_add(pObject);
+ elm_layout_file_set(pLayout, edj_path,
+ "listview.thumbnail.layout");
+
+ if (!pThumbIconUri || !vp_file_exists(pThumbIconUri)) {
+ MP_FREE_STRING(pThumbIconUri);
+ }
+
+ pBg =
+ mp_util_create_preload_image(pLayout, pThumbIconUri,
+ VIDEO_ICON_WIDTH);
+
+ if (!elm_layout_content_set(pLayout, "elm.thumbnail.icon", pBg))
+ VideoLogError("elm_layout_content_set() is failed.");
+
+ if (pBg)
+ evas_object_show(pBg);
+
+ MP_FREE_STRING(pThumbIconUri);
+
+ if (!mp_util_create_video_sub_icon(pLayout, nVideoItemIndex)) {
+ VideoLogWarning("Local File or Create sub icon is failed.",
+ nVideoItemIndex);
+ }
+
+ if (pLayout) {
+ evas_object_show(pLayout);
+ }
+
+ return pLayout;
+ }
+
+ return NULL;
+}
+
+//
+////////////////////////////////////////////////
+
+////////////////////////////////////////////////
+// Search bar widget about relevant items of genlist.
+/**
+ *
+ */
+static void __mp_search_view_del_no_contents_layout(void)
+{
+ VideoLogInfo("");
+
+ if (g_pSearchViewWidget->pNocontentsLayout) {
+ mp_util_virtual_keypad_disabled_set(EINA_TRUE);
+ evas_object_del(g_pSearchViewWidget->pNocontentsLayout);
+ g_pSearchViewWidget->pNocontentsLayout = NULL;
+ }
+}
+
+/**
+ *
+ * @param pParent
+ */
+static void *__mp_search_view_add_no_contents_layout(void *pParent)
+{
+ if (!g_pSearchViewWidget) {
+ VideoLogError("g_pSearchViewWidget == NULL");
+ return NULL;
+ }
+ VideoLogInfo("");
+
+ __mp_search_view_del_no_contents_layout();
+
+ if (elm_entry_is_empty(g_pSearchViewWidget->pSearchBarEntry)) {
+ VideoLogInfo("entry is empty, no need append no search view");
+ return NULL;
+ }
+
+ mp_util_virtual_keypad_disabled_set(EINA_FALSE);
+ g_pSearchViewWidget->pNocontentsLayout =
+ mp_create_nocontent_layout(pParent,
+ VIDEOS_SEARCHVIEW_MSG_NO_SEARCH_RESULTS,
+ NULL);
+
+ evas_object_show(g_pSearchViewWidget->pNocontentsLayout);
+
+ return g_pSearchViewWidget->pNocontentsLayout;
+}
+
+/**
+ *
+ */
+static void __mp_search_view_is_existed_no_content_layout(void)
+{
+ if (!g_pSearchViewWidget) {
+ VideoLogError("g_pSearchViewWidget == NULL");
+ return;
+ }
+
+ VideoLogInfo("");
+
+ if (g_pSearchViewWidget->pNocontentsLayout) {
+ elm_object_part_content_unset(g_pSearchViewWidget->
+ pSearchViewBaselayout,
+ "elm.swallow.content");
+ __mp_search_view_del_no_contents_layout();
+ elm_object_part_content_set(g_pSearchViewWidget->
+ pSearchViewBaselayout,
+ "elm.swallow.content",
+ g_pSearchViewHandle->pVideosGenlist);
+ if (g_pSearchViewHandle->pVideosGenlist)
+ evas_object_show(g_pSearchViewHandle->pVideosGenlist);
+ }
+}
+
+/**
+ *
+ */
+static void __mp_search_view_is_existed_genlist(void)
+{
+ if (!g_pSearchViewWidget) {
+ VideoLogError("g_pSearchViewWidget == NULL");
+ return;
+ }
+
+
+ if (!g_pSearchViewWidget->pNocontentsLayout) {
+ elm_object_part_content_unset(g_pSearchViewWidget->
+ pSearchViewBaselayout,
+ "elm.swallow.content");
+ if (g_pSearchViewHandle->pVideosGenlist)
+ evas_object_hide(g_pSearchViewHandle->pVideosGenlist);
+ } else {
+ VideoLogError
+ ("g_pSearchViewWidget->pNocontentsLayout is existed.");
+ }
+}
+
+/**
+ *
+ * @param szSearchWord
+ */
+void mp_search_view_search_genlist_item(const char *szSearchWord)
+{
+ if (!g_pSearchViewHandle) {
+ VideoLogError("g_pSearchViewHandle == NULL");
+ return;
+ }
+
+ if (!szSearchWord) {
+ VideoLogError("szSearchWord == NULL");
+ return;
+ }
+
+ VideoLogInfo("");
+
+ if (g_pSearchViewHandle->SearchedIndexList) {
+ eina_list_free(g_pSearchViewHandle->SearchedIndexList);
+ g_pSearchViewHandle->SearchedIndexList = NULL;
+ }
+ mp_util_svc_index_list_for_search_view(szSearchWord,
+ (void **) &g_pSearchViewHandle->
+ SearchedIndexList);
+
+ if (g_pSearchViewHandle->SearchedIndexList) {
+ memset(g_pSearchViewHandle->szSearchWord, 0,
+ sizeof(char) * SEARCH_CHAR_LEN);
+ strncpy(g_pSearchViewHandle->szSearchWord, szSearchWord,
+ SEARCH_CHAR_LEN - 1);
+ __mp_search_view_is_existed_no_content_layout();
+ elm_genlist_clear(g_pSearchViewHandle->pVideosGenlist);
+ __mp_search_view_append_video_items(g_pSearchViewHandle->
+ pVideosGenlist, true);
+ } else {
+ __mp_search_view_is_existed_genlist();
+ void *pNoContentLayout =
+ __mp_search_view_add_no_contents_layout(g_pSearchViewWidget->
+ pSearchViewBaselayout);
+ elm_object_part_content_set(g_pSearchViewWidget->
+ pSearchViewBaselayout,
+ "elm.swallow.content",
+ pNoContentLayout);
+ }
+}
+
+/**
+ *
+ * @param str
+ * @return
+ */
+static char *mp_search_view_get_fact_str(const char *str)
+{
+ if (!str) {
+ VideoLogWarning("str == NULL");
+ return NULL;
+ }
+
+ int nLen = strlen(str);
+ if (nLen >= SEARCH_CHAR_LEN - 1) {
+ VideoLogError("str length is too large : [%d]", nLen);
+ return NULL;
+ }
+
+ char des_str[SEARCH_CHAR_LEN] = { 0, };
+ char *temp_str = strstr(str, PREEDIT_START);
+ char *pTempStr2 = strstr(str, PREEDIT_END);
+
+ if (temp_str != NULL && pTempStr2 != NULL) {
+ if (str != temp_str) {
+ strncpy(des_str, str, temp_str - str);
+ }
+
+ if (strlen(des_str) != 0) {
+ strncat(des_str, temp_str + strlen(PREEDIT_START),
+ pTempStr2 - temp_str - strlen(PREEDIT_START));
+ } else {
+ strncpy(des_str, temp_str + strlen(PREEDIT_START),
+ pTempStr2 - temp_str - strlen(PREEDIT_START));
+ }
+ } else {
+ strncpy(des_str, str, SEARCH_CHAR_LEN - 1);
+ }
+ VideoSecureLogInfo("get string = %s:%s", des_str, str);
+ return strdup(des_str);
+
+}
+
+/**
+ *
+ */
+static void mp_search_view_check_landscape()
+{
+ if (!g_pSearchViewWidget) {
+ return;
+ }
+ bool bLandscape = mp_rotate_ctrl_check_landspace();
+
+ const char *temp =
+ elm_object_text_get(g_pSearchViewWidget->pSearchBarEntry);
+ char *TempUtf8 = elm_entry_markup_to_utf8(temp);
+ char *szChangedStr = mp_search_view_get_fact_str(TempUtf8);
+
+ if (bLandscape) {
+ elm_object_signal_emit(g_pSearchViewWidget->pSearchBarlayout,
+ "elm,state,show,landscape", "elm");
+
+ if (szChangedStr != NULL && strlen(szChangedStr) > 0) {
+ elm_object_signal_emit(g_pSearchViewWidget->pSearchBarlayout,
+ "elm,state,show,clear_button,landscape",
+ "elm");
+ }
+ } else {
+ elm_object_signal_emit(g_pSearchViewWidget->pSearchBarlayout,
+ "elm,state,show,portrait", "elm");
+
+ if (szChangedStr != NULL && strlen(szChangedStr) > 0) {
+ elm_object_signal_emit(g_pSearchViewWidget->pSearchBarlayout,
+ "elm,state,show,clear_button,portrait",
+ "elm");
+ }
+ }
+
+ MP_FREE_STRING(szChangedStr);
+ MP_FREE_STRING(TempUtf8);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_search_view_genlist_scroll_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ VideoLogInfo("");
+ elm_object_focus_set(g_pSearchViewWidget->pSearchBarEntry, EINA_FALSE);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_search_view_entry_changed_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ VideoLogInfo("");
+
+ if (!g_pSearchViewHandle || !pUserData || !pObject) {
+ VideoLogError("g_pSearchViewHandle == NULL");
+ return;
+ }
+
+ char *szChangedStr = NULL;
+
+ if (elm_entry_is_empty(pObject)) {
+ elm_object_signal_emit(pUserData, "elm,state,eraser,hide", "elm");
+ elm_object_disabled_set(g_pSearchViewWidget->pClearButton,
+ EINA_TRUE);
+ elm_object_style_set(g_pSearchViewWidget->pClearButton,
+ "clear_dim");
+ } else {
+ elm_object_signal_emit(pUserData, "elm,state,eraser,show", "elm");
+ elm_object_disabled_set(g_pSearchViewWidget->pClearButton,
+ EINA_FALSE);
+ elm_object_style_set(g_pSearchViewWidget->pClearButton, "clear");
+ }
+
+ if (!elm_entry_is_empty(pObject)) {
+ elm_object_signal_emit(pUserData, "elm,state,guidetext,hide",
+ "elm");
+ }
+
+ if (mp_util_svc_get_number_of_video_item_by_type() < 1) {
+ VideoLogWarning("There don't have any videos.");
+ __mp_search_view_is_existed_genlist();
+ void *pNoContentLayout =
+ __mp_search_view_add_no_contents_layout(g_pSearchViewWidget->
+ pSearchViewBaselayout);
+ elm_object_part_content_set(g_pSearchViewWidget->
+ pSearchViewBaselayout,
+ "elm.swallow.content",
+ pNoContentLayout);
+ return;
+ }
+
+ const char *temp = elm_object_text_get(pObject);
+ char *TempUtf8 = elm_entry_markup_to_utf8(temp);
+ szChangedStr = mp_search_view_get_fact_str(TempUtf8);
+ MP_FREE_STRING(TempUtf8);
+
+ VideoSecureLogInfo("Changed word in entry widget : %s", szChangedStr);
+
+ if (szChangedStr != NULL && strlen(szChangedStr) > 0) {
+ elm_object_part_content_set(g_pSearchViewWidget->pSearchBarlayout,
+ "searchbar_clear_btn",
+ g_pSearchViewWidget->pClearButton);
+ mp_search_view_check_landscape();
+ mp_search_view_search_genlist_item(szChangedStr);
+ } else {
+ elm_object_part_content_unset(g_pSearchViewWidget->
+ pSearchBarlayout,
+ "searchbar_clear_btn");
+ evas_object_hide(g_pSearchViewWidget->pClearButton);
+ memset(g_pSearchViewHandle->szSearchWord, 0,
+ sizeof(char) * SEARCH_CHAR_LEN);
+ __mp_search_view_is_existed_no_content_layout();
+ __mp_search_view_arrange_video_list(__mp_search_view_get_sort_type
+ (),
+ g_pSearchViewHandle->
+ pVideosGenlist);
+ }
+ MP_FREE_STRING(szChangedStr);
+
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_search_view_focused_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ VideoLogInfo("");
+
+ if (!pUserData || !g_pSearchViewWidget || !g_pSearchViewHandle) {
+ VideoLogError("[ERR]No have pUserData");
+ return;
+ }
+
+ if (elm_entry_is_empty(pObject)) {
+ elm_object_signal_emit(pUserData, "elm,state,eraser,hide", "elm");
+ } else {
+ elm_object_signal_emit(pUserData, "elm,state,eraser,show", "elm");
+ }
+
+ elm_object_signal_emit(pUserData, "elm,state,guidetext,hide", "elm");
+ elm_object_signal_emit(pUserData, "cancel,in", "");
+ elm_object_focus_allow_set(pObject, EINA_TRUE);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_search_view_unfocused_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ VideoLogInfo("");
+
+ if (!pUserData || !g_pSearchViewWidget || !g_pSearchViewHandle) {
+ VideoLogError("[ERR]No have pUserData");
+ return;
+ }
+
+ if (elm_entry_is_empty(pObject)) {
+ elm_object_signal_emit(pUserData, "elm,state,guidetext,show",
+ "elm");
+ }
+ elm_object_signal_emit(pUserData, "elm,state,eraser,hide", "elm");
+}
+
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_search_view_activated_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ VideoLogInfo("");
+
+ if (!pObject) {
+ VideoLogError("[ERR]No have pObject");
+ return;
+ }
+
+ elm_object_focus_set(pObject, FALSE);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_search_view_entry_max_len_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ VideoLogInfo("");
+
+ mp_util_ticker_toast_popup(VIDEOS_NOTIPOP_MSG_MAX_NUM_OF_CHARACTERS,
+ false, false);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_search_view_eraser_clicked_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ VideoLogInfo("");
+ if (!pUserData) {
+ VideoLogError("error userdata");
+ return;
+ }
+ elm_object_part_content_unset(g_pSearchViewWidget->pSearchBarlayout,
+ "searchbar_clear_btn");
+ evas_object_hide(g_pSearchViewWidget->pClearButton);
+ Evas_Object *pEntry = (Evas_Object *) pUserData;
+ elm_entry_entry_set(pEntry, "");
+ elm_object_focus_allow_set(pObject, EINA_TRUE);
+ elm_object_focus_set(pObject, EINA_TRUE);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param emission
+ * @param source
+ */
+static void __mp_search_view_bg_clicked_cb(void *pUserData,
+ Evas_Object * pObject,
+ const char *emission,
+ const char *source)
+{
+ VideoLogInfo("");
+ if (!pUserData) {
+ VideoLogError("error userdata");
+ return;
+ }
+
+ elm_object_tree_focus_allow_set(pUserData, EINA_TRUE);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param emission
+ * @param source
+ */
+static void __mp_search_view_search_symbol_clicked_cb(void *pUserData,
+ Evas_Object *
+ pObject,
+ const char *emission,
+ const char *source)
+{
+ VideoLogInfo("");
+ if (!pUserData) {
+ VideoLogError("error userdata");
+ return;
+ }
+ elm_object_focus_set(pUserData, EINA_TRUE);
+}
+
+//
+////////////////////////////////////////////////
+
+////////////////////////////////////////////////
+//
+/**
+ *
+ * @return
+ */
+int __mp_search_view_get_sort_type(void)
+{
+
+ int nSortType = MP_MEDIA_SORT_BY_RECENTLY_VIEWED;
+
+ switch (mp_sort_ctrl_get_sort_state()) {
+ case MP_LIST_SORT_BY_RECENTLY_ADDED:
+ nSortType = MP_MEDIA_SORT_BY_RECENTLY_ADDED;
+ break;
+
+ case MP_LIST_SORT_BY_NAME:
+ nSortType = MP_MEDIA_SORT_BY_NAME;
+ break;
+ }
+
+ return nSortType;
+}
+
+/**
+ *
+ * @param pVideosGenlist
+ * @param bSearchedView
+ */
+void __mp_search_view_append_video_items(void *pVideosGenlist,
+ bool bSearchedView)
+{
+ VideoLogInfo("");
+
+ if (!pVideosGenlist) {
+ VideoLogInfo("No exist genlist object.");
+ return;
+ }
+
+ int nIndex = 0;
+ int nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+
+ VideoSearch_Itc.item_style = "type1";
+ VideoSearch_Itc.func.text_get =
+ (void *) mp_search_view_get_label_of_video_item_cb;
+ VideoSearch_Itc.func.content_get =
+ (void *) mp_search_view_get_icon_of_video_item_cb;
+ VideoSearch_Itc.func.state_get = NULL;
+ VideoSearch_Itc.func.del = NULL;
+ if (bSearchedView) {
+ Eina_List *pIterateList = NULL;
+ void *nTempIndex = (void *) 0;
+ EINA_LIST_FOREACH(g_pSearchViewHandle->SearchedIndexList,
+ pIterateList, nTempIndex) {
+ nIndex = (int) nTempIndex;
+ VideoLogInfo("searched nIndex : %d", nIndex);
+ elm_genlist_item_append(pVideosGenlist, &VideoSearch_Itc,
+ (void *) nIndex, NULL,
+ ELM_GENLIST_ITEM_NONE,
+ __mp_search_view_select_video_item_cb,
+ NULL);
+ }
+
+ } else {
+ for (nIndex = 0; nIndex < nVideoListSize; nIndex++) {
+ VideoLogInfo("nIndex : %d", nIndex);
+ elm_genlist_item_append(pVideosGenlist, &VideoSearch_Itc,
+ (void *) nIndex, NULL,
+ ELM_GENLIST_ITEM_NONE,
+ __mp_search_view_select_video_item_cb,
+ NULL);
+ }
+ }
+}
+
+/**
+ *
+ * @param nItemSortType
+ * @param pVideosGenlist
+ */
+void __mp_search_view_arrange_video_list(int nItemSortType,
+ void *pVideosGenlist)
+{
+ VideoLogInfo("");
+
+ if (!pVideosGenlist) {
+ VideoLogInfo("No exist genlist object.");
+ return;
+ }
+
+ if (!g_pSearchViewHandle || !g_pSearchViewWidget) {
+ VideoLogInfo("Handles are not existed about search view.");
+ return;
+ }
+ if (g_pSearchViewHandle->SearchedIndexList) {
+ eina_list_free(g_pSearchViewHandle->SearchedIndexList);
+ g_pSearchViewHandle->SearchedIndexList = NULL;
+ }
+ VideoLogInfo("");
+
+ int nVideoListSize = 0;
+ /*Don't need to re-make new video list, because searched data only works current video list */
+ if (g_pSearchViewHandle->nViewType == MP_LIST_VIEW_AS_FOLDER_LIST
+ && !mp_folder_view_is_item_view()) {
+ mp_util_svc_destory_video_list();
+ mp_util_svc_extract_video_list_by_item_type(nItemSortType,
+ mp_view_ctrl_get_list_type
+ ());
+ }
+ nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+ VideoLogInfo("nVideoListSize : %d", nVideoListSize);
+
+ elm_genlist_clear(pVideosGenlist);
+
+ if (nVideoListSize > 0) {
+ __mp_search_view_append_video_items(pVideosGenlist, false);
+ }
+
+ evas_object_show(pVideosGenlist);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_search_view_clicked_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ VideoLogInfo("");
+ if (!pObject) {
+ VideoLogError("[ERR]No have pObject");
+ return;
+ }
+ elm_object_focus_allow_set(pObject, EINA_TRUE);
+ elm_object_focus_set(pObject, EINA_TRUE);
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param emission
+ * @param source
+ */
+static void __mp_search_view_soft_back_button_cb(void *data,
+ Evas_Object * obj,
+ const char *emission,
+ const char *source)
+{
+ VideoLogInfo(" ");
+ Evas_Object *pTopNaviFrame = NULL;
+ pTopNaviFrame =
+ elm_naviframe_item_pop(g_pSearchViewHandle->pNaviFrameHandle);
+ evas_object_del(pTopNaviFrame);
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __mp_search_view_rotate_cb(void *data, Evas_Object * obj,
+ void *event_info)
+{
+ if (!g_pSearchViewWidget) {
+ VideoLogError("__mp_search_view_rotate_cb IS null");
+ return;
+ }
+ bool bLandscape = mp_rotate_ctrl_check_landspace();
+
+ const char *temp =
+ elm_object_text_get(g_pSearchViewWidget->pSearchBarEntry);
+ char *TempUtf8 = elm_entry_markup_to_utf8(temp);
+ char *szChangedStr = mp_search_view_get_fact_str(TempUtf8);
+
+ if (bLandscape) {
+ elm_object_signal_emit(g_pSearchViewWidget->pSearchBarlayout,
+ "elm,state,show,portrait", "elm");
+
+ if (szChangedStr != NULL && strlen(szChangedStr) > 0) {
+ elm_object_signal_emit(g_pSearchViewWidget->pSearchBarlayout,
+ "elm,state,show,clear_button,portrait",
+ "elm");
+ }
+ } else {
+ elm_object_signal_emit(g_pSearchViewWidget->pSearchBarlayout,
+ "elm,state,show,landscape", "elm");
+
+ if (szChangedStr != NULL && strlen(szChangedStr) > 0) {
+ elm_object_signal_emit(g_pSearchViewWidget->pSearchBarlayout,
+ "elm,state,show,clear_button,landscape",
+ "elm");
+ }
+ }
+
+ MP_FREE_STRING(szChangedStr);
+ MP_FREE_STRING(TempUtf8);
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+static Evas_Object *__mp_search_view_init_internal_layout(void *pParent)
+{
+ VideoLogInfo("");
+
+ if (!pParent) {
+ VideoLogError("[ERR]");
+ return NULL;
+ }
+
+ if (g_pSearchViewWidget->pSearchViewBaselayout) {
+ evas_object_del(g_pSearchViewWidget->pSearchViewBaselayout);
+ g_pSearchViewWidget->pSearchViewBaselayout = NULL;
+ }
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VIDEO_BASIC_NAVIFRAME_EDJ);
+ free(path);
+ // Create search view base layout.
+ g_pSearchViewWidget->pSearchViewBaselayout = elm_layout_add(pParent);
+ elm_layout_file_set(g_pSearchViewWidget->pSearchViewBaselayout,
+ edj_path, "search_view_layout");
+
+ // Create search bar layout.
+ g_pSearchViewWidget->pSearchBarlayout =
+ elm_layout_add(g_pSearchViewWidget->pSearchViewBaselayout);
+ elm_layout_file_set(g_pSearchViewWidget->pSearchBarlayout, edj_path,
+ "searchbar_video");
+ elm_object_part_content_set(g_pSearchViewWidget->pSearchViewBaselayout,
+ "search_bar",
+ g_pSearchViewWidget->pSearchBarlayout);
+ elm_object_signal_callback_add(g_pSearchViewWidget->pSearchBarlayout,
+ "elm,action,click",
+ "back_button_callback",
+ __mp_search_view_soft_back_button_cb,
+ NULL);
+ elm_object_signal_emit(g_pSearchViewWidget->pSearchBarlayout,
+ "elm,state,show,searchbar", "elm");
+
+ // Create entry.
+ g_pSearchViewWidget->pSearchBarEntry =
+ elm_entry_add(g_pSearchViewWidget->pSearchBarlayout);
+ elm_entry_single_line_set(g_pSearchViewWidget->pSearchBarEntry,
+ EINA_TRUE);
+ elm_entry_scrollable_set(g_pSearchViewWidget->pSearchBarEntry,
+ EINA_TRUE);
+ elm_object_domain_translatable_part_text_set(g_pSearchViewWidget->
+ pSearchBarEntry,
+ "elm.guide",
+ VIDEOS_STRING,
+ VIDEOS_CTXPOP_MENU_SEARCH_IDS);
+ elm_object_domain_part_text_translatable_set(g_pSearchViewWidget->
+ pSearchBarEntry,
+ "elm.guide",
+ VIDEOS_STRING, EINA_TRUE);
+
+ elm_entry_scrollable_set(g_pSearchViewWidget->pSearchBarEntry,
+ EINA_TRUE);
+ elm_entry_single_line_set(g_pSearchViewWidget->pSearchBarEntry,
+ EINA_TRUE);
+ elm_entry_cnp_mode_set(g_pSearchViewWidget->pSearchBarEntry,
+ ELM_CNP_MODE_PLAINTEXT);
+ elm_entry_prediction_allow_set(g_pSearchViewWidget->pSearchBarEntry,
+ EINA_TRUE);
+ evas_object_smart_callback_add(g_pSearchViewWidget->pSearchBarEntry,
+ "changed",
+ __mp_search_view_entry_changed_cb,
+ g_pSearchViewWidget->pSearchBarlayout);
+ evas_object_smart_callback_add(g_pSearchViewWidget->pSearchBarEntry,
+ "focused", __mp_search_view_focused_cb,
+ g_pSearchViewWidget->pSearchBarlayout);
+ evas_object_smart_callback_add(g_pSearchViewWidget->pSearchBarEntry,
+ "unfocused",
+ __mp_search_view_unfocused_cb,
+ g_pSearchViewWidget->pSearchBarlayout);
+ evas_object_smart_callback_add(g_pSearchViewWidget->pSearchBarEntry,
+ "preedit,changed",
+ __mp_search_view_entry_changed_cb,
+ g_pSearchViewWidget->pSearchBarlayout);
+ evas_object_smart_callback_add(g_pSearchViewWidget->pSearchBarEntry,
+ "activated",
+ __mp_search_view_activated_cb,
+ g_pSearchViewWidget->pSearchBarlayout);
+ evas_object_smart_callback_add(g_pSearchViewWidget->pSearchBarEntry,
+ "clicked", __mp_search_view_clicked_cb,
+ g_pSearchViewWidget->pSearchBarlayout);
+
+ g_pSearchViewWidget->pClearButton =
+ elm_button_add(g_pSearchViewWidget->pSearchBarlayout);
+ elm_object_style_set(g_pSearchViewWidget->pClearButton, "clear_dim");
+ elm_object_disabled_set(g_pSearchViewWidget->pClearButton, EINA_TRUE);
+ evas_object_smart_callback_add(g_pSearchViewWidget->pClearButton,
+ "clicked",
+ __mp_search_view_eraser_clicked_cb,
+ g_pSearchViewWidget->pSearchBarEntry);
+
+ static Elm_Entry_Filter_Limit_Size limit_filter_data;
+ limit_filter_data.max_char_count = VIDEO_FILE_SEARCH_CHAR_LEN_MAX;
+ limit_filter_data.max_byte_count = 0;
+ elm_entry_markup_filter_append(g_pSearchViewWidget->pSearchBarEntry,
+ elm_entry_filter_limit_size,
+ &limit_filter_data);
+ evas_object_smart_callback_add(g_pSearchViewWidget->pSearchBarEntry,
+ "maxlength,reached",
+ __mp_search_view_entry_max_len_cb,
+ NULL);
+
+ elm_object_part_content_set(g_pSearchViewWidget->pSearchBarlayout,
+ "searchbar",
+ g_pSearchViewWidget->pSearchBarEntry);
+ elm_object_part_content_set(g_pSearchViewWidget->pSearchViewBaselayout,
+ "search_bar",
+ g_pSearchViewWidget->pSearchBarlayout);
+ elm_object_signal_callback_add(g_pSearchViewWidget->
+ pSearchViewBaselayout, "elm,bg,clicked",
+ "elm", __mp_search_view_bg_clicked_cb,
+ g_pSearchViewWidget->pSearchBarEntry);
+ elm_entry_input_panel_layout_set(g_pSearchViewWidget->pSearchBarEntry,
+ ELM_INPUT_PANEL_LAYOUT_NORMAL);
+ elm_entry_input_panel_return_key_type_set(g_pSearchViewWidget->
+ pSearchBarEntry,
+ ELM_INPUT_PANEL_RETURN_KEY_TYPE_SEARCH);
+ evas_object_size_hint_weight_set(g_pSearchViewWidget->
+ pSearchViewBaselayout,
+ EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(g_pSearchViewWidget->
+ pSearchViewBaselayout, EVAS_HINT_FILL,
+ EVAS_HINT_FILL);
+ elm_object_signal_callback_add(g_pSearchViewWidget->
+ pSearchViewBaselayout,
+ "elm,action,click", "",
+ __mp_search_view_search_symbol_clicked_cb,
+ g_pSearchViewWidget->pSearchBarEntry);
+
+ return g_pSearchViewWidget->pSearchViewBaselayout;
+}
+
+/**
+ *
+ * @param szSearchWord
+ */
+static void __mp_search_view_update_genlist_item(const char *szSearchWord)
+{
+ if (!g_pSearchViewHandle) {
+ VideoLogError("g_pSearchViewHandle == NULL");
+ return;
+ }
+
+ if (!szSearchWord) {
+ VideoLogError("szSearchWord == NULL");
+ return;
+ }
+
+ VideoLogInfo("");
+
+ if (g_pSearchViewHandle->SearchedIndexList) {
+ eina_list_free(g_pSearchViewHandle->SearchedIndexList);
+ g_pSearchViewHandle->SearchedIndexList = NULL;
+ }
+ mp_util_svc_index_list_for_search_view(szSearchWord,
+ (void **) &g_pSearchViewHandle->
+ SearchedIndexList);
+
+ if (g_pSearchViewHandle->pVideosGenlist)
+ elm_genlist_clear(g_pSearchViewHandle->pVideosGenlist);
+
+ if (g_pSearchViewHandle->SearchedIndexList) {
+ memset(g_pSearchViewHandle->szSearchWord, 0,
+ sizeof(char) * SEARCH_CHAR_LEN);
+ strncpy(g_pSearchViewHandle->szSearchWord, szSearchWord,
+ SEARCH_CHAR_LEN - 1);
+ __mp_search_view_is_existed_no_content_layout();
+ __mp_search_view_append_video_items(g_pSearchViewHandle->
+ pVideosGenlist, true);
+ } else {
+ __mp_search_view_is_existed_genlist();
+ void *pNoContentLayout =
+ __mp_search_view_add_no_contents_layout(g_pSearchViewWidget->
+ pSearchViewBaselayout);
+ elm_object_part_content_set(g_pSearchViewWidget->
+ pSearchViewBaselayout,
+ "elm.swallow.content",
+ pNoContentLayout);
+ }
+}
+
+/**
+ *
+ */
+void mp_search_view_update_genlist()
+{
+ if (g_pSearchViewHandle && g_pSearchViewHandle->pVideosGenlist) {
+ if (g_pSearchViewHandle->nViewType == MP_LIST_VIEW_AS_FOLDER_LIST
+ && mp_folder_view_is_item_view()) {
+ Elm_Object_Item *currItem = NULL;
+ Elm_Object_Item *nextItem = NULL;
+ currItem =
+ elm_genlist_first_item_get(g_pSearchViewHandle->
+ pVideosGenlist);
+ int index = 0;
+ while (currItem) {
+ nextItem = elm_genlist_item_next_get(currItem);
+ elm_genlist_item_update(currItem);
+ mp_util_svc_update_thumbnail_info(g_pSearchViewHandle->
+ nPlayVideoIndex);
+ __mp_search_view_update_video_items((Evas_Object *)
+ g_pSearchViewHandle->
+ pVideosGenlist, index,
+ g_pSearchViewHandle->
+ nPlayVideoIndex);
+ currItem = nextItem;
+ index++;
+ }
+ }
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ */
+static void __mp_search_view_db_data_changed(void *pUserData,
+ Evas_Object * pObject)
+{
+ VideoLogInfo("");
+
+ if (!g_pSearchViewHandle || !pUserData || !pObject) {
+ VideoLogError("g_pSearchViewHandle == NULL");
+ return;
+ }
+
+ char *szChangedStr = NULL;
+
+ const char *temp = elm_object_text_get(pObject);
+ char *TempUtf8 = elm_entry_markup_to_utf8(temp);
+ szChangedStr = mp_search_view_get_fact_str(TempUtf8);
+ MP_FREE_STRING(TempUtf8);
+
+ VideoLogInfo("Changed word in entry widget : %s", szChangedStr);
+
+ if (szChangedStr != NULL && strlen(szChangedStr) > 0) {
+ __mp_search_view_update_genlist_item(szChangedStr);
+ } else {
+ memset(g_pSearchViewHandle->szSearchWord, 0,
+ sizeof(char) * SEARCH_CHAR_LEN);
+ __mp_search_view_is_existed_no_content_layout();
+ __mp_search_view_arrange_video_list(__mp_search_view_get_sort_type
+ (),
+ g_pSearchViewHandle->
+ pVideosGenlist);
+ elm_object_focus_set(g_pSearchViewWidget->pSearchBarEntry,
+ EINA_TRUE);
+ }
+ MP_FREE_STRING(szChangedStr);
+
+}
+
+/**
+ *
+ * @param pUserData
+ */
+static void __mp_search_view_db_changed_cb(void *pUserData)
+{
+ if (!g_pSearchViewHandle || !g_pSearchViewWidget) {
+ VideoLogError("Main handles of list view are not existed.");
+ return;
+ }
+
+
+ int nSortType = __mp_search_view_get_sort_type();
+ if (g_pSearchViewHandle->pFolderPath) {
+ if (g_pSearchViewHandle->pFolderPath) {
+ VideoSecureLogDebug("szFolderPath : %s",
+ g_pSearchViewHandle->pFolderPath);
+ if (vp_file_exists(g_pSearchViewHandle->pFolderPath)) {
+ //update video-list
+ mp_util_svc_destory_video_item_list();
+ mp_util_svc_extract_video_list_from_folder
+ (g_pSearchViewHandle->pFolderPath, nSortType,
+ MP_LIST_VIEW_ALL);
+ int nVideoListSize =
+ mp_util_svc_get_number_of_video_item_by_type();
+ VideoLogInfo("nVideoListSize : %d", nVideoListSize);
+ if (nVideoListSize > 0) {
+ __mp_search_view_db_data_changed(g_pSearchViewWidget->
+ pSearchBarlayout,
+ g_pSearchViewWidget->
+ pSearchBarEntry);
+ } else {
+ elm_naviframe_item_pop(g_pSearchViewHandle->
+ pNaviFrameHandle);
+ }
+ } else {
+ elm_naviframe_item_pop(g_pSearchViewHandle->
+ pNaviFrameHandle);
+ }
+ }
+ } else {
+ mp_util_svc_destory_video_list();
+ mp_util_svc_extract_video_list_by_item_type(nSortType,
+ mp_view_ctrl_get_list_type
+ ());
+
+ int nVideoListSize =
+ mp_util_svc_get_number_of_video_item_by_type();
+ VideoLogInfo("nVideoListSize : %d", nVideoListSize);
+ if (nVideoListSize > 0) {
+ __mp_search_view_db_data_changed(g_pSearchViewWidget->
+ pSearchBarlayout,
+ g_pSearchViewWidget->
+ pSearchBarEntry);
+ } else {
+ elm_naviframe_item_pop(g_pSearchViewHandle->pNaviFrameHandle);
+ }
+ }
+ Elm_Object_Item *pItem =
+ elm_genlist_first_item_get(g_pSearchViewHandle->pVideosGenlist);
+ if (pItem) {
+ elm_genlist_item_bring_in(pItem, ELM_GENLIST_ITEM_SCROLLTO_IN);
+ }
+
+}
+
+/**
+ *
+ * @return
+ */
+bool mp_search_view_get_active_view()
+{
+ if (!g_pSearchViewHandle)
+ return false;
+ return g_pSearchViewHandle->isViewActive;
+}
+
+/**
+ *
+ * @param pParent
+ */
+void mp_search_view_init(void *pParent)
+{
+ VideoLogInfo("");
+
+ if (!g_pSearchViewHandle || !g_pSearchViewWidget) {
+ VideoLogInfo("Handles are not existed about search view.");
+ return;
+ }
+ g_pSearchViewHandle->bShowNormalLayout = TRUE;
+ g_pSearchViewWidget->pSearchViewBaselayout =
+ __mp_search_view_init_internal_layout(pParent);
+ evas_object_smart_callback_add((Evas_Object *)
+ mp_util_get_main_window_handle(),
+ "wm,rotation,changed",
+ __mp_search_view_rotate_cb, NULL);
+ mp_search_view_check_landscape();
+ g_pSearchViewHandle->pVideosGenlist =
+ elm_genlist_add(g_pSearchViewWidget->pSearchViewBaselayout);
+ evas_object_size_hint_weight_set(g_pSearchViewHandle->pVideosGenlist,
+ EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(g_pSearchViewHandle->pVideosGenlist,
+ EVAS_HINT_FILL, EVAS_HINT_FILL);
+ elm_genlist_block_count_set(g_pSearchViewHandle->pVideosGenlist,
+ VIDEO_GENLIST_BLOCK_COUNT);
+ elm_genlist_mode_set(g_pSearchViewHandle->pVideosGenlist,
+ ELM_LIST_COMPRESS);
+ elm_genlist_homogeneous_set(g_pSearchViewHandle->pVideosGenlist,
+ EINA_TRUE);
+ evas_object_smart_callback_add(g_pSearchViewHandle->pVideosGenlist,
+ "scroll,anim,start",
+ __mp_search_view_genlist_scroll_cb,
+ (void *) g_pSearchViewWidget);
+
+ g_pSearchViewHandle->isViewActive = true;
+ __mp_search_view_arrange_video_list(__mp_search_view_get_sort_type(),
+ g_pSearchViewHandle->
+ pVideosGenlist);
+ elm_object_part_content_set(g_pSearchViewWidget->pSearchViewBaselayout,
+ "elm.swallow.content",
+ g_pSearchViewHandle->pVideosGenlist);
+ evas_object_event_callback_add(g_pSearchViewWidget->
+ pSearchViewBaselayout,
+ EVAS_CALLBACK_DEL,
+ __mp_search_view_base_layout_del_cb,
+ NULL);
+
+ g_pSearchViewHandle->pNaviFrameItem =
+ elm_naviframe_item_push(g_pSearchViewHandle->pNaviFrameHandle,
+ NULL, NULL, NULL,
+ g_pSearchViewWidget->pSearchViewBaselayout,
+ NULL);
+ elm_naviframe_item_pop_cb_set(g_pSearchViewHandle->pNaviFrameItem,
+ mp_search_view_back_btn_cb,
+ g_pSearchViewHandle);
+ evas_object_smart_callback_add(g_pSearchViewHandle->pNaviFrameHandle,
+ "transition,finished",
+ __mp_search_view_naviframe_transition_effect_cb,
+ NULL);
+ elm_naviframe_item_title_enabled_set(g_pSearchViewHandle->
+ pNaviFrameItem, EINA_FALSE,
+ EINA_FALSE);
+
+ if (mp_util_svc_get_number_of_video_item_by_type() < 1) {
+ __mp_search_view_is_existed_genlist();
+ void *pNoContentLayout =
+ __mp_search_view_add_no_contents_layout(g_pSearchViewWidget->
+ pSearchViewBaselayout);
+ elm_object_part_content_set(g_pSearchViewWidget->
+ pSearchViewBaselayout,
+ "elm.swallow.content",
+ pNoContentLayout);
+ }
+
+ mp_util_virtual_keypad_disabled_set(EINA_TRUE);
+ mp_util_db_set_update_fun(g_pSearchViewHandle->euLev,
+ __mp_search_view_db_changed_cb);
+
+ mp_util_hide_indicator();
+
+ elm_object_signal_emit(g_pSearchViewWidget->pSearchBarlayout,
+ "elm,state,eraser,hide", "elm");
+}
+
+/**
+ *
+ * @param pNaviFrame
+ * @param pFolderPath
+ */
+void mp_search_view_push(void *pNaviFrame, char *pFolderPath)
+{
+ if (!pNaviFrame) {
+ VideoLogError("[ERR] No existed pNaviFrame.");
+ return;
+ }
+
+ VideoLogInfo("");
+ mp_search_view_destroy();
+
+ g_pSearchViewHandle =
+ (st_VideoSearchViewHandle *) calloc(1,
+ sizeof
+ (st_VideoSearchViewHandle));
+ g_pSearchViewWidget =
+ (st_VideoSearchViewWidget *) calloc(1,
+ sizeof
+ (st_VideoSearchViewWidget));
+
+ memset(g_pSearchViewHandle, 0, sizeof(st_VideoSearchViewHandle));
+ memset(g_pSearchViewWidget, 0, sizeof(st_VideoSearchViewWidget));
+ g_pSearchViewHandle->pNaviFrameHandle = pNaviFrame;
+ if (pFolderPath) {
+ g_pSearchViewHandle->pFolderPath = strdup(pFolderPath);
+ }
+
+ g_pSearchViewHandle->nPlayVideoIndex = -1;
+
+ int nViewType = mp_view_as_ctrl_get_type();
+ g_pSearchViewHandle->nViewType = nViewType;
+ g_pSearchViewHandle->euLev = MP_DB_UPDATE_LEV_1;
+ if (nViewType == MP_LIST_VIEW_AS_FOLDER_LIST
+ && g_pSearchViewHandle->pFolderPath) {
+ g_pSearchViewHandle->euLev = MP_DB_UPDATE_LEV_2;
+ }
+
+ mp_search_view_init(g_pSearchViewHandle->pNaviFrameHandle);
+}
+
+/**
+ *
+ * @param pNaviFrame
+ */
+static void __mp_search_view_pop(void *pNaviFrame)
+{
+ VideoLogInfo("");
+
+ if (!g_pSearchViewHandle || !g_pSearchViewWidget) {
+ VideoLogError("Handles are not existed about search view.");
+ return;
+ }
+
+ mp_util_virtual_keypad_disabled_set(EINA_FALSE);
+ bool bUpdateList = FALSE;
+ g_pSearchViewHandle->isViewActive = false;
+ if (g_pSearchViewHandle->bUpdateList) {
+ if (g_pSearchViewHandle->pChangeViewUpdateFunc) {
+ bUpdateList = TRUE;
+ g_pSearchViewHandle->
+ pChangeViewUpdateFunc(LIST_UPDATE_TYPE_ALL);
+ }
+ }
+
+ if (!bUpdateList) {
+ if (g_pSearchViewHandle->pChangeViewUserCbFunc) {
+ g_pSearchViewHandle->pChangeViewUserCbFunc();
+ }
+ }
+}
+
+/**
+ *
+ * @param pUpdateViewCb
+ * @param pChangeViewCb
+ */
+void mp_search_view_register_update_list_func(ViewUpdateListItemCbFunc
+ pUpdateViewCb,
+ ListViewUpdateListItemCbFunc
+ pChangeViewCb)
+{
+ if (!pUpdateViewCb || !pChangeViewCb) {
+ VideoLogInfo("[ERR]");
+ return;
+ }
+
+ VideoLogInfo("");
+
+ if (!g_pSearchViewHandle || !g_pSearchViewWidget) {
+ VideoLogError("Handles are not existed about search view.");
+ return;
+ }
+
+ g_pSearchViewHandle->pChangeViewUserCbFunc = pChangeViewCb;
+ g_pSearchViewHandle->pChangeViewUpdateFunc = pUpdateViewCb;
+}
+
+/**
+ *
+ * @param pGenlist
+ * @param nGenItemIndex
+ * @param nPlayVideoIndex
+ */
+static void __mp_search_view_update_video_items(Evas_Object * pGenlist,
+ int nGenItemIndex,
+ int nPlayVideoIndex)
+{
+ if (!pGenlist) {
+ VideoLogWarning("[WARNING] pNormalVideoItemList is not existed.");
+ return;
+ }
+
+ VideoLogInfo("%d", nGenItemIndex);
+
+ Elm_Object_Item *pTmpVideoGenlistItem =
+ elm_genlist_nth_item_get((const Evas_Object *) pGenlist,
+ nGenItemIndex);
+ if (pTmpVideoGenlistItem) {
+ elm_genlist_item_selected_set(pTmpVideoGenlistItem, EINA_FALSE);
+ Evas_Object *pIconContent =
+ elm_object_item_part_content_get(pTmpVideoGenlistItem,
+ "elm.swallow.icon");
+ if (!pIconContent) {
+ VideoLogError("");
+ return;
+ }
+ Evas_Object *pProgressbar =
+ elm_layout_content_get(pIconContent, "elm.progressbar.icon");
+
+ if (pProgressbar) {
+ elm_layout_content_unset(pIconContent,
+ "elm.progressbar.icon");
+ MP_DEL_OBJ(pProgressbar);
+ }
+
+ elm_genlist_item_fields_update(pTmpVideoGenlistItem,
+ "elm.text.sub",
+ ELM_GENLIST_ITEM_FIELD_TEXT);
+ }
+
+}
+
+/**
+ *
+ * @param nIndex
+ */
+void mp_search_view_update_played_item(int nIndex)
+{
+ if (!g_pSearchViewHandle || !g_pSearchViewWidget
+ || (g_pSearchViewHandle->nPlayVideoIndex < 0)) {
+ VideoLogInfo("SearchView of list view are not existed.");
+ return;
+ }
+ if (nIndex >= 0) {
+ g_pSearchViewHandle->nPlayVideoIndex = nIndex;
+ }
+ VideoLogInfo("");
+
+ if (g_pSearchViewHandle->pVideosGenlist) {
+ int nGenItemIndex = g_pSearchViewHandle->nPlayVideoIndex;
+ if (g_pSearchViewHandle->SearchedIndexList) {
+ Eina_List *pIterateList = NULL;
+ void *nTempIndex = (void *) 0;
+ int nIndex = 0;
+ EINA_LIST_FOREACH(g_pSearchViewHandle->SearchedIndexList,
+ pIterateList, nTempIndex) {
+ VideoLogInfo("nTempIndex:index==%d:%d:%d",
+ (int) nTempIndex, nIndex, nGenItemIndex);
+ if (g_pSearchViewHandle->nPlayVideoIndex ==
+ (int) nTempIndex) {
+ nGenItemIndex = nIndex;
+ break;
+ }
+ nIndex++;
+ }
+ }
+ mp_util_svc_update_thumbnail_info(g_pSearchViewHandle->
+ nPlayVideoIndex);
+ __mp_search_view_update_video_items((Evas_Object *)
+ g_pSearchViewHandle->
+ pVideosGenlist, nGenItemIndex,
+ g_pSearchViewHandle->
+ nPlayVideoIndex);
+ }
+}
+
+/**
+ *
+ */
+void mp_search_view_change_language(void)
+{
+ VideoLogInfo("");
+
+ if (!g_pSearchViewHandle || !g_pSearchViewWidget) {
+ VideoLogError("Handles are not existed about search view.");
+ return;
+ }
+
+ elm_object_domain_translatable_part_text_set(g_pSearchViewWidget->
+ pSearchBarlayout,
+ "elm.guidetext",
+ VIDEOS_STRING,
+ VIDEOS_CTXPOP_MENU_SEARCH);
+}
+
+
+/**
+ *
+ * @param data
+ * @param e
+ * @param obj
+ * @param event_info
+ */
+static void
+__mp_search_view_base_layout_del_cb(void *data, Evas * e,
+ Evas_Object * obj, void *event_info)
+{
+ __mp_search_view_reset();
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#include <stdbool.h>
+
+#include "videos-view-mgr.h"
+#include "mp-video-value-define.h"
+#include "mp-video-type-define.h"
+
+#include "mp-util.h"
+#include "mp-video-log.h"
+#include "mp-library-view-mgr.h"
+#include "mp-rotate-ctrl.h"
+
+#include "vp-util.h"
+
+
+enum DeviceOrientationType {
+ DEVICE_ORIENTATION_PORTRAIT = 0,
+ DEVICE_ORIENTATION_LANDSCAPE,
+ DEVICE_ORIENTATION_MAX
+};
+
+
+typedef struct _vp_WindowData {
+ Evas_Object *pMainWindow;
+ Evas_Object *pConformant;
+ Evas_Object *pMainLayout;
+
+ Evas_Object *pLibraryInnerNaviframe;
+ Ecore_Idler *pInitValueIdler;
+
+ /*landcape */
+ app_device_orientation_e mOrientation;
+} VpWindowData;
+
+
+static VpWindowData *g_WindowData = NULL;
+
+/**
+ *
+ * @return
+ */
+static int __mp_mgr_get_device_orientation_type()
+{
+ if (g_WindowData
+ && (g_WindowData->mOrientation == APP_DEVICE_ORIENTATION_270
+ || g_WindowData->mOrientation == APP_DEVICE_ORIENTATION_90)) {
+ return DEVICE_ORIENTATION_LANDSCAPE;
+ } else {
+ return DEVICE_ORIENTATION_PORTRAIT;
+ }
+}
+
+
+#ifdef ENABLE_LANDSCAPE
+static void
+__mp_mgr_main_window_rotation_change_cb(void *data, Evas_Object * obj,
+ void *event_info)
+{
+ int changed_angle = elm_win_rotation_get(obj);
+
+ VideoLogWarning("window rotated [%d] => [%d]",
+ g_WindowData->mOrientation, changed_angle);
+ if (g_WindowData->mOrientation != changed_angle) {
+ g_WindowData->mOrientation = changed_angle;
+
+ VideoLogWarning("Rotate phone");
+ mp_rotate_ctrl_set_state(changed_angle);
+ mp_library_mgr_update_library_view(LIST_UPDATE_TYPE_VIEW);
+ }
+}
+#endif
+
+/**
+ *
+ */
+static void __mp_mgr_window_destroy()
+{
+ VideoLogInfo("");
+
+ if (g_WindowData != NULL) {
+ MP_DEL_IDLER(g_WindowData->pInitValueIdler);
+ free(g_WindowData);
+ g_WindowData = NULL;
+ }
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param mouse_event_rect
+ */
+static void
+__mp_mgr_main_win_del_cb(void *data, Evas_Object * obj,
+ void *mouse_event_rect)
+{
+ VideoLogInfo("");
+
+ if (NULL == data || data != g_WindowData) {
+ VideoLogError(" data[%p] == NULL || data != g_WindowData[%p]!!!",
+ data, g_WindowData);
+ return;
+ }
+
+ __mp_mgr_window_destroy();
+
+ elm_exit();
+}
+
+/**
+ *
+ * @param pWin
+ * @return
+ */
+static Evas_Object *__mp_mgr_create_bg(Evas_Object * pWin)
+{
+ VideoLogInfo("");
+
+ if (NULL == pWin) {
+ VideoLogError("pWin == NULL!!!");
+ return NULL;
+ }
+
+ /* default BG */
+ Evas_Object *bg = NULL;
+
+ bg = elm_bg_add(pWin);
+ Eina_Bool ret = elm_bg_file_set(bg,
+ "/usr/apps/org.tizen.videos/res/images/core_theme_bg_01.png",
+ NULL);
+ if (ret != true) {
+ VideoLogInfo("failed to set layout bg");
+ }
+ evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(bg, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ elm_win_resize_object_add(pWin, bg);
+ evas_object_show(bg);
+
+ return bg;
+}
+
+/**
+ *
+ * @param name
+ * @return
+ */
+static Evas_Object *__mp_mgr_create_win(const char *name)
+{
+ VideoLogInfo("");
+
+ Evas_Object *eo;
+ int w;
+ int h;
+
+ eo = elm_win_add(NULL, name, ELM_WIN_BASIC);
+
+ if (eo) {
+ elm_win_title_set(eo, name);
+ evas_object_smart_callback_add(eo, "delete,request",
+ __mp_mgr_main_win_del_cb,
+ g_WindowData);
+
+ elm_win_screen_size_get(eo, NULL, NULL, &w, &h);
+ VideoLogInfo("window size:%d,%d", w, h);
+
+ evas_object_resize(eo, w, h);
+
+ elm_win_indicator_mode_set(eo, ELM_WIN_INDICATOR_SHOW);
+ elm_win_indicator_opacity_set(eo, ELM_WIN_INDICATOR_TRANSPARENT);
+ }
+
+ return eo;
+}
+
+/**
+ *
+ * @param pStrName
+ * @return
+ */
+const Evas_Object *mp_mgr_create_main_window(const char *pStrName)
+{
+ if (g_WindowData != NULL) {
+ VideoLogWarning("g_WindowData != NULL. destory g_WindowData");
+ __mp_mgr_window_destroy();
+ }
+
+ g_WindowData = calloc(1, sizeof(VpWindowData));
+ if (NULL == g_WindowData) {
+ VideoLogError("g_WindowData calloc failed!!!");
+ return NULL;
+ }
+
+ g_WindowData->pMainWindow = __mp_mgr_create_win(pStrName);
+
+
+#ifdef ENABLE_LANDSCAPE
+ VideoLogWarning("support rotate",
+ elm_win_wm_rotation_supported_get
+ (g_WindowData->pMainWindow));
+ if (elm_win_wm_rotation_supported_get(g_WindowData->pMainWindow)) {
+ const int rots[4] = { 0, 90, 180, 270 };
+ elm_win_wm_rotation_available_rotations_set
+ (g_WindowData->pMainWindow, rots, 4);
+ evas_object_smart_callback_add(g_WindowData->pMainWindow,
+ "wm,rotation,changed",
+ __mp_mgr_main_window_rotation_change_cb,
+ g_WindowData);
+ g_WindowData->mOrientation =
+ elm_win_rotation_get(g_WindowData->pMainWindow);
+ VideoLogWarning("mOrientation=%d", g_WindowData->mOrientation);
+ }
+#endif
+
+ elm_win_conformant_set(g_WindowData->pMainWindow, EINA_TRUE);
+
+
+ /* create bg */
+ __mp_mgr_create_bg(g_WindowData->pMainWindow);
+
+
+ /* create conformant */
+ g_WindowData->pConformant =
+ elm_conformant_add(g_WindowData->pMainWindow);
+
+
+ evas_object_size_hint_weight_set(g_WindowData->pConformant,
+ EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ elm_win_resize_object_add(g_WindowData->pMainWindow,
+ g_WindowData->pConformant);
+ evas_object_show(g_WindowData->pConformant);
+ elm_object_signal_emit(g_WindowData->pConformant,
+ "elm,state,indicator,overlap", "");
+ evas_object_data_set(g_WindowData->pConformant, "overlap",
+ (void *) EINA_TRUE);
+
+ mp_util_set_main_conformat((void *) g_WindowData->pConformant);
+ mp_util_set_main_window_handle((void *) g_WindowData->pMainWindow);
+
+ return (const Evas_Object *) g_WindowData->pMainWindow;
+}
+
+/**
+ *
+ * @param pUserData
+ * @return
+ */
+static Eina_Bool __mp_mgr_init_data_idler_cb(void *pUserData)
+{
+ if (!g_WindowData) {
+ VideoLogError("");
+ return ECORE_CALLBACK_CANCEL;
+ }
+
+ g_WindowData->pInitValueIdler = NULL;
+
+ mp_library_mgr_init_value();
+
+ return ECORE_CALLBACK_CANCEL;
+}
+
+/**
+ *
+ */
+void mp_mgr_restart_main_window()
+{
+ if (NULL == g_WindowData) {
+ VideoLogError("g_WindowData == NULL!!!");
+ elm_exit();
+ return;
+ }
+
+ if (g_WindowData->pLibraryInnerNaviframe != NULL) {
+ VideoLogInfo("g_WindowData->pLibraryInnerNaviframe != NULL");
+ mp_library_mgr_destroy(g_WindowData->pLibraryInnerNaviframe);
+ /*pLibraryInnerNaviframe has been detroyed in mp_library_mgr_destroy */
+ g_WindowData->pLibraryInnerNaviframe = NULL;
+ }
+
+ if (g_WindowData->pMainLayout != NULL) {
+ evas_object_del(g_WindowData->pMainLayout);
+ g_WindowData->pMainLayout = NULL;
+ }
+
+ g_WindowData->pMainLayout = elm_layout_add(g_WindowData->pConformant);
+ if (g_WindowData->pMainLayout == NULL) {
+ VideoLogError("elm_layout_add fail!!!");
+ elm_exit();
+ return;
+ }
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VIDEO_BASIC_LAYOUT_EDJ);
+ free(path);
+ elm_layout_file_set(g_WindowData->pMainLayout, edj_path,
+ "elm/layout/application/video/default");
+ evas_object_size_hint_weight_set(g_WindowData->pMainLayout,
+ EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(g_WindowData->pMainLayout,
+ EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_show(g_WindowData->pMainLayout);
+ elm_object_content_set(g_WindowData->pConformant,
+ g_WindowData->pMainLayout);
+
+ if (g_WindowData->pLibraryInnerNaviframe != NULL) {
+ evas_object_del(g_WindowData->pLibraryInnerNaviframe);
+ }
+ g_WindowData->pLibraryInnerNaviframe = mp_library_mgr_init();
+ MP_DEL_IDLER(g_WindowData->pInitValueIdler);
+ g_WindowData->pInitValueIdler =
+ ecore_idler_add(__mp_mgr_init_data_idler_cb,
+ (void *) g_WindowData);
+
+ elm_object_part_content_set(g_WindowData->pMainLayout,
+ "elm.swallow.content",
+ g_WindowData->pLibraryInnerNaviframe);
+
+ eext_object_event_callback_add(g_WindowData->pLibraryInnerNaviframe,
+ EEXT_CALLBACK_BACK,
+ eext_naviframe_back_cb, NULL);
+ eext_object_event_callback_add(g_WindowData->pLibraryInnerNaviframe,
+ EEXT_CALLBACK_MORE,
+ eext_naviframe_more_cb, NULL);
+
+ mp_util_hide_indicator();
+}
+
+/**
+ *
+ * @return
+ */
+const Evas_Object *mp_mgr_get_main_window()
+{
+ if (NULL == g_WindowData) {
+ VideoLogWarning("g_WindowData == NULL!!!");
+ return NULL;
+ }
+
+ return (const Evas_Object *) g_WindowData->pMainWindow;
+}
+
+/**
+ *
+ * @return
+ */
+const Evas_Object *mp_mgr_get_conformant()
+{
+ if (NULL == g_WindowData) {
+ VideoLogError("g_WindowData == NULL!!!");
+ return NULL;
+ }
+
+ return (const Evas_Object *) g_WindowData->pConformant;
+}
+
+/**
+ *
+ * @return
+ */
+const Evas_Object *mp_mgr_get_library_naviframe()
+{
+
+ if (NULL == g_WindowData) {
+ VideoLogError("g_WindowData == NULL!!!");
+ return NULL;
+ }
+
+ return (const Evas_Object *) g_WindowData->pLibraryInnerNaviframe;
+}
+
+/**
+ *
+ * @return
+ */
+const Evas_Object *mp_mgr_get_current_inner_naviframe()
+{
+ return (const Evas_Object *) g_WindowData->pLibraryInnerNaviframe;
+}
+
+/**
+ *
+ * @return
+ */
+const Evas_Object *mp_mgr_get_main_layout()
+{
+ VideoLogInfo("");
+
+ if (NULL == g_WindowData) {
+ VideoLogError("g_WindowData == NULL!!!");
+ return NULL;
+ }
+
+ return (const Evas_Object *) g_WindowData->pMainLayout;
+}
+
+/**
+ *
+ * @return
+ */
+Eina_Bool mp_mgr_is_landscape()
+{
+ return (__mp_mgr_get_device_orientation_type() ==
+ DEVICE_ORIENTATION_LANDSCAPE);
+}
+
+
+/**
+ *
+ * @return
+ */
+const Evas_Object *mp_mgr_get_library_parent()
+{
+ if (g_WindowData == NULL) {
+ VideoLogError("g_WindowData == NULL!!!");
+ return NULL;
+ }
+
+ return mp_mgr_get_main_layout();
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#include <app.h>
+#include <Elementary.h>
+
+#include "vp-play-log.h"
+#include "mp-util.h"
+#include "mp-video-log.h"
+#include "mp-external-ug.h"
+#include "mp-video-value-define.h"
+#include "mp-video-string-define.h"
+
+/**
+ *
+ * @param pUrl
+ */
+void mp_external_service_share_panel(const char *pUrl)
+{
+ if (!pUrl) {
+ VideoLogInfo("pUrl is null.");
+ return;
+ }
+
+ int nErr = 0;
+ app_control_h pService = NULL;
+ char *pOperation = VIDEO_SHARE_OPERATION_SINGLE;
+
+ VideoSecureLogInfo("share pUrl = %s", pUrl);
+
+ nErr = app_control_create(&pService);
+ if (nErr != APP_CONTROL_ERROR_NONE) {
+ VideoLogError("Fail to create ug service handle - [0x%x]", nErr);
+ goto ERROR_EXCEPTION;
+ }
+
+ nErr = app_control_set_uri(pService, pUrl);
+ if (nErr != APP_CONTROL_ERROR_NONE) {
+ VideoLogError("Fail to set uri into ug service handle - [0x%x]",
+ nErr);
+ goto ERROR_EXCEPTION;
+ }
+
+ nErr = app_control_set_operation(pService, pOperation);
+ if (nErr != APP_CONTROL_ERROR_NONE) {
+ VideoLogError("app_control_set_operation.. [0x%x]", nErr);
+ goto ERROR_EXCEPTION;
+ }
+
+ nErr = app_control_send_launch_request(pService, NULL, NULL);
+ if (nErr != APP_CONTROL_ERROR_NONE) {
+ VideoLogWarning("[WARNING] rvice_send_launch_request().. [0x%x]",
+ nErr);
+ goto ERROR_EXCEPTION;
+ }
+
+ app_control_destroy(pService);
+ pService = NULL;
+
+
+ ERROR_EXCEPTION:
+ if (pService) {
+ app_control_destroy(pService);
+ pService = NULL;
+ }
+ return;
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#include <Eina.h>
+#include <Ecore_Evas.h>
+#include <Elementary.h>
+
+#include "mp-util.h"
+#include "mp-video-log.h"
+#include "mp-footer-toolbar.h"
+#include "mp-util-media-service.h"
+#include "mp-video-string-define.h"
+#include "mp-video-value-define.h"
+#include "mp-external-ug.h"
+
+#include "mp-rotate-ctrl.h"
+#include "mp-video-view-popup-ctrl.h"
+#include "vp-util.h"
+
+typedef struct {
+ void *pNaviFrameHandle;
+ void *pNaviFrameItem;
+
+ MpFooterLibraryMainListTabType nFooterListTabType;
+
+ Evas_Object *pSortToolbarButton;
+ Evas_Object *pSearchToolbarButton;
+ Evas_Object *pSettingToolbarButton;
+ Evas_Object *pMoreToolbarButton;
+ Evas_Object *pMoreCtxPopup;
+ Evas_Object *pDeleteButton;
+ Evas_Object *pDeleteCancelButton;
+ Evas_Object *pViewButton;
+
+ st_RegisteCbFunc ToolbarCbFunc;
+} st_ToolbarWidget;
+
+
+st_ToolbarWidget *g_pToolbarWidget = NULL;
+
+/**
+ *
+ */
+void mp_ft_ctrl_free_toolbar_btn(void)
+{
+ VideoLogInfo("");
+
+ if (g_pToolbarWidget) {
+ if (g_pToolbarWidget->pNaviFrameItem) {
+ elm_object_item_part_content_unset
+ (g_pToolbarWidget->pNaviFrameItem, "toolbar_button2");
+
+ g_pToolbarWidget->pNaviFrameItem = NULL;
+ }
+ g_pToolbarWidget->pNaviFrameHandle = NULL;
+
+ if (g_pToolbarWidget->pViewButton) {
+ evas_object_del(g_pToolbarWidget->pViewButton);
+ g_pToolbarWidget->pViewButton = NULL;
+ }
+
+ if (g_pToolbarWidget->pMoreToolbarButton) {
+ evas_object_del(g_pToolbarWidget->pMoreToolbarButton);
+ g_pToolbarWidget->pMoreToolbarButton = NULL;
+ }
+
+ if (g_pToolbarWidget->pSortToolbarButton) {
+ evas_object_del(g_pToolbarWidget->pSortToolbarButton);
+ g_pToolbarWidget->pSortToolbarButton = NULL;
+ }
+
+ if (g_pToolbarWidget->pSearchToolbarButton) {
+ evas_object_del(g_pToolbarWidget->pSearchToolbarButton);
+ g_pToolbarWidget->pSearchToolbarButton = NULL;
+ }
+
+ if (g_pToolbarWidget->pSettingToolbarButton) {
+ evas_object_del(g_pToolbarWidget->pSettingToolbarButton);
+ g_pToolbarWidget->pSettingToolbarButton = NULL;
+ }
+
+ if (g_pToolbarWidget->pMoreCtxPopup) {
+ evas_object_del(g_pToolbarWidget->pMoreCtxPopup);
+ g_pToolbarWidget->pMoreCtxPopup = NULL;
+ }
+
+ if (g_pToolbarWidget->pDeleteButton) {
+ evas_object_del(g_pToolbarWidget->pDeleteButton);
+ g_pToolbarWidget->pDeleteButton = NULL;
+ }
+
+ if (g_pToolbarWidget->pDeleteCancelButton) {
+ evas_object_del(g_pToolbarWidget->pDeleteCancelButton);
+ g_pToolbarWidget->pDeleteCancelButton = NULL;
+ }
+
+ g_pToolbarWidget->nFooterListTabType = FOOTER_TAB_TYPE_PERSONAL;
+ g_pToolbarWidget->pNaviFrameItem = NULL;
+
+ memset((void *) &g_pToolbarWidget->ToolbarCbFunc, 0,
+ sizeof(st_RegisteCbFunc));
+
+ free(g_pToolbarWidget);
+ g_pToolbarWidget = NULL;
+ }
+}
+
+/**
+ *
+ * @param pParent
+ * @param pFunc
+ * @param pUserData
+ */
+void *mp_ft_ctrl_create_more_style_btn(void *pParent, Evas_Smart_Cb pFunc,
+ void *pUserData)
+{
+ if (!pParent) {
+ VideoLogError("No exist parent.");
+ return NULL;
+ }
+
+ Evas_Object *pTmpBtn = elm_button_add(pParent);
+ elm_access_info_set(pTmpBtn, ELM_ACCESS_INFO, "more");
+ elm_object_style_set(pTmpBtn, "naviframe/more/default");
+ evas_object_smart_callback_add(pTmpBtn, "clicked", pFunc, pUserData);
+
+ return pTmpBtn;
+}
+
+/**
+ *
+ * @param pParent
+ * @param pText
+ * @param pFunc
+ * @param pUserData
+ */
+void *mp_ft_ctrl_create_toolbar_btn(void *pParent, const char *pText,
+ Evas_Smart_Cb pFunc, void *pUserData)
+{
+ if (!pParent) {
+ VideoLogError("No exist parent.");
+ return NULL;
+ }
+
+ Evas_Object *pTmpBtn = elm_button_add(pParent);
+ elm_object_style_set(pTmpBtn, "naviframe/toolbar/default");
+ elm_object_text_set(pTmpBtn, pText);
+ evas_object_smart_callback_add(pTmpBtn, "clicked", pFunc, pUserData);
+
+ return pTmpBtn;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+void mp_ft_ctrl_more_popup_dismissed_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ VideoLogInfo("");
+
+ mp_ft_ctrl_hide_more_popup();
+}
+
+/**
+ *
+ * @param pCtxPopup
+ * @param pTargetObject
+ */
+void mp_ft_ctrl_move_more_popup(Evas_Object * pCtxPopup,
+ Evas_Object * pTargetObject)
+{
+ Evas_Coord_Rectangle rect = { 0, };
+ int nRotate = elm_win_rotation_get(mp_util_get_main_window_handle());
+
+ elm_win_screen_size_get(mp_util_get_main_window_handle(), &rect.x,
+ &rect.y, &rect.w, &rect.h);
+
+ VideoLogInfo("nRotate : [%d], rect.w : [%d], rect.h : [%d]", nRotate,
+ rect.w, rect.h);
+
+ int nW = 0;
+ int nH = 0;
+
+ switch (nRotate) {
+ case 0:
+ case 180:
+ {
+ nW = rect.w / 2;
+ nH = rect.h;
+ }
+ break;
+
+ case 90:
+ {
+ nW = rect.h / 2;
+ nH = rect.w;
+ }
+ break;
+
+ case 270:
+ {
+ nW = rect.h / 2;
+ nH = rect.w;
+ }
+ break;
+
+ default:
+ {
+ VideoLogError("not handled nRotate : [%d]!!!", nRotate);
+ }
+ break;
+ }
+
+ evas_object_move(g_pToolbarWidget->pMoreCtxPopup, nW, nH);
+
+}
+
+/**
+ *
+ * @param data
+ * @param e
+ * @param obj
+ * @param event_info
+ */
+static void __mp_ft_ctrl_more_popup_del_cb(void *data, Evas * e,
+ Evas_Object * obj,
+ void *event_info)
+{
+ VideoLogInfo("");
+ evas_object_event_callback_del(obj, EVAS_CALLBACK_DEL,
+ __mp_ft_ctrl_more_popup_del_cb);
+ if (g_pToolbarWidget)
+ g_pToolbarWidget->pMoreCtxPopup = NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pTargetObject
+ */
+void mp_ft_ctrl_create_more_btn_of_personal(void *pUserData,
+ Evas_Object * pTargetObject)
+{
+ VideoLogInfo("");
+
+ Elm_Object_Item *item = NULL;
+ int nItemCount = 0;
+
+ int nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+
+ g_pToolbarWidget->pMoreCtxPopup = elm_ctxpopup_add((Evas_Object *)
+ mp_util_get_main_window_handle
+ ());
+
+
+ if (g_pToolbarWidget->pMoreCtxPopup == NULL) {
+ VideoLogError("g_pToolbarWidget->pMoreCtxPopup == NULL!!!");
+ return;
+ }
+
+ evas_object_event_callback_add(g_pToolbarWidget->pMoreCtxPopup,
+ EVAS_CALLBACK_DEL,
+ __mp_ft_ctrl_more_popup_del_cb, NULL);
+ eext_object_event_callback_add(g_pToolbarWidget->pMoreCtxPopup,
+ EEXT_CALLBACK_BACK,
+ eext_ctxpopup_back_cb, NULL);
+ eext_object_event_callback_add(g_pToolbarWidget->pMoreCtxPopup,
+ EEXT_CALLBACK_MORE,
+ eext_ctxpopup_back_cb, NULL);
+
+ elm_object_style_set(g_pToolbarWidget->pMoreCtxPopup, "more/default");
+ elm_ctxpopup_auto_hide_disabled_set(g_pToolbarWidget->pMoreCtxPopup,
+ EINA_TRUE);
+
+ evas_object_smart_callback_add(g_pToolbarWidget->pMoreCtxPopup,
+ "dismissed",
+ mp_ft_ctrl_more_popup_dismissed_cb,
+ NULL);
+
+ if (nVideoListSize > 0 && g_pToolbarWidget->ToolbarCbFunc.SearchCb) {
+ item =
+ elm_ctxpopup_item_append(g_pToolbarWidget->pMoreCtxPopup,
+ VIDEOS_CTXPOP_MENU_SEARCH_IDS, NULL,
+ g_pToolbarWidget->
+ ToolbarCbFunc.SearchCb,
+ (void *) FOOTER_TAB_TYPE_PERSONAL);
+ elm_object_item_domain_text_translatable_set(item, VIDEOS_STRING,
+ EINA_TRUE);
+ nItemCount++;
+ }
+ if (nVideoListSize > 0 && g_pToolbarWidget->ToolbarCbFunc.DeleteCb) {
+ item =
+ elm_ctxpopup_item_append(g_pToolbarWidget->pMoreCtxPopup,
+ VIDEOS_CTXPOP_MENU_DELETE_IDS, NULL,
+ g_pToolbarWidget->
+ ToolbarCbFunc.DeleteCb,
+ (void *) FOOTER_TAB_TYPE_PERSONAL);
+ elm_object_item_domain_text_translatable_set(item, VIDEOS_STRING,
+ EINA_TRUE);
+ nItemCount++;
+ }
+ if (g_pToolbarWidget->ToolbarCbFunc.ShareViaCb) {
+ item =
+ elm_ctxpopup_item_append(g_pToolbarWidget->pMoreCtxPopup,
+ VIDEOS_CTXPOP_MENU_SHARE_IDS, NULL,
+ g_pToolbarWidget->
+ ToolbarCbFunc.ShareViaCb, NULL);
+ elm_object_item_domain_text_translatable_set(item, VIDEOS_STRING,
+ EINA_TRUE);
+ nItemCount++;
+ }
+ if (nVideoListSize > 0 && g_pToolbarWidget->ToolbarCbFunc.ViewAsCb) {
+ item =
+ elm_ctxpopup_item_append(g_pToolbarWidget->pMoreCtxPopup,
+ VIDEOS_CTXPOP_MENU_VIEW_AS_IDS, NULL,
+ g_pToolbarWidget->
+ ToolbarCbFunc.ViewAsCb,
+ (void *) FOOTER_TAB_TYPE_PERSONAL);
+ elm_object_item_domain_text_translatable_set(item, VIDEOS_STRING,
+ EINA_TRUE);
+ nItemCount++;
+ }
+ if (nVideoListSize > 0 && g_pToolbarWidget->ToolbarCbFunc.SortItemCb) {
+ item =
+ elm_ctxpopup_item_append(g_pToolbarWidget->pMoreCtxPopup,
+ VIDEOS_CTXPOP_MENU_SORT_BY_IDS, NULL,
+ g_pToolbarWidget->
+ ToolbarCbFunc.SortItemCb,
+ (void *) FOOTER_TAB_TYPE_PERSONAL);
+ elm_object_item_domain_text_translatable_set(item, VIDEOS_STRING,
+ EINA_TRUE);
+ nItemCount++;
+ }
+ if (nVideoListSize > 0 && g_pToolbarWidget->ToolbarCbFunc.AutoPlayCb) {
+ item =
+ elm_ctxpopup_item_append(g_pToolbarWidget->pMoreCtxPopup,
+ VIDEOS_CTXPOP_MENU_AUTO_PLAY_NEXT_IDS,
+ NULL,
+ g_pToolbarWidget->
+ ToolbarCbFunc.AutoPlayCb,
+ (void *) FOOTER_TAB_TYPE_PERSONAL);
+ elm_object_item_domain_text_translatable_set(item, VIDEOS_STRING,
+ EINA_TRUE);
+ nItemCount++;
+ }
+
+ if (nVideoListSize > 0 && g_pToolbarWidget->ToolbarCbFunc.RenameCb) {
+ item =
+ elm_ctxpopup_item_append(g_pToolbarWidget->pMoreCtxPopup,
+ VIDEOS_CTXPOP_MENU_RENAME_IDS, NULL,
+ g_pToolbarWidget->
+ ToolbarCbFunc.RenameCb,
+ (void *) FOOTER_TAB_TYPE_PERSONAL);
+ elm_object_item_domain_text_translatable_set(item, VIDEOS_STRING,
+ EINA_TRUE);
+ nItemCount++;
+ }
+ if (nVideoListSize > 0 && g_pToolbarWidget->ToolbarCbFunc.DetailsCb) {
+ item =
+ elm_ctxpopup_item_append(g_pToolbarWidget->pMoreCtxPopup,
+ VIDEOS_CTXPOP_MENU_DETAILS_IDS, NULL,
+ g_pToolbarWidget->
+ ToolbarCbFunc.DetailsCb,
+ (void *) FOOTER_TAB_TYPE_PERSONAL);
+ elm_object_item_domain_text_translatable_set(item, VIDEOS_STRING,
+ EINA_TRUE);
+ nItemCount++;
+ }
+
+ if (nItemCount > 0) {
+ mp_ft_ctrl_move_more_popup(g_pToolbarWidget->pMoreCtxPopup,
+ pTargetObject);
+ evas_object_show(g_pToolbarWidget->pMoreCtxPopup);
+ } else {
+ mp_ft_ctrl_free_toolbar_btn();
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+void mp_ft_ctrl_more_btn_cb(void *pUserData, Evas_Object * pObject,
+ void *pEventInfo)
+{
+ if (!pObject) {
+ VideoLogInfo("[ERR]");
+ return;
+ }
+
+ VideoLogInfo("");
+
+ if (g_pToolbarWidget->pMoreCtxPopup) {
+ evas_object_del(g_pToolbarWidget->pMoreCtxPopup);
+ g_pToolbarWidget->pMoreCtxPopup = NULL;
+ } else {
+ int nVideoListSize =
+ mp_util_svc_get_number_of_video_item_by_type();
+ VideoLogInfo("g_pToolbarWidget->nFooterListTabType=%d",
+ g_pToolbarWidget->nFooterListTabType);
+ if (nVideoListSize > 0) {
+ if (g_pToolbarWidget->nFooterListTabType ==
+ FOOTER_TAB_TYPE_PERSONAL) {
+ mp_ft_ctrl_create_more_btn_of_personal(pUserData, pObject);
+ } else {
+ VideoLogError("invalid footer type");
+ }
+ } else {
+ VideoLogError("Empty video list");
+ }
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pToolbarCenterButtonCb
+ */
+void mp_ft_ctrl_create_center_button(void *pUserData,
+ void *pToolbarCenterButtonCb)
+{
+ if (!g_pToolbarWidget) {
+ VideoLogError("g_pToolbarWidget is NULL.");
+ return;
+ }
+
+ if (g_pToolbarWidget->pViewButton) {
+ evas_object_del(g_pToolbarWidget->pViewButton);
+ g_pToolbarWidget->pViewButton = NULL;
+ }
+
+ g_pToolbarWidget->pViewButton =
+ mp_ft_ctrl_create_toolbar_btn(g_pToolbarWidget->pNaviFrameHandle,
+ MP_VPL_LIST_TAB_VIEW,
+ pToolbarCenterButtonCb, pUserData);
+ elm_object_item_part_content_set(g_pToolbarWidget->pNaviFrameItem,
+ "toolbar_button1",
+ g_pToolbarWidget->pViewButton);
+}
+
+/**
+ *
+ * @param pParent
+ * @param pToolbarCenterButtonCb
+ */
+void mp_ft_ctrl_create_center_toolbar(void *pParent,
+ void *pToolbarCenterButtonCb)
+{
+ if (!g_pToolbarWidget || !pParent) {
+ VideoLogError("g_pToolbarWidget or pParent is NULL.");
+ return;
+ }
+
+ Evas_Object *toolbar = elm_toolbar_add(pParent);
+ if (!toolbar)
+ return;
+ elm_object_style_set(toolbar, "default");
+ elm_toolbar_shrink_mode_set(toolbar, ELM_TOOLBAR_SHRINK_EXPAND);
+ elm_toolbar_transverse_expanded_set(toolbar, EINA_TRUE);
+ elm_toolbar_select_mode_set(toolbar, ELM_OBJECT_SELECT_MODE_NONE);
+ elm_toolbar_item_append(toolbar, NULL, MP_VPL_LIST_TAB_VIEW,
+ pToolbarCenterButtonCb, NULL);
+
+ if (g_pToolbarWidget->pNaviFrameItem) {
+ elm_object_item_part_content_set(g_pToolbarWidget->pNaviFrameItem,
+ "toolbar", toolbar);
+ }
+}
+
+/**
+ *
+ */
+void mp_ft_ctrl_delete_center_toolbar()
+{
+
+ Evas_Object *toolbar = NULL;
+ if (!g_pToolbarWidget)
+ return;
+
+ if (g_pToolbarWidget->pNaviFrameItem) {
+ toolbar =
+ elm_object_item_part_content_unset
+ (g_pToolbarWidget->pNaviFrameItem, "toolbar");
+ MP_DEL_OBJ(toolbar);
+ }
+}
+
+/**
+ *
+ */
+void mp_ft_ctrl_delete_center_button(void)
+{
+ if (!g_pToolbarWidget) {
+ VideoLogError("g_pToolbarWidget is NULL.");
+ return;
+ }
+
+ if (g_pToolbarWidget->pNaviFrameItem) {
+ elm_object_item_part_content_unset
+ (g_pToolbarWidget->pNaviFrameItem, "toolbar_button1");
+ }
+
+ if (g_pToolbarWidget->pViewButton) {
+ evas_object_del(g_pToolbarWidget->pViewButton);
+ g_pToolbarWidget->pViewButton = NULL;
+ }
+}
+
+/**
+ *
+ */
+void mp_ft_ctrl_disable(void)
+{
+ if (!g_pToolbarWidget) {
+ VideoLogError("g_pToolbarWidget is NULL.");
+ return;
+ }
+
+ if (g_pToolbarWidget->pNaviFrameItem) {
+ elm_object_item_part_content_unset
+ (g_pToolbarWidget->pNaviFrameItem, "toolbar_more_btn");
+ }
+
+ if (g_pToolbarWidget->pMoreToolbarButton) {
+ evas_object_del(g_pToolbarWidget->pMoreToolbarButton);
+ g_pToolbarWidget->pMoreToolbarButton = NULL;
+ }
+}
+
+/**
+ *
+ * @param pCallbackFunc
+ */
+void mp_ft_ctrl_registe_cb_func(st_RegisteCbFunc * pCallbackFunc)
+{
+ if (!g_pToolbarWidget) {
+ VideoLogError("g_pToolbarWidget == NULL");
+ return;
+ }
+
+ if (!pCallbackFunc) {
+ VideoLogError("pCallbackFunc == NULL");
+ return;
+ }
+
+ VideoLogInfo("");
+
+ memset((void *) &g_pToolbarWidget->ToolbarCbFunc, 0,
+ sizeof(st_RegisteCbFunc));
+
+ if (pCallbackFunc->DownloadCb) {
+ g_pToolbarWidget->ToolbarCbFunc.DownloadCb =
+ pCallbackFunc->DownloadCb;
+ }
+
+ if (pCallbackFunc->SearchCb) {
+ g_pToolbarWidget->ToolbarCbFunc.SearchCb = pCallbackFunc->SearchCb;
+ }
+
+ if (pCallbackFunc->DeleteCb) {
+ g_pToolbarWidget->ToolbarCbFunc.DeleteCb = pCallbackFunc->DeleteCb;
+ }
+
+ if (pCallbackFunc->SortItemCb) {
+ g_pToolbarWidget->ToolbarCbFunc.SortItemCb =
+ pCallbackFunc->SortItemCb;
+ }
+
+ if (pCallbackFunc->ViewAsCb) {
+ g_pToolbarWidget->ToolbarCbFunc.ViewAsCb = pCallbackFunc->ViewAsCb;
+ }
+
+ if (pCallbackFunc->AutoPlayCb) {
+ g_pToolbarWidget->ToolbarCbFunc.AutoPlayCb =
+ pCallbackFunc->AutoPlayCb;
+ }
+
+ if (pCallbackFunc->SignInCb) {
+ g_pToolbarWidget->ToolbarCbFunc.SignInCb = pCallbackFunc->SignInCb;
+ }
+
+ if (pCallbackFunc->ShareViaCb) {
+ g_pToolbarWidget->ToolbarCbFunc.ShareViaCb =
+ pCallbackFunc->ShareViaCb;
+ }
+
+ if (pCallbackFunc->RenameCb) {
+ g_pToolbarWidget->ToolbarCbFunc.RenameCb = pCallbackFunc->RenameCb;
+ }
+
+ if (pCallbackFunc->DetailsCb) {
+ g_pToolbarWidget->ToolbarCbFunc.DetailsCb =
+ pCallbackFunc->DetailsCb;
+ }
+#ifdef ENABLE_PRIVATE_MODE
+ if (pCallbackFunc->AddToPersonalCB) {
+ g_pToolbarWidget->ToolbarCbFunc.AddToPersonalCB =
+ pCallbackFunc->AddToPersonalCB;
+ }
+
+ if (pCallbackFunc->RemoveFromPersonalCB) {
+ g_pToolbarWidget->ToolbarCbFunc.RemoveFromPersonalCB =
+ pCallbackFunc->RemoveFromPersonalCB;
+ }
+#endif
+}
+
+/**
+ *
+ * @param pNaviFrameHandle
+ * @param pNaviFrameItem
+ * @param nFooterListTabType
+ * @param pRegisteCbFunc
+ */
+void mp_ft_ctrl_create(void *pNaviFrameHandle, void *pNaviFrameItem,
+ MpFooterLibraryMainListTabType nFooterListTabType,
+ st_RegisteCbFunc * pRegisteCbFunc)
+{
+ if (!pNaviFrameHandle) {
+ VideoLogError("g_pToolbarWidget is NULL.");
+ return;
+ }
+
+ mp_ft_ctrl_free_toolbar_btn();
+
+ g_pToolbarWidget =
+ (st_ToolbarWidget *) calloc(1, sizeof(st_ToolbarWidget));
+ memset(g_pToolbarWidget, 0, sizeof(st_ToolbarWidget));
+
+ g_pToolbarWidget->pNaviFrameHandle = pNaviFrameHandle;
+ g_pToolbarWidget->pNaviFrameItem = pNaviFrameItem;
+ g_pToolbarWidget->nFooterListTabType = nFooterListTabType;
+
+ if (pRegisteCbFunc) {
+ mp_ft_ctrl_registe_cb_func(pRegisteCbFunc);
+ }
+
+ g_pToolbarWidget->pMoreToolbarButton =
+ mp_ft_ctrl_create_more_style_btn
+ (g_pToolbarWidget->pNaviFrameHandle, mp_ft_ctrl_more_btn_cb, NULL);
+ elm_object_item_part_content_set(g_pToolbarWidget->pNaviFrameItem,
+ "toolbar_more_btn",
+ g_pToolbarWidget->pMoreToolbarButton);
+}
+
+/**
+ *
+ */
+void mp_ft_ctrl_destroy(void)
+{
+ mp_ft_ctrl_free_toolbar_btn();
+}
+
+/**
+ *
+ */
+void mp_ft_ctrl_hide_more_popup(void)
+{
+ if (!g_pToolbarWidget) {
+ VideoLogError("g_pToolbarWidget == NULL");
+ return;
+ }
+
+ if (g_pToolbarWidget->pMoreCtxPopup) {
+ evas_object_smart_callback_del(g_pToolbarWidget->pMoreCtxPopup,
+ "dismissed",
+ mp_ft_ctrl_more_popup_dismissed_cb);
+ evas_object_del(g_pToolbarWidget->pMoreCtxPopup);
+ g_pToolbarWidget->pMoreCtxPopup = NULL;
+ }
+}
+
+/**
+ *
+ * @param nFooterListTabType
+ */
+void mp_ft_ctrl_set_list_tab_type(MpFooterLibraryMainListTabType
+ nFooterListTabType)
+{
+ if (!g_pToolbarWidget) {
+ VideoLogError("g_pToolbarWidget == NULL");
+ return;
+ }
+
+ g_pToolbarWidget->nFooterListTabType = nFooterListTabType;
+
+ if (g_pToolbarWidget->nFooterListTabType == FOOTER_TAB_TYPE_PERSONAL) {
+ VideoLogInfo("FOOTER_TAB_TYPE_PERSONAL");
+ } else if (g_pToolbarWidget->nFooterListTabType ==
+ FOOTER_TAB_TYPE_DOWNLOAD) {
+ VideoLogInfo("FOOTER_TAB_TYPE_DOWNLOAD");
+ } else {
+ g_pToolbarWidget->nFooterListTabType = FOOTER_TAB_TYPE_PERSONAL;
+ VideoLogInfo("FOOTER_TAB_TYPE_PERSONAL");
+ }
+}
+
+/**
+ *
+ */
+void mp_ft_ctrl_rotate_update()
+{
+ VideoLogInfo("");
+ if (g_pToolbarWidget != NULL
+ && g_pToolbarWidget->pMoreCtxPopup != NULL) {
+ mp_ft_ctrl_move_more_popup(g_pToolbarWidget->pMoreCtxPopup, NULL);
+ evas_object_show(g_pToolbarWidget->pMoreCtxPopup);
+ }
+}
+
+/**
+ *
+ * @return
+ */
+bool mp_ft_ctrl_is_show(void)
+{
+ if (g_pToolbarWidget && g_pToolbarWidget->pMoreCtxPopup) {
+ VideoLogInfo("footbar is show");
+ return TRUE;
+ }
+ VideoLogInfo("footbar not show");
+ return FALSE;
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <glib.h>
+#include <stdbool.h>
+#include "mp-util-widget-ctrl.h"
+#include "mp-util.h"
+#include "mp-video-log.h"
+#include "mp-util-media-service.h"
+#include "mp-video-value-define.h"
+#include "mp-video-string-define.h"
+#include "mp-video-info-ctrl.h"
+#include "mp-rotate-ctrl.h"
+
+
+/*Focus UI*/
+/**
+ *
+ * @param pFocusLayout
+ */
+void mp_widget_ctrl_navi_item_layout_focus_out(Evas_Object * pFocusLayout)
+{
+ if (pFocusLayout == NULL) {
+ VideoLogError("pFocusLayout is NULL");
+ return;
+ }
+
+ elm_object_focus_set(pFocusLayout, EINA_FALSE);
+ elm_object_tree_focus_allow_set(pFocusLayout, EINA_FALSE);
+ elm_object_focus_allow_set(pFocusLayout, EINA_FALSE);
+}
+
+/**
+ *
+ * @param pFocusLayout
+ */
+void mp_widget_ctrl_navi_item_layout_focus_in(Evas_Object * pFocusLayout)
+{
+ if (pFocusLayout == NULL) {
+ VideoLogError("pFocusLayout is NULL");
+ return;
+ }
+
+ elm_object_focus_allow_set(pFocusLayout, EINA_TRUE);
+ elm_object_tree_focus_allow_set(pFocusLayout, EINA_TRUE);
+ elm_object_focus_set(pFocusLayout, EINA_TRUE);
+}
+
+/**
+ *
+ * @param pNaviHandle
+ */
+void mp_widget_ctrl_enable_navi_handle_focus(Evas_Object * pNaviHandle)
+{
+ return;
+}
+
+/**
+ *
+ * @param pNaviHandle
+ * @param pCurentNaviItem
+ */
+void mp_widget_ctrl_disable_navi_handle_focus_except_item(Evas_Object *
+ pNaviHandle,
+ Elm_Object_Item
+ *
+ pCurentNaviItem)
+{
+ return;
+}
+
+/**
+ *
+ * @param pBox
+ * @param nListCount
+ * @param eStyle
+ */
+void mp_widget_ctrl_set_popup_min_size(Evas_Object * pBox, int nListCount,
+ euPopUpStyle eStyle)
+{
+ if (pBox) {
+ int nMinHeight = 0;
+ switch (eStyle) {
+ case VIDEOS_POPUP_114:
+ if (mp_rotate_ctrl_check_landspace_by_win
+ ((Evas_Object *) mp_util_get_main_window_handle())) {
+ nMinHeight = VIDEO_POPUP_LIST_HEIGHT_L(nListCount);
+ } else {
+ nMinHeight = VIDEO_POPUP_LIST_HEIGHT(nListCount);
+ }
+ break;
+ case VIDEOS_POPUP_141:
+ if (mp_rotate_ctrl_check_landspace_by_win
+ ((Evas_Object *) mp_util_get_main_window_handle())) {
+ nMinHeight = VIDEO_POPUP_2_TEXT_HEIGHT_L(nListCount);
+ } else {
+ nMinHeight = VIDEO_POPUP_2_TEXT_HEIGHT(nListCount);
+ }
+ break;
+
+ default:
+ VideoLogError("invalid style =%d.", eStyle);
+ break;
+ }
+
+ evas_object_size_hint_min_set(pBox,
+ VIDEO_POPUP_ITEM_W *
+ elm_config_scale_get(),
+ nMinHeight * elm_config_scale_get());
+ }
+}
+
+/**
+ *
+ * @param pParent
+ * @param pIconPath
+ * @param pFunc
+ * @param pUserData
+ * @return
+ */
+Evas_Object *mp_widget_ctrl_create_navi_btn(Evas_Object * pParent,
+ const char *pIconPath,
+ Evas_Smart_Cb pFunc,
+ void *pUserData)
+{
+ if (!pParent) {
+ VideoLogError("pParent is NULL");
+ return NULL;
+ }
+
+ if (!pIconPath) {
+ VideoLogError("pIconPath is NULL");
+ return NULL;
+ }
+
+ VideoLogInfo("");
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+ VIDEO_PLAYER_IMAGE_NAME_EDJ);
+ free(path);
+ Evas_Object *pImage = elm_image_add(pParent);
+ elm_image_file_set(pImage, edj_path, pIconPath);
+ elm_image_resizable_set(pImage, EINA_TRUE, EINA_TRUE);
+ evas_object_show(pImage);
+
+ Evas_Object *pTitleBtn = elm_button_add(pParent);
+ elm_object_style_set(pTitleBtn, "naviframe/title_icon");
+ elm_object_part_content_set(pTitleBtn, "icon", pImage);
+ evas_object_smart_callback_add(pTitleBtn, "clicked", pFunc, pUserData);
+
+ return pTitleBtn;
+}
+
+/**
+ *
+ * @param pParent
+ * @param pNaviItem
+ * @param pIconPath
+ * @param pFunc
+ * @param pUserData
+ * @return
+ */
+Evas_Object *mp_widget_ctrl_create_navi_left_btn(Evas_Object * pParent,
+ Elm_Object_Item *
+ pNaviItem,
+ const char *pIconPath,
+ Evas_Smart_Cb pFunc,
+ void *pUserData)
+{
+
+ if (!pParent || !pNaviItem) {
+ VideoLogError("parent is NULL.");
+ return NULL;
+ }
+
+ VideoLogInfo("");
+
+ Evas_Object *pLeftbtn = NULL;
+ if (pIconPath) {
+ pLeftbtn =
+ mp_widget_ctrl_create_navi_btn(pParent, pIconPath, pFunc,
+ pUserData);
+ } else {
+ pLeftbtn = elm_button_add(pParent);
+ elm_object_style_set(pLeftbtn, "naviframe/title_cancel");
+ evas_object_smart_callback_add(pLeftbtn, "clicked", pFunc,
+ pUserData);
+ }
+
+ if (!pLeftbtn) {
+ VideoLogError("[ERR] Fail to create pLeftbtn");
+ return NULL;
+ }
+
+ elm_object_item_part_content_set(pNaviItem, "title_left_btn",
+ pLeftbtn);
+
+ evas_object_show(pLeftbtn);
+
+ return pLeftbtn;
+}
+
+
+/**
+ *
+ * @param pParent
+ * @param pNaviItem
+ * @param pIconPath
+ * @param pFunc
+ * @param pUserData
+ * @return
+ */
+Evas_Object *mp_widget_ctrl_create_navi_right_btn(Evas_Object * pParent,
+ Elm_Object_Item *
+ pNaviItem,
+ const char *pIconPath,
+ Evas_Smart_Cb pFunc,
+ void *pUserData)
+{
+
+ if (!pParent || !pNaviItem) {
+ VideoLogError("parent is NULL.");
+ return NULL;
+ }
+
+
+ VideoLogInfo("");
+ Evas_Object *pRightbtn = NULL;
+ if (pIconPath) {
+ pRightbtn =
+ mp_widget_ctrl_create_navi_btn(pParent, pIconPath, pFunc,
+ pUserData);
+ } else {
+ pRightbtn = elm_button_add(pParent);
+ elm_object_style_set(pRightbtn, "naviframe/title_done");
+ evas_object_smart_callback_add(pRightbtn, "clicked", pFunc,
+ pUserData);
+ }
+
+ if (!pRightbtn) {
+ VideoLogError("[ERR] Fail to create pRightbtn");
+ return NULL;
+ }
+
+ elm_object_item_part_content_set(pNaviItem, "title_right_btn",
+ pRightbtn);
+
+ evas_object_show(pRightbtn);
+
+ return pRightbtn;
+
+}
+
+/**
+ *
+ * @param pParent
+ * @param pChangeFunc
+ * @param pMouseDownFunc
+ * @param pUserData
+ * @param pCheckBox
+ * @param pSelectLayout
+ * @return
+ */
+bool mp_widget_ctrl_create_select_all_layout(Evas_Object * pParent,
+ Evas_Smart_Cb pChangeFunc,
+ Evas_Object_Event_Cb
+ pMouseDownFunc,
+ void *pUserData,
+ Evas_Object ** pCheckBox,
+ Evas_Object ** pSelectLayout)
+{
+ if (!pParent) {
+ VideoLogError("parent is NULL.");
+ return FALSE;
+ }
+
+ Evas_Object *pSelectAllLayout = elm_layout_add(pParent);
+ elm_layout_theme_set(pSelectAllLayout, "genlist", "item",
+ "group_index/default");
+ evas_object_size_hint_weight_set(pSelectAllLayout, EVAS_HINT_EXPAND,
+ EVAS_HINT_FILL);
+ evas_object_size_hint_align_set(pSelectAllLayout, EVAS_HINT_FILL,
+ EVAS_HINT_FILL);
+ evas_object_event_callback_add(pSelectAllLayout,
+ EVAS_CALLBACK_MOUSE_DOWN,
+ pMouseDownFunc, NULL);
+ *pSelectLayout = pSelectAllLayout;
+
+ Evas_Object *pSelectAllCheckbox = elm_check_add(pSelectAllLayout);
+ evas_object_smart_callback_add(pSelectAllCheckbox, "changed",
+ pChangeFunc, NULL);
+ evas_object_propagate_events_set(pSelectAllCheckbox, EINA_FALSE);
+ elm_object_part_content_set(pSelectAllLayout, "elm.swallow.end",
+ pSelectAllCheckbox);
+ elm_object_domain_translatable_part_text_set(pSelectAllLayout,
+ "elm.text",
+ VIDEOS_STRING,
+ VIDEOS_SELECTVIEW_BODY_SELECT_ALL_IDS);
+ evas_object_show(pSelectAllLayout);
+ *pCheckBox = pSelectAllCheckbox;
+ return TRUE;
+
+}
+
+/**
+ *
+ * @param pParent
+ * @param dRadio
+ * @return
+ */
+Evas_Object *mp_widget_ctrl_create_progressbar(Evas_Object * pParent,
+ double dRadio)
+{
+ if (!pParent) {
+ return NULL;
+ }
+ Evas_Object *pProgressBar = elm_progressbar_add(pParent);
+ elm_object_style_set(pProgressBar,
+ "elm/progressbar/horizontal/default");
+ elm_progressbar_horizontal_set(pProgressBar, EINA_TRUE);
+ elm_progressbar_span_size_set(pProgressBar,
+ VIDEO_LIST_PROGRESSBAR_LENGTH);
+ evas_object_size_hint_align_set(pProgressBar, EVAS_HINT_FILL,
+ EVAS_HINT_FILL);
+ evas_object_size_hint_weight_set(pProgressBar, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ elm_progressbar_value_set(pProgressBar, dRadio);
+ return pProgressBar;
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <app.h>
+#include <Ecore_Evas.h>
+#include <Elementary.h>
+#include <app_preference.h>
+
+#include "mp-util.h"
+#include "mp-video-log.h"
+#include "video-player.h"
+#include "mp-video-value-define.h"
+#include "mp-video-string-define.h"
+#include "mp-footer-toolbar.h"
+#include "mp-video-list-auto-play-ctrl.h"
+#include "mp-util-widget-ctrl.h"
+#include "vp-util.h"
+
+#define PREF_MP_VIDEO_AUTO_PLAY_TYPE_KEY "preference/org.tizen.videos/auto_play_type"
+
+typedef struct _MpVideoAutoPlay {
+ //obj
+ Evas_Object *pPopUpHandle;
+ Evas_Object *pGroupRadio;
+ Evas_Object *pGenList;
+ Evas_Object *pBox;
+
+ //data
+ Elm_Genlist_Item_Class *stAutoPlayItc;
+ MpListAutoPlaySelect nAutoPlaySelect;
+} stMpVideoAutoPlay;
+
+stMpVideoAutoPlay *g_pAutoPlayHandle = NULL;
+
+////////////////////////////////////////////////////////////
+// Internal function
+////////////////////////////////////////////////////////////
+static void __mp_auto_play_ctrl_rotate_cb(void *data, Evas_Object * obj,
+ void *event_info);
+static void __mp_auto_play_ctrl_mouse_up_cb(void *pUserData, Evas * pEvas,
+ Evas_Object * pObject,
+ void *pEventInfo);
+static void __mp_auto_play_ctrl_cancel_btn_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo);
+static void __mp_auto_play_ctrl_select_item_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo);
+static void __mp_auto_play_ctrl_select_radio_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo);
+
+
+/**
+ *
+ * @return
+ */
+bool mp_auto_play_config_get_auto_play_status()
+{
+ VideoLogInfo("");
+ int nErr = 0;
+ bool nVal = 0;
+ nErr = preference_get_boolean(PREF_MP_VIDEO_AUTO_PLAY_TYPE_KEY, &nVal);
+ if (nErr != 0) {
+ VideoLogError("failed to get MULTI PLAY FLAG [0x%x]", nErr);
+ return FALSE;
+ }
+ if (nVal)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+/**
+ *
+ */
+void mp_auto_play_ctrl_delete_handle(void)
+{
+ VideoLogInfo("");
+ if (!g_pAutoPlayHandle) {
+ VideoLogError("-------g_pAutoPlayHandle is NULL--------");
+ return;
+ }
+ if (g_pAutoPlayHandle->pPopUpHandle) {
+ eext_object_event_callback_del(g_pAutoPlayHandle->pPopUpHandle,
+ EEXT_CALLBACK_BACK,
+ __mp_auto_play_ctrl_cancel_btn_cb);
+ evas_object_event_callback_del(g_pAutoPlayHandle->pPopUpHandle,
+ EVAS_CALLBACK_MOUSE_UP,
+ __mp_auto_play_ctrl_mouse_up_cb);
+ evas_object_smart_callback_del(g_pAutoPlayHandle->pPopUpHandle,
+ "block,clicked",
+ __mp_auto_play_ctrl_cancel_btn_cb);
+ evas_object_smart_callback_del((Evas_Object *)
+ mp_util_get_main_window_handle(),
+ "rotation,changed",
+ __mp_auto_play_ctrl_rotate_cb);
+ }
+ MP_DEL_OBJ(g_pAutoPlayHandle->pGroupRadio);
+ MP_DEL_OBJ(g_pAutoPlayHandle->pGenList);
+ MP_DEL_OBJ(g_pAutoPlayHandle->pBox);
+ MP_DEL_OBJ(g_pAutoPlayHandle->pPopUpHandle);
+ MP_DEL_ITC(g_pAutoPlayHandle->stAutoPlayItc);
+ MP_FREE_STRING(g_pAutoPlayHandle);
+
+}
+
+/**
+ *
+ * @param nAutoPlaySelect
+ */
+void mp_auto_play_ctrl_set_type(MpListAutoPlaySelect nAutoPlaySelect)
+{
+ if (!g_pAutoPlayHandle) {
+ VideoLogError("");
+ return;
+ }
+
+ if (MP_LIST_AUTO_PLAY_NONE >= nAutoPlaySelect
+ || nAutoPlaySelect >= MP_LIST_AUTO_PLAY_MAX) {
+ VideoLogWarning
+ ("[WARNING] Value of Auto Play selection is not matched.");
+ g_pAutoPlayHandle->nAutoPlaySelect = MP_LIST_AUTO_PLAY_OFF;
+ }
+
+ g_pAutoPlayHandle->nAutoPlaySelect = nAutoPlaySelect;
+
+
+
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+static char *__mp_auto_play_ctrl_get_label_of_genlsit_item_cb(const void
+ *pUserData,
+ Evas_Object *
+ pObject,
+ const char
+ *pPart)
+{
+
+ int nIndex = (int) pUserData;
+
+ if (!strcmp(pPart, "elm.text") || !strcmp(pPart, "elm.text.main.left")) {
+ switch (nIndex) {
+ case MP_LIST_AUTO_PLAY_ON:
+ return strdup(VIDEOS_STRING_COM_ON);
+ case MP_LIST_AUTO_PLAY_OFF:
+ return strdup(VIDEOS_STRING_COM_OFF);
+ }
+ }
+ return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+static Evas_Object *__mp_auto_play_ctrl_get_icon_of_genlsit_item_cb(const
+ void
+ *pUserData,
+ Evas_Object
+ *
+ pObject,
+ const
+ char
+ *pPart)
+{
+
+ if (!g_pAutoPlayHandle) {
+ VideoLogError("");
+ return NULL;
+ }
+
+ int nIndex = (int) pUserData;
+ Evas_Object *pTmpRadio = NULL;
+
+ if (!strcmp(pPart, "elm.swallow.end") || !strcmp(pPart, "elm.icon.2")) {
+ pTmpRadio = elm_radio_add(pObject);
+ elm_radio_state_value_set(pTmpRadio, nIndex);
+ elm_radio_group_add(pTmpRadio, g_pAutoPlayHandle->pGroupRadio);
+
+ if (g_pAutoPlayHandle->nAutoPlaySelect == nIndex) {
+ elm_radio_value_set(g_pAutoPlayHandle->pGroupRadio,
+ g_pAutoPlayHandle->nAutoPlaySelect);
+ mp_auto_play_ctrl_set_type(g_pAutoPlayHandle->nAutoPlaySelect);
+ }
+
+ evas_object_smart_callback_add(pTmpRadio, "changed",
+ __mp_auto_play_ctrl_select_radio_cb,
+ (void *) pUserData);
+
+ evas_object_show(pTmpRadio);
+
+ }
+ return pTmpRadio;
+
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_auto_play_ctrl_cancel_btn_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ VideoLogInfo("");
+
+ mp_auto_play_ctrl_hide();
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_auto_play_ctrl_select_item_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ VideoLogInfo("");
+
+ if (!g_pAutoPlayHandle) {
+ VideoLogError("g_pAutoPlayHandle is ?NULL");
+ return;
+ }
+
+ if (!pEventInfo) {
+ VideoLogError("pEventInfo is NULL");
+ return;
+ }
+
+ int nIndex = 0;
+ Elm_Object_Item *pItem = (Elm_Object_Item *) pEventInfo;
+ Elm_Object_Item *pSelectedItem =
+ elm_genlist_selected_item_get(pObject);
+ if (pSelectedItem) {
+ elm_genlist_item_selected_set(pSelectedItem, EINA_FALSE);
+ }
+
+ nIndex = (int) elm_object_item_data_get(pItem);
+ VideoLogError("====================nindex=%d", nIndex);
+ if (nIndex == 1) {
+ VideoLogError("====================vp_set_auto_play=%true");
+ vp_set_auto_play(true);
+ } else {
+ VideoLogError("====================vp_set_auto_play=%false");
+ vp_set_auto_play(false);
+ }
+ if (vp_is_auto_play_on()) {
+ VideoLogError("====================found vp_set_auto_play=%true");
+ }
+ if (nIndex == g_pAutoPlayHandle->nAutoPlaySelect) {
+ VideoLogInfo("Current state");
+ mp_auto_play_ctrl_hide();
+ } else {
+ g_pAutoPlayHandle->nAutoPlaySelect = nIndex;
+ elm_radio_value_set(g_pAutoPlayHandle->pGroupRadio,
+ g_pAutoPlayHandle->nAutoPlaySelect);
+
+ mp_auto_play_ctrl_set_type(g_pAutoPlayHandle->nAutoPlaySelect);
+
+ mp_auto_play_ctrl_hide();
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_auto_play_ctrl_select_radio_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+
+ if (!g_pAutoPlayHandle) {
+ VideoLogError("");
+ return;
+ }
+
+ int nIndex = (int) pUserData;
+
+ VideoLogError("====================nindex=%d", nIndex);
+ if (nIndex == 1) {
+ VideoLogError("====================vp_set_auto_play=true");
+ vp_set_auto_play(true);
+ } else {
+ VideoLogError("====================vp_set_auto_play=false");
+ vp_set_auto_play(false);
+ }
+ if (vp_is_auto_play_on()) {
+ VideoLogError("====================found vp_set_auto_play=true");
+ }
+ if (nIndex == g_pAutoPlayHandle->nAutoPlaySelect) {
+ VideoLogInfo("Current state");
+ mp_auto_play_ctrl_hide();
+ } else {
+ g_pAutoPlayHandle->nAutoPlaySelect = nIndex;
+ elm_radio_value_set(g_pAutoPlayHandle->pGroupRadio,
+ g_pAutoPlayHandle->nAutoPlaySelect);
+
+ mp_auto_play_ctrl_set_type(g_pAutoPlayHandle->nAutoPlaySelect);
+
+ mp_auto_play_ctrl_hide();
+ }
+
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pEvas
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_auto_play_ctrl_mouse_up_cb(void *pUserData, Evas * pEvas,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ Evas_Event_Mouse_Up *pEvent = pEventInfo;
+
+ if (pEvent->button == 3) {
+ mp_auto_play_ctrl_hide();
+ }
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __mp_auto_play_ctrl_realized(void *data, Evas_Object * obj,
+ void *event_info)
+{
+ if (!event_info || !obj) {
+ VideoLogError("event info is invalid");
+ return;
+ }
+ Elm_Object_Item *pItem = elm_genlist_last_item_get(obj);
+
+ if (pItem) {
+ elm_object_item_signal_emit(pItem, "elm,state,bottomline,hide",
+ "");
+ }
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __mp_auto_play_ctrl_rotate_cb(void *data, Evas_Object * obj,
+ void *event_info)
+{
+ if (!g_pAutoPlayHandle) {
+ VideoLogError("pVideoListSortPopUpHandle IS null");
+ return;
+ }
+ mp_widget_ctrl_set_popup_min_size(g_pAutoPlayHandle->pBox, 2,
+ VIDEOS_POPUP_114);
+
+}
+
+////////////////////////////////////////////////////////////
+// External function
+////////////////////////////////////////////////////////////
+
+/**
+ *
+ * @return
+ */
+bool mp_auto_play_ctrl_show()
+{
+ VideoLogInfo("");
+
+
+
+ mp_auto_play_ctrl_delete_handle();
+ g_pAutoPlayHandle =
+ (stMpVideoAutoPlay *) calloc(1, sizeof(stMpVideoAutoPlay));
+ if (!g_pAutoPlayHandle) {
+ VideoLogError("g_pAutoPlayHandle is NULL");
+ return FALSE;
+ }
+
+ g_pAutoPlayHandle->nAutoPlaySelect = MP_LIST_AUTO_PLAY_OFF;
+ g_pAutoPlayHandle->nAutoPlaySelect = mp_auto_play_ctrl_get_type();
+
+ g_pAutoPlayHandle->pPopUpHandle =
+ elm_popup_add(mp_util_get_main_window_handle());
+ elm_object_style_set(g_pAutoPlayHandle->pPopUpHandle, "theme_bg");
+
+ elm_object_domain_translatable_part_text_set(g_pAutoPlayHandle->
+ pPopUpHandle,
+ "title,text", PACKAGE,
+ VIDEOS_MENU_AUTO_PLAY_NEXT_POP_HEADER);
+ evas_object_size_hint_weight_set(g_pAutoPlayHandle->pPopUpHandle,
+ EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+ eext_object_event_callback_add(g_pAutoPlayHandle->pPopUpHandle,
+ EEXT_CALLBACK_BACK,
+ __mp_auto_play_ctrl_cancel_btn_cb,
+ NULL);
+ evas_object_event_callback_add(g_pAutoPlayHandle->pPopUpHandle,
+ EVAS_CALLBACK_MOUSE_UP,
+ __mp_auto_play_ctrl_mouse_up_cb, NULL);
+ evas_object_smart_callback_add(g_pAutoPlayHandle->pPopUpHandle,
+ "block,clicked",
+ __mp_auto_play_ctrl_cancel_btn_cb,
+ NULL);
+ evas_object_smart_callback_add((Evas_Object *)
+ mp_util_get_main_window_handle(),
+ "rotation,changed",
+ __mp_auto_play_ctrl_rotate_cb, NULL);
+
+ // Set item of Genlist.
+ MP_DEL_ITC(g_pAutoPlayHandle->stAutoPlayItc);
+ g_pAutoPlayHandle->stAutoPlayItc = elm_genlist_item_class_new();
+ g_pAutoPlayHandle->stAutoPlayItc->item_style = "default"; //"1text.1icon.2/popup";
+ g_pAutoPlayHandle->stAutoPlayItc->func.text_get =
+ (void *) __mp_auto_play_ctrl_get_label_of_genlsit_item_cb;
+ g_pAutoPlayHandle->stAutoPlayItc->func.content_get =
+ (void *) __mp_auto_play_ctrl_get_icon_of_genlsit_item_cb;
+ g_pAutoPlayHandle->stAutoPlayItc->func.state_get = NULL;
+ g_pAutoPlayHandle->stAutoPlayItc->func.del = NULL;
+
+ // Create genlist handle
+ g_pAutoPlayHandle->pGenList =
+ elm_genlist_add(g_pAutoPlayHandle->pPopUpHandle);
+ evas_object_size_hint_weight_set(g_pAutoPlayHandle->pGenList,
+ EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(g_pAutoPlayHandle->pGenList,
+ EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_smart_callback_add(g_pAutoPlayHandle->pGenList, "realized",
+ __mp_auto_play_ctrl_realized, NULL);
+
+ g_pAutoPlayHandle->pGroupRadio =
+ elm_radio_add(g_pAutoPlayHandle->pGenList);
+ bool pref;
+ pref = mp_auto_play_config_get_auto_play_status();
+ if (pref) {
+ g_pAutoPlayHandle->nAutoPlaySelect = MP_LIST_AUTO_PLAY_ON;
+ } else {
+ g_pAutoPlayHandle->nAutoPlaySelect = MP_LIST_AUTO_PLAY_OFF;
+ }
+ elm_radio_value_set(g_pAutoPlayHandle->pGroupRadio,
+ g_pAutoPlayHandle->nAutoPlaySelect);
+ int nMax_view_list = 0;
+
+ if (!vp_is_auto_play_on())
+ vp_set_auto_play(false);
+ elm_genlist_item_append(g_pAutoPlayHandle->pGenList,
+ g_pAutoPlayHandle->stAutoPlayItc,
+ (void *) MP_LIST_AUTO_PLAY_ON, NULL,
+ ELM_GENLIST_ITEM_NONE,
+ __mp_auto_play_ctrl_select_item_cb, NULL);
+ elm_genlist_item_append(g_pAutoPlayHandle->pGenList,
+ g_pAutoPlayHandle->stAutoPlayItc,
+ (void *) MP_LIST_AUTO_PLAY_OFF, NULL,
+ ELM_GENLIST_ITEM_NONE,
+ __mp_auto_play_ctrl_select_item_cb, NULL);
+ nMax_view_list++;
+
+
+
+
+ g_pAutoPlayHandle->pBox = elm_box_add(g_pAutoPlayHandle->pPopUpHandle);
+
+ mp_widget_ctrl_set_popup_min_size(g_pAutoPlayHandle->pBox, 2,
+ VIDEOS_POPUP_114);
+ evas_object_size_hint_weight_set(g_pAutoPlayHandle->pBox,
+ EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(g_pAutoPlayHandle->pBox,
+ EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+ elm_box_pack_end(g_pAutoPlayHandle->pBox, g_pAutoPlayHandle->pGenList);
+ elm_object_content_set(g_pAutoPlayHandle->pPopUpHandle,
+ g_pAutoPlayHandle->pBox);
+
+ evas_object_show(g_pAutoPlayHandle->pGenList);
+ evas_object_show(g_pAutoPlayHandle->pPopUpHandle);
+
+ return TRUE;
+}
+
+/**
+ *
+ */
+void mp_auto_play_ctrl_hide(void)
+{
+ VideoLogInfo("");
+
+ mp_auto_play_ctrl_delete_handle();
+}
+
+/**
+ *
+ */
+void mp_auto_play_ctrl_change_language(void)
+{
+ if (!g_pAutoPlayHandle) {
+ VideoLogError("g_pAutoPlayHandle is NULL");
+ return;
+ }
+
+ if (!g_pAutoPlayHandle->pGenList || !g_pAutoPlayHandle->pPopUpHandle) {
+ VideoLogInfo("No existed genlist or popup handle.");
+ return;
+ }
+
+ VideoLogInfo("");
+
+ elm_object_domain_translatable_part_text_set(g_pAutoPlayHandle->
+ pPopUpHandle,
+ "title,text", PACKAGE,
+ VIDEOS_MENU_AUTO_PLAY_NEXT_POP_HEADER);
+ elm_genlist_realized_items_update(g_pAutoPlayHandle->pGenList);
+
+}
+
+/**
+ *
+ * @return
+ */
+int mp_auto_play_ctrl_get_type(void)
+{
+ return g_pAutoPlayHandle->nAutoPlaySelect;
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <app.h>
+#include <glib.h>
+#include <Ecore_Evas.h>
+#include <Elementary.h>
+
+#include "mp-util.h"
+#include "mp-video-log.h"
+#include "video-player.h"
+#include "mp-video-value-define.h"
+#include "mp-video-string-define.h"
+#include "mp-video-list-option-ctrl.h"
+#include "mp-util-media-service.h"
+#include "vp-util.h"
+#include "mp-util-widget-ctrl.h"
+
+
+typedef struct _MpVideoListOption {
+ /*obj */
+ Evas_Object *pPopUpHandle;
+ Evas_Object *pGenList;
+ Evas_Object *pBox;
+
+ /*data */
+ MpDownloadType stDownloadType;
+ Elm_Genlist_Item_Class *stListOptionItc;
+ st_RegisteOptionCbFunc st_OptionCbFun;
+ MpListOptionCbFunc pMpListOptionCloseCb;
+ int nListCount;
+ void *pUserData;
+
+} stMpVideoListOption;
+
+static stMpVideoListOption *g_pOptionCtrlHandle = NULL;
+
+
+static void __mp_option_ctrl_realized(void *data, Evas_Object * obj,
+ void *event_info);
+static void __mp_option_ctrl_cancel_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo);
+static void __mp_option_ctrl_mouse_up_cb(void *pUserData, Evas * pEvas,
+ Evas_Object * pObject,
+ void *pEventInfo);
+static void __mp_option_ctrl_rotate_cb(void *data, Evas_Object * obj,
+ void *event_info);
+
+/**
+ *
+ */
+void mp_option_ctrl_delete_handle(void)
+{
+ VideoLogInfo("");
+
+ if (!g_pOptionCtrlHandle) {
+ VideoLogError("");
+ return;
+ }
+
+ if (g_pOptionCtrlHandle->pMpListOptionCloseCb) {
+ g_pOptionCtrlHandle->
+ pMpListOptionCloseCb(g_pOptionCtrlHandle->pUserData);
+ }
+
+ if (g_pOptionCtrlHandle->pPopUpHandle) {
+ evas_object_event_callback_del(g_pOptionCtrlHandle->pPopUpHandle,
+ EVAS_CALLBACK_MOUSE_UP,
+ __mp_option_ctrl_mouse_up_cb);
+ evas_object_smart_callback_del(g_pOptionCtrlHandle->pPopUpHandle,
+ "block,clicked",
+ __mp_option_ctrl_cancel_cb);
+ eext_object_event_callback_del(g_pOptionCtrlHandle->pPopUpHandle,
+ EEXT_CALLBACK_BACK,
+ __mp_option_ctrl_cancel_cb);
+ evas_object_smart_callback_del((Evas_Object *)
+ mp_util_get_main_window_handle(),
+ "rotation,changed",
+ __mp_option_ctrl_rotate_cb);
+ }
+ MP_DEL_OBJ(g_pOptionCtrlHandle->pGenList);
+ MP_DEL_OBJ(g_pOptionCtrlHandle->pBox);
+ MP_DEL_OBJ(g_pOptionCtrlHandle->pPopUpHandle);
+ MP_DEL_ITC(g_pOptionCtrlHandle->stListOptionItc);
+ MP_FREE_STRING(g_pOptionCtrlHandle);
+
+}
+
+/**
+ *
+ * @param pCallbackFunc
+ */
+static void __mp_option_ctrl_register_cb_func(st_RegisteOptionCbFunc *
+ pCallbackFunc)
+{
+
+ if (!pCallbackFunc || !g_pOptionCtrlHandle) {
+ VideoLogError("pCallbackFunc == NULL");
+ return;
+ }
+
+ memset(&g_pOptionCtrlHandle->st_OptionCbFun, 0,
+ sizeof(st_RegisteOptionCbFunc));
+
+ if (pCallbackFunc->ShareViaItemCb) {
+ g_pOptionCtrlHandle->st_OptionCbFun.ShareViaItemCb =
+ pCallbackFunc->ShareViaItemCb;
+ }
+
+ if (pCallbackFunc->AddToHomeItemCb) {
+ g_pOptionCtrlHandle->st_OptionCbFun.AddToHomeItemCb =
+ pCallbackFunc->AddToHomeItemCb;
+ }
+
+ if (pCallbackFunc->DeleteItemCb) {
+ g_pOptionCtrlHandle->st_OptionCbFun.DeleteItemCb =
+ pCallbackFunc->DeleteItemCb;
+ }
+
+ if (pCallbackFunc->DownloadCb) {
+ g_pOptionCtrlHandle->st_OptionCbFun.DownloadCb =
+ pCallbackFunc->DownloadCb;
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+static char *mp_option_ctrl_get_lable_of_gen_item_cb(const void
+ *pUserData,
+ Evas_Object *
+ pObject,
+ const char *pPart)
+{
+
+ int nIndex = (int) pUserData;
+
+ if (!strcmp(pPart, "elm.text.main.left")) {
+ switch (nIndex) {
+ case MP_LIST_OPTION_SHARE_VIA_ITEM:
+ return g_strdup(VIDEOS_CTXPOP_MENU_SHARE);
+ case MP_LIST_OPTION_ADD_HOME_ITEM:
+ return g_strdup(VIDEOS_CTXPOP_MENU_ADD_TO_HOME);
+ case MP_LIST_OPTION_RENAME_ITEM:
+ return g_strdup(VIDEOS_CTXPOP_MENU_RENAME);
+ case MP_LIST_OPTION_DETAILS_ITEM:
+ return g_strdup(VIDEOS_CTXPOP_MENU_DETAILS);
+ case MP_LIST_OPTION_DELETE_ITEM:
+ return g_strdup(VIDEOS_CTXPOP_MENU_DELETE);
+ case MP_LIST_OPTION_DOWNLOAD_ITEM:
+ return g_strdup(VIDEOS_CTXPOP_MENU_DOWNLOAD);
+ default:
+ break;
+ }
+ }
+
+ return NULL;
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __mp_option_ctrl_realized(void *data, Evas_Object * obj,
+ void *event_info)
+{
+ if (!event_info || !obj) {
+ VideoLogError("event info is invalid");
+ return;
+ }
+ Elm_Object_Item *pItem = elm_genlist_last_item_get(obj);
+
+ if (pItem) {
+ elm_object_item_signal_emit(pItem, "elm,state,bottomline,hide",
+ "");
+ }
+}
+
+/**
+ *
+ * @param pNaviHandle
+ * @param title
+ * @param nVideoIndex
+ * @return
+ */
+static Evas_Object *__mp_option_ctrl_init(void *pNaviHandle,
+ const char *title,
+ int nVideoIndex)
+{
+ VideoLogDebug("title=%s", title);
+ if (!g_pOptionCtrlHandle) {
+ VideoLogError("g_pOptionCtrlHandle == NULL");
+ return NULL;
+ }
+
+ MP_DEL_ITC(g_pOptionCtrlHandle->stListOptionItc);
+ g_pOptionCtrlHandle->stListOptionItc = elm_genlist_item_class_new();
+
+ /* Set item of Genlist. */
+ g_pOptionCtrlHandle->stListOptionItc->item_style = "1line"; /*"1text/popup"; */
+ g_pOptionCtrlHandle->stListOptionItc->func.text_get =
+ (void *) mp_option_ctrl_get_lable_of_gen_item_cb;
+ g_pOptionCtrlHandle->stListOptionItc->func.content_get = NULL;
+ g_pOptionCtrlHandle->stListOptionItc->func.state_get = NULL;
+ g_pOptionCtrlHandle->stListOptionItc->func.del = NULL;
+
+ /* Create genlist handle */
+ g_pOptionCtrlHandle->pGenList =
+ elm_genlist_add(g_pOptionCtrlHandle->pPopUpHandle);
+ evas_object_size_hint_weight_set(g_pOptionCtrlHandle->pGenList,
+ EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(g_pOptionCtrlHandle->pGenList,
+ EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_smart_callback_add(g_pOptionCtrlHandle->pGenList,
+ "realized", __mp_option_ctrl_realized,
+ NULL);
+
+ g_pOptionCtrlHandle->nListCount = 0;
+
+ if (g_pOptionCtrlHandle->st_OptionCbFun.DeleteItemCb) {
+ g_pOptionCtrlHandle->nListCount++;
+ elm_genlist_item_append(g_pOptionCtrlHandle->pGenList,
+ g_pOptionCtrlHandle->stListOptionItc,
+ (void *) MP_LIST_OPTION_DELETE_ITEM, NULL,
+ ELM_GENLIST_ITEM_NONE,
+ g_pOptionCtrlHandle->
+ st_OptionCbFun.DeleteItemCb,
+ (void *) nVideoIndex);
+ }
+
+ if (g_pOptionCtrlHandle->st_OptionCbFun.ShareViaItemCb) {
+ g_pOptionCtrlHandle->nListCount++;
+ elm_genlist_item_append(g_pOptionCtrlHandle->pGenList,
+ g_pOptionCtrlHandle->stListOptionItc,
+ (void *) MP_LIST_OPTION_SHARE_VIA_ITEM,
+ NULL, ELM_GENLIST_ITEM_NONE,
+ g_pOptionCtrlHandle->
+ st_OptionCbFun.ShareViaItemCb,
+ (void *) nVideoIndex);
+ }
+
+ evas_object_show(g_pOptionCtrlHandle->pGenList);
+
+ g_pOptionCtrlHandle->pBox =
+ elm_box_add(g_pOptionCtrlHandle->pPopUpHandle);
+
+ mp_widget_ctrl_set_popup_min_size(g_pOptionCtrlHandle->pBox,
+ g_pOptionCtrlHandle->nListCount,
+ VIDEOS_POPUP_114);
+ evas_object_size_hint_weight_set(g_pOptionCtrlHandle->pBox,
+ EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(g_pOptionCtrlHandle->pBox,
+ EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+ elm_box_pack_end(g_pOptionCtrlHandle->pBox,
+ g_pOptionCtrlHandle->pGenList);
+
+ evas_object_show(g_pOptionCtrlHandle->pBox);
+
+ return g_pOptionCtrlHandle->pBox;
+
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_option_ctrl_cancel_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ VideoLogInfo("");
+
+ mp_option_ctrl_delete_handle();
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pEvas
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_option_ctrl_mouse_up_cb(void *pUserData, Evas * pEvas,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ Evas_Event_Mouse_Up *pEvent = pEventInfo;
+
+ if (pEvent->button == 3) {
+ mp_option_ctrl_delete_handle();
+ }
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __mp_option_ctrl_rotate_cb(void *data, Evas_Object * obj,
+ void *event_info)
+{
+ if (!g_pOptionCtrlHandle) {
+ VideoLogError("pVideoListSortPopUpHandle IS null");
+ return;
+ }
+ if (g_pOptionCtrlHandle->nListCount < VIDEO_POPUP_MIN_ITEMS) {
+ return;
+ }
+ mp_widget_ctrl_set_popup_min_size(g_pOptionCtrlHandle->pBox,
+ g_pOptionCtrlHandle->nListCount,
+ VIDEOS_POPUP_114);
+
+}
+
+/**
+ *
+ * @param pNaviHandle
+ * @param title
+ * @param nVideoIndex
+ * @param pCallbackFunc
+ * @param pCloseFun
+ * @param userData
+ * @param euType
+ * @return
+ */
+bool mp_option_ctrl_show(void *pNaviHandle, const char *title,
+ int nVideoIndex,
+ st_RegisteOptionCbFunc * pCallbackFunc,
+ MpListOptionCbFunc pCloseFun, void *userData,
+ MpDownloadType euType)
+{
+ if (!pNaviHandle) {
+ VideoSecureLogError("invalid pNaviHandle");
+ return false;
+ }
+
+ mp_option_ctrl_delete_handle();
+ g_pOptionCtrlHandle =
+ (stMpVideoListOption *) calloc(1, sizeof(stMpVideoListOption));
+ if (!g_pOptionCtrlHandle) {
+ VideoLogError("g_pOptionCtrlHandle is NULL");
+ return FALSE;
+ }
+
+ g_pOptionCtrlHandle->pMpListOptionCloseCb = pCloseFun;
+ __mp_option_ctrl_register_cb_func(pCallbackFunc);
+ g_pOptionCtrlHandle->stDownloadType = euType;
+ g_pOptionCtrlHandle->pUserData = userData;
+
+ g_pOptionCtrlHandle->pPopUpHandle =
+ elm_popup_add((Evas_Object *) pNaviHandle);
+
+ elm_object_style_set(g_pOptionCtrlHandle->pPopUpHandle, "default");
+ if (title) {
+ char *szTitleUtf8 = elm_entry_utf8_to_markup(title);
+ elm_object_part_text_set(g_pOptionCtrlHandle->pPopUpHandle,
+ "title,text", szTitleUtf8);
+ MP_FREE_STRING(szTitleUtf8);
+ }
+ evas_object_size_hint_weight_set(g_pOptionCtrlHandle->pPopUpHandle,
+ EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_weight_set(g_pOptionCtrlHandle->pPopUpHandle,
+ EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+ evas_object_event_callback_add(g_pOptionCtrlHandle->pPopUpHandle,
+ EVAS_CALLBACK_MOUSE_UP,
+ __mp_option_ctrl_mouse_up_cb, NULL);
+ evas_object_smart_callback_add(g_pOptionCtrlHandle->pPopUpHandle,
+ "block,clicked",
+ __mp_option_ctrl_cancel_cb, NULL);
+ eext_object_event_callback_add(g_pOptionCtrlHandle->pPopUpHandle,
+ EEXT_CALLBACK_BACK,
+ __mp_option_ctrl_cancel_cb, NULL);
+ evas_object_smart_callback_add((Evas_Object *)
+ mp_util_get_main_window_handle(),
+ "rotation,changed",
+ __mp_option_ctrl_rotate_cb, NULL);
+
+ __mp_option_ctrl_init(pNaviHandle, title, nVideoIndex);
+
+
+ elm_object_content_set(g_pOptionCtrlHandle->pPopUpHandle,
+ g_pOptionCtrlHandle->pBox);
+ evas_object_show(g_pOptionCtrlHandle->pPopUpHandle);
+
+ return TRUE;
+}
+
+/**
+ *
+ */
+void mp_option_ctrl_change_language(void)
+{
+ if (!g_pOptionCtrlHandle) {
+ VideoLogError("g_pOptionCtrlHandle is NULL");
+ return;
+ }
+
+ if (!g_pOptionCtrlHandle->pGenList
+ || !g_pOptionCtrlHandle->pPopUpHandle) {
+ VideoLogError("No existed genlist or popup handle.");
+ return;
+ }
+
+ VideoLogInfo("");
+
+ elm_genlist_realized_items_update(g_pOptionCtrlHandle->pGenList);
+
+}
+
+/**
+ *
+ */
+void *mp_option_ctrl_get_handle(void)
+{
+ VideoLogInfo("");
+ if (!g_pOptionCtrlHandle) {
+ VideoLogError("g_pOptionCtrlHandle is NULL");
+ return NULL;
+ }
+ return (void *) g_pOptionCtrlHandle->pPopUpHandle;
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <app.h>
+#include <Ecore_Evas.h>
+#include <Elementary.h>
+
+#include <app_preference.h>
+
+
+#include "mp-util.h"
+#include "mp-video-log.h"
+#include "mp-video-value-define.h"
+#include "mp-video-string-define.h"
+#include "mp-video-list-sort-ctrl.h"
+#include "mp-util-widget-ctrl.h"
+#include "vp-util.h"
+
+#define PREF_VP_VIDEOS_SORT_TYPE "preference/org.tizen.videos/sort_type"
+
+typedef struct _MpVideoListSort {
+ //obj
+ Evas_Object *pPopUpHandle;
+ Evas_Object *pGroupRadio;
+ Evas_Object *pGenList;
+ Evas_Object *pBox;
+
+ //data
+ Elm_Genlist_Item_Class *stListSortItc;
+ ListSortCtrlCbFunc ListSortCtrlUserCbFunc;
+ MpListSortType nCurrListSortType;
+ int nListCount;
+
+} stMpVideoListSort;
+
+stMpVideoListSort *g_pSortCtrlHandle = NULL;
+
+
+static void __mp_sort_ctrl_realized(void *data, Evas_Object * obj,
+ void *event_info);
+static void __mp_sort_ctrl_rotate_cb(void *data, Evas_Object * obj,
+ void *event_info);
+static void __mp_sort_ctrl_btn_asc_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo);
+static void __mp_sort_ctrl_mouse_up_cb(void *pUserData, Evas * pEvas,
+ Evas_Object * pObject,
+ void *pEventInfo);
+static void __mp_sort_ctrl_select_radio_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo);
+
+////////////////////////////////////////////////////////////
+// Internal function
+////////////////////////////////////////////////////////////
+
+/**
+ *
+ */
+void mp_sort_ctrl_delete_handle(void)
+{
+ VideoLogInfo("");
+
+ if (!g_pSortCtrlHandle) {
+ VideoLogError("");
+ return;
+ }
+ if (g_pSortCtrlHandle->pPopUpHandle) {
+ eext_object_event_callback_del(g_pSortCtrlHandle->pPopUpHandle,
+ EEXT_CALLBACK_BACK,
+ __mp_sort_ctrl_btn_asc_cb);
+ evas_object_smart_callback_del(g_pSortCtrlHandle->pPopUpHandle,
+ "block,clicked",
+ __mp_sort_ctrl_btn_asc_cb);
+ evas_object_smart_callback_del((Evas_Object *)
+ mp_util_get_main_window_handle(),
+ "rotation,changed",
+ __mp_sort_ctrl_rotate_cb);
+ evas_object_event_callback_del(g_pSortCtrlHandle->pPopUpHandle,
+ EVAS_CALLBACK_MOUSE_UP,
+ __mp_sort_ctrl_mouse_up_cb);
+ }
+ MP_DEL_OBJ(g_pSortCtrlHandle->pGroupRadio);
+ MP_DEL_OBJ(g_pSortCtrlHandle->pGenList);
+ MP_DEL_OBJ(g_pSortCtrlHandle->pBox);
+ MP_DEL_OBJ(g_pSortCtrlHandle->pPopUpHandle);
+ MP_DEL_ITC(g_pSortCtrlHandle->stListSortItc);
+ MP_FREE_STRING(g_pSortCtrlHandle);
+}
+
+/**
+ *
+ * @param nListSortType
+ */
+void mp_sort_ctrl_set_sort_state(MpListSortType nListSortType)
+{
+ if (!g_pSortCtrlHandle) {
+ VideoLogError("");
+ return;
+ }
+
+ if (MP_LIST_SORT_BY_NONE >= nListSortType
+ || nListSortType >= MP_LIST_SORT_BY_MAX) {
+ VideoLogWarning("[WARNING] Value of sort type is not matched.");
+ nListSortType = MP_LIST_SORT_BY_RECENTLY_ADDED;
+ }
+
+ g_pSortCtrlHandle->nCurrListSortType = nListSortType;
+
+ int nRet =
+ preference_set_int(PREF_VP_VIDEOS_SORT_TYPE,
+ g_pSortCtrlHandle->nCurrListSortType);
+ if (nRet) {
+ VideoLogWarning("[WARNING] Fail to set value about sort type.");
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+static char *mp_sort_ctrl_get_label_of_genlist_cb(const void *pUserData,
+ Evas_Object * pObject,
+ const char *pPart)
+{
+
+ int nIndex = (int) pUserData;
+
+ if (!strcmp(pPart, "elm.text") || !strcmp(pPart, "elm.text.main.left")) {
+ switch (nIndex) {
+ case MP_LIST_SORT_BY_RECENTLY_ADDED:
+ return strdup(VIDEOS_SORTBYOPT_OPT_DATE_MOST_RECENT);
+ case MP_LIST_SORT_BY_NAME:
+ return strdup(VIDEOS_SORTBYOPT_OPT_NAME);
+ }
+ }
+
+ return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+static Evas_Object *mp_sort_ctrl_get_icon_of_genlist_cb(const void
+ *pUserData,
+ Evas_Object *
+ pObject,
+ const char *pPart)
+{
+ int nIndex = (int) pUserData;
+ //Evas_Object *pLayout = NULL;
+ Evas_Object *pTmpRadio = NULL;
+ if (!g_pSortCtrlHandle) {
+ VideoLogError("");
+ return NULL;
+ }
+
+ if (!strcmp(pPart, "elm.swallow.end") || !strcmp(pPart, "elm.icon.2")) {
+ pTmpRadio = elm_radio_add(pObject);
+
+ elm_radio_state_value_set(pTmpRadio, nIndex);
+ elm_radio_group_add(pTmpRadio, g_pSortCtrlHandle->pGroupRadio);
+
+ if (g_pSortCtrlHandle->nCurrListSortType == nIndex) {
+ elm_radio_value_set(g_pSortCtrlHandle->pGroupRadio,
+ g_pSortCtrlHandle->nCurrListSortType);
+ mp_sort_ctrl_set_sort_state(g_pSortCtrlHandle->
+ nCurrListSortType);
+ }
+ evas_object_smart_callback_add(pTmpRadio, "changed",
+ __mp_sort_ctrl_select_radio_cb,
+ (void *) pUserData);
+
+ evas_object_show(pTmpRadio);
+ }
+
+ return pTmpRadio;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_sort_ctrl_btn_asc_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ VideoLogInfo("");
+
+ mp_sort_ctrl_hide();
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void mp_sort_ctrl_select_item_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ VideoLogInfo("");
+ if (!g_pSortCtrlHandle) {
+ VideoLogError("");
+ return;
+ }
+
+ if (!pEventInfo) {
+ VideoLogError("pEventInfo is NULL");
+ return;
+ }
+
+ int nIndex = 0;
+
+ Elm_Object_Item *pItem = (Elm_Object_Item *) pEventInfo;
+ Elm_Object_Item *pSelectedItem =
+ elm_genlist_selected_item_get(pObject);
+ if (pSelectedItem) {
+ elm_genlist_item_selected_set(pSelectedItem, EINA_FALSE);
+ }
+
+ nIndex = (int) elm_object_item_data_get(pItem);
+ if (nIndex == g_pSortCtrlHandle->nCurrListSortType) {
+ VideoLogInfo("Do nothing");
+ mp_sort_ctrl_hide();
+ } else {
+ g_pSortCtrlHandle->nCurrListSortType = nIndex;
+ elm_radio_value_set(g_pSortCtrlHandle->pGroupRadio,
+ g_pSortCtrlHandle->nCurrListSortType);
+
+ mp_sort_ctrl_set_sort_state(g_pSortCtrlHandle->nCurrListSortType);
+
+ ListSortCtrlCbFunc fFunc =
+ g_pSortCtrlHandle->ListSortCtrlUserCbFunc;
+ mp_sort_ctrl_hide();
+
+ if (fFunc) {
+ fFunc();
+ }
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_sort_ctrl_select_radio_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ if (!g_pSortCtrlHandle) {
+ VideoLogError("");
+ return;
+ }
+ int nIndex = (int) pUserData;
+
+ g_pSortCtrlHandle->nCurrListSortType = nIndex;
+ mp_sort_ctrl_set_sort_state(g_pSortCtrlHandle->nCurrListSortType);
+
+ ListSortCtrlCbFunc fFunc = g_pSortCtrlHandle->ListSortCtrlUserCbFunc;
+ mp_sort_ctrl_hide();
+
+ if (fFunc) {
+ fFunc();
+ }
+}
+
+static void __mp_sort_ctrl_mouse_up_cb(void *pUserData, Evas * pEvas,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ Evas_Event_Mouse_Up *pEvent = pEventInfo;
+
+ if (pEvent->button == 3) {
+ mp_sort_ctrl_hide();
+ }
+}
+
+////////////////////////////////////////////////////////////
+// External function
+////////////////////////////////////////////////////////////
+void mp_sort_ctrl_genlist_change_language(void *data, Evas_Object * obj,
+ void *event_info)
+{
+ elm_genlist_realized_items_update(obj);
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __mp_sort_ctrl_realized(void *data, Evas_Object * obj,
+ void *event_info)
+{
+ if (!event_info || !obj) {
+ VideoLogError("event info is invalid");
+ return;
+ }
+ Elm_Object_Item *pItem = elm_genlist_last_item_get(obj);
+
+ if (pItem) {
+ elm_object_item_signal_emit(pItem, "elm,state,bottomline,hide",
+ "");
+ }
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __mp_sort_ctrl_rotate_cb(void *data, Evas_Object * obj,
+ void *event_info)
+{
+ if (!g_pSortCtrlHandle) {
+ VideoLogError("pVideoListSortPopUpHandle IS null");
+ return;
+ }
+ if (g_pSortCtrlHandle->nListCount < VIDEO_POPUP_MIN_ITEMS) {
+ return;
+ }
+ mp_widget_ctrl_set_popup_min_size(g_pSortCtrlHandle->pBox,
+ g_pSortCtrlHandle->nListCount,
+ VIDEOS_POPUP_114);
+
+}
+
+/**
+ *
+ * @param pListSortCtrlCb
+ * @return
+ */
+bool mp_sort_ctrl_show(ListSortCtrlCbFunc pListSortCtrlCb)
+{
+ VideoLogInfo("");
+
+ mp_sort_ctrl_delete_handle();
+ g_pSortCtrlHandle =
+ (stMpVideoListSort *) calloc(1, sizeof(stMpVideoListSort));
+ if (!g_pSortCtrlHandle) {
+ VideoLogError("g_pSortCtrlHandle is NULL");
+ return FALSE;
+ }
+
+ g_pSortCtrlHandle->ListSortCtrlUserCbFunc = pListSortCtrlCb;
+ g_pSortCtrlHandle->nCurrListSortType = mp_sort_ctrl_get_sort_state();
+
+ g_pSortCtrlHandle->pPopUpHandle =
+ elm_popup_add(mp_util_get_main_window_handle());
+ elm_object_style_set(g_pSortCtrlHandle->pPopUpHandle, "theme_bg");
+
+ eext_object_event_callback_add(g_pSortCtrlHandle->pPopUpHandle,
+ EEXT_CALLBACK_BACK,
+ __mp_sort_ctrl_btn_asc_cb, NULL);
+ evas_object_smart_callback_add(g_pSortCtrlHandle->pPopUpHandle,
+ "block,clicked",
+ __mp_sort_ctrl_btn_asc_cb, NULL);
+ evas_object_smart_callback_add((Evas_Object *)
+ mp_util_get_main_window_handle(),
+ "rotation,changed",
+ __mp_sort_ctrl_rotate_cb, NULL);
+
+ elm_object_domain_translatable_part_text_set(g_pSortCtrlHandle->
+ pPopUpHandle,
+ "title,text",
+ VIDEOS_STRING,
+ VIDEOS_SORTBYPOP_HEADER_SORT_BY_IDS);
+ evas_object_size_hint_weight_set(g_pSortCtrlHandle->pPopUpHandle,
+ EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+ evas_object_event_callback_add(g_pSortCtrlHandle->pPopUpHandle,
+ EVAS_CALLBACK_MOUSE_UP,
+ __mp_sort_ctrl_mouse_up_cb, NULL);
+
+ MP_DEL_ITC(g_pSortCtrlHandle->stListSortItc);
+ g_pSortCtrlHandle->stListSortItc = elm_genlist_item_class_new();
+ // Set item of Genlist.
+ g_pSortCtrlHandle->stListSortItc->item_style = "default"; //"1text.1icon.2/popup";
+ g_pSortCtrlHandle->stListSortItc->func.text_get =
+ (void *) mp_sort_ctrl_get_label_of_genlist_cb;
+ g_pSortCtrlHandle->stListSortItc->func.content_get =
+ (void *) mp_sort_ctrl_get_icon_of_genlist_cb;
+ g_pSortCtrlHandle->stListSortItc->func.state_get = NULL;
+ g_pSortCtrlHandle->stListSortItc->func.del = NULL;
+
+ // Create genlist handle
+ g_pSortCtrlHandle->pGenList =
+ elm_genlist_add(g_pSortCtrlHandle->pPopUpHandle);
+ evas_object_size_hint_weight_set(g_pSortCtrlHandle->pGenList,
+ EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(g_pSortCtrlHandle->pGenList,
+ EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+ evas_object_smart_callback_add(g_pSortCtrlHandle->pGenList,
+ "language,changed",
+ mp_sort_ctrl_genlist_change_language,
+ NULL);
+ evas_object_smart_callback_add(g_pSortCtrlHandle->pGenList, "realized",
+ __mp_sort_ctrl_realized, NULL);
+
+ g_pSortCtrlHandle->pGroupRadio =
+ elm_radio_add(g_pSortCtrlHandle->pGenList);
+
+ mp_sort_ctrl_get_sort_state();
+
+ int nListCount = 0;
+ elm_genlist_item_append(g_pSortCtrlHandle->pGenList,
+ g_pSortCtrlHandle->stListSortItc,
+ (void *) MP_LIST_SORT_BY_RECENTLY_ADDED, NULL,
+ ELM_GENLIST_ITEM_NONE,
+ mp_sort_ctrl_select_item_cb, NULL);
+ nListCount++;
+ elm_genlist_item_append(g_pSortCtrlHandle->pGenList,
+ g_pSortCtrlHandle->stListSortItc,
+ (void *) MP_LIST_SORT_BY_NAME, NULL,
+ ELM_GENLIST_ITEM_NONE,
+ mp_sort_ctrl_select_item_cb, NULL);
+ nListCount++;
+ g_pSortCtrlHandle->nListCount = nListCount;
+
+ g_pSortCtrlHandle->pBox = elm_box_add(g_pSortCtrlHandle->pPopUpHandle);
+
+ mp_widget_ctrl_set_popup_min_size(g_pSortCtrlHandle->pBox,
+ g_pSortCtrlHandle->nListCount,
+ VIDEOS_POPUP_114);
+ evas_object_size_hint_weight_set(g_pSortCtrlHandle->pBox,
+ EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(g_pSortCtrlHandle->pBox,
+ EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+ elm_box_pack_end(g_pSortCtrlHandle->pBox, g_pSortCtrlHandle->pGenList);
+ elm_object_content_set(g_pSortCtrlHandle->pPopUpHandle,
+ g_pSortCtrlHandle->pBox);
+
+ evas_object_show(g_pSortCtrlHandle->pBox);
+ evas_object_show(g_pSortCtrlHandle->pGenList);
+ evas_object_show(g_pSortCtrlHandle->pPopUpHandle);
+
+ return TRUE;
+}
+
+/**
+ *
+ */
+void mp_sort_ctrl_hide(void)
+{
+ VideoLogInfo("");
+
+ mp_sort_ctrl_delete_handle();
+}
+
+/**
+ *
+ */
+void mp_sort_ctrl_change_language(void)
+{
+ VideoLogInfo("");
+ if (!g_pSortCtrlHandle) {
+ VideoLogError("");
+ return;
+ }
+
+ if (!g_pSortCtrlHandle->pGenList || !g_pSortCtrlHandle->pPopUpHandle) {
+ VideoLogError("No existed genlist or popup handle.");
+ return;
+ }
+
+ elm_genlist_realized_items_update(g_pSortCtrlHandle->pGenList);
+}
+
+/**
+ *
+ * @return
+ */
+int mp_sort_ctrl_get_sort_state(void)
+{
+ int nValue = MP_LIST_SORT_BY_NONE;
+
+ if (0 != preference_get_int(PREF_VP_VIDEOS_SORT_TYPE, &nValue)) {
+ VideoLogInfo
+ ("Setting normal list type because of defending wrong value.:%d",
+ nValue);
+ mp_sort_ctrl_set_sort_state(MP_LIST_SORT_BY_RECENTLY_ADDED);
+ return MP_LIST_SORT_BY_RECENTLY_ADDED;
+ }
+
+ if (nValue <= MP_LIST_SORT_BY_NONE || nValue >= MP_LIST_SORT_BY_MAX) {
+ mp_sort_ctrl_set_sort_state(MP_LIST_SORT_BY_RECENTLY_ADDED);
+ return MP_LIST_SORT_BY_RECENTLY_ADDED;
+ }
+
+ VideoLogInfo("sortstate start:%d", nValue);
+
+ return (int) nValue;
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <app.h>
+#include <Ecore_Evas.h>
+#include <Elementary.h>
+#include <app_preference.h>
+
+#include "mp-util.h"
+#include "mp-video-log.h"
+#include "video-player.h"
+#include "mp-video-value-define.h"
+#include "mp-video-string-define.h"
+#include "mp-footer-toolbar.h"
+#include "mp-video-list-view-as-ctrl.h"
+#include "mp-util-widget-ctrl.h"
+#include "vp-util.h"
+
+#define PREF_MP_VIDEO_VIEW_AS_TYPE_KEY "preference/org.tizen.videos/view_as_type"
+
+typedef struct _MpVideoViewAs {
+ //obj
+ Evas_Object *pPopUpHandle;
+ Evas_Object *pGroupRadio;
+ Evas_Object *pGenList;
+ Evas_Object *pBox;
+
+ //data
+ Elm_Genlist_Item_Class *stViewAsItc;
+ ListViewAsCtrlCbFunc ListViewAsCtrlUserCbFunc;
+ MpListViewAsType nCurrViewAsType;
+ int nListCount;
+ int nCurrTabType;
+
+} stMpVideoViewAs;
+
+stMpVideoViewAs *g_pViewAsHandle = NULL;
+
+////////////////////////////////////////////////////////////
+// Internal function
+////////////////////////////////////////////////////////////
+static void __mp_view_as_ctrl_rotate_cb(void *data, Evas_Object * obj,
+ void *event_info);
+static void __mp_view_as_ctrl_mouse_up_cb(void *pUserData, Evas * pEvas,
+ Evas_Object * pObject,
+ void *pEventInfo);
+static void __mp_view_as_ctrl_cancel_btn_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo);
+static void __mp_view_as_ctrl_select_item_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo);
+static void __mp_view_as_ctrl_select_radio_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo);
+/**
+ *
+ */
+void mp_view_as_ctrl_delete_handle(void)
+{
+ VideoLogInfo("");
+ if (!g_pViewAsHandle) {
+ VideoLogError("-------g_pViewAsHandle is NULL--------");
+ return;
+ }
+ if (g_pViewAsHandle->pPopUpHandle) {
+ eext_object_event_callback_del(g_pViewAsHandle->pPopUpHandle,
+ EEXT_CALLBACK_BACK,
+ __mp_view_as_ctrl_cancel_btn_cb);
+ evas_object_event_callback_del(g_pViewAsHandle->pPopUpHandle,
+ EVAS_CALLBACK_MOUSE_UP,
+ __mp_view_as_ctrl_mouse_up_cb);
+ evas_object_smart_callback_del(g_pViewAsHandle->pPopUpHandle,
+ "block,clicked",
+ __mp_view_as_ctrl_cancel_btn_cb);
+ evas_object_smart_callback_del((Evas_Object *)
+ mp_util_get_main_window_handle(),
+ "rotation,changed",
+ __mp_view_as_ctrl_rotate_cb);
+ }
+ MP_DEL_OBJ(g_pViewAsHandle->pGroupRadio);
+ MP_DEL_OBJ(g_pViewAsHandle->pGenList);
+ MP_DEL_OBJ(g_pViewAsHandle->pBox);
+ MP_DEL_OBJ(g_pViewAsHandle->pPopUpHandle);
+ MP_DEL_ITC(g_pViewAsHandle->stViewAsItc);
+ MP_FREE_STRING(g_pViewAsHandle);
+
+}
+
+/**
+ *
+ * @param nViewAsType
+ */
+void mp_view_as_ctrl_set_type(MpListViewAsType nViewAsType)
+{
+ if (!g_pViewAsHandle) {
+ VideoLogError("");
+ return;
+ }
+
+ if (MP_LIST_VIEW_AS_NONE >= nViewAsType
+ || nViewAsType >= MP_LIST_VIEW_AS_MAX) {
+ VideoLogWarning("[WARNING] Value of View as type is not matched.");
+ nViewAsType = MP_LIST_VIEW_AS_THUMBNAIL_LIST;
+ }
+
+ g_pViewAsHandle->nCurrViewAsType = nViewAsType;
+
+ int nRet =
+ preference_set_int(PREF_MP_VIDEO_VIEW_AS_TYPE_KEY,
+ g_pViewAsHandle->nCurrViewAsType);
+ if (nRet) {
+ VideoLogWarning
+ ("[WARNING] Fail to set pref value about list view as type.");
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+static char *__mp_view_as_ctrl_get_label_of_genlsit_item_cb(const void
+ *pUserData,
+ Evas_Object *
+ pObject,
+ const char
+ *pPart)
+{
+
+ int nIndex = (int) pUserData;
+
+ if (!strcmp(pPart, "elm.text") || !strcmp(pPart, "elm.text.main.left")) {
+ switch (nIndex) {
+#ifdef VS_FEATURE_LIST_VIEW
+ case MP_LIST_VIEW_AS_NORMAL_LIST:
+ return strdup(VIDEOS_VIEWASOPT_OPT_LIST);
+#endif
+#ifdef VS_FEATURE_THUMBNAIL_VIEW
+ case MP_LIST_VIEW_AS_THUMBNAIL_LIST:
+ return strdup(VIDEOS_VIEWASOPT_OPT_THUMBNAIL);
+#endif
+ case MP_LIST_VIEW_AS_FOLDER_LIST:
+ return strdup(VIDEOS_VIEWASOPT_OPT_FOLDER);
+ }
+ }
+ return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+static Evas_Object *__mp_view_as_ctrl_get_icon_of_genlsit_item_cb(const
+ void
+ *pUserData,
+ Evas_Object
+ *
+ pObject,
+ const
+ char
+ *pPart)
+{
+
+ if (!g_pViewAsHandle) {
+ VideoLogError("");
+ return NULL;
+ }
+
+ int nIndex = (int) pUserData;
+ Evas_Object *pTmpRadio = NULL;
+
+ if (!strcmp(pPart, "elm.swallow.end") || !strcmp(pPart, "elm.icon.2")) {
+ pTmpRadio = elm_radio_add(pObject);
+ elm_radio_state_value_set(pTmpRadio, nIndex);
+ elm_radio_group_add(pTmpRadio, g_pViewAsHandle->pGroupRadio);
+
+ if (g_pViewAsHandle->nCurrViewAsType == nIndex) {
+ elm_radio_value_set(g_pViewAsHandle->pGroupRadio,
+ g_pViewAsHandle->nCurrViewAsType);
+ mp_view_as_ctrl_set_type(g_pViewAsHandle->nCurrViewAsType);
+ }
+
+ evas_object_smart_callback_add(pTmpRadio, "changed",
+ __mp_view_as_ctrl_select_radio_cb,
+ (void *) pUserData);
+
+ evas_object_show(pTmpRadio);
+
+ }
+ return pTmpRadio;
+
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_view_as_ctrl_cancel_btn_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ VideoLogInfo("");
+
+ mp_view_as_ctrl_hide();
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_view_as_ctrl_select_item_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ VideoLogInfo("");
+
+ if (!g_pViewAsHandle) {
+ VideoLogError("g_pViewAsHandle is ?NULL");
+ return;
+ }
+
+ if (!pEventInfo) {
+ VideoLogError("pEventInfo is NULL");
+ return;
+ }
+
+ int nIndex = 0;
+ Elm_Object_Item *pItem = (Elm_Object_Item *) pEventInfo;
+ Elm_Object_Item *pSelectedItem =
+ elm_genlist_selected_item_get(pObject);
+ if (pSelectedItem) {
+ elm_genlist_item_selected_set(pSelectedItem, EINA_FALSE);
+ }
+
+ nIndex = (int) elm_object_item_data_get(pItem);
+ if (nIndex == g_pViewAsHandle->nCurrViewAsType) {
+ VideoLogInfo("Current state");
+ mp_view_as_ctrl_hide();
+ } else {
+ g_pViewAsHandle->nCurrViewAsType = nIndex;
+ elm_radio_value_set(g_pViewAsHandle->pGroupRadio,
+ g_pViewAsHandle->nCurrViewAsType);
+
+ mp_view_as_ctrl_set_type(g_pViewAsHandle->nCurrViewAsType);
+
+ ListViewAsCtrlCbFunc fFunc =
+ g_pViewAsHandle->ListViewAsCtrlUserCbFunc;
+ mp_view_as_ctrl_hide();
+
+ if (fFunc) {
+ fFunc();
+ }
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_view_as_ctrl_select_radio_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+
+ if (!g_pViewAsHandle) {
+ VideoLogError("");
+ return;
+ }
+
+ int nIndex = (int) pUserData;
+
+ g_pViewAsHandle->nCurrViewAsType = nIndex;
+ mp_view_as_ctrl_set_type(g_pViewAsHandle->nCurrViewAsType);
+
+ ListViewAsCtrlCbFunc fFunc = g_pViewAsHandle->ListViewAsCtrlUserCbFunc;
+ mp_view_as_ctrl_hide();
+
+ if (fFunc) {
+ fFunc();
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pEvas
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_view_as_ctrl_mouse_up_cb(void *pUserData, Evas * pEvas,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ Evas_Event_Mouse_Up *pEvent = pEventInfo;
+
+ if (pEvent->button == 3) {
+ mp_view_as_ctrl_hide();
+ }
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __mp_view_as_ctrl_realized(void *data, Evas_Object * obj,
+ void *event_info)
+{
+ if (!event_info || !obj) {
+ VideoLogError("event info is invalid");
+ return;
+ }
+ Elm_Object_Item *pItem = elm_genlist_last_item_get(obj);
+
+ if (pItem) {
+ elm_object_item_signal_emit(pItem, "elm,state,bottomline,hide",
+ "");
+ }
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __mp_view_as_ctrl_rotate_cb(void *data, Evas_Object * obj,
+ void *event_info)
+{
+ if (!g_pViewAsHandle) {
+ VideoLogError("pVideoListSortPopUpHandle IS null");
+ return;
+ }
+ if (g_pViewAsHandle->nListCount < VIDEO_POPUP_MIN_ITEMS) {
+ return;
+ }
+ mp_widget_ctrl_set_popup_min_size(g_pViewAsHandle->pBox,
+ g_pViewAsHandle->nListCount,
+ VIDEOS_POPUP_114);
+
+}
+
+////////////////////////////////////////////////////////////
+// External function
+////////////////////////////////////////////////////////////
+/**
+ *
+ * @param tabType
+ * @param pListViewAsCtrlCb
+ * @return
+ */
+bool mp_view_as_ctrl_show(int tabType,
+ ListViewAsCtrlCbFunc pListViewAsCtrlCb)
+{
+ VideoLogInfo("");
+
+ if (pListViewAsCtrlCb == NULL) {
+ VideoLogError("No have pListViewAsCtrlCb handle.");
+ return FALSE;
+ }
+
+ mp_view_as_ctrl_delete_handle();
+ g_pViewAsHandle =
+ (stMpVideoViewAs *) calloc(1, sizeof(stMpVideoViewAs));
+ if (!g_pViewAsHandle) {
+ VideoLogError("g_pViewAsHandle is NULL");
+ return FALSE;
+ }
+
+ g_pViewAsHandle->ListViewAsCtrlUserCbFunc = pListViewAsCtrlCb;
+ g_pViewAsHandle->nCurrTabType = tabType;
+ g_pViewAsHandle->nCurrViewAsType = mp_view_as_ctrl_get_type();
+
+ g_pViewAsHandle->pPopUpHandle =
+ elm_popup_add(mp_util_get_main_window_handle());
+ elm_object_style_set(g_pViewAsHandle->pPopUpHandle, "theme_bg");
+
+ elm_object_domain_translatable_part_text_set(g_pViewAsHandle->
+ pPopUpHandle,
+ "title,text", PACKAGE,
+ VIDEOS_VIEWASPOP_HEADER_VIEW_AS);
+ evas_object_size_hint_weight_set(g_pViewAsHandle->pPopUpHandle,
+ EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+ eext_object_event_callback_add(g_pViewAsHandle->pPopUpHandle,
+ EEXT_CALLBACK_BACK,
+ __mp_view_as_ctrl_cancel_btn_cb, NULL);
+ evas_object_event_callback_add(g_pViewAsHandle->pPopUpHandle,
+ EVAS_CALLBACK_MOUSE_UP,
+ __mp_view_as_ctrl_mouse_up_cb, NULL);
+ evas_object_smart_callback_add(g_pViewAsHandle->pPopUpHandle,
+ "block,clicked",
+ __mp_view_as_ctrl_cancel_btn_cb, NULL);
+ evas_object_smart_callback_add((Evas_Object *)
+ mp_util_get_main_window_handle(),
+ "rotation,changed",
+ __mp_view_as_ctrl_rotate_cb, NULL);
+
+ // Set item of Genlist.
+ MP_DEL_ITC(g_pViewAsHandle->stViewAsItc);
+ g_pViewAsHandle->stViewAsItc = elm_genlist_item_class_new();
+ g_pViewAsHandle->stViewAsItc->item_style = "default"; //"1text.1icon.2/popup";
+ g_pViewAsHandle->stViewAsItc->func.text_get =
+ (void *) __mp_view_as_ctrl_get_label_of_genlsit_item_cb;
+ g_pViewAsHandle->stViewAsItc->func.content_get =
+ (void *) __mp_view_as_ctrl_get_icon_of_genlsit_item_cb;
+ g_pViewAsHandle->stViewAsItc->func.state_get = NULL;
+ g_pViewAsHandle->stViewAsItc->func.del = NULL;
+
+ // Create genlist handle
+ g_pViewAsHandle->pGenList =
+ elm_genlist_add(g_pViewAsHandle->pPopUpHandle);
+ evas_object_size_hint_weight_set(g_pViewAsHandle->pGenList,
+ EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(g_pViewAsHandle->pGenList,
+ EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_smart_callback_add(g_pViewAsHandle->pGenList, "realized",
+ __mp_view_as_ctrl_realized, NULL);
+
+ g_pViewAsHandle->pGroupRadio =
+ elm_radio_add(g_pViewAsHandle->pGenList);
+
+ int nMax_view_list = 0;
+#ifdef VS_FEATURE_LIST_VIEW
+ elm_genlist_item_append(g_pViewAsHandle->pGenList,
+ g_pViewAsHandle->stViewAsItc,
+ (void *) MP_LIST_VIEW_AS_NORMAL_LIST, NULL,
+ ELM_GENLIST_ITEM_NONE,
+ __mp_view_as_ctrl_select_item_cb, NULL);
+ nMax_view_list++;
+#endif
+#ifdef VS_FEATURE_THUMBNAIL_VIEW
+ elm_genlist_item_append(g_pViewAsHandle->pGenList,
+ g_pViewAsHandle->stViewAsItc,
+ (void *) MP_LIST_VIEW_AS_THUMBNAIL_LIST, NULL,
+ ELM_GENLIST_ITEM_NONE,
+ __mp_view_as_ctrl_select_item_cb, NULL);
+ nMax_view_list++;
+#endif
+#ifdef ENABLE_STORE_VIEWAS
+ if (FOOTER_TAB_TYPE_PERSONAL == g_pViewAsHandle->nCurrTabType) {
+ elm_genlist_item_append(g_pViewAsHandle->pGenList,
+ g_pViewAsHandle->stViewAsItc,
+ (void *) MP_LIST_VIEW_AS_FOLDER_LIST, NULL,
+ ELM_GENLIST_ITEM_NONE,
+ __mp_view_as_ctrl_select_item_cb, NULL);
+ nMax_view_list++;
+ }
+#else
+ elm_genlist_item_append(g_pViewAsHandle->pGenList,
+ g_pViewAsHandle->stViewAsItc,
+ (void *) MP_LIST_VIEW_AS_FOLDER_LIST, NULL,
+ ELM_GENLIST_ITEM_NONE,
+ __mp_view_as_ctrl_select_item_cb, NULL);
+ nMax_view_list++;
+#endif
+
+ g_pViewAsHandle->nListCount = nMax_view_list;
+
+ g_pViewAsHandle->pBox = elm_box_add(g_pViewAsHandle->pPopUpHandle);
+
+ mp_widget_ctrl_set_popup_min_size(g_pViewAsHandle->pBox,
+ g_pViewAsHandle->nListCount,
+ VIDEOS_POPUP_114);
+ evas_object_size_hint_weight_set(g_pViewAsHandle->pBox,
+ EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(g_pViewAsHandle->pBox, EVAS_HINT_FILL,
+ EVAS_HINT_FILL);
+
+ elm_box_pack_end(g_pViewAsHandle->pBox, g_pViewAsHandle->pGenList);
+ elm_object_content_set(g_pViewAsHandle->pPopUpHandle,
+ g_pViewAsHandle->pBox);
+
+ evas_object_show(g_pViewAsHandle->pGenList);
+ evas_object_show(g_pViewAsHandle->pPopUpHandle);
+
+ return TRUE;
+}
+
+/**
+ *
+ */
+void mp_view_as_ctrl_hide(void)
+{
+ VideoLogInfo("");
+
+ mp_view_as_ctrl_delete_handle();
+}
+
+/**
+ *
+ */
+void mp_view_as_ctrl_change_language(void)
+{
+ if (!g_pViewAsHandle) {
+ VideoLogError("g_pViewAsHandle is NULL");
+ return;
+ }
+
+ if (!g_pViewAsHandle->pGenList || !g_pViewAsHandle->pPopUpHandle) {
+ VideoLogInfo("No existed genlist or popup handle.");
+ return;
+ }
+
+ VideoLogInfo("");
+
+ elm_object_domain_translatable_part_text_set(g_pViewAsHandle->
+ pPopUpHandle,
+ "title,text", PACKAGE,
+ VIDEOS_VIEWASPOP_HEADER_VIEW_AS);
+ elm_genlist_realized_items_update(g_pViewAsHandle->pGenList);
+
+}
+
+/**
+ *
+ * @return
+ */
+int mp_view_as_ctrl_get_type(void)
+{
+ int nValue = MP_LIST_VIEW_AS_NONE;
+
+ if (preference_get_int(PREF_MP_VIDEO_VIEW_AS_TYPE_KEY, &nValue) != 0) {
+ VideoLogInfo
+ ("Setting normal list type because of defending wrong value.");
+ mp_view_as_ctrl_set_type(MP_LIST_VIEW_AS_THUMBNAIL_LIST);
+ return MP_LIST_VIEW_AS_THUMBNAIL_LIST;
+ }
+
+ if (nValue <= MP_LIST_VIEW_AS_NONE || nValue >= MP_LIST_VIEW_AS_MAX) {
+ mp_view_as_ctrl_set_type(MP_LIST_VIEW_AS_THUMBNAIL_LIST);
+ return MP_LIST_VIEW_AS_THUMBNAIL_LIST;
+ }
+ return nValue;
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#include <Elementary.h>
+
+#include "mp-video-nocontent-layout.h"
+#include "mp-video-log.h"
+#include "mp-video-value-define.h"
+
+/**
+ *
+ * @param pObject
+ * @param ID
+ * @param pPart
+ */
+void
+mp_object_part_translate_set(Evas_Object * pObject, const char *ID,
+ const char *pPart)
+{
+ if (!pObject || !ID || !pPart) {
+ VideoLogError("pObject || ID || pPart == NULL!!!");
+ return;
+ }
+
+ const char *domain;
+ domain = NULL;
+ elm_object_domain_translatable_part_text_set(pObject, pPart, domain,
+ ID);
+}
+
+/**
+ *
+ * @param pParent
+ * @param pText
+ * @param pHelpText
+ * @return
+ */
+Evas_Object *mp_create_nocontent_layout(const Evas_Object * pParent,
+ const char *pText,
+ const char *pHelpText)
+{
+ Evas_Object *pLayout = NULL;
+
+ if (pParent == NULL) {
+ VideoLogError("pParent == NULL!!!");
+ VideoLogAssert(0);
+ return NULL;
+ }
+
+ if (pText == NULL) {
+ VideoLogError("pTextIds == NULL!!!");
+ VideoLogAssert(0);
+ return NULL;
+ }
+
+ VideoSecureLogInfo("pText : [%s], pHelpText : [%s]", pText, pHelpText);
+
+ pLayout = elm_layout_add((Evas_Object *) pParent);
+ elm_layout_theme_set(pLayout, "layout", "nocontents", "text");
+
+ evas_object_size_hint_weight_set(pLayout, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(pLayout, EVAS_HINT_FILL,
+ EVAS_HINT_FILL);
+
+ elm_object_part_text_set(pLayout, "elm.text", pText);
+
+ if (pHelpText != NULL) {
+ mp_object_part_translate_set(pLayout, pHelpText, "elm.help.text");
+ }
+ elm_layout_signal_emit(pLayout, "text,disabled", "");
+ elm_layout_signal_emit(pLayout, "align.center", "elm");
+
+ return pLayout;
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <app.h>
+#include <glib.h>
+#include <Ecore_Evas.h>
+#include <Elementary.h>
+
+#include "mp-util.h"
+#include "mp-video-log.h"
+#include "video-player.h"
+#include "mp-video-value-define.h"
+#include "mp-video-string-define.h"
+#include "mp-video-rename-ctrl.h"
+#include "mp-util-media-service.h"
+#include "mp-util-widget-ctrl.h"
+#include "mp-video-info-ctrl.h"
+#include "vp-util.h"
+#include "vp-file-util.h"
+#include "mp-util-preference.h"
+#include "mp-util-config.h"
+#include "mp-video-list-view-select.h"
+
+
+typedef struct _VideoRenamePopup {
+ //obj
+ void *pNaviFrameHandle;
+ Evas_Object *pBaseLayout;
+ Evas_Object *pGenlist;
+ Evas_Object *pPopUpHandle;
+ Evas_Object *pPopupCancelBtn;
+ Evas_Object *pPopupOkBtn;
+ Evas_Object *pEntry;
+ Evas_Object *pEntryClearBtn;
+ Evas_Object *pEntryLayout;
+
+ //data
+ mpRenameCtrlCbFunc RenameCtrlUserCbFunc;
+ char *szSaveFileName;
+ char *szOldName;
+ char *szTempName;
+ int nVideoIndex;
+ bool bPersonalType;
+ bool bSetToEnd;
+ Ecore_Idler *pSetLineEndIdler;
+} stRenamePopup;
+
+
+stRenamePopup *g_pRenameHandle = NULL;
+
+static bool __mp_rename_ctrl_check_valid_text(const char *text, int *nLen);
+static bool __mp_rename_ctrl_check_valid_all_space(const char *text);
+
+////////////////////////////////////////////////////////////
+// Callback function
+////////////////////////////////////////////////////////////
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_rename_ctrl_cancel_btn_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ VideoLogInfo("");
+
+ mp_rename_ctrl_delete_handle();
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param event_info
+ */
+static void __mp_rename_ctrl_timeout_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *event_info)
+{
+ evas_object_del(pObject);
+
+ elm_entry_cursor_end_set(g_pRenameHandle->pEntry);
+ elm_object_focus_set(g_pRenameHandle->pEntry, EINA_TRUE);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_rename_ctrl_ok_btn_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ VideoLogInfo("");
+
+ Evas_Object *en = (Evas_Object *) pUserData;
+ if (!en || !g_pRenameHandle) {
+ VideoLogError("g_pRenameHandle is NULL");
+ return;
+ }
+
+ int nDstLen = 0;
+ if (!__mp_rename_ctrl_check_valid_text
+ (g_pRenameHandle->szSaveFileName, &nDstLen)) {
+ mp_util_ticker_toast_with_timeout_cb_popup
+ (VIDEOS_NOTIPOP_MSG_INVALID_CHARACTERS,
+ __mp_rename_ctrl_timeout_cb);
+ return;
+ }
+
+ char *szFilePath =
+ mp_util_svc_get_video_url(g_pRenameHandle->nVideoIndex);
+ if (!szFilePath) {
+ VideoLogError("szFilePath is NULL.");
+ mp_rename_ctrl_delete_handle();
+ return;
+ }
+
+ char *szFileExt = mp_info_ctrl_get_file_extension(szFilePath);
+ if (!szFileExt) {
+ VideoLogError("szFileExt is NULL.");
+ MP_FREE_STRING(szFilePath);
+ mp_rename_ctrl_delete_handle();
+ return;
+ }
+
+ char *szFileName = strrchr(szFilePath, '/');
+ if (!szFileName) {
+ VideoLogError("szFileName is NULL.");
+ MP_FREE_STRING(szFilePath);
+ MP_FREE_STRING(szFileExt);
+ mp_rename_ctrl_delete_handle();
+ return;
+ }
+
+ char *szLocation = NULL;
+ szLocation =
+ g_strndup(szFilePath, strlen(szFilePath) - strlen(szFileName));
+
+ if (!szLocation) {
+ VideoLogError("szLocation is NULL.");
+ MP_FREE_STRING(szFilePath);
+ MP_FREE_STRING(szFileExt);
+ mp_rename_ctrl_delete_handle();
+ return;
+ }
+
+ char *szNewFile =
+ g_strdup_printf("%s/%s.%s", szLocation,
+ g_pRenameHandle->szSaveFileName, szFileExt);
+
+ if (!szNewFile || vp_file_exists(szNewFile)) {
+ VideoLogInfo("szNewFile is %s.", szNewFile);
+ MP_FREE_STRING(szFilePath);
+ MP_FREE_STRING(szFileExt);
+ MP_FREE_STRING(szLocation);
+
+ mp_util_ticker_toast_with_timeout_cb_popup
+ (VIDEOS_NOTIPOP_MSG_ALREADY_EXISTS,
+ __mp_rename_ctrl_timeout_cb);
+
+ return;
+ }
+
+ if (strcmp(szNewFile, szFilePath) != 0) {
+ VideoLogInfo("Correct new name style");
+ char *szNewPath = NULL;
+ int ret =
+ mp_util_rename_file((const char *) szFilePath,
+ (const char *) szNewFile, &szNewPath);
+
+ if (!szNewPath) {
+ VideoLogError("szNewPath is NULL.");
+ MP_FREE_STRING(szFilePath);
+ MP_FREE_STRING(szFileExt);
+ MP_FREE_STRING(szLocation);
+ MP_FREE_STRING(szNewFile);
+ mp_rename_ctrl_delete_handle();
+ return;
+ }
+
+ if (ret != 0) {
+ VideoLogError("mp_util_rename_file failed");
+ } else {
+ mp_util_svc_move_to_db(g_pRenameHandle->nVideoIndex,
+ szNewPath);
+ }
+
+ char *szMediaUrl = mp_util_config_get_preview();
+ if (szMediaUrl) {
+ if (!strcmp(szFilePath, szMediaUrl)) {
+ mp_util_config_set_preview(szNewFile);
+ }
+ }
+
+ MP_FREE_STRING(szFilePath);
+ MP_FREE_STRING(szFileExt);
+ MP_FREE_STRING(szLocation);
+ MP_FREE_STRING(szNewPath);
+
+ if (g_pRenameHandle->RenameCtrlUserCbFunc) {
+ g_pRenameHandle->RenameCtrlUserCbFunc();
+ }
+ }
+
+ MP_FREE_STRING(szFileExt);
+ MP_FREE_STRING(szNewFile);
+
+ mp_rename_ctrl_delete_handle();
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_rename_ctrl_entry_max_len_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ VideoLogInfo("");
+
+ mp_util_ticker_toast_popup(VIDEOS_NOTIPOP_MSG_MAX_NUM_OF_CHARACTERS,
+ false, false);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_rename_ctrl_entry_activate_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ if (!g_pRenameHandle) {
+ VideoLogError("g_pRenameHandle is NULL");
+ return;
+ }
+
+ if (!pObject) {
+ VideoLogError("pObject is NULL");
+ return;
+ }
+
+ char *entry_data = (char *) elm_entry_entry_get(pObject);
+ char *szFileName = elm_entry_markup_to_utf8(entry_data);
+
+ if (!szFileName) {
+ VideoLogError("failed to get text");
+ return;
+ }
+ VideoLogInfo("title is %s", szFileName);
+
+ MP_FREE_STRING(g_pRenameHandle->szSaveFileName);
+ if (!strlen(szFileName)) {
+ VideoLogWarning("title is empty");
+ } else {
+ g_pRenameHandle->szSaveFileName = g_strdup(szFileName);
+ }
+
+ MP_FREE_STRING(szFileName);
+}
+
+/**
+ *
+ * @param pUserData
+ * @return
+ */
+static Eina_Bool __mp_rename_ctrl_entry_set_line_end(void *pUserData)
+{
+ if (!g_pRenameHandle) {
+ VideoLogError("g_pRenameHandle is NULL");
+ return ECORE_CALLBACK_CANCEL;
+ }
+
+ if (pUserData == NULL) {
+ VideoLogError("pUserData is NULL");
+ return ECORE_CALLBACK_CANCEL;
+ }
+
+ Evas_Object *pObj = pUserData;
+
+ g_pRenameHandle->pSetLineEndIdler = NULL;
+ g_pRenameHandle->bSetToEnd = FALSE;
+
+ elm_entry_cursor_line_end_set(pObj);
+
+ return ECORE_CALLBACK_CANCEL;
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param emission
+ * @param source
+ */
+static void __mp_rename_ctrl_entry_clear_cb(void *data, Evas_Object * obj,
+ const char *emission,
+ const char *source)
+{
+ if (!g_pRenameHandle) {
+ VideoLogError("g_pRenameHandle is NULL");
+ return;
+ }
+
+ Evas_Object *en = (Evas_Object *) data;
+ elm_entry_entry_set(en, "");
+ MP_FREE_STRING(g_pRenameHandle->szTempName);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEvent
+ */
+static void __mp_rename_ctrl_entry_changed_cb(void *pUserData,
+ Evas_Object * pObj,
+ void *pEvent)
+{
+ if (!g_pRenameHandle) {
+ VideoLogError("g_pRenameHandle is NULL");
+ return;
+ }
+
+ if (!pObj) {
+ VideoLogError("pObj is NULL");
+ return;
+ }
+ VideoLogInfo("");
+
+ Evas_Object *en = pObj;
+
+ char *entry_data = (char *) elm_entry_entry_get(en);
+ char *szFileName = elm_entry_markup_to_utf8(entry_data);
+ int nDstLen = 0;
+ bool isEmpty = elm_entry_is_empty(en);
+
+ if (!szFileName) {
+ VideoLogError("failed to get text");
+ return;
+ }
+
+ if (isEmpty) {
+ VideoLogInfo("Entry is empty");
+ elm_object_part_content_unset(g_pRenameHandle->pEntryLayout,
+ "elm.swallow.end");
+ evas_object_hide(g_pRenameHandle->pEntryClearBtn);
+ } else {
+ elm_object_part_content_set(g_pRenameHandle->pEntryLayout,
+ "elm.swallow.end",
+ g_pRenameHandle->pEntryClearBtn);
+ evas_object_show(g_pRenameHandle->pEntryClearBtn);
+ }
+
+ MP_FREE_STRING(g_pRenameHandle->szSaveFileName);
+ if (isEmpty || !__mp_rename_ctrl_check_valid_all_space(szFileName)) {
+ VideoLogWarning("Title is empty or title consists of only spaces");
+ if (g_pRenameHandle->pPopupOkBtn) {
+ elm_object_disabled_set(g_pRenameHandle->pPopupOkBtn,
+ EINA_TRUE);
+ }
+ } else if (!__mp_rename_ctrl_check_valid_text(szFileName, &nDstLen)) {
+ VideoLogWarning("New file name is invalid.");
+ if (!g_strcmp0(g_pRenameHandle->szOldName, szFileName)) {
+ elm_object_disabled_set(g_pRenameHandle->pPopupOkBtn,
+ EINA_TRUE);
+ VideoLogInfo("it is the old name");
+ } else {
+ int position = elm_entry_cursor_pos_get(en);
+ elm_entry_entry_set(en,
+ elm_entry_utf8_to_markup(g_pRenameHandle->
+ szTempName));
+ elm_entry_cursor_begin_set(en);
+ elm_entry_cursor_pos_set(en, position - 1);
+
+ mp_util_status_bar_noti_popup_show
+ (VIDEOS_NOTIPOP_MSG_INVALID_CHARACTERS);
+ MP_FREE_STRING(szFileName);
+ return;
+ }
+ } else {
+ g_pRenameHandle->szSaveFileName = g_strdup(szFileName);
+ if (!g_strcmp0(g_pRenameHandle->szOldName, szFileName)) {
+ elm_object_disabled_set(g_pRenameHandle->pPopupOkBtn,
+ EINA_TRUE);
+ VideoLogInfo("it is the old name");
+ /*elm_entry_select_all(en); */
+ elm_entry_cursor_end_set(en);
+ } else {
+ elm_object_disabled_set(g_pRenameHandle->pPopupOkBtn,
+ EINA_FALSE);
+ }
+ }
+ MP_FREE_STRING(g_pRenameHandle->szTempName);
+ g_pRenameHandle->szTempName = strdup(szFileName);
+ if (g_pRenameHandle->bSetToEnd) {
+ MP_DEL_IDLER(g_pRenameHandle->pSetLineEndIdler);
+ g_pRenameHandle->pSetLineEndIdler =
+ ecore_idler_add(__mp_rename_ctrl_entry_set_line_end, pObj);
+ }
+ MP_FREE_STRING(szFileName);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEvent
+ */
+static void __mp_rename_ctrl_entry_clicked_cb(void *pUserData,
+ Evas_Object * pObj,
+ void *pEvent)
+{
+ if (!g_pRenameHandle) {
+ VideoLogError("g_pRenameHandle is NULL");
+ return;
+ }
+
+ Evas_Object *en = (Evas_Object *) pObj;
+ elm_entry_select_none(en);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEvent
+ */
+static void __mp_rename_ctrl_entry_long_pressed_cb(void *pUserData,
+ Evas_Object * pObj,
+ void *pEvent)
+{
+ if (!g_pRenameHandle) {
+ VideoLogError("g_pRenameHandle is NULL");
+ return;
+ }
+
+ Evas_Object *en = (Evas_Object *) pObj;
+ evas_object_smart_callback_del(en, "clicked",
+ (Evas_Smart_Cb)
+ __mp_rename_ctrl_entry_clicked_cb);
+}
+
+/**
+ *
+ * @param data
+ * @param e
+ * @param pObj
+ * @param event_pEvent
+ */
+static void __mp_entry_show_cb(void *data, Evas * e, Evas_Object * pObj,
+ void *event_pEvent)
+{
+ elm_object_focus_set(pObj, EINA_TRUE);
+}
+
+////////////////////////////////////////////////////////////
+// Internal function
+////////////////////////////////////////////////////////////
+/**
+ *
+ * @param text
+ * @param nLen
+ * @return
+ */
+static bool __mp_rename_ctrl_check_valid_text(const char *text, int *nLen)
+{
+ if (!text) {
+ return FALSE;
+ }
+
+ char pattern[] = { '/', '\\', ':', '*', '?', '"', '<', '>', '|', '\0' };
+ const char *tmp = text;
+ int nSrcLen = 0;
+
+ /* hidden property check */
+ if (strncmp(tmp, ".", strlen(".")) == 0) {
+ return FALSE;
+ }
+
+ /* check bad character */
+ while (*tmp != '\0') {
+ if (strchr(pattern, *tmp) != NULL) {
+ VideoLogError("Invalid text=%s char=%c", text, *tmp);
+ *nLen = nSrcLen;
+ return FALSE;
+ }
+ nSrcLen++;
+ tmp++;
+ }
+
+ *nLen = nSrcLen;
+ return TRUE;
+}
+
+/**
+ *
+ * @param text
+ * @return
+ */
+static bool __mp_rename_ctrl_check_valid_all_space(const char *text)
+{
+ if (!text) {
+ return FALSE;
+ }
+
+ const char *tmp = text;
+
+ /* check all space */
+ while (*tmp != '\0') {
+
+ if (' ' != *tmp) {
+ return TRUE;
+ }
+ tmp++;
+ }
+
+ return FALSE;
+}
+
+/**
+ *
+ */
+static void __mp_rename_ctrl_set_save_file_name()
+{
+ if (!g_pRenameHandle) {
+ VideoLogError("g_pRenameHandle is NULL");
+ return;
+ }
+
+ if (g_pRenameHandle->szSaveFileName) {
+ MP_FREE_STRING(g_pRenameHandle->szSaveFileName);
+ g_pRenameHandle->szSaveFileName = NULL;
+ }
+ char *szTitle = NULL;
+ char *szPath = mp_util_svc_get_video_url(g_pRenameHandle->nVideoIndex);
+ szTitle = mp_util_get_title_from_path(szPath);
+ g_pRenameHandle->szSaveFileName = g_strdup(szTitle);
+
+ MP_FREE_STRING(szPath);
+ MP_FREE_STRING(szTitle);
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __mp_rename_view_rotate_cb(void *data, Evas_Object * obj,
+ void *event_info)
+{
+ if (!g_pRenameHandle) {
+ VideoLogError("__mp_rename_view_rotate_cb IS null");
+ return;
+ }
+ VideoLogInfo("");
+ mp_select_view_arrange_video_list(g_pRenameHandle->pGenlist, FALSE);
+}
+
+////////////////////////////////////////////////////////////
+// External function
+////////////////////////////////////////////////////////////
+/**
+ *
+ * @param pNaviFrameHandle
+ * @param pUserData
+ * @param pRenameCtrlCb
+ * @param nVideoItemIndex
+ * @return
+ */
+Evas_Object *mp_rename_ctrl_show(void *pNaviFrameHandle, void *pUserData,
+ mpRenameCtrlCbFunc pRenameCtrlCb,
+ int nVideoItemIndex)
+{
+ VideoLogInfo("");
+
+ if (nVideoItemIndex < 0) {
+ VideoLogError("nVideoItemIndex is INVALID = %d", nVideoItemIndex);
+ return FALSE;
+ }
+
+ mp_rename_ctrl_delete_handle();
+
+ g_pRenameHandle = (stRenamePopup *) calloc(1, sizeof(stRenamePopup));
+ if (!g_pRenameHandle) {
+ VideoLogError("g_pRenameHandle is NULL");
+ return FALSE;
+ }
+
+ g_pRenameHandle->pNaviFrameHandle = pNaviFrameHandle;
+ g_pRenameHandle->RenameCtrlUserCbFunc = pRenameCtrlCb;
+ g_pRenameHandle->nVideoIndex = nVideoItemIndex;
+ g_pRenameHandle->bSetToEnd = TRUE;
+
+ char *pVideoFile =
+ mp_util_svc_get_video_url(g_pRenameHandle->nVideoIndex);
+ char *szFileExt = mp_info_ctrl_get_file_extension(pVideoFile);
+
+ mp_widget_ctrl_disable_navi_handle_focus_except_item(g_pRenameHandle->
+ pNaviFrameHandle,
+ NULL);
+
+ evas_object_smart_callback_add((Evas_Object *)
+ mp_util_get_main_window_handle(),
+ "wm,rotation,changed",
+ __mp_rename_view_rotate_cb, NULL);
+
+ Evas_Object *pLayout = NULL;
+ char edj_path[1024] = { 0 };
+
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje", VIDEO_CUSTOM_THEME);
+ free(path);
+ //Create popup
+ g_pRenameHandle->pPopUpHandle =
+ elm_popup_add(g_pRenameHandle->pNaviFrameHandle);
+
+ eext_object_event_callback_add(g_pRenameHandle->pPopUpHandle,
+ EEXT_CALLBACK_BACK,
+ __mp_rename_ctrl_cancel_btn_cb,
+ pUserData);
+
+ elm_object_part_text_set(g_pRenameHandle->pPopUpHandle, "title,text",
+ VIDEOS_RENAMEPOP_HEADER_RENAME);
+ evas_object_size_hint_weight_set(g_pRenameHandle->pPopUpHandle,
+ EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+ pLayout = elm_layout_add(g_pRenameHandle->pPopUpHandle);
+ elm_layout_file_set(pLayout, edj_path, "pv.popup.entry");
+
+ //Create entry
+ Evas_Object *en = NULL;
+ en = elm_entry_add(pLayout);
+ elm_entry_single_line_set(en, EINA_TRUE);
+ elm_entry_scrollable_set(en, EINA_TRUE);
+
+ elm_entry_cnp_mode_set(en, ELM_CNP_MODE_PLAINTEXT);
+ elm_entry_input_panel_layout_set(en, ELM_INPUT_PANEL_LAYOUT_NORMAL);
+ elm_entry_editable_set(en, TRUE);
+ elm_entry_input_panel_return_key_type_set(en,
+ ELM_INPUT_PANEL_RETURN_KEY_TYPE_DEFAULT);
+ elm_entry_input_panel_return_key_disabled_set(en, EINA_FALSE);
+ elm_entry_prediction_allow_set(en, EINA_TRUE);
+ g_pRenameHandle->pEntryLayout = pLayout;
+
+ static Elm_Entry_Filter_Limit_Size limit_filter_data;
+ limit_filter_data.max_char_count = VIDEO_FILE_SEARCH_CHAR_LEN_MAX;
+ limit_filter_data.max_byte_count = 0;
+ elm_entry_markup_filter_append(en, elm_entry_filter_limit_size,
+ &limit_filter_data);
+
+ evas_object_smart_callback_add(en, "maxlength,reached",
+ __mp_rename_ctrl_entry_max_len_cb,
+ pUserData);
+ evas_object_smart_callback_add(en, "activated",
+ __mp_rename_ctrl_entry_activate_cb,
+ pUserData);
+ evas_object_smart_callback_add(en, "changed",
+ __mp_rename_ctrl_entry_changed_cb,
+ pUserData);
+ evas_object_smart_callback_add(en, "preedit,changed",
+ __mp_rename_ctrl_entry_changed_cb,
+ pUserData);
+ evas_object_smart_callback_add(en, "clicked",
+ __mp_rename_ctrl_entry_clicked_cb,
+ pUserData);
+ evas_object_smart_callback_add(en, "longpressed",
+ __mp_rename_ctrl_entry_long_pressed_cb,
+ pUserData);
+ evas_object_event_callback_add(en, EVAS_CALLBACK_SHOW,
+ __mp_entry_show_cb, pUserData);
+
+ __mp_rename_ctrl_set_save_file_name();
+ MP_FREE_STRING(g_pRenameHandle->szOldName);
+ g_pRenameHandle->szOldName = g_strdup(g_pRenameHandle->szSaveFileName);
+ char *pNameUtf8 =
+ elm_entry_utf8_to_markup(g_pRenameHandle->szSaveFileName);
+ elm_entry_entry_set(en, pNameUtf8);
+ MP_FREE_STRING(pNameUtf8);
+ elm_object_focus_set(en, EINA_TRUE);
+ g_pRenameHandle->pEntry = en;
+ elm_entry_select_all(en);
+ elm_entry_cursor_end_set(en);
+
+ elm_object_part_content_set(pLayout, "elm.swallow.content", en);
+ elm_object_content_set(g_pRenameHandle->pPopUpHandle, pLayout);
+
+ g_pRenameHandle->pEntryClearBtn = elm_button_add(pLayout);
+ elm_object_style_set(g_pRenameHandle->pEntryClearBtn, "clear");
+ elm_object_part_content_set(pLayout, "elm.swallow.end",
+ g_pRenameHandle->pEntryClearBtn);
+ elm_object_signal_callback_add(g_pRenameHandle->pEntryClearBtn,
+ "elm,action,click", "",
+ __mp_rename_ctrl_entry_clear_cb,
+ (void *) en);
+ evas_object_show(g_pRenameHandle->pEntryClearBtn);
+
+ g_pRenameHandle->pPopupCancelBtn =
+ elm_button_add(g_pRenameHandle->pPopUpHandle);
+ elm_object_style_set(g_pRenameHandle->pPopupCancelBtn, "popup");
+ elm_object_domain_translatable_text_set(g_pRenameHandle->
+ pPopupCancelBtn, VIDEOS_STRING,
+ VIDEOS_COMMON_BUTTON_CANCEL_IDS);
+ elm_object_part_content_set(g_pRenameHandle->pPopUpHandle, "button1",
+ g_pRenameHandle->pPopupCancelBtn);
+ evas_object_smart_callback_add(g_pRenameHandle->pPopupCancelBtn,
+ "clicked",
+ __mp_rename_ctrl_cancel_btn_cb,
+ pUserData);
+
+ g_pRenameHandle->pPopupOkBtn =
+ elm_button_add(g_pRenameHandle->pPopUpHandle);
+ elm_object_style_set(g_pRenameHandle->pPopupOkBtn, "popup");
+ elm_object_domain_translatable_text_set(g_pRenameHandle->pPopupOkBtn,
+ VIDEOS_STRING,
+ VIDEOS_COMMON_BUTTON_RENAME_IDS);
+ elm_object_part_content_set(g_pRenameHandle->pPopUpHandle, "button2",
+ g_pRenameHandle->pPopupOkBtn);
+ evas_object_smart_callback_add(g_pRenameHandle->pPopupOkBtn, "clicked",
+ __mp_rename_ctrl_ok_btn_cb, en);
+ elm_object_disabled_set(g_pRenameHandle->pPopupOkBtn, EINA_TRUE);
+
+ evas_object_show(g_pRenameHandle->pPopUpHandle);
+
+ MP_FREE_STRING(szFileExt);
+ MP_FREE_STRING(pVideoFile);
+ return g_pRenameHandle->pPopUpHandle;
+}
+
+/**
+ *
+ * @return
+ */
+bool mp_rename_ctrl_is_top_view()
+{
+ if (!g_pRenameHandle) {
+ VideoLogInfo("RenamePopUp is not shown");
+ return FALSE;
+ }
+ return TRUE;
+
+}
+
+/**
+ *
+ */
+void mp_rename_ctrl_set_focus()
+{
+ if (!g_pRenameHandle) {
+ VideoLogInfo("RenamePopUp is not shown");
+ return;
+ }
+
+ VideoLogInfo("");
+ elm_object_focus_set(g_pRenameHandle->pEntry, EINA_TRUE);
+}
+
+/**
+ *
+ */
+void mp_rename_ctrl_focus_out_cb(void)
+{
+
+ if (!g_pRenameHandle) {
+ VideoLogInfo("RenamePopUp is not shown");
+ return;
+ }
+
+ if (g_pRenameHandle->pPopUpHandle) {
+ eext_object_event_callback_del(g_pRenameHandle->pPopUpHandle,
+ EEXT_CALLBACK_BACK,
+ __mp_rename_ctrl_cancel_btn_cb);
+ }
+
+ if (g_pRenameHandle->pPopupCancelBtn) {
+ evas_object_smart_callback_del(g_pRenameHandle->pPopupCancelBtn,
+ "clicked",
+ __mp_rename_ctrl_cancel_btn_cb);
+ }
+ MP_DEL_OBJ(g_pRenameHandle->pPopupOkBtn);
+ MP_DEL_OBJ(g_pRenameHandle->pPopupCancelBtn);
+ MP_DEL_OBJ(g_pRenameHandle->pPopUpHandle);
+}
+
+/**
+ *
+ */
+void mp_rename_ctrl_delete_handle(void)
+{
+ VideoLogInfo("");
+ if (!g_pRenameHandle) {
+ VideoLogError("g_pRenameHandle is NULL");
+ return;
+ }
+ if (g_pRenameHandle->pPopUpHandle) {
+ eext_object_event_callback_del(g_pRenameHandle->pPopUpHandle,
+ EEXT_CALLBACK_BACK,
+ __mp_rename_ctrl_cancel_btn_cb);
+ }
+
+ if (g_pRenameHandle->pPopupCancelBtn) {
+ evas_object_smart_callback_del(g_pRenameHandle->pPopupCancelBtn,
+ "clicked",
+ __mp_rename_ctrl_cancel_btn_cb);
+ }
+
+ if (g_pRenameHandle->pPopupOkBtn) {
+ evas_object_smart_callback_del(g_pRenameHandle->pPopupOkBtn,
+ "clicked",
+ __mp_rename_ctrl_ok_btn_cb);
+ }
+
+ mp_widget_ctrl_enable_navi_handle_focus(g_pRenameHandle->
+ pNaviFrameHandle);
+ MP_DEL_IDLER(g_pRenameHandle->pSetLineEndIdler);
+ MP_DEL_OBJ(g_pRenameHandle->pPopupOkBtn);
+ MP_DEL_OBJ(g_pRenameHandle->pPopupCancelBtn);
+ MP_DEL_OBJ(g_pRenameHandle->pPopUpHandle);
+ MP_FREE_STRING(g_pRenameHandle->szSaveFileName);
+ MP_FREE_STRING(g_pRenameHandle->szOldName);
+ MP_FREE_STRING(g_pRenameHandle->szTempName);
+
+ MP_FREE_STRING(g_pRenameHandle);
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <app.h>
+#include <glib.h>
+#include <app_preference.h>
+
+#include <Eina.h>
+#include <Ecore_Evas.h>
+#include <Elementary.h>
+
+#include "vp-play-log.h"
+#include "mp-util.h"
+#include "mp-video-log.h"
+#include "mp-video-value-define.h"
+#include "mp-video-string-define.h"
+#include "mp-video-view-popup-ctrl.h"
+#include "mp-video-list-view-main.h"
+#include "mp-util-widget-ctrl.h"
+#include "vp-util.h"
+
+#define PREF_MP_VIDEO_CONTENT_DISPLAYER_TYPE_KEY "preference/org.tizen.videos/storage_type"
+
+
+typedef struct __list_view_ctr {
+ Evas_Object *pLVPopUpHandle;
+ Evas_Object *pLVGroupRadio;
+ Evas_Object *pLVGenList;
+ Evas_Object *pBox;
+
+ int nListCount;
+ MpListItemType nCurrViewType;
+ Elm_Genlist_Item_Class *lv_Itc;
+ ListViewCtrlCbFunc pListViewCtrlCbFunc;
+} st_list_view_ctr;
+
+static st_list_view_ctr *g_list_view_data = NULL;
+
+static void __mp_view_ctrl_btn_asc_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo);
+/**
+ *
+ * @param nViewType
+ */
+void mp_view_ctrl_set_type(MpListItemType nViewType)
+{
+ if (!g_list_view_data) {
+ VideoLogError("");
+ return;
+ }
+
+ if (MP_LIST_VIEW_NONE >= nViewType || nViewType >= MP_LIST_VIEW_MAX) {
+ VideoLogWarning("[WARNING] Value of View as type is not matched.");
+ nViewType = MP_LIST_VIEW_ALL;
+ }
+
+ g_list_view_data->nCurrViewType = nViewType;
+
+ int nRet = preference_set_int(PREF_MP_VIDEO_CONTENT_DISPLAYER_TYPE_KEY,
+ g_list_view_data->nCurrViewType);
+ if (nRet) {
+ VideoLogWarning
+ ("[WARNING] Fail to set value about list view type.");
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ */
+void mp_view_ctrl_delete_handle(void *pUserData)
+{
+ VideoLogInfo("");
+
+ if (!pUserData) {
+ VideoLogInfo("pUserData is NULL");
+ return;
+ }
+ st_list_view_ctr *pLVData = (st_list_view_ctr *) pUserData;
+ if (pLVData->pLVPopUpHandle) {
+ eext_object_event_callback_del(pLVData->pLVPopUpHandle,
+ EEXT_CALLBACK_BACK,
+ __mp_view_ctrl_btn_asc_cb);
+ evas_object_smart_callback_del(pLVData->pLVPopUpHandle,
+ "block,clicked",
+ __mp_view_ctrl_btn_asc_cb);
+ }
+ MP_DEL_ITC(pLVData->lv_Itc);
+ MP_DEL_OBJ(pLVData->pLVGroupRadio);
+ MP_DEL_OBJ(pLVData->pLVGenList);
+ MP_DEL_OBJ(pLVData->pBox);
+ MP_DEL_OBJ(pLVData->pLVPopUpHandle);
+ MP_FREE_STRING(pLVData);
+ g_list_view_data = NULL;
+
+ VideoLogInfo("end");
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_view_ctrl_btn_asc_cb(void *pUserData,
+ Evas_Object * pObject,
+ void *pEventInfo)
+{
+ VideoLogInfo("");
+
+ mp_view_ctrl_hide();
+}
+
+/*//////////////////////////////////////////////////////////*/
+/* External function*/
+/*//////////////////////////////////////////////////////////*/
+/**
+ *
+ * @param pListViewCtrlCb
+ * @return
+ */
+bool mp_view_ctrl_show(ListViewCtrlCbFunc pListViewCtrlCb)
+{
+ VideoLogInfo("disable cloud module.");
+ return false;
+}
+
+/**
+ *
+ */
+void mp_view_ctrl_hide(void)
+{
+ VideoLogInfo("");
+
+ if (!g_list_view_data) {
+ VideoLogInfo("g_list_view_data is NULL.");
+ return;
+ }
+
+ mp_view_ctrl_delete_handle(g_list_view_data);
+}
+
+/**
+ *
+ */
+void mp_view_ctrl_change_language(void)
+{
+ return;
+}
+
+/**
+ *
+ * @return
+ */
+int mp_view_ctrl_get_list_type(void)
+{
+ return MP_LIST_VIEW_ALL;
+}
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<manifest xmlns="http://tizen.org/ns/packages" api-version="4.0" package="org.tizen.videos_common" version="1.0.0">
+ <profile name="mobile"/>
+ <ui-application appid="org.tizen.videos" exec="videos" launch_mode="single" hw-acceleration="on" multiple="false" nodisplay="false" taskmanage="true" type="capp">
+ <label>Video</label>
+ <label xml:lang="en-gb">Video</label>
+ <label xml:lang="hi-in">वीडियो</label>
+ <label xml:lang="bn-in">ভিডিও</label>
+ <label xml:lang="gu-in">વિડિયો</label>
+ <label xml:lang="kn-in">ವೀಡಿಯೊ</label>
+ <label xml:lang="ml-in">വീഡിയോ</label>
+ <label xml:lang="si-lk">වීඩියෝ</label>
+ <label xml:lang="ta-in">நிகழ்படம்</label>
+ <label xml:lang="te-in">వీడియో</label>
+ <label xml:lang="ur-pk">ویڈیو</label>
+ <label xml:lang="en-us">Video</label>
+ <label xml:lang="en-ph">Video</label>
+ <label xml:lang="zh-cn">视频</label>
+ <label xml:lang="tl-ph">Video</label>
+ <label xml:lang="id-id">Video</label>
+ <label xml:lang="ko-kr">비디오</label>
+ <label xml:lang="ms-my">Video</label>
+ <label xml:lang="my-mm">ဗီဒီယို</label>
+ <label xml:lang="th-th">วิดีโอ</label>
+ <label xml:lang="vi-vn">Video</label>
+ <label xml:lang="lo-la">ວິດີໂອ</label>
+ <label xml:lang="km-kh">វីដេអូ</label>
+ <label xml:lang="hy-am">Վիդեո</label>
+ <label xml:lang="az-az">Video</label>
+ <label xml:lang="eu-es">Bideoa</label>
+ <label xml:lang="bg-bg">Видеоклип</label>
+ <label xml:lang="ca-es">Vídeo</label>
+ <label xml:lang="zh-cn">视频</label>
+ <label xml:lang="zh-hk">影片</label>
+ <label xml:lang="zh-tw">影片</label>
+ <label xml:lang="hr-hr">Video</label>
+ <label xml:lang="cs-cz">Video</label>
+ <label xml:lang="da-dk">Videoklip</label>
+ <label xml:lang="nl-nl">Video</label>
+ <label xml:lang="en-gb">Video</label>
+ <label xml:lang="en-us">Video</label>
+ <label xml:lang="et-ee">Video</label>
+ <label xml:lang="fi-fi">Video</label>
+ <label xml:lang="fr-fr">Vidéo</label>
+ <label xml:lang="gl-es">Vídeo</label>
+ <label xml:lang="ka-ge">ვიდეო</label>
+ <label xml:lang="de-de">Video</label>
+ <label xml:lang="el-gr">Βίντεο</label>
+ <label xml:lang="hu-hu">Videó</label>
+ <label xml:lang="is-is">Myndskeið</label>
+ <label xml:lang="ga-ie">Físeán</label>
+ <label xml:lang="it-it">Video</label>
+ <label xml:lang="ja-jp">動画</label>
+ <label xml:lang="kk-kz">Бейне</label>
+ <label xml:lang="ko-kr">동영상</label>
+ <label xml:lang="lv-lv">Video</label>
+ <label xml:lang="lt-lt">Vaizdo įrašas</label>
+ <label xml:lang="mk-mk">Видео-запис</label>
+ <label xml:lang="nb-no">Video</label>
+ <label xml:lang="pl-pl">Film</label>
+ <label xml:lang="pt-pt">Vídeo</label>
+ <label xml:lang="pt-br">Vídeo</label>
+ <label xml:lang="ro-ro">Videoclip</label>
+ <label xml:lang="ru-ru">Видео</label>
+ <label xml:lang="sr-rs">Video zapis</label>
+ <label xml:lang="sk-sk">Video</label>
+ <label xml:lang="sl-si">Video</label>
+ <label xml:lang="es-es">Vídeo</label>
+ <label xml:lang="es-us">Video</label>
+ <label xml:lang="sv-se">Videoklipp</label>
+ <label xml:lang="tr-tr">Video</label>
+ <label xml:lang="uk-ua">Відео</label>
+ <label xml:lang="uz-uz">Video</label>
+ <label xml:lang="ar-ae">فيديو</label>
+ <!-- <label xml:lang="zh-sg">画廊</label> -->
+ <label xml:lang="hi-in">वीडियो</label>
+ <label xml:lang="en-ph">Video</label>
+ <label xml:lang="fr-ca">Vidéo</label>
+ <icon>org.tizen.videos.png</icon>
+ </ui-application>
+ <privileges>
+ <privilege>http://tizen.org/privilege/mediastorage</privilege>
+ <privilege>http://tizen.org/privilege/externalstorage.appdata</privilege>
+ <privilege>http://tizen.org/privilege/externalstorage</privilege>
+ <privilege>http://tizen.org/privilege/telephony</privilege>
+ <privilege>http://tizen.org/privilege/wifidirect</privilege>
+ <privilege>http://tizen.org/privilege/network.get</privilege>
+ <privilege>http://tizen.org/privilege/volume.set</privilege>
+ <privilege>http://tizen.org/privilege/appmanager.launch</privilege>
+ <privilege>http://tizen.org/privilege/content.write</privilege>
+ <privilege>http://tizen.org/privilege/display</privilege>
+ <privilege>http://tizen.org/privilege/internet</privilege>
+</privileges>
+</manifest>
--- /dev/null
+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)
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#ifndef __VPP_DOWNLOAD_H__
+#define __VPP_DOWNLOAD_H__
+
+
+#include <stdbool.h>
+
+
+/* downloader handle */
+typedef void *VppDownloadHandle;
+
+
+/**
+ * @brief Enumerations of download state
+ */
+typedef enum {
+ VPP_DOWNLOAD_STATE_AGENT_ERROR = -2, /**< agent error */
+ VPP_DOWNLOAD_STATE_APP_ERROR = -1, /**< application error */
+ VPP_DOWNLOAD_STATE_NONE = 0, /**< download_state_e : DOWNLOAD_STATE_NONE */
+ VPP_DOWNLOAD_STATE_READY, /**< download_state_e : DOWNLOAD_STATE_READY */
+ VPP_DOWNLOAD_STATE_QUEUED, /**< download_state_e : DOWNLOAD_STATE_QUEUED */
+ VPP_DOWNLOAD_STATE_DOWNLOADING, /**< download_state_e : DOWNLOAD_STATE_DOWNLOADING */
+ VPP_DOWNLOAD_STATE_PAUSED, /**< download_state_e : DOWNLOAD_STATE_PAUSED */
+ VPP_DOWNLOAD_STATE_COMPLETED, /**< download_state_e : DOWNLOAD_STATE_COMPLETED */
+ VPP_DOWNLOAD_STATE_FAILED, /**< download_state_e : DOWNLOAD_STATE_FAILED */
+ VPP_DOWNLOAD_STATE_CANCELED, /**< download_state_e : DOWNLOAD_STATE_CANCELED */
+} VppDownloadState;
+
+
+/**
+ * @brief Enumerations of download item type
+ */
+typedef enum {
+ VPP_DOWNLOAD_ITEM_TYPE_NONE = 0, /**< NONE */
+
+ VPP_DOWNLOAD_ITEM_TYPE_VIDEO_FILE, /**< video file */
+
+ /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ // these values only supprot store
+ VPP_DOWNLOAD_ITEM_TYPE_STORE_VIDEO_FILE, /**< store video file */
+ VPP_DOWNLOAD_ITEM_TYPE_VIDEO_INDEX_FILE, /**< store video infex file. It will be reomved when download video file is completed. */
+ VPP_DOWNLOAD_ITEM_TYPE_VIDEO_CAPTION_FILE, /**< store video caption file */
+ /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+ VPP_DOWNLOAD_ITEM_TYPE_THUMBNAIL_IMAGE, /* product thumbnail image */
+ VPP_DOWNLOAD_ITEM_TYPE_LARGE_POSTER_IMAGE, /* product large poster image */
+ VPP_DOWNLOAD_ITEM_TYPE_CATEGORY_IMAGE, /* category thumbnail image */
+ VPP_DOWNLOAD_ITEM_TYPE_RATING_IMAGE, /* user rating image */
+ VPP_DOWNLOAD_ITEM_TYPE_CAPION_FILE, /* caption file */
+} VppDownloadItemType;
+
+
+/* downloader callback */
+typedef void (*vpp_dl_progress_cb) (VppDownloadHandle pHandle,
+ unsigned long long received,
+ unsigned long long total,
+ void *userData);
+typedef void (*vpp_dl_state_changed_cb) (VppDownloadHandle pHandle,
+ VppDownloadState eState,
+ const char *pPath,
+ void *userData);
+
+
+// download callback structure
+typedef struct {
+ vpp_dl_progress_cb progressCb;
+ vpp_dl_state_changed_cb stateChangedCb;
+} VppDownloadCallback;
+
+
+#ifdef _cplusplus
+extern "C" {
+#endif
+
+
+ VppDownloadHandle VppDownloadCreateItem(const char *pUrl,
+ const char *pDstFolder,
+ const char *pDstName,
+ VppDownloadItemType eType,
+ VppDownloadCallback cb,
+ void *userData);
+ VppDownloadHandle VppDownloadCreateItemById(int nId, const char *pUrl,
+ const char *pDstFolder,
+ const char *pDstName,
+ VppDownloadItemType eType,
+ VppDownloadCallback cb,
+ void *userData);
+
+ void VppDownloadDestroyItem(VppDownloadHandle pHandle);
+ void VppDownloadDestroyItemById(int nId);
+ void VppDownloadClearItem(VppDownloadHandle pHandle);
+
+ bool VppDownloadStartVideoStoreVideoItem(VppDownloadHandle pHandle, void *pOnGoingServiceData, void *pCompleteServiceData); // pServiceData is app control. It is service extra data at quickpanel service.
+
+
+ bool VppDownloadSetCb(VppDownloadHandle pHandle,
+ VppDownloadCallback cb, void *userData);
+ bool VppDownloadUnsetCb(VppDownloadHandle pHandle);
+
+ bool VppDownloadRequestAppend(VppDownloadHandle pHandle);
+ bool VppDownloadRequestPrepend(VppDownloadHandle pHandle);
+
+ bool VppDownloadPause(VppDownloadHandle pHandle);
+ bool VppDownloadResume(VppDownloadHandle pHandle);
+
+ bool VppDownloadCancel(VppDownloadHandle pHandle);
+
+ bool VppDownloadStoreVideoRestore(VppDownloadHandle pHandle);
+
+ VppDownloadState VppDownloadGetState(VppDownloadHandle pHandle);
+ VppDownloadState VppDownloadGetStateById(int nDownloadId);
+
+ char *VppDownloadGetDownloadedFilePath(VppDownloadHandle pHandle);
+ int VppDownloadGetDownloadId(VppDownloadHandle pHandle);
+
+ bool VppDownloadSetNotificationAppControl(VppDownloadHandle pHandle,
+ void *pData);
+ void *VppDownloadGetNotificationAppControl(VppDownloadHandle pHandle);
+
+ void VppDownloadResetUserData(void *pDataItem);
+
+#ifdef _cplusplus
+}
+#endif
+#endif // __VPP_DOWNLOAD_H__
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#include <Ecore.h>
+#include <Ecore_File.h>
+#include <Eina.h>
+#include <glib.h>
+#include <app_control.h>
+#include <download.h>
+
+#include "mp-video-log.h"
+#include "VppDownload.h"
+#include "vp-file-util.h"
+
+/* download cb type. for download pipe data */
+typedef enum {
+ VPP_DOWNLOAD_CB_TYPE_STATE_CHANGED,
+ VPP_DOWNLOAD_CB_TYPE_PROGRESS,
+} VppDownloadCbType;
+
+
+// download item
+typedef struct {
+ int id; /* downloader id */
+
+ char *pDownloadUrl; /* download url */
+ char *pDstFolder; /* destination path */
+ char *pDstName; /* destination path */
+
+ char *pTempPath; /* tepmdownload path */
+ char *pEtag; /* eTag */
+
+ VppDownloadItemType eType; /* download item type */
+
+ vpp_dl_progress_cb progressCb; /* download progress callback */
+ vpp_dl_state_changed_cb stateChangedCb; /* download state changed callback */
+
+ bool bDownloading; /* downloading state */
+
+ bool bSetNoti; /* quick pannel download view state. default FALSE */
+
+ Ecore_Pipe *pDownloadPipe; /* internal pipe */
+
+ void *pUserdata; /* user data */
+} __VppDownloadItem;
+
+
+// download list
+typedef struct {
+ Ecore_Timer *downloadTimer; /* internal timer */
+
+ int currentDownloadingCount; /* downloading item count */
+
+ Eina_List *downloadList; /* download item list */
+} __VppDownloadListData;
+
+
+/* download pipe data */
+typedef struct {
+ __VppDownloadItem *pItem; /* download item */
+ unsigned long long received; /* received file size from progress callback */
+ VppDownloadCbType eCbType; /* pipe callback type */
+ VppDownloadState eState; /* downloader state */
+} VppDownloadPipeData;
+
+
+__VppDownloadListData *g_download_list = NULL;
+
+
+///////////////////////////////////////////////////////////////////////////////////////////
+// local functions proto types
+///////////////////////////////////////////////////////////////////////////////////////////
+void __VppDownloadPrintErr(download_error_e err);
+
+void __VppDownloadListInitialize();
+void __VppDestoryDownloadListDestory();
+
+bool __VppDownloadCreate(__VppDownloadItem * pItem);
+bool __VppDownloadStart(__VppDownloadItem * pItem, bool bResume);
+
+static void __VppDownloadStateChangedCb(int download_id,
+ download_state_e state,
+ void *user_data);
+static void __VppDownloadProgressCb(int download_id,
+ unsigned long long received,
+ void *user_data);
+
+unsigned int __VppDownloadListCount();
+bool __VppDownloadListAdd(__VppDownloadItem * pItem, bool bAppend);
+void __VppDownloadListRemove(__VppDownloadItem * pItem);
+
+void __VppDownloadListNextTrigger();
+void __VppDownloadStartTimer();
+
+static void __VppDownloadPipeCb(void *data, void *pdata,
+ unsigned int nbyte);
+static Eina_Bool __VppDownloadTimerCb(void *data);
+
+
+///////////////////////////////////////////////////////////////////////////////////////////
+// download api
+///////////////////////////////////////////////////////////////////////////////////////////
+
+/**
+ *
+ * @param pUrl
+ * @param pDstFolder
+ * @param pDstName
+ * @param eType
+ * @param cb
+ * @param userData
+ * @return
+ */
+VppDownloadHandle
+VppDownloadCreateItem(const char *pUrl, const char *pDstFolder,
+ const char *pDstName, VppDownloadItemType eType,
+ VppDownloadCallback cb, void *userData)
+{
+ __VppDownloadItem *pItem = NULL;
+
+ if (pUrl == NULL) {
+ VideoLogError("pUrl == NULL!!!");
+ return NULL;
+ }
+
+
+ if (pDstFolder == NULL) {
+ VideoLogError("pDstFolder == NULL!!!");
+ return NULL;
+ }
+
+ if (cb.stateChangedCb == NULL) {
+ VideoLogError("cb.stateChangedCb == NULL!!!");
+ return NULL;
+ }
+
+ pItem = calloc(1, sizeof(__VppDownloadItem));
+ if (pItem == NULL) {
+ VideoLogError("pItem calloc fail!!!");
+ return NULL;
+ }
+
+ pItem->pDownloadUrl = strdup(pUrl);
+ pItem->pDstFolder = strdup(pDstFolder);
+ pItem->eType = eType;
+ pItem->progressCb = cb.progressCb;
+ pItem->stateChangedCb = cb.stateChangedCb;
+ pItem->pUserdata = userData;
+ pItem->bSetNoti = TRUE;
+
+ if (pDstName != NULL) {
+ pItem->pDstName = strdup(pDstName);
+ }
+
+ if (eType == VPP_DOWNLOAD_ITEM_TYPE_VIDEO_FILE
+ || eType == VPP_DOWNLOAD_ITEM_TYPE_STORE_VIDEO_FILE) {
+ pItem->bSetNoti = TRUE;
+ } else if (eType >= VPP_DOWNLOAD_ITEM_TYPE_VIDEO_INDEX_FILE
+ && eType <= VPP_DOWNLOAD_ITEM_TYPE_RATING_IMAGE) {
+ pItem->bSetNoti = FALSE;
+ } else {
+ VideoLogError("eType error : [%d]", eType);
+ }
+
+ pItem->pDownloadPipe =
+ ecore_pipe_add(__VppDownloadPipeCb, (const void *) pItem);
+
+ return (VppDownloadHandle) pItem;
+}
+
+/**
+ *
+ * @param nId
+ * @param pUrl
+ * @param pDstFolder
+ * @param pDstName
+ * @param eType
+ * @param cb
+ * @param userData
+ * @return
+ */
+VppDownloadHandle
+VppDownloadCreateItemById(int nId, const char *pUrl,
+ const char *pDstFolder, const char *pDstName,
+ VppDownloadItemType eType,
+ VppDownloadCallback cb, void *userData)
+{
+ __VppDownloadItem *pItem = NULL;
+
+ if (nId <= 0) {
+ VideoLogError("nId error : [%d]!!!", nId);
+ return NULL;
+ }
+
+
+ pItem =
+ VppDownloadCreateItem(pUrl, pDstFolder, pDstName, eType, cb,
+ userData);
+ if (pItem == NULL) {
+ VideoLogError("VppDownloadCreateItem fail!!!");
+ return NULL;
+ }
+
+ pItem->id = nId;
+
+ if (VppDownloadSetCb((VppDownloadHandle) pItem, cb, pItem->pUserdata)
+ == FALSE) {
+ VideoLogError("VppDownloadSetCb error");
+ VppDownloadDestroyItem((VppDownloadHandle) pItem);
+
+ return NULL;
+ }
+
+ return (VppDownloadHandle) pItem;
+}
+
+/**
+ *
+ * @param pHandle
+ */
+void VppDownloadDestroyItem(VppDownloadHandle pHandle)
+{
+ __VppDownloadItem *pItem = (__VppDownloadItem *) pHandle;
+ download_error_e error = DOWNLOAD_ERROR_NONE;
+ char *pPath = NULL;
+
+ if (pHandle == NULL) {
+ VideoLogError("pHandle == NULL");
+ return;
+ }
+
+ if (pItem->pDownloadPipe != NULL) {
+ ecore_pipe_del(pItem->pDownloadPipe);
+ pItem->pDownloadPipe = NULL;
+ }
+
+ pPath = VppDownloadGetDownloadedFilePath(pHandle);
+
+ if (pItem->pDownloadUrl != NULL) {
+ free(pItem->pDownloadUrl);
+ pItem->pDownloadUrl = NULL;
+ }
+
+ if (pItem->pDstFolder != NULL) {
+ free(pItem->pDstFolder);
+ pItem->pDstFolder = NULL;
+ }
+
+ if (pItem->pDstName != NULL) {
+ free(pItem->pDstName);
+ pItem->pDstName = NULL;
+ }
+
+ if (pItem->pTempPath != NULL) {
+ free(pItem->pTempPath);
+ pItem->pTempPath = NULL;
+ }
+
+ if (pItem->pEtag != NULL) {
+ free(pItem->pEtag);
+ pItem->pEtag = NULL;
+ }
+
+ if (pItem->id > 0) {
+ VppDownloadUnsetCb(pItem);
+
+ VppDownloadState state = VppDownloadGetState(pItem);
+
+
+ if (state != VPP_DOWNLOAD_STATE_COMPLETED) {
+ if (pPath != NULL
+ && vp_file_exists((const char *) pPath) == EINA_TRUE) {
+ vp_file_unlink((const char *) pPath);
+ }
+ }
+
+ error =
+ download_set_notification_type(pItem->id,
+ DOWNLOAD_NOTIFICATION_TYPE_NONE);
+ if (error != DOWNLOAD_ERROR_NONE) {
+ __VppDownloadPrintErr(error);
+ }
+
+ error = download_destroy(pItem->id);
+ if (error != DOWNLOAD_ERROR_NONE) {
+ __VppDownloadPrintErr(error);
+ }
+ }
+
+ if (pItem->eType < VPP_DOWNLOAD_ITEM_TYPE_STORE_VIDEO_FILE
+ || pItem->eType > VPP_DOWNLOAD_ITEM_TYPE_VIDEO_CAPTION_FILE) {
+ __VppDownloadListRemove(pHandle);
+ }
+
+ if (pPath != NULL) {
+ free(pPath);
+ pPath = NULL;
+ }
+
+ free(pItem);
+ pItem = NULL;
+}
+
+/**
+ *
+ * @param nId
+ */
+void VppDownloadDestroyItemById(int nId)
+{
+ download_error_e error = DOWNLOAD_ERROR_NONE;
+
+ error = download_destroy(nId);
+ if (error != DOWNLOAD_ERROR_NONE) {
+ __VppDownloadPrintErr(error);
+ }
+}
+
+/**
+ *
+ * @param pHandle
+ */
+void VppDownloadClearItem(VppDownloadHandle pHandle)
+{
+
+ __VppDownloadItem *pItem = (__VppDownloadItem *) pHandle;
+
+ if (pHandle == NULL) {
+ VideoLogError("pHandle == NULL");
+ return;
+ }
+
+ if (pItem->pDownloadPipe != NULL) {
+ ecore_pipe_del(pItem->pDownloadPipe);
+ pItem->pDownloadPipe = NULL;
+ }
+
+ if (pItem->pDownloadUrl != NULL) {
+ free(pItem->pDownloadUrl);
+ pItem->pDownloadUrl = NULL;
+ }
+
+ if (pItem->pDstFolder != NULL) {
+ free(pItem->pDstFolder);
+ pItem->pDstFolder = NULL;
+ }
+
+ if (pItem->pDstName != NULL) {
+ free(pItem->pDstName);
+ pItem->pDstName = NULL;
+ }
+
+ if (pItem->id > 0) {
+ VppDownloadUnsetCb(pItem);
+ }
+
+ free(pItem);
+ pItem = NULL;
+}
+
+/**
+ *
+ * @param pHandle
+ * @param pOnGoingServiceData
+ * @param pCompleteServiceData
+ * @return
+ */
+bool
+VppDownloadStartVideoStoreVideoItem(VppDownloadHandle pHandle,
+ void *pOnGoingServiceData,
+ void *pCompleteServiceData)
+{
+ __VppDownloadItem *pItem = (__VppDownloadItem *) pHandle;
+
+ if (pHandle == NULL) {
+ VideoLogError("pHandle == NULL");
+ return FALSE;
+ }
+
+ if (pItem->id <= 0) {
+ if (__VppDownloadCreate(pItem) == FALSE) {
+ VideoLogError("__VppDownloadCreate faile !!!");
+ return FALSE;
+ }
+ }
+
+ if (pOnGoingServiceData != NULL) {
+ int error = 0;
+
+ error =
+ download_set_notification_app_control(pItem->id,
+ DOWNLOAD_NOTIFICATION_APP_CONTROL_TYPE_ONGOING,
+ (app_control_h)
+ pOnGoingServiceData);
+ if (error != DOWNLOAD_ERROR_NONE) {
+ VideoLogError("download_get_downloaded_file_path error");
+ __VppDownloadPrintErr(error);
+
+ return FALSE;
+ }
+ }
+
+ if (pCompleteServiceData != NULL) {
+ int error = 0;
+
+ error =
+ download_set_notification_app_control(pItem->id,
+ DOWNLOAD_NOTIFICATION_APP_CONTROL_TYPE_COMPLETE,
+ (app_control_h)
+ pCompleteServiceData);
+ if (error != DOWNLOAD_ERROR_NONE) {
+ VideoLogError("download_get_downloaded_file_path error");
+ __VppDownloadPrintErr(error);
+
+ return FALSE;
+ }
+ }
+
+ if (__VppDownloadStart((__VppDownloadItem *) pHandle, FALSE) == FALSE) {
+ VideoLogError("fail __VppDownloadStart!!!");
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pHandle
+ * @param cb
+ * @param userData
+ * @return
+ */
+bool
+VppDownloadSetCb(VppDownloadHandle pHandle, VppDownloadCallback cb,
+ void *userData)
+{
+ __VppDownloadItem *pItem = (__VppDownloadItem *) pHandle;
+
+ download_error_e error = DOWNLOAD_ERROR_NONE;
+
+ if (pHandle == NULL) {
+ VideoLogError("pHandle == NULL");
+ return FALSE;
+ }
+
+ VppDownloadUnsetCb(pHandle);
+
+ pItem->pUserdata = userData;
+
+ if (cb.progressCb != NULL) {
+ pItem->progressCb = cb.progressCb;
+ if (pItem->id > 0) {
+ error =
+ download_set_progress_cb(pItem->id,
+ __VppDownloadProgressCb, pItem);
+ if (error != DOWNLOAD_ERROR_NONE) {
+ __VppDownloadPrintErr(error);
+ }
+ }
+ }
+
+ if (cb.stateChangedCb != NULL) {
+ pItem->stateChangedCb = cb.stateChangedCb;
+ if (pItem->id > 0) {
+ error =
+ download_set_state_changed_cb(pItem->id,
+ __VppDownloadStateChangedCb,
+ pItem);
+ if (error != DOWNLOAD_ERROR_NONE) {
+ __VppDownloadPrintErr(error);
+ }
+ }
+ }
+
+ if (error != DOWNLOAD_ERROR_NONE) {
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pHandle
+ * @return
+ */
+bool VppDownloadUnsetCb(VppDownloadHandle pHandle)
+{
+ __VppDownloadItem *pItem = (__VppDownloadItem *) pHandle;
+
+ download_error_e error = DOWNLOAD_ERROR_NONE;
+
+ if (pHandle == NULL) {
+ VideoLogError("pHandle == NULL");
+ return FALSE;
+ }
+
+ if (pItem->id > 0) {
+ if (pItem->progressCb != NULL) {
+ error = download_unset_progress_cb(pItem->id);
+ if (error != DOWNLOAD_ERROR_NONE) {
+ __VppDownloadPrintErr(error);
+ }
+ }
+
+ if (pItem->stateChangedCb != NULL) {
+ error = download_unset_state_changed_cb(pItem->id);
+ if (error != DOWNLOAD_ERROR_NONE) {
+ __VppDownloadPrintErr(error);
+ }
+ }
+ }
+
+ pItem->progressCb = NULL;
+ pItem->stateChangedCb = NULL;
+ pItem->pUserdata = NULL;
+
+ if (error != DOWNLOAD_ERROR_NONE) {
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pHandle
+ * @return
+ */
+bool VppDownloadRequestAppend(VppDownloadHandle pHandle)
+{
+ return __VppDownloadListAdd((__VppDownloadItem *) pHandle, TRUE);
+}
+
+/**
+ *
+ * @param pHandle
+ * @return
+ */
+bool VppDownloadRequestPrepend(VppDownloadHandle pHandle)
+{
+ return __VppDownloadListAdd((__VppDownloadItem *) pHandle, FALSE);
+}
+
+/**
+ *
+ * @param pHandle
+ * @return
+ */
+bool VppDownloadPause(VppDownloadHandle pHandle)
+{
+ __VppDownloadItem *pItem = (__VppDownloadItem *) pHandle;
+
+ if (pHandle == NULL) {
+ VideoLogError("pHandle == NULL");
+ return FALSE;
+ }
+
+ if (pItem->id <= 0) {
+ VideoLogError("pItem->id : [%d]!!!", pItem->id);
+ return FALSE;
+ }
+
+ download_error_e error = DOWNLOAD_ERROR_NONE;
+
+ error = download_pause(pItem->id);
+ if (error != DOWNLOAD_ERROR_NONE) {
+ __VppDownloadPrintErr(error);
+
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pHandle
+ * @return
+ */
+bool VppDownloadResume(VppDownloadHandle pHandle)
+{
+ return __VppDownloadStart((__VppDownloadItem *) pHandle, TRUE);
+}
+
+/**
+ *
+ * @param pHandle
+ * @return
+ */
+bool VppDownloadCancel(VppDownloadHandle pHandle)
+{
+ __VppDownloadItem *pItem = (__VppDownloadItem *) pHandle;
+
+ if (pHandle == NULL) {
+ VideoLogError("pHandle == NULL");
+ return FALSE;
+ }
+
+ if (pItem->id <= 0) {
+ VideoLogError("pItem->id : [%d]!!!", pItem->id);
+ return FALSE;
+ }
+
+ download_error_e error = DOWNLOAD_ERROR_NONE;
+
+ error = download_cancel(pItem->id);
+ if (error != DOWNLOAD_ERROR_NONE) {
+ __VppDownloadPrintErr(error);
+
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pHandle
+ * @return
+ */
+bool VppDownloadStoreVideoRestore(VppDownloadHandle pHandle)
+{
+ __VppDownloadItem *pItem = (__VppDownloadItem *) pHandle;
+
+ unsigned long long lFileSize = 0;
+
+ int nRet = 0;
+ char szTemp[32] = { 0, };
+
+ if (pHandle == NULL) {
+ VideoLogError("pHandle == NULL");
+ return FALSE;
+ }
+
+ if (pItem->pTempPath == NULL) {
+ VideoLogError("pItem->pTempPath!!!");
+ return FALSE;
+ }
+
+ if (pItem->pEtag == NULL) {
+ VideoLogError("pItem->pEtag!!!");
+ return FALSE;
+ }
+
+ nRet = download_set_temp_file_path(pItem->id, pItem->pTempPath);
+ if (nRet != DOWNLOAD_ERROR_NONE) {
+ VideoLogError("download_set_temp_file_path failed!!!");
+ __VppDownloadPrintErr(nRet);
+ return FALSE;
+ }
+
+ nRet =
+ download_add_http_header_field(pItem->id, "If-Range",
+ pItem->pEtag);
+ if (nRet != DOWNLOAD_ERROR_NONE) {
+ VideoLogError("download_add_http_header_field failed!!!");
+ __VppDownloadPrintErr(nRet);
+ return FALSE;
+ }
+
+ lFileSize =
+ (unsigned long long) vp_file_size((const char *) pItem->pTempPath);
+
+ snprintf(szTemp, sizeof(szTemp), "bytes=%llu-", lFileSize);
+
+ nRet = download_add_http_header_field(pItem->id, "Range", szTemp);
+ if (nRet != DOWNLOAD_ERROR_NONE) {
+ VideoLogError("download_add_http_header_field failed!!!");
+ __VppDownloadPrintErr(nRet);
+ return FALSE;
+ }
+
+ nRet = download_start(pItem->id);
+ if (nRet != DOWNLOAD_ERROR_NONE) {
+ VideoLogError("download_start failed!!!");
+ __VppDownloadPrintErr(nRet);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pHandle
+ * @return
+ */
+VppDownloadState VppDownloadGetState(VppDownloadHandle pHandle)
+{
+ __VppDownloadItem *pItem = (__VppDownloadItem *) pHandle;
+
+ if (pHandle == NULL) {
+ VideoLogError("pHandle == NULL");
+ return VPP_DOWNLOAD_STATE_APP_ERROR;
+ }
+
+ if (pItem->id <= 0) {
+ VideoLogError("id error: [%d]", pItem->id);
+ return VPP_DOWNLOAD_STATE_APP_ERROR;
+ }
+
+ download_error_e error = DOWNLOAD_ERROR_NONE;
+ download_state_e state = DOWNLOAD_STATE_NONE;
+
+ error = download_get_state(pItem->id, &state);
+ if (error != DOWNLOAD_ERROR_NONE) {
+ __VppDownloadPrintErr(error);
+ return VPP_DOWNLOAD_STATE_AGENT_ERROR;
+ }
+
+ return (VppDownloadState) state;
+}
+
+/**
+ *
+ * @param nDownloadId
+ * @return
+ */
+VppDownloadState VppDownloadGetStateById(int nDownloadId)
+{
+ if (nDownloadId <= 0) {
+ VideoLogError("id error: [%d]", nDownloadId);
+ return VPP_DOWNLOAD_STATE_APP_ERROR;
+ }
+
+ download_error_e error = DOWNLOAD_ERROR_NONE;
+ download_state_e state = DOWNLOAD_STATE_NONE;
+
+ error = download_get_state(nDownloadId, &state);
+ if (error != DOWNLOAD_ERROR_NONE) {
+ __VppDownloadPrintErr(error);
+ return VPP_DOWNLOAD_STATE_AGENT_ERROR;
+ }
+
+ return (VppDownloadState) state;
+}
+
+/**
+ *
+ * @param pHandle
+ * @return
+ */
+char *VppDownloadGetDownloadedFilePath(VppDownloadHandle pHandle)
+{
+ if (pHandle == NULL) {
+ VideoLogError("pHandle == NULL");
+ return NULL;
+ }
+
+ __VppDownloadItem *pItem = (__VppDownloadItem *) pHandle;
+
+ download_error_e error = DOWNLOAD_ERROR_NONE;
+
+ char *pPath = NULL;
+ char sDestPath[PATH_MAX] = { 0, };
+
+ if (pItem->id <= 0) {
+ VideoLogWarning("id error: [%d]", pItem->id);
+ return NULL;
+ }
+
+ if (pItem->pDstFolder != NULL && pItem->pDstName != NULL) {
+ if (pItem->pDstFolder[strlen(pItem->pDstFolder) - 1] == '/') {
+ snprintf(sDestPath, PATH_MAX, "%s%s", pItem->pDstFolder,
+ pItem->pDstName);
+ } else {
+ snprintf(sDestPath, PATH_MAX, "%s/%s", pItem->pDstFolder,
+ pItem->pDstName);
+ }
+
+ VideoSecureLogDebug("Path : [%s]:%s,%s,%d", sDestPath,
+ pItem->pDstFolder[strlen(pItem->pDstFolder)],
+ pItem->pDstFolder, strlen(pItem->pDstFolder));
+
+ return strdup(sDestPath);
+ } else {
+ error = download_get_downloaded_file_path(pItem->id, &pPath);
+ if (error != DOWNLOAD_ERROR_NONE) {
+ VideoLogError("download_get_downloaded_file_path error");
+ __VppDownloadPrintErr(error);
+
+ if (pPath != NULL) {
+ free(pPath);
+ pPath = NULL;
+ }
+ }
+
+ if (pPath != NULL) {
+ VideoSecureLogDebug("Path : [%s]", pPath);
+ return pPath;
+ } else {
+ VideoLogDebug("pPath == NULL");
+ return NULL;
+ }
+ }
+}
+
+/**
+ *
+ * @param pHandle
+ * @return
+ */
+int VppDownloadGetDownloadId(VppDownloadHandle pHandle)
+{
+ if (pHandle == NULL) {
+ VideoLogError("pHandle == NULL ");
+ return 0;
+ }
+
+ __VppDownloadItem *pItem = (__VppDownloadItem *) pHandle;
+
+ return pItem->id;
+}
+
+/**
+ *
+ * @param pHandle
+ * @param pData
+ * @return
+ */
+bool
+VppDownloadSetNotificationAppControl(VppDownloadHandle pHandle,
+ void *pData)
+{
+ download_error_e error = DOWNLOAD_ERROR_NONE;
+
+ if (pHandle == NULL) {
+ VideoLogError("pHandle == NULL ");
+ return FALSE;
+ }
+
+ if (pData == NULL) {
+ VideoLogError("pData == NULL ");
+ return FALSE;
+ }
+
+ __VppDownloadItem *pItem = (__VppDownloadItem *) pHandle;
+
+ error =
+ download_set_notification_app_control(pItem->id,
+ DOWNLOAD_NOTIFICATION_APP_CONTROL_TYPE_ONGOING,
+ (app_control_h) pData);
+ if (error != DOWNLOAD_ERROR_NONE) {
+ VideoLogError("download_get_downloaded_file_path error");
+ __VppDownloadPrintErr(error);
+
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pHandle
+ */
+void *VppDownloadGetNotificationAppControl(VppDownloadHandle pHandle)
+{
+ download_error_e error = DOWNLOAD_ERROR_NONE;
+ app_control_h *b = NULL;
+
+ if (pHandle == NULL) {
+ VideoLogError("pHandle == NULL ");
+ return NULL;
+ }
+
+ __VppDownloadItem *pItem = (__VppDownloadItem *) pHandle;
+
+ error =
+ download_get_notification_app_control(pItem->id,
+ DOWNLOAD_NOTIFICATION_APP_CONTROL_TYPE_ONGOING,
+ b);
+ if (error != DOWNLOAD_ERROR_NONE) {
+ VideoLogError("download_get_downloaded_file_path error");
+ __VppDownloadPrintErr(error);
+
+ return NULL;
+ }
+
+ return (void *) b;
+}
+
+
+///////////////////////////////////////////////////////////////////////////////////////////
+// local function implementations
+///////////////////////////////////////////////////////////////////////////////////////////
+
+/**
+ *
+ * @param err
+ */
+void __VppDownloadPrintErr(download_error_e err)
+{
+ switch (err) {
+ case DOWNLOAD_ERROR_NONE:{
+ VideoLogError("err == DOWNLOAD_ERROR_NONE");
+ }
+ break;
+ case DOWNLOAD_ERROR_INVALID_PARAMETER:{
+ VideoLogError("err == DOWNLOAD_ERROR_INVALID_PARAMETER");
+ }
+ break;
+ case DOWNLOAD_ERROR_OUT_OF_MEMORY:{
+ VideoLogError("err == DOWNLOAD_ERROR_OUT_OF_MEMORY");
+ }
+ break;
+ case DOWNLOAD_ERROR_NETWORK_UNREACHABLE:{
+ VideoLogError("err == DOWNLOAD_ERROR_NETWORK_UNREACHABLE");
+ }
+ break;
+ case DOWNLOAD_ERROR_CONNECTION_TIMED_OUT:{
+ VideoLogError("err == DOWNLOAD_ERROR_CONNECTION_TIMED_OUT");
+ }
+ break;
+ case DOWNLOAD_ERROR_NO_SPACE:{
+ VideoLogError("err == DOWNLOAD_ERROR_NO_SPACE");
+ }
+ break;
+ case DOWNLOAD_ERROR_FIELD_NOT_FOUND:{
+ VideoLogError("err == DOWNLOAD_ERROR_FIELD_NOT_FOUND");
+ }
+ break;
+ case DOWNLOAD_ERROR_INVALID_STATE:{
+ VideoLogError("err == DOWNLOAD_ERROR_INVALID_STATE");
+ }
+ break;
+ case DOWNLOAD_ERROR_CONNECTION_FAILED:{
+ VideoLogError("err == DOWNLOAD_ERROR_CONNECTION_FAILED");
+ }
+ break;
+ case DOWNLOAD_ERROR_INVALID_URL:{
+ VideoLogError("err == DOWNLOAD_ERROR_INVALID_URL");
+ }
+ break;
+ case DOWNLOAD_ERROR_INVALID_DESTINATION:{
+ VideoLogError("err == DOWNLOAD_ERROR_INVALID_DESTINATION");
+ }
+ break;
+ case DOWNLOAD_ERROR_TOO_MANY_DOWNLOADS:{
+ VideoLogError("err == DOWNLOAD_ERROR_TOO_MANY_DOWNLOADS");
+ }
+ break;
+ case DOWNLOAD_ERROR_QUEUE_FULL:{
+ VideoLogError("err == DOWNLOAD_ERROR_QUEUE_FULL");
+ }
+ break;
+ case DOWNLOAD_ERROR_ALREADY_COMPLETED:{
+ VideoLogError("err == DOWNLOAD_ERROR_ALREADY_COMPLETED");
+ }
+ break;
+ case DOWNLOAD_ERROR_FILE_ALREADY_EXISTS:{
+ VideoLogError("err == DOWNLOAD_ERROR_FILE_ALREADY_EXISTS");
+ }
+ break;
+ case DOWNLOAD_ERROR_TOO_MANY_REDIRECTS:{
+ VideoLogError("err == DOWNLOAD_ERROR_TOO_MANY_REDIRECTS");
+ }
+ break;
+ case DOWNLOAD_ERROR_UNHANDLED_HTTP_CODE:{
+ VideoLogError("err == DOWNLOAD_ERROR_UNHANDLED_HTTP_CODE");
+ }
+ break;
+ case DOWNLOAD_ERROR_NO_DATA:{
+ VideoLogError("err == DOWNLOAD_ERROR_NO_DATA");
+ }
+ break;
+ case DOWNLOAD_ERROR_IO_ERROR:{
+ VideoLogError("err == DOWNLOAD_ERROR_IO_ERROR");
+ }
+ break;
+ default:{
+ VideoLogError("UNKNOW err == [%d]", err);
+ }
+ break;
+ }
+}
+
+/**
+ *
+ */
+void __VppDownloadListInitialize()
+{
+ if (g_download_list != NULL) {
+ __VppDestoryDownloadListDestory();
+ }
+
+ g_download_list = calloc(1, sizeof(__VppDownloadListData));
+}
+
+/**
+ *
+ */
+void __VppDestoryDownloadListDestory()
+{
+ if (g_download_list == NULL) {
+ VideoLogError("g_download_list == NULL!!!");
+ return;
+ }
+
+ if (g_download_list->downloadTimer != NULL) {
+ ecore_timer_del(g_download_list->downloadTimer);
+ g_download_list->downloadTimer = NULL;
+ }
+
+ if (g_download_list->downloadList != NULL) {
+ if (__VppDownloadListCount() > 0) {
+ VideoLogError
+ ("list count error[%d]!!!. some data are not destoryed!!!",
+ __VppDownloadListCount());
+ }
+
+ Eina_List *l;
+ __VppDownloadItem *pItem;
+
+ EINA_LIST_FOREACH(g_download_list->downloadList, l, pItem) {
+ if (pItem != NULL) {
+ VideoLogError("list item is not freed!!!");
+ VideoSecureLogError
+ ("list item type[%d], url[%s], pDstFolder[%s], pDstName[%s]!!!",
+ pItem->eType, pItem->pDownloadUrl, pItem->pDstFolder,
+ pItem->pDstName);
+
+ VppDownloadDestroyItem(pItem);
+ }
+ }
+
+ eina_list_free(g_download_list->downloadList);
+ g_download_list->downloadList = NULL;
+ }
+
+ free(g_download_list);
+ g_download_list = NULL;
+}
+
+/**
+ *
+ * @param pItem
+ * @return
+ */
+bool __VppDownloadCreate(__VppDownloadItem * pItem)
+{
+ download_error_e error = DOWNLOAD_ERROR_NONE;
+
+ error = download_create(&(pItem->id));
+ if (error != DOWNLOAD_ERROR_NONE) {
+ VideoLogError("download_create error");
+ goto ERROR_HANDLE;
+ }
+
+ error =
+ download_set_url(pItem->id, (const char *) pItem->pDownloadUrl);
+ if (error != DOWNLOAD_ERROR_NONE) {
+ VideoLogError("download_set_url error");
+ goto ERROR_HANDLE;
+ }
+
+ error =
+ download_set_destination(pItem->id,
+ (const char *) (pItem->pDstFolder));
+ if (error != DOWNLOAD_ERROR_NONE) {
+ VideoLogError("download_set_destination error");
+ goto ERROR_HANDLE;
+ }
+
+ if (pItem->pDstName != NULL) {
+ char szDestName[PATH_MAX] = { 0, };
+
+ if (pItem->eType != VPP_DOWNLOAD_ITEM_TYPE_VIDEO_FILE
+ && pItem->eType != VPP_DOWNLOAD_ITEM_TYPE_STORE_VIDEO_FILE) {
+ snprintf(szDestName, PATH_MAX, "%s%s", pItem->pDstName,
+ ".temp");
+ } else {
+ int dstlength = strlen(pItem->pDstName);
+ if (dstlength + 1 <= PATH_MAX) {
+ strncpy(szDestName, pItem->pDstName, dstlength + 1);
+ }
+ }
+
+ error =
+ download_set_file_name(pItem->id, (const char *) szDestName);
+ if (error != DOWNLOAD_ERROR_NONE) {
+ VideoLogError("download_set_file_name error");
+ goto ERROR_HANDLE;
+ }
+ }
+
+ if (pItem->bSetNoti == TRUE) {
+ error =
+ download_set_notification_type(pItem->id,
+ DOWNLOAD_NOTIFICATION_TYPE_ALL);
+ } else {
+ error =
+ download_set_notification_type(pItem->id,
+ DOWNLOAD_NOTIFICATION_TYPE_NONE);
+ }
+
+ if (error != DOWNLOAD_ERROR_NONE) {
+ VideoLogError("download_set_notification error");
+ goto ERROR_HANDLE;
+ }
+
+ VppDownloadCallback cb = { 0, };
+ cb.progressCb = pItem->progressCb;
+ cb.stateChangedCb = pItem->stateChangedCb;
+
+ if (VppDownloadSetCb((VppDownloadHandle) pItem, cb, pItem->pUserdata)
+ == FALSE) {
+ VideoLogError("VppDownloadSetCb error");
+ VppDownloadDestroyItem((VppDownloadHandle) pItem);
+
+ return FALSE;
+ }
+
+ return TRUE;
+
+ ERROR_HANDLE:
+ __VppDownloadPrintErr(error);
+
+ if (pItem->id > 0) {
+ error = download_destroy(pItem->id);
+ if (error != DOWNLOAD_ERROR_NONE) {
+ VideoLogError("download_destroy error");
+ __VppDownloadPrintErr(error);
+ }
+
+ pItem->id = 0;
+ }
+
+ return FALSE;
+}
+
+/**
+ *
+ * @param pItem
+ * @param bResume
+ * @return
+ */
+bool __VppDownloadStart(__VppDownloadItem * pItem, bool bResume)
+{
+ if (pItem == NULL) {
+ VideoLogError("pItem == NULL!!!");
+ return FALSE;
+ }
+
+ if (pItem->id <= 0) {
+ VideoLogError("pItem->id : [%d]!!!", pItem->id);
+ return FALSE;
+ }
+
+ if (bResume == FALSE) {
+ VideoLogDebug("download start!!!");
+ } else {
+ VideoLogDebug("download resume!!!");
+ }
+
+ download_error_e error = DOWNLOAD_ERROR_NONE;
+
+ if (pItem->eType == VPP_DOWNLOAD_ITEM_TYPE_STORE_VIDEO_FILE) {
+ error = download_set_auto_download(pItem->id, TRUE);
+ if (error != DOWNLOAD_ERROR_NONE) {
+ VideoLogError("download_set_auto_download error!!!");
+ __VppDownloadPrintErr(error);
+ }
+ }
+
+ error = download_start(pItem->id);
+ if (error != DOWNLOAD_ERROR_NONE) {
+ VideoLogError("download_start error!!!");
+ __VppDownloadPrintErr(error);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param download_id
+ * @param state
+ * @param user_data
+ */
+static void
+__VppDownloadStateChangedCb(int download_id, download_state_e state,
+ void *user_data)
+{
+ __VppDownloadItem *pItem = (__VppDownloadItem *) user_data;
+
+ VideoLogDebug("state : [%d]", state);
+
+ if (user_data == NULL) {
+ VideoLogError("user_data == NULL!!!");
+ return;
+ }
+
+ if (pItem->eType == VPP_DOWNLOAD_ITEM_TYPE_STORE_VIDEO_FILE
+ && state == DOWNLOAD_STATE_DOWNLOADING) {
+ int nRet = 0;
+ if (pItem->pTempPath != NULL) {
+ free(pItem->pTempPath);
+ pItem->pTempPath = NULL;
+ }
+ nRet = download_get_temp_path(pItem->id, &pItem->pTempPath);
+ if (nRet != DOWNLOAD_ERROR_NONE) {
+ VideoLogError("download_get_temp_path failed!!!");
+ __VppDownloadPrintErr((download_error_e) nRet);
+ }
+
+
+ if (pItem->pEtag != NULL) {
+ free(pItem->pEtag);
+ pItem->pEtag = NULL;
+ }
+ nRet = download_get_etag(pItem->id, &pItem->pEtag);
+ if (nRet != DOWNLOAD_ERROR_NONE) {
+ VideoLogError("download_get_temp_path failed!!!");
+ __VppDownloadPrintErr((download_error_e) nRet);
+ }
+ }
+
+ if (state >= DOWNLOAD_STATE_COMPLETED
+ && state <= DOWNLOAD_STATE_CANCELED) {
+ if (pItem->bDownloading == TRUE) {
+ pItem->bDownloading = FALSE;
+
+ if (pItem->eType < VPP_DOWNLOAD_ITEM_TYPE_STORE_VIDEO_FILE
+ || pItem->eType >
+ VPP_DOWNLOAD_ITEM_TYPE_VIDEO_CAPTION_FILE) {
+ --(g_download_list->currentDownloadingCount);
+ }
+ }
+ }
+
+ VppDownloadPipeData pipeData = { 0, };
+
+ pipeData.eCbType = VPP_DOWNLOAD_CB_TYPE_STATE_CHANGED;
+ pipeData.eState = (VppDownloadState) state;
+ pipeData.pItem = pItem;
+
+ ecore_pipe_write(pItem->pDownloadPipe, &pipeData,
+ sizeof(VppDownloadPipeData));
+}
+
+/**
+ *
+ * @param download_id
+ * @param received
+ * @param user_data
+ */
+static void
+__VppDownloadProgressCb(int download_id, unsigned long long received,
+ void *user_data)
+{
+ __VppDownloadItem *pItem = (__VppDownloadItem *) user_data;
+
+ VppDownloadPipeData pipeData = { 0, };
+
+ if (user_data == NULL) {
+ VideoLogError("user_data == NULL!!!");
+ return;
+ }
+
+ pipeData.eCbType = VPP_DOWNLOAD_CB_TYPE_PROGRESS;
+ pipeData.eState = VPP_DOWNLOAD_STATE_DOWNLOADING;
+ pipeData.pItem = (__VppDownloadItem *) user_data;
+ pipeData.received = received;
+
+ ecore_pipe_write(pItem->pDownloadPipe, &pipeData,
+ sizeof(VppDownloadPipeData));
+}
+
+/**
+ *
+ * @return
+ */
+unsigned int __VppDownloadListCount()
+{
+ if (g_download_list != NULL && g_download_list->downloadList != NULL) {
+ if (g_download_list->downloadList->accounting != NULL) {
+ return eina_list_count(g_download_list->downloadList);
+ }
+ }
+
+ return 0;
+}
+
+/**
+ *
+ * @param pItem
+ * @param bAppend
+ * @return
+ */
+bool __VppDownloadListAdd(__VppDownloadItem * pItem, bool bAppend)
+{
+ if (pItem == NULL) {
+ VideoLogError("pItem == NULL!!!");
+ return FALSE;
+ }
+
+ if (g_download_list == NULL) {
+ __VppDownloadListInitialize();
+ }
+
+ if (g_download_list == NULL) {
+ return FALSE;
+ }
+
+ if (bAppend == TRUE) {
+ g_download_list->downloadList =
+ eina_list_append(g_download_list->downloadList,
+ (void *) pItem);
+
+ if (g_download_list->downloadList == NULL) {
+ VideoLogError("eina_list_append faile !!!");
+ return FALSE;
+ }
+ } else {
+ g_download_list->downloadList =
+ eina_list_prepend(g_download_list->downloadList,
+ (void *) pItem);
+
+ if (g_download_list->downloadList == NULL) {
+ VideoLogError("eina_list_prepend faile !!!");
+ return FALSE;
+ }
+ }
+
+ __VppDownloadListNextTrigger();
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pItem
+ */
+void __VppDownloadListRemove(__VppDownloadItem * pItem)
+{
+ if (pItem == NULL) {
+ VideoLogError("pItem == NULL!!!");
+ return;
+ }
+
+ if (g_download_list == NULL) {
+ VideoLogError("g_download_list == NULL!!!");
+ return;
+ }
+
+ if (g_download_list->downloadList == NULL) {
+ VideoLogError("g_download_list->downloadList == NULL!!!");
+ return;
+ }
+
+ g_download_list->downloadList =
+ eina_list_remove(g_download_list->downloadList, (void *) pItem);
+ if (__VppDownloadListCount() <= 0) {
+ __VppDestoryDownloadListDestory();
+ }
+}
+
+
+/**
+ *
+ */
+void __VppDownloadListNextTrigger()
+{
+ if (g_download_list == NULL) {
+ VideoLogError("g_download_list == NULL!!!");
+ return;
+ }
+
+ if (g_download_list->downloadList == NULL) {
+ VideoLogError("g_download_list->downloadList == NULL!!!");
+ return;
+ }
+
+ if (g_download_list->currentDownloadingCount > 5) {
+ __VppDownloadStartTimer();
+ return;
+ }
+
+ Eina_List *l;
+ __VppDownloadItem *pItem;
+
+ EINA_LIST_FOREACH(g_download_list->downloadList, l, pItem) {
+ if (pItem == NULL) {
+ continue;
+ }
+
+ if (pItem->bDownloading == TRUE) {
+ continue;
+ }
+
+ if (pItem->id <= 0) {
+ if (__VppDownloadCreate(pItem) == FALSE) {
+ VideoLogError("__VppDownloadCreate faile !!!");
+ __VppDownloadStartTimer();
+ return;
+ }
+ }
+
+ VppDownloadState eState =
+ VppDownloadGetState((VppDownloadHandle) pItem);
+ VideoLogDebug("eState : [%d]", eState);
+
+ if (eState == VPP_DOWNLOAD_STATE_PAUSED) {
+ pItem->bDownloading = TRUE;
+ ++(g_download_list->currentDownloadingCount);
+ } else {
+ if (__VppDownloadStart(pItem, FALSE) == TRUE) {
+ pItem->bDownloading = TRUE;
+ ++(g_download_list->currentDownloadingCount);
+ } else {
+ VideoSecureLogError
+ ("__VppDownloadStart faile : [%s : %s]!!!",
+ pItem->pDstFolder, pItem->pDstName);
+ __VppDownloadStartTimer();
+ return;
+ }
+ }
+ }
+}
+
+/**
+ *
+ */
+void __VppDownloadStartTimer()
+{
+ if (g_download_list == NULL) {
+ VideoLogError("g_download_list == NULL!!!");
+ return;
+ }
+
+ if (g_download_list->downloadTimer != NULL) {
+ ecore_timer_del(g_download_list->downloadTimer);
+ g_download_list->downloadTimer = NULL;
+ }
+
+ g_download_list->downloadTimer =
+ ecore_timer_add(1.0, __VppDownloadTimerCb, g_download_list);
+}
+
+/**
+ *
+ * @param data
+ * @param pdata
+ * @param nbyte
+ */
+static void
+__VppDownloadPipeCb(void *data, void *pdata, unsigned int nbyte)
+{
+ VppDownloadPipeData *pPipeData = NULL;
+ __VppDownloadItem *pItem = NULL;
+
+ if (pdata == NULL) {
+ VideoLogError("pdata == NULL!!!");
+ return;
+ }
+
+ pPipeData = (VppDownloadPipeData *) pdata;;
+ pItem = pPipeData->pItem;
+
+ if (pItem == NULL) {
+ VideoLogError("pItem == NULL!!!");
+ return;
+ }
+
+ if (pPipeData->eCbType == VPP_DOWNLOAD_CB_TYPE_STATE_CHANGED) {
+ char *pDstPath =
+ VppDownloadGetDownloadedFilePath((VppDownloadHandle) pItem);
+
+ if (pPipeData->eState == VPP_DOWNLOAD_STATE_COMPLETED) {
+ char *pTempDstPath = NULL;
+ int error = 0;
+
+ error =
+ download_get_downloaded_file_path(pItem->id,
+ &pTempDstPath);
+ if (error != DOWNLOAD_ERROR_NONE) {
+ VideoLogError("download_get_downloaded_file_path error");
+ __VppDownloadPrintErr((download_error_e) error);
+ } else {
+ if (pTempDstPath != NULL && pDstPath != NULL) {
+ if (strcmp(pTempDstPath, pDstPath) != 0) {
+ if (vp_file_exists((const char *) pDstPath) ==
+ EINA_TRUE) {
+ vp_file_unlink((const char *) pDstPath);
+ }
+
+ if (vp_file_mv(pTempDstPath, pDstPath) !=
+ EINA_TRUE) {
+ VideoSecureLogError
+ ("vp_file_mv failed!!! src : [%s], dst : [%s]",
+ pTempDstPath, pDstPath);
+ }
+ }
+ }
+ }
+
+ if (pTempDstPath != NULL) {
+ free(pTempDstPath);
+ pTempDstPath = NULL;
+ }
+ }
+
+ if (pItem->stateChangedCb != NULL) {
+ pItem->stateChangedCb((VppDownloadHandle) pItem,
+ pPipeData->eState,
+ (const char *) pDstPath,
+ pItem->pUserdata);
+ }
+
+ if (pDstPath != NULL) {
+ free(pDstPath);
+ pDstPath = NULL;
+ }
+ } else {
+ if (pItem->progressCb != NULL) {
+ unsigned long long contentTotalSize = 0;
+ download_error_e error =
+ download_get_content_size(pItem->id, &contentTotalSize);
+ if (error != DOWNLOAD_ERROR_NONE) {
+ VideoLogError("download_get_content_size error");
+ __VppDownloadPrintErr(error);
+ return;
+ }
+
+ pItem->progressCb((VppDownloadHandle) pItem,
+ pPipeData->received, contentTotalSize,
+ pItem->pUserdata);
+ }
+ }
+}
+
+/**
+ *
+ * @param data
+ * @return
+ */
+static Eina_Bool __VppDownloadTimerCb(void *data)
+{
+ if (g_download_list == NULL) {
+ goto TIMER_CB_RETURN;
+ }
+
+ if (g_download_list->downloadList == NULL) {
+ goto TIMER_CB_RETURN;
+ }
+
+ int cnt = __VppDownloadListCount();
+
+ if (cnt <= 0) {
+ goto TIMER_CB_RETURN;
+ }
+
+ __VppDownloadListNextTrigger();
+
+ TIMER_CB_RETURN:
+ if (g_download_list != NULL) {
+ g_download_list->downloadTimer = NULL;
+ }
+
+ return ECORE_CALLBACK_CANCEL;
+}
+
+/**
+ *
+ * @param pDataItem
+ */
+void VppDownloadResetUserData(void *pDataItem)
+{
+ __VppDownloadItem *pItem = (__VppDownloadItem *) pDataItem;
+
+ pItem->pUserdata = NULL;
+}
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
+ <storageModule moduleId="org.eclipse.cdt.core.settings">
+ <cconfiguration id="org.tizen.nativecore.config.sbi.gcc45.app.debug.421564615">
+ <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="org.tizen.nativecore.config.sbi.gcc45.app.debug.421564615" moduleId="org.eclipse.cdt.core.settings" name="Debug">
+ <externalSettings/>
+ <extensions>
+ <extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
+ <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.tizen.nativecore.NativeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.MakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ </extensions>
+ </storageModule>
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">
+ <configuration artifactName="video-player" buildArtefactType="org.tizen.nativecore.buildArtefactType.app" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.tizen.nativecore.buildArtefactType.app,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug" description="" errorParsers="org.eclipse.cdt.core.MakeErrorParser;org.eclipse.cdt.core.GCCErrorParser;" id="org.tizen.nativecore.config.sbi.gcc45.app.debug.421564615" name="Debug" parent="org.tizen.nativecore.config.sbi.gcc45.app.debug">
+ <folderInfo id="org.tizen.nativecore.config.sbi.gcc45.app.debug.421564615." name="/" resourcePath="">
+ <toolChain id="org.tizen.nativecore.toolchain.sbi.gcc45.app.debug.1145418711" name="Tizen Native Toolchain" superClass="org.tizen.nativecore.toolchain.sbi.gcc45.app.debug">
+ <targetPlatform binaryParser="org.eclipse.cdt.core.ELF" id="org.tizen.nativeide.target.sbi.gnu.platform.base.270407117" osList="linux,win32" superClass="org.tizen.nativeide.target.sbi.gnu.platform.base"/>
+ <builder autoBuildTarget="all" buildPath="${workspace_loc:/vp-main}/Debug" enableAutoBuild="true" id="org.tizen.nativecore.target.sbi.gnu.builder.130720797" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Tizen Application Builder" superClass="org.tizen.nativecore.target.sbi.gnu.builder">
+ <outputEntries>
+ <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="outputPath" name="Debug"/>
+ <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="outputPath" name="Release"/>
+ </outputEntries>
+ </builder>
+ <tool id="org.tizen.nativecore.tool.sbi.gnu.archiver.532670730" name="Archiver" superClass="org.tizen.nativecore.tool.sbi.gnu.archiver"/>
+ <tool command="clang++" id="org.tizen.nativecore.tool.sbi.gnu.cpp.compiler.536960338" name="C++ Compiler" superClass="org.tizen.nativecore.tool.sbi.gnu.cpp.compiler">
+ <option id="gnu.cpp.compiler.option.optimization.level.930514732" name="Optimization Level" superClass="gnu.cpp.compiler.option.optimization.level" value="gnu.cpp.compiler.optimization.level.none" valueType="enumerated"/>
+ <option defaultValue="gnu.cpp.compiler.debugging.level.max" id="sbi.gnu.cpp.compiler.option.debugging.level.core.1665203834" name="Debug level" superClass="sbi.gnu.cpp.compiler.option.debugging.level.core" valueType="enumerated"/>
+ <option id="sbi.gnu.cpp.compiler.option.38649999" name="Tizen-Target" superClass="sbi.gnu.cpp.compiler.option" valueType="userObjs">
+ <listOptionValue builtIn="false" value="mobile-4.0-emulator.core_llvm40.i386"/>
+ </option>
+ <option id="sbi.gnu.cpp.compiler.option.frameworks_inc.core.1410143195" name="Tizen-Frameworks-Include-Path" superClass="sbi.gnu.cpp.compiler.option.frameworks_inc.core" valueType="includePath">
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/libxml2""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/appcore-agent""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/appfw""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/asp/""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/attach-panel""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/badge""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/base""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/cairo""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/calendar-service2""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/cbhm""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/chromium-ewk""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ckm""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/contacts-svc""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/content""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/context-service""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/csr""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dali""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dali-toolkit""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dbus-1.0""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/device""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dlog""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-buffer-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-con-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-evas-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-file-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-imf-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-imf-evas-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-input-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-input-evas-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-ipc-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ector-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/e_dbus-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/edje-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eet-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/efl-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/efl-extension""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/efreet-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eina-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eina-1/eina""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eio-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eldbus-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/elementary-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/embryo-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/emile-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eo-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eom""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ethumb-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ethumb-client-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/evas-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/feedback""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/fontconfig""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/freetype2""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/geofence""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/gio-unix-2.0""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/glib-2.0""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/harfbuzz""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/iotcon""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/json-glib-1.0""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/location""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/maps""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/media""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/media-content""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/messaging""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/metadata-editor""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/minicontrol""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/minizip""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/network""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/notification""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/nsd/""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/phonenumber-utils""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/privacy-privilege-manager/""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/SDL2""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/sensor""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/service-adaptor""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/shortcut""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/storage""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/system""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/tef""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/telephony""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/tzsh""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ui""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ui-viewmgr""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/vulkan""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/web""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/widget_service""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/widget_viewer_dali""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/widget_viewer_evas""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/wifi-direct""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/yaca""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/lib/dbus-1.0/include""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/lib/glib-2.0/include""/>
+ </option>
+ <option id="sbi.gnu.cpp.compiler.option.frameworks_cflags.core.1364714478" name="Tizen-Frameworks-Other-Cflags" superClass="sbi.gnu.cpp.compiler.option.frameworks_cflags.core" valueType="stringList">
+ <listOptionValue builtIn="false" value="${TC_COMPILER_MISC}"/>
+ <listOptionValue builtIn="false" value="${RS_COMPILER_MISC}"/>
+ <listOptionValue builtIn="false" value=" -fPIE"/>
+ <listOptionValue builtIn="false" value="--sysroot="${SBI_SYSROOT}""/>
+ </option>
+ <option id="gnu.cpp.compiler.option.include.paths.1187648910" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" valueType="includePath">
+ <listOptionValue builtIn="false" value="../vp-main/inc"/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/libxml2""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/appcore-agent""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/appfw""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/asp/""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/attach-panel""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/badge""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/base""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/cairo""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/calendar-service2""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/cbhm""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/chromium-ewk""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ckm""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/contacts-svc""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/content""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/context-service""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/csr""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dali""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dali-toolkit""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dbus-1.0""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/device""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dlog""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-buffer-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-con-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-evas-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-file-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-imf-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-imf-evas-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-input-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-input-evas-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-ipc-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ector-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/e_dbus-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/edje-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eet-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/efl-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/efl-extension""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/efreet-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eina-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eina-1/eina""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eio-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eldbus-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/elementary-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/embryo-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/emile-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eo-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eom""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ethumb-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ethumb-client-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/evas-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/feedback""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/fontconfig""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/freetype2""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/geofence""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/gio-unix-2.0""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/glib-2.0""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/harfbuzz""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/iotcon""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/json-glib-1.0""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/location""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/maps""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/media""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/media-content""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/messaging""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/metadata-editor""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/minicontrol""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/minizip""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/network""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/notification""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/nsd/""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/phonenumber-utils""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/privacy-privilege-manager/""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/SDL2""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/sensor""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/service-adaptor""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/shortcut""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/storage""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/system""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/tef""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/telephony""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/tzsh""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ui""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ui-viewmgr""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/vulkan""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/web""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/widget_service""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/widget_viewer_dali""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/widget_viewer_evas""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/wifi-direct""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/yaca""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/lib/dbus-1.0/include""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/lib/glib-2.0/include""/>
+ </option>
+ <option id="sbi.gnu.cpp.compiler.option.frameworks.core.1986041556" name="Tizen-Frameworks" superClass="sbi.gnu.cpp.compiler.option.frameworks.core" valueType="userObjs">
+ <listOptionValue builtIn="false" value="Native_API"/>
+ </option>
+ <option id="gnu.cpp.compiler.option.preprocessor.def.167573098" name="Defined symbols (-D)" superClass="gnu.cpp.compiler.option.preprocessor.def" valueType="definedSymbols">
+ <listOptionValue builtIn="false" value="url_download_h"/>
+ </option>
+ <inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.1868925416" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
+ </tool>
+ <tool command="clang" id="org.tizen.nativecore.tool.sbi.gnu.c.compiler.2128608195" name="C Compiler" superClass="org.tizen.nativecore.tool.sbi.gnu.c.compiler">
+ <option defaultValue="gnu.c.optimization.level.none" id="gnu.c.compiler.option.optimization.level.632056996" name="Optimization Level" superClass="gnu.c.compiler.option.optimization.level" valueType="enumerated"/>
+ <option defaultValue="gnu.c.debugging.level.max" id="sbi.gnu.c.compiler.option.debugging.level.core.1433403657" name="Debug level" superClass="sbi.gnu.c.compiler.option.debugging.level.core" valueType="enumerated"/>
+ <option id="sbi.gnu.c.compiler.option.296105968" name="Tizen-Target" superClass="sbi.gnu.c.compiler.option" valueType="userObjs">
+ <listOptionValue builtIn="false" value="mobile-4.0-emulator.core_llvm40.i386"/>
+ </option>
+ <option id="sbi.gnu.c.compiler.option.frameworks_inc.core.471136444" name="Tizen-Frameworks-Include-Path" superClass="sbi.gnu.c.compiler.option.frameworks_inc.core" valueType="includePath">
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/libxml2""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/appcore-agent""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/appfw""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/asp/""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/attach-panel""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/badge""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/base""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/cairo""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/calendar-service2""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/cbhm""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/chromium-ewk""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ckm""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/contacts-svc""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/content""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/context-service""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/csr""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dali""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dali-toolkit""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dbus-1.0""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/device""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dlog""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-buffer-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-con-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-evas-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-file-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-imf-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-imf-evas-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-input-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-input-evas-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-ipc-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ector-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/e_dbus-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/edje-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eet-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/efl-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/efl-extension""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/efreet-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eina-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eina-1/eina""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eio-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eldbus-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/elementary-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/embryo-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/emile-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eo-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eom""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ethumb-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ethumb-client-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/evas-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/feedback""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/fontconfig""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/freetype2""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/geofence""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/gio-unix-2.0""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/glib-2.0""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/harfbuzz""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/iotcon""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/json-glib-1.0""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/location""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/maps""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/media""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/media-content""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/messaging""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/metadata-editor""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/minicontrol""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/minizip""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/network""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/notification""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/nsd/""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/phonenumber-utils""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/privacy-privilege-manager/""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/SDL2""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/sensor""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/service-adaptor""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/shortcut""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/storage""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/system""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/tef""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/telephony""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/tzsh""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ui""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ui-viewmgr""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/vulkan""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/web""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/widget_service""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/widget_viewer_dali""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/widget_viewer_evas""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/wifi-direct""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/yaca""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/lib/dbus-1.0/include""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/lib/glib-2.0/include""/>
+ </option>
+ <option id="sbi.gnu.c.compiler.option.frameworks_cflags.core.2038012840" name="Tizen-Frameworks-Other-Cflags" superClass="sbi.gnu.c.compiler.option.frameworks_cflags.core" valueType="stringList">
+ <listOptionValue builtIn="false" value="${TC_COMPILER_MISC}"/>
+ <listOptionValue builtIn="false" value="${RS_COMPILER_MISC}"/>
+ <listOptionValue builtIn="false" value=" -fPIE"/>
+ <listOptionValue builtIn="false" value="--sysroot="${SBI_SYSROOT}""/>
+ </option>
+ <option id="gnu.c.compiler.option.include.paths.427317944" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" valueType="includePath">
+ <listOptionValue builtIn="false" value=""${workspace_loc:/video-player/playview/src/include}""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/libxml2""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/appcore-agent""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/appfw""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/attach-panel""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/badge""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/base""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/cairo""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/calendar-service2""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ckm""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/contacts-svc""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/content""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/context-service""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/csf""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dali""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dali-toolkit""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dbus-1.0""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/device""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dlog""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-buffer-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-con-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-evas-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-file-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-imf-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-imf-evas-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-input-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-input-evas-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-ipc-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ector-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/e_dbus-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/edje-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eet-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/efl-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/efl-extension""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/efreet-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eina-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eina-1/eina""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eio-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eldbus-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/elementary-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/embryo-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/emile-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eo-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eom""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ethumb-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ethumb-client-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/evas-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/feedback""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/fontconfig""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/freetype2""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/geofence""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/gio-unix-2.0""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/glib-2.0""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/harfbuzz""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/iotcon""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/json-glib-1.0""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/location""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/maps""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/media""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/media-content""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/messaging""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/metadata-editor""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/minicontrol""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/minizip""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/network""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/notification""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/phonenumber-utils""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/sensor""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/service-adaptor""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/shortcut""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/storage""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/system""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/telephony""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/telephony-client""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ug-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ui""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/vconf""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/web""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/widget_service""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/widget_viewer_evas""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/wifi-direct""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/lib/dbus-1.0/include""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/lib/glib-2.0/include""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/vp-main/include}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/vp-main/vp-main/inc}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/video-player/include}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/video-player/playview/include}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/video-player/common/include}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/video-player/include/common}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/video-player/include/feature}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/video-player/include/view}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/video-player/include/viewMgr}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/video-player/include/widget}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/vp-main/include/serviceParser}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/vp-main/playview/src/include}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/video-player/playview/src/core/include}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/video-player/playview/src/common/include}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/video-player/playview/src/feature/include}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/video-player/playview/src/view/include}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/video-player/playview/src/widget/include}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/video-player/common/src/include}""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/asp/""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/cbhm""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/chromium-ewk""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/csr""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/nsd/""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/privacy-privilege-manager/""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/SDL2""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/tef""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/tzsh""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ui-viewmgr""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/vulkan""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/widget_viewer_dali""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/yaca""/>
+ </option>
+ <option id="sbi.gnu.c.compiler.option.frameworks.core.501359575" name="Tizen-Frameworks" superClass="sbi.gnu.c.compiler.option.frameworks.core" valueType="userObjs">
+ <listOptionValue builtIn="false" value="Native_API"/>
+ </option>
+ <option id="gnu.c.compiler.option.preprocessor.def.symbols.792902822" name="Defined symbols (-D)" superClass="gnu.c.compiler.option.preprocessor.def.symbols" valueType="definedSymbols">
+ <listOptionValue builtIn="false" value="VS_FEATURE_THUMBNAIL_VIEW"/>
+ <listOptionValue builtIn="false" value="VS_FEATURE_FOLDER_VIEW"/>
+ <listOptionValue builtIn="false" value="SUBTITLE_K_FEATURE"/>
+ <listOptionValue builtIn="false" value="ENABLE_VOLUME_BRIGHTNESS_POPUP"/>
+ <listOptionValue builtIn="false" value="_SUBTITLE_MULTI_LANGUAGE"/>
+ </option>
+ <inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.256391318" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
+ </tool>
+ <tool id="org.tizen.nativeide.tool.sbi.gnu.c.linker.base.84495529" name="C Linker" superClass="org.tizen.nativeide.tool.sbi.gnu.c.linker.base"/>
+ <tool command="clang++" id="org.tizen.nativecore.tool.sbi.gnu.cpp.linker.665836440" name="C++ Linker" superClass="org.tizen.nativecore.tool.sbi.gnu.cpp.linker">
+ <option id="sbi.gnu.cpp.linker.option.frameworks_lflags.core.1477578873" name="Tizen-Frameworks-Other-Lflags" superClass="sbi.gnu.cpp.linker.option.frameworks_lflags.core" valueType="stringList">
+ <listOptionValue builtIn="false" value="${TC_LINKER_MISC}"/>
+ <listOptionValue builtIn="false" value="${RS_LINKER_MISC}"/>
+ <listOptionValue builtIn="false" value="-pie -lpthread "/>
+ <listOptionValue builtIn="false" value="-Xlinker -rpath="/home/developer/sdk_tools/lib""/>
+ <listOptionValue builtIn="false" value="--sysroot="${SBI_SYSROOT}""/>
+ <listOptionValue builtIn="false" value="-Xlinker --version-script="${PROJ_PATH}/.exportMap""/>
+ <listOptionValue builtIn="false" value="-L"${SBI_SYSROOT}/usr/lib""/>
+ <listOptionValue builtIn="false" value="$(RS_LIBRARIES)"/>
+ </option>
+ <option id="gnu.cpp.link.option.paths.1756983383" name="Library search path (-L)" superClass="gnu.cpp.link.option.paths"/>
+ <inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.707272681" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
+ <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
+ <additionalInput kind="additionalinput" paths="$(LIBS)"/>
+ </inputType>
+ </tool>
+ <tool command="i386-linux-gnueabi-as" id="org.tizen.nativeapp.tool.sbi.gnu.assembler.base.1601106623" name="Assembler" superClass="org.tizen.nativeapp.tool.sbi.gnu.assembler.base">
+ <option id="gnu.both.asm.option.include.paths.1546882937" name="Include paths (-I)" superClass="gnu.both.asm.option.include.paths" valueType="includePath">
+ <listOptionValue builtIn="false" value="../vp-main/inc"/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/video-player/include}""/>
+ </option>
+ <inputType id="cdt.managedbuild.tool.gnu.assembler.input.19345659" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
+ </tool>
+ <tool id="org.tizen.nativecore.tool.fnmapgen.1665761074" name="C FN-Map Generator" superClass="org.tizen.nativecore.tool.fnmapgen"/>
+ <tool id="org.tizen.nativecore.tool.fnmapgen.cpp.1741858927" name="C++ FN-Map Generator" superClass="org.tizen.nativecore.tool.fnmapgen.cpp"/>
+ <tool id="org.tizen.nativecore.tool.ast.238680757" name="C Static Analyzer" superClass="org.tizen.nativecore.tool.ast"/>
+ <tool id="org.tizen.nativecore.tool.ast.cpp.531032416" name="C++ Static Analyzer" superClass="org.tizen.nativecore.tool.ast.cpp"/>
+ <tool id="org.tizen.nativecore.tool.sbi.gnu.archiver.mergelib.2044244722" name="Archive Generator" superClass="org.tizen.nativecore.tool.sbi.gnu.archiver.mergelib"/>
+ <tool id="org.tizen.nativecore.tool.sbi.po.compiler.1575895817" name="PO Resource Compiler" superClass="org.tizen.nativecore.tool.sbi.po.compiler"/>
+ <tool id="org.tizen.nativecore.tool.sbi.edc.compiler.523652733" name="EDC Resource Compiler" superClass="org.tizen.nativecore.tool.sbi.edc.compiler">
+ <option command="-id " id="sbi.gnu.edc.compiler.option.misc.id.1110218062" name="Image Path (-id)" superClass="sbi.gnu.edc.compiler.option.misc.id" valueType="stringList">
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/edje/images""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/playview/res/edje/images}""/>
+ </option>
+ </tool>
+ </toolChain>
+ </folderInfo>
+ <sourceEntries>
+ <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="common"/>
+ <entry excluding="res/edje/custom/pv-custom-layout.edc|res/edje/custom/pv-custom-naviframe.edc|res/edje/custom/pv-custom-genlist-item.edc|res/edje/custom/pv-custom-gengrid-item.edc|res/edje/custom/pv-custom-colorselector.edc|res/edje/custom/pv-custom-button.edc|src/view/vp-play-multi-view.c|res/edje/" flags="VALUE_WORKSPACE_PATH" kind="sourcePath" name="playview"/>
+ <entry excluding="edje/custom/pv-custom-button.edc|edje/custom/pv-custom-colorselector.edc|edje/custom/pv-custom-gengrid-item.edc|edje/custom/pv-custom-genlist-item.edc|edje/custom/pv-custom-layout.edc|edje/custom/pv-custom-naviframe.edc" flags="VALUE_WORKSPACE_PATH" kind="sourcePath" name="res"/>
+ <entry excluding="common/mp-video-streaming-ctrl.c|feature/mp-video-url-downloader-ctrl.c" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="src"/>
+ </sourceEntries>
+ </configuration>
+ </storageModule>
+ <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+ </cconfiguration>
+ <cconfiguration id="org.tizen.nativecore.config.sbi.gcc45.app.release.87516547">
+ <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="org.tizen.nativecore.config.sbi.gcc45.app.release.87516547" moduleId="org.eclipse.cdt.core.settings" name="Release">
+ <externalSettings/>
+ <extensions>
+ <extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
+ <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.tizen.nativecore.NativeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.MakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ </extensions>
+ </storageModule>
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">
+ <configuration artifactName="org.tizen.video-player" buildArtefactType="org.tizen.nativecore.buildArtefactType.app" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.tizen.nativecore.buildArtefactType.app,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release" description="" errorParsers="org.eclipse.cdt.core.MakeErrorParser;org.eclipse.cdt.core.GCCErrorParser;" id="org.tizen.nativecore.config.sbi.gcc45.app.release.87516547" name="Release" parent="org.tizen.nativecore.config.sbi.gcc45.app.release">
+ <folderInfo id="org.tizen.nativecore.config.sbi.gcc45.app.release.87516547." name="/" resourcePath="">
+ <toolChain id="org.tizen.nativecore.toolchain.sbi.gcc45.app.release.56797286" name="Tizen Native Toolchain" superClass="org.tizen.nativecore.toolchain.sbi.gcc45.app.release">
+ <targetPlatform binaryParser="org.eclipse.cdt.core.ELF" id="org.tizen.nativeide.target.sbi.gnu.platform.base.198762337" osList="linux,win32" superClass="org.tizen.nativeide.target.sbi.gnu.platform.base"/>
+ <builder buildPath="${workspace_loc:/vp-main}/Release" id="org.tizen.nativecore.target.sbi.gnu.builder.572657410" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Tizen Application Builder" superClass="org.tizen.nativecore.target.sbi.gnu.builder"/>
+ <tool id="org.tizen.nativecore.tool.sbi.gnu.archiver.1547587325" name="Archiver" superClass="org.tizen.nativecore.tool.sbi.gnu.archiver"/>
+ <tool command="clang++" id="org.tizen.nativecore.tool.sbi.gnu.cpp.compiler.148650553" name="C++ Compiler" superClass="org.tizen.nativecore.tool.sbi.gnu.cpp.compiler">
+ <option id="gnu.cpp.compiler.option.optimization.level.624673297" name="Optimization Level" superClass="gnu.cpp.compiler.option.optimization.level" value="gnu.cpp.compiler.optimization.level.most" valueType="enumerated"/>
+ <option defaultValue="gnu.cpp.compiler.debugging.level.default" id="sbi.gnu.cpp.compiler.option.debugging.level.core.1395317510" name="Debug level" superClass="sbi.gnu.cpp.compiler.option.debugging.level.core" valueType="enumerated"/>
+ <option id="sbi.gnu.cpp.compiler.option.2048375207" name="Tizen-Target" superClass="sbi.gnu.cpp.compiler.option" valueType="userObjs">
+ <listOptionValue builtIn="false" value="mobile-4.0-emulator.core_llvm40.i386"/>
+ </option>
+ <option id="sbi.gnu.cpp.compiler.option.frameworks_inc.core.23242580" name="Tizen-Frameworks-Include-Path" superClass="sbi.gnu.cpp.compiler.option.frameworks_inc.core" valueType="includePath">
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/libxml2""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/appcore-agent""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/appfw""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/asp/""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/attach-panel""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/badge""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/base""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/cairo""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/calendar-service2""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/cbhm""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/chromium-ewk""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ckm""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/contacts-svc""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/content""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/context-service""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/csr""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dali""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dali-toolkit""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dbus-1.0""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/device""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dlog""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-buffer-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-con-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-evas-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-file-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-imf-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-imf-evas-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-input-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-input-evas-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-ipc-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ector-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/e_dbus-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/edje-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eet-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/efl-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/efl-extension""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/efreet-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eina-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eina-1/eina""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eio-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eldbus-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/elementary-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/embryo-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/emile-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eo-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eom""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ethumb-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ethumb-client-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/evas-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/feedback""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/fontconfig""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/freetype2""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/geofence""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/gio-unix-2.0""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/glib-2.0""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/harfbuzz""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/iotcon""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/json-glib-1.0""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/location""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/maps""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/media""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/media-content""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/messaging""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/metadata-editor""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/minicontrol""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/minizip""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/network""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/notification""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/nsd/""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/phonenumber-utils""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/privacy-privilege-manager/""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/SDL2""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/sensor""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/service-adaptor""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/shortcut""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/storage""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/system""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/tef""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/telephony""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/tzsh""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ui""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ui-viewmgr""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/vulkan""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/web""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/widget_service""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/widget_viewer_dali""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/widget_viewer_evas""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/wifi-direct""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/yaca""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/lib/dbus-1.0/include""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/lib/glib-2.0/include""/>
+ </option>
+ <option id="sbi.gnu.cpp.compiler.option.frameworks_cflags.core.212893746" name="Tizen-Frameworks-Other-Cflags" superClass="sbi.gnu.cpp.compiler.option.frameworks_cflags.core" valueType="stringList">
+ <listOptionValue builtIn="false" value="${TC_COMPILER_MISC}"/>
+ <listOptionValue builtIn="false" value="${RS_COMPILER_MISC}"/>
+ <listOptionValue builtIn="false" value=" -fPIE"/>
+ <listOptionValue builtIn="false" value="--sysroot="${SBI_SYSROOT}""/>
+ </option>
+ <option id="gnu.cpp.compiler.option.include.paths.1954657230" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" valueType="includePath">
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/inc}""/>
+ </option>
+ <option id="sbi.gnu.cpp.compiler.option.frameworks.core.1284105464" name="Tizen-Frameworks" superClass="sbi.gnu.cpp.compiler.option.frameworks.core" valueType="userObjs">
+ <listOptionValue builtIn="false" value="Native_API"/>
+ </option>
+ <inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.718378865" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
+ </tool>
+ <tool command="clang" id="org.tizen.nativecore.tool.sbi.gnu.c.compiler.1258110340" name="C Compiler" superClass="org.tizen.nativecore.tool.sbi.gnu.c.compiler">
+ <option defaultValue="gnu.c.optimization.level.most" id="gnu.c.compiler.option.optimization.level.680368213" name="Optimization Level" superClass="gnu.c.compiler.option.optimization.level" valueType="enumerated"/>
+ <option defaultValue="gnu.c.debugging.level.default" id="sbi.gnu.c.compiler.option.debugging.level.core.802110081" name="Debug level" superClass="sbi.gnu.c.compiler.option.debugging.level.core" valueType="enumerated"/>
+ <option id="sbi.gnu.c.compiler.option.1422201275" name="Tizen-Target" superClass="sbi.gnu.c.compiler.option" valueType="userObjs">
+ <listOptionValue builtIn="false" value="mobile-4.0-emulator.core_llvm40.i386"/>
+ </option>
+ <option id="sbi.gnu.c.compiler.option.frameworks_inc.core.1015845140" name="Tizen-Frameworks-Include-Path" superClass="sbi.gnu.c.compiler.option.frameworks_inc.core" valueType="includePath">
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/libxml2""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/appcore-agent""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/appfw""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/asp/""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/attach-panel""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/badge""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/base""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/cairo""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/calendar-service2""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/cbhm""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/chromium-ewk""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ckm""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/contacts-svc""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/content""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/context-service""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/csr""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dali""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dali-toolkit""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dbus-1.0""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/device""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dlog""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-buffer-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-con-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-evas-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-file-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-imf-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-imf-evas-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-input-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-input-evas-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-ipc-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ector-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/e_dbus-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/edje-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eet-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/efl-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/efl-extension""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/efreet-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eina-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eina-1/eina""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eio-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eldbus-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/elementary-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/embryo-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/emile-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eo-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eom""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ethumb-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ethumb-client-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/evas-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/feedback""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/fontconfig""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/freetype2""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/geofence""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/gio-unix-2.0""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/glib-2.0""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/harfbuzz""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/iotcon""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/json-glib-1.0""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/location""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/maps""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/media""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/media-content""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/messaging""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/metadata-editor""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/minicontrol""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/minizip""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/network""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/notification""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/nsd/""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/phonenumber-utils""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/privacy-privilege-manager/""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/SDL2""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/sensor""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/service-adaptor""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/shortcut""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/storage""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/system""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/tef""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/telephony""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/tzsh""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ui""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ui-viewmgr""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/vulkan""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/web""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/widget_service""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/widget_viewer_dali""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/widget_viewer_evas""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/wifi-direct""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/yaca""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/lib/dbus-1.0/include""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/lib/glib-2.0/include""/>
+ </option>
+ <option id="sbi.gnu.c.compiler.option.frameworks_cflags.core.1995440368" name="Tizen-Frameworks-Other-Cflags" superClass="sbi.gnu.c.compiler.option.frameworks_cflags.core" valueType="stringList">
+ <listOptionValue builtIn="false" value="${TC_COMPILER_MISC}"/>
+ <listOptionValue builtIn="false" value="${RS_COMPILER_MISC}"/>
+ <listOptionValue builtIn="false" value=" -fPIE"/>
+ <listOptionValue builtIn="false" value="--sysroot="${SBI_SYSROOT}""/>
+ </option>
+ <option id="gnu.c.compiler.option.include.paths.1061929575" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" valueType="includePath">
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/inc}""/>
+ </option>
+ <option id="sbi.gnu.c.compiler.option.frameworks.core.1485437004" name="Tizen-Frameworks" superClass="sbi.gnu.c.compiler.option.frameworks.core" valueType="userObjs">
+ <listOptionValue builtIn="false" value="Native_API"/>
+ </option>
+ <inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.1646460364" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
+ </tool>
+ <tool id="org.tizen.nativeide.tool.sbi.gnu.c.linker.base.1620889661" name="C Linker" superClass="org.tizen.nativeide.tool.sbi.gnu.c.linker.base"/>
+ <tool command="clang++" id="org.tizen.nativecore.tool.sbi.gnu.cpp.linker.557501076" name="C++ Linker" superClass="org.tizen.nativecore.tool.sbi.gnu.cpp.linker">
+ <option id="sbi.gnu.cpp.linker.option.frameworks_lflags.core.168083430" name="Tizen-Frameworks-Other-Lflags" superClass="sbi.gnu.cpp.linker.option.frameworks_lflags.core" valueType="stringList">
+ <listOptionValue builtIn="false" value="${TC_LINKER_MISC}"/>
+ <listOptionValue builtIn="false" value="${RS_LINKER_MISC}"/>
+ <listOptionValue builtIn="false" value="-pie -lpthread "/>
+ <listOptionValue builtIn="false" value="-Xlinker -rpath="/home/developer/sdk_tools/lib""/>
+ <listOptionValue builtIn="false" value="--sysroot="${SBI_SYSROOT}""/>
+ <listOptionValue builtIn="false" value="-Xlinker --version-script="${PROJ_PATH}/.exportMap""/>
+ <listOptionValue builtIn="false" value="-L"${SBI_SYSROOT}/usr/lib""/>
+ <listOptionValue builtIn="false" value="$(RS_LIBRARIES)"/>
+ </option>
+ <option id="gnu.cpp.link.option.paths.633169776" name="Library search path (-L)" superClass="gnu.cpp.link.option.paths" valueType="libPaths">
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/lib}""/>
+ </option>
+ <inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.1048235637" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
+ <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
+ <additionalInput kind="additionalinput" paths="$(LIBS)"/>
+ </inputType>
+ </tool>
+ <tool command="i386-linux-gnueabi-as" id="org.tizen.nativeapp.tool.sbi.gnu.assembler.base.250986481" name="Assembler" superClass="org.tizen.nativeapp.tool.sbi.gnu.assembler.base">
+ <inputType id="cdt.managedbuild.tool.gnu.assembler.input.82348497" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
+ </tool>
+ <tool id="org.tizen.nativecore.tool.fnmapgen.1244149308" name="C FN-Map Generator" superClass="org.tizen.nativecore.tool.fnmapgen"/>
+ <tool id="org.tizen.nativecore.tool.fnmapgen.cpp.714507889" name="C++ FN-Map Generator" superClass="org.tizen.nativecore.tool.fnmapgen.cpp"/>
+ <tool id="org.tizen.nativecore.tool.ast.1435972255" name="C Static Analyzer" superClass="org.tizen.nativecore.tool.ast"/>
+ <tool id="org.tizen.nativecore.tool.ast.cpp.55409204" name="C++ Static Analyzer" superClass="org.tizen.nativecore.tool.ast.cpp"/>
+ <tool id="org.tizen.nativecore.tool.sbi.gnu.archiver.mergelib.598467471" name="Archive Generator" superClass="org.tizen.nativecore.tool.sbi.gnu.archiver.mergelib"/>
+ <tool id="org.tizen.nativecore.tool.sbi.po.compiler.1039889121" name="PO Resource Compiler" superClass="org.tizen.nativecore.tool.sbi.po.compiler"/>
+ <tool id="org.tizen.nativecore.tool.sbi.edc.compiler.1180089543" name="EDC Resource Compiler" superClass="org.tizen.nativecore.tool.sbi.edc.compiler"/>
+ </toolChain>
+ </folderInfo>
+ <sourceEntries>
+ <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
+ </sourceEntries>
+ </configuration>
+ </storageModule>
+ <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+ </cconfiguration>
+ </storageModule>
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">
+ <project id="vp-main.org.tizen.nativecore.target.sbi.gcc45.app.878879350" name="Tizen Native Application" projectType="org.tizen.nativecore.target.sbi.gcc45.app"/>
+ </storageModule>
+ <storageModule moduleId="scannerConfiguration">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
+ <scannerConfigBuildInfo instanceId="org.tizen.nativecore.config.sbi.gcc45.app.release.87516547">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="org.tizen.nativecore.config.sbi.gcc45.app.debug.421564615">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
+ </scannerConfigBuildInfo>
+ </storageModule>
+ <storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
+ <storageModule moduleId="refreshScope"/>
+</cproject>
--- /dev/null
+{
+ global: main;
+ local: *;
+};
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>vp-main</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.tizen.nativecore.apichecker.apicheckerbuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
+ <triggers>full,incremental,</triggers>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.cdt.core.cnature</nature>
+ <nature>org.eclipse.cdt.core.ccnature</nature>
+ <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
+ <nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
+ <nature>org.tizen.nativecore.apichecker.apicheckernature</nature>
+ </natures>
+ <linkedResources>
+ <link>
+ <name>common</name>
+ <type>2</type>
+ <locationURI>PARENT-1-PROJECT_LOC/common</locationURI>
+ </link>
+ <link>
+ <name>playview</name>
+ <type>2</type>
+ <locationURI>PARENT-1-PROJECT_LOC/playview</locationURI>
+ </link>
+ <link>
+ <name>include/common</name>
+ <type>2</type>
+ <locationURI>PARENT-1-PROJECT_LOC/include/common</locationURI>
+ </link>
+ <link>
+ <name>include/feature</name>
+ <type>2</type>
+ <locationURI>PARENT-1-PROJECT_LOC/include/feature</locationURI>
+ </link>
+ <link>
+ <name>include/view</name>
+ <type>2</type>
+ <locationURI>PARENT-1-PROJECT_LOC/include/view</locationURI>
+ </link>
+ <link>
+ <name>include/viewMgr</name>
+ <type>2</type>
+ <locationURI>PARENT-1-PROJECT_LOC/include/viewMgr</locationURI>
+ </link>
+ <link>
+ <name>include/widget</name>
+ <type>2</type>
+ <locationURI>PARENT-1-PROJECT_LOC/include/widget</locationURI>
+ </link>
+ <link>
+ <name>src/common</name>
+ <type>2</type>
+ <locationURI>PARENT-1-PROJECT_LOC/src/common</locationURI>
+ </link>
+ <link>
+ <name>src/feature</name>
+ <type>2</type>
+ <locationURI>PARENT-1-PROJECT_LOC/src/feature</locationURI>
+ </link>
+ <link>
+ <name>src/view</name>
+ <type>2</type>
+ <locationURI>PARENT-1-PROJECT_LOC/src/view</locationURI>
+ </link>
+ <link>
+ <name>src/viewMgr</name>
+ <type>2</type>
+ <locationURI>PARENT-1-PROJECT_LOC/src/viewMgr</locationURI>
+ </link>
+ <link>
+ <name>src/widget</name>
+ <type>2</type>
+ <locationURI>PARENT-1-PROJECT_LOC/src/widget</locationURI>
+ </link>
+ </linkedResources>
+ <filteredResources>
+ <filter>
+ <id>1454502827219</id>
+ <name></name>
+ <type>26</type>
+ <matcher>
+ <id>org.eclipse.ui.ide.multiFilter</id>
+ <arguments>1.0-projectRelativePath-matches-false-false-*/.tpk</arguments>
+ </matcher>
+ </filter>
+ <filter>
+ <id>1454502827221</id>
+ <name></name>
+ <type>6</type>
+ <matcher>
+ <id>org.eclipse.ui.ide.multiFilter</id>
+ <arguments>1.0-name-matches-false-false-project_def.prop</arguments>
+ </matcher>
+ </filter>
+ </filteredResources>
+</projectDescription>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<tproject xmlns="http://www.tizen.org/tproject">
+ <platforms>
+ <platform>
+ <name>mobile-4.0</name>
+ </platform>
+ </platforms>
+ <package>
+ <blacklist/>
+ <resFallback autoGen="true"/>
+ </package>
+</tproject>
--- /dev/null
+# Appendix\r
--- /dev/null
+# Add inputs and outputs from these tool invocations to the build variables
+
+
+OS_NAME := $(shell $(UNAME))
+
+
+#ifeq ($(origin BUILD_CONFIG), undefined)
+BUILD_CONFIG ?= Debug
+#endif
+
+#ifeq ($(origin ARCH), undefined)
+ARCH ?= i386
+#endif
+
+#ifeq ($(origin PROJPATH), undefined)
+PROJPATH ?= .
+#endif
+
+
+#ifeq ($(origin PROJ_PATH), undefined)
+PROJ_PATH ?= $(PROJPATH)
+#endif
+
+#ifeq ($(strip $(OUTPUT_DIR)),)
+#OUTPUT_DIR ?= $(PROJ_PATH)/$(BUILD_CONFIG)
+#endif
+
+#ifeq ($(strip $(BUILD_ARCH)),)
+BUILD_ARCH ?= $(ARCH)
+#endif
+
+#ifeq ($(strip $(ENVENTOR_PATH)),)
+ENVENTOR_PATH ?= $(SDK_TOOLPATH)/enventor
+#endif
--- /dev/null
+# C/C++ build script
+
+
+_FUNC_EXT2O = $(patsubst %.$(3),$(1)/%.o,$(2))
+_FUNC_C2O = $(call _FUNC_EXT2O,$(1),$(2),c)
+_FUNC_CPP2O = $(call _FUNC_EXT2O,$(1),$(2),cpp)
+
+
+# parameter :
+# $(1) - C/C++ soruce file
+# $(2) - output path
+# $(3) - .ext
+# $(4) - unique id
+CONVERT_ESC_EXT_TO_O = $(addprefix $(2)/,$(notdir $(patsubst %.$(3),%-$(4).o,$(1))))
+
+#CONVERT_ESC_C_TO_O = $(call CONVERT_ESC_EXT_TO_O,$(1),$(2),c)
+#CONVERT_ESC_CPP_TO_O = $(call CONVERT_ESC_EXT_TO_O,$(1),$(2),cpp)
+
+
+# parameter :
+# $(1) - encoded one C/C++ soruce file
+# $(2) - output path
+# $(3) - ext title (C/C++)
+# $(4) - ext (c/cpp)
+# $(5) - compiler ($(CC)/$(CXX))
+# $(6) - build opt
+# $(7) - build opt file
+# output :
+# $(8) - output files list
+define C_BUILD_PROC_RAW
+$(call CONVERT_ESC_EXT_TO_O,$(1),$(2),$(4),$(8)) : $(call DECODE_4MAKE,$(1)) $(7)
+ @echo ' Building file: $$<'
+ @echo ' Invoking: $(3) Compiler'
+ $$(call MAKEDIRS,$$(@D))
+ $(5) -c "$$<" -o "$$@" $(6) -Wp,@$(7)
+ @echo ' Finished building: $$<'
+$(9) += $(call CONVERT_ESC_EXT_TO_O,$(1),$(2),$(4),$(8))
+endef
+
+
+# parameter :
+# $(1) - output paths
+# $(2) - src paths
+# $(3) - inc paths
+# $(4) - inc files
+# $(5) - Defs
+# $(6) - UnDefs
+# $(7) - compiler opt
+# $(8) - compiler opt file
+# $(9) - ext title (C/C++)
+# $(10) - ext (c/cpp)
+# $(11) - compiler ($(CC)/$(CXX))
+# output :
+# $(12) - OBJS
+# return :
+# none
+define C_PROC_RAW
+
+_OUTPUT_DIR := $$(strip $(1))#
+_SRCS := $(2)#
+_INCS := $(3)#
+_INC_FILES := $(4)#
+_DEFS := $(5)#
+_UNDEFS := $(6)#
+
+_OPT := $(7)
+_OPT_FILE := $(8)
+
+_EXT_TITLE := $(9)
+_EXT := $(10)
+_COMPILER := $(11)
+
+#_OUTPUT_FILES := $(12)
+
+_ENC_SRCS := $$(call ENCODE_4MAKE,$$(_SRCS))
+_ENC_SRCS := $$(filter %.$$(_EXT),$$(_ENC_SRCS))
+
+ifneq ($$(strip $$(_SRCS)),)
+
+_NORMAL_SRCS := $$(filter-out %*.$$(_EXT),$$(_ENC_SRCS))
+_WIDLCARD_SRCS := $$(filter %*.$$(_EXT),$$(_ENC_SRCS))
+
+_ALL_SRCS := $$(call DECODE_4MAKE,$$(_NORMAL_SRCS)) \
+ $$(foreach var,$$(_WIDLCARD_SRCS),$$(call FIND_FILES_4MAKE,$$(call DECODE_4MAKE,$$(var))))
+
+ifneq ($$(strip $$(_ALL_SRCS)),)
+
+_ENC_SRCS := $$(call ENCODE_4MAKE,$$(_ALL_SRCS))
+
+_CDEFS := $$(CDEFS)
+_CDEFS += $$(addprefix -D,$$(_DEFS))
+_CDEFS += $$(addprefix -U,$$(_UNDEFS))
+
+_ENC_C_INCS := $$(call ENCODE_4MAKE,$$(_INCS))
+_ENC_C_INCS := $$(addprefix -I,$$(_ENC_C_INCS))
+
+_ENC_INC_FILES := $$(call ENCODE_4MAKE,$$(_INC_FILES))
+_ENC_INC_FILES += $$(addprefix -include,$$(_ENC_INC_FILES))
+
+_C_INCS := $$(call DECODE_4MAKE,$$(_ENC_C_INCS) $$(_ENC_C_INC_FILES))
+
+_DEFS := $$(_CDEFS) $$(_C_INCS) -I"pch" $$(_OPT)
+
+_UNIQUE_ID = $$(firstword $$(shell echo $$(var) | $$(CKSUM)))
+
+$$(foreach var,$$(_ENC_SRCS),$$(eval $$(call C_BUILD_PROC_RAW,$$(var),$$(_OUTPUT_DIR),$$(_EXT_TITLE),$$(_EXT),$$(_COMPILER),$$(_DEFS),$$(_OPT_FILE),$$(_UNIQUE_ID),$(12))))
+
+endif # (_(strip _(_ALL_SRCS)),)
+
+endif # (_(strip _(_SRCS)),)
+
+
+endef
--- /dev/null
+# EDC build script
+
+
+FUNC_EDC2EDJ = $(patsubst %.edc,$(2)/%.edj,$(1))
+
+# parameter :
+# $(1) - C/C++ soruce file
+# $(2) - output path
+CONVERT_ESC_EDC_TO_EDJ = $(call CONVERT_4MAKE_TO_OUT,$(call FUNC_EDC2EDJ,$(1),$(2)))
+
+
+# parameter :
+# $(1) - encoded one C/C++ soruce file
+# $(2) - output path
+# $(3) - build opt
+# output :
+# $(4) - output files list
+define EDJ_BUILD_PROC_RAW
+$(call CONVERT_ESC_EDC_TO_EDJ,$(1),$(2)) : $(call DECODE_4MAKE,$(1))
+ @echo ' Building file: $$<'
+ @echo ' Invoking: EDC Resource Compiler'
+ $$(call MAKEDIRS,$$(@D))
+ $$(EDJE_CC) $(3) "$$<" "$$@"
+ @echo ' Finished building: $$<'
+$(4) += $(call CONVERT_ESC_EDC_TO_EDJ,$(1),$(2))
+endef
+
+
+# parameter :
+# $(1) - output paths
+# $(2) - src paths
+# $(3) - image inc paths
+# $(4) - sound inc paths
+# $(5) - font inc paths
+# output :
+# $(6) - OBJS
+# return :
+# none
+define EDJ_PROC_RAW
+
+_OUTPUT_DIR := $$(strip $(1))#
+_SRCS := $(2)#
+_IMAGE_DIRS := $(3)#
+_SOUND_DIRS := $(4)#
+_FONT_DIRS := $(5)#
+
+ifneq ($$(strip $$(_SRCS)),)
+
+_ENC_SRCS := $$(call ENCODE_4MAKE,$$(_SRCS))
+
+_NORMAL_SRCS := $$(filter-out %*.edc,$$(_ENC_SRCS))
+_WIDLCARD_SRCS := $$(filter %*.edc,$$(_ENC_SRCS))
+
+_ALL_SRCS := $$(call DECODE_4MAKE,$$(_NORMAL_SRCS)) \
+ $$(foreach var,$$(_WIDLCARD_SRCS),$$(call FIND_FILES_4MAKE,$$(call DECODE_4MAKE,$$(var))))
+
+ifneq ($$(strip $$(_ALL_SRCS)),)
+
+_ENC_SRCS := $$(call ENCODE_4MAKE,$$(_ALL_SRCS))
+
+_COMPILER_FLAGS := -id "$$(ENVENTOR_SHARED_RES_PATH)/images"
+_COMPILER_FLAGS += -sd "$$(ENVENTOR_SHARED_RES_PATH)/sounds"
+_COMPILER_FLAGS += -fd "$$(ENVENTOR_SHARED_RES_PATH)/fonts"
+
+ifneq ($$(strip $$(_IMAGE_DIRS)),)
+_COMPILER_FLAGS += $$(addprefix -id ,$$(_IMAGE_DIRS))
+endif
+ifneq ($$(strip $$(_SOUND_DIRS)),)
+_COMPILER_FLAGS += $$(addprefix -sd ,$$(_SOUND_DIRS))
+endif
+ifneq ($$(strip $$(_FONT_DIRS)),)
+_COMPILER_FLAGS += $$(addprefix -fd ,$$(_FONT_DIRS))
+endif
+
+$$(foreach var,$$(_ENC_SRCS),$$(eval $$(call EDJ_BUILD_PROC_RAW,$$(var),$$(_OUTPUT_DIR),$$(_COMPILER_FLAGS),$(6))))
+
+endif # (_(strip _(_ALL_SRCS)),)
+
+endif # (_(strip _(_SRCS)),)
+
+endef
--- /dev/null
+# PO build script
+
+
+_FUNC_PO2MO = $(patsubst %.po,$(2)/res/locale/%/LC_MESSAGES/$(3).mo,$(notdir $(1)))
+
+
+# parameter :
+# $(1) - C/C++ soruce file
+# $(2) - output path
+# $(3) - app name
+CONVERT_ESC_PO_TO_MO = $(call CONVERT_4MAKE_TO_OUT,$(call _FUNC_PO2MO,$(1),$(2),$(3)))
+
+
+# parameter :
+# $(1) - encoded one C/C++ soruce file
+# $(2) - output path
+# $(3) - app name
+# output :
+# $(4) - output files list
+define MO_BUILD_PROC_RAW
+$(call CONVERT_ESC_PO_TO_MO,$(1),$(2),$(3)) : $(call DECODE_4MAKE,$(1))
+ @echo ' Building file: $$<'
+ @echo ' Invoking: msgfmt String Formatter'
+ $$(call MAKEDIRS,$$(@D))
+ $$(MSGFMT) -o "$$@" "$$<"
+ @echo ' Finished building: $$<'
+$(4) += $(call CONVERT_ESC_PO_TO_MO,$(1),$(2),$(3))
+endef
+
+
+# parameter :
+# $(1) - output dir
+# $(2) - src paths
+# $(3) - app name
+# output :
+# $(4) - OBJS
+
+define MO_PROC_RAW
+
+_OUTPUT_DIR := $(1)
+_SRCS := $(2)
+_APPNAME := $(3)
+
+ifneq ($$(strip $$(_SRCS)),)
+
+_ENC_SRCS := $$(call ENCODE_4MAKE,$$(_SRCS))
+
+_NORMAL_SRCS := $$(filter-out %*.po,$$(_ENC_SRCS))
+_WIDLCARD_SRCS := $$(filter %*.po,$$(_ENC_SRCS))
+
+_ALL_SRCS := $$(call DECODE_4MAKE,$$(_NORMAL_SRCS)) \
+ $$(foreach var,$$(_WIDLCARD_SRCS),$$(call FIND_FILES_4MAKE,$$(call DECODE_4MAKE,$$(var))))
+
+ifneq ($$(strip $$(_ALL_SRCS)),)
+
+_ENC_SRCS := $$(call ENCODE_4MAKE,$$(_ALL_SRCS))
+
+$$(foreach var,$$(_ENC_SRCS),$$(eval $$(call MO_BUILD_PROC_RAW,$$(var),$$(_OUTPUT_DIR),$$(_APPNAME),$(4))))
+
+endif # (_(strip _(_ALL_SRCS)),)
+
+endif # (_(strip _(_SRCS)),)
+
+endef
--- /dev/null
+
+DEBUG_OP = -g3
+CPP_DEBUG_OP =
+
+OPTIMIZATION_OP = -O0
+CPP_OPTIMIZATION_OP =
+
+COMPILE_FLAGS = $(DEBUG_OP) $(OPTIMIZATION_OP) -Wall -c -fmessage-length=0 -fPIC
+
+CPP_COMPILE_FLAGS = $(CPP_DEBUG_OP) $(CPP_OPTIMIZATION_OP)
+
+LINK_FLAGS = -shared -Wl,--no-undefined
+
+AR_FLAGS =
+
+EDC_COMPILE_FLAGS =
\ No newline at end of file
--- /dev/null
+
+BSLASH := \\#
+NULL_CHAR := #
+SPACE := \ #
+COLON := :#
+DOTDOT := ..#
+SPACE_ESC := &sp;#
+COLON_ESC := &co;#
+SPACE_OUT := ~sp~#
+COLON_OUT := ~co~#
+DOTDOT_OUT := ~dtdt~#
+
+BSLASH2SLASH = $(subst $(BSLASH),/,$(1))
+
+REMOVE_TAIL = $(patsubst %/,%,$(1))
+
+#LOWER_CASE = $(shell echo translit($(1),[A-Z],[a-z])|$(M4))
+LOWER_CASE = $(shell echo $(1)|$(TR) [A-Z] [a-z])
+
+#ifneq ($(findstring Windows,$(OS)),)
+# ...
+#endif
+
+FIND_FILES = $(shell $(FIND) $(1)/$(2) | $(SED) 's/^$(subst /,$(BSLASH)/,$(1))$(BSLASH)///')
+FIND_FILES_ESC = $(shell $(FIND) $(1)/$(2) | $(SED) 's/^$(subst /,$(BSLASH)/,$(1))$(BSLASH)///' -e 's/:/$(BSLASH)&co;/g' -e 's/$(BSLASH) /$(BSLASH)&sp;/g')
+FIND_FILES_4MAKE = $(shell $(FIND) $(1)/$(2) | $(SED) 's/^$(subst /,$(BSLASH)/,$(1))$(BSLASH)///')
+
+FIND_FILES_ABS = $(shell $(FIND) $(1))
+FIND_FILES_ABS_4MAKE = $(shell $(FIND) $(1) -e 's/$(BSLASH) /$(BSLASH)&sp;/g')
+FIND_FILES_ABS_ESC = $(shell $(FIND) $(1) -e 's/:/$(BSLASH)&co;/g' -e 's/$(BSLASH) /$(BSLASH)&sp;/g')
+
+FIND_FILES_4MAKE = $(shell $(FIND) $(1) | $(SED) 's/ /\\\ /g')
+
+#ENCODE_ESC = $(shell echo $(1) | $(SED) -e 's/:/$(BSLASH)&co;/g' -e 's/$(BSLASH) /$(BSLASH)&sp;/g')
+#DECODE_ESC = $(shell echo $(1) | $(SED) -e 's/$(BSLASH)&co;/:/g' -e 's/$(BSLASH)&sp;/$(BSLASH) / g')
+ENCODE_ESC = $(subst $(SPACE),$(SPACE_ESC),$(subst $(COLON),$(COLON_ESC),$(1)))
+DECODE_ESC = $(subst $(COLON_ESC),$(COLON),$(subst $(SPACE_ESC),$(SPACE),$(1)))
+ENCODE_4MAKE = $(subst $(SPACE),$(SPACE_ESC),$(1))
+DECODE_4MAKE = $(subst $(SPACE_ESC),$(SPACE),$(1))
+
+CONVERT_TO_OUT = $(subst $(DOTDOT),$(DOTDOT_OUT),$(subst $(COLON),$(COLON_OUT),$(subst $(SPACE),$(SPACE_OUT),$(1))))
+CONVERT_ESC_TO_OUT = $(subst $(DOTDOT),$(DOTDOT_OUT),$(subst $(COLON_ESC),$(COLON_OUT),$(subst $(SPACE_ESC),$(SPACE_OUT),$(1))))
+CONVERT_4MAKE_TO_OUT = $(subst $(DOTDOT),$(DOTDOT_OUT),$(subst $(COLON),$(COLON_OUT),$(subst $(SPACE_ESC),$(SPACE_OUT),$(1))))
+
+PROC_NO_EXIST = $(if $(wildcard $(1)),,$(call $(2),$(1)))
+define MAKEDIRS0
+ @echo ' Building directory: $(1)'
+ @$(MKDIR) $(MKDIR_OP) $(subst $(BSLASH),/,$(1))
+endef
+MAKEDIRS = $(call PROC_NO_EXIST,$(1),MAKEDIRS0)
--- /dev/null
+#
+# Usege : make -f <proj_root>/Build/makefile -C <proj_root>
+#
+
+BUILD_SCRIPT_VERSION := 1.1.0
+
+.PHONY : app_version app_build app_clean build_version
+
+
+all : app_build
+
+clean : app_clean
+
+version : build_version
+
+#PROJ_ROOT = .
+BUILD_ROOT := $(PROJ_PATH)/Build#
+
+ifeq ($(MAKE_NAME),mingw32-make)
+ifneq ($(SHELL),)
+OPTIONS += --eval="SHELL=$(SHELL)"
+endif
+endif
+
+app_build :
+ @echo $(MAKE) -f "$(BUILD_ROOT)/makefile.mk"
+ @$(MAKE_BIN) -f "$(BUILD_ROOT)/makefile.mk" -C "$(PROJ_PATH)" $(OPTIONS)
+
+app_clean :
+ @$(MAKE) -f "$(BUILD_ROOT)/makefile.mk" -C "$(PROJ_PATH)" $(OPTIONS) clean
+
+build_version :
+ @echo makefile : $(BUILD_SCRIPT_VERSION)
+ @$(MAKE) -f "$(BUILD_ROOT)/makefile.mk" -C "$(PROJ_PATH)" $(OPTIONS) version
--- /dev/null
+#
+# Usege : make -f <proj_root>/Build/makefile -C <proj_root>
+#
+
+BUILD_SCRIPT_VERSION := 1.2.3
+
+.PHONY : app_version app_clean build_version
+
+
+all : app_build
+
+clean : app_clean
+
+version : build_version
+
+
+#PROJ_ROOT := $(call BSLASH2SLASH,$(PROJ_PATH))
+PROJ_ROOT := .
+BUILD_ROOT := $(PROJ_ROOT)/Build
+
+include $(BUILD_ROOT)/basedef.mk
+
+include $(PROJ_ROOT)/project_def.prop
+-include $(PROJ_ROOT)/build_def.prop
+
+include $(BUILD_ROOT)/funcs.mk
+
+-include $(BUILD_ROOT)/tooldef.mk
+-include $(BUILD_ROOT)/flags.mk
+-include $(BUILD_ROOT)/platform.mk
+
+
+APPTYPE := $(type)
+
+OUTPUT_DIR := $(PROJ_ROOT)/$(BUILD_CONFIG)
+OBJ_OUTPUT := $(OUTPUT_DIR)/objs
+
+LOWER_APPNAME := $(call LOWER_CASE,$(APPNAME))
+APPID2 := $(subst $(basename $(APPID)).,,$(APPID))
+
+ifeq ($(strip $(APPTYPE)),app)
+APPFILE := $(OUTPUT_DIR)/$(LOWER_APPNAME)
+endif
+ifeq ($(strip $(APPTYPE)),staticLib)
+APPFILE := $(OUTPUT_DIR)/lib$(LOWER_APPNAME).a
+endif
+ifeq ($(strip $(APPTYPE)),sharedLib)
+APPFILE := $(OUTPUT_DIR)/lib$(LOWER_APPNAME).so
+endif
+
+ifneq ($(strip $(PLATFORM_INCS)),)
+PLATFORM_INCS_FILE := $(OBJ_OUTPUT)/platform_incs_file.inc
+endif
+
+include $(BUILD_ROOT)/build_c.mk
+
+
+ifeq ($(strip $(APPTYPE)),app)
+EXT_OP := -fPIE
+endif
+ifeq ($(strip $(APPTYPE)),staticLib)
+EXT_OP := -fPIE
+endif
+ifeq ($(strip $(APPTYPE)),sharedLib)
+EXT_OP := -fPIC
+endif
+
+C_OPT := $(COMPILE_FLAGS) $(TC_COMPILER_MISC) $(RS_COMPILER_MISC) $(EXT_OP) --sysroot="$(SYSROOT)" -Werror-implicit-function-declaration $(M_OPT) $(USER_C_OPTS)
+CPP_OPT := $(CPP_COMPILE_FLAGS) $(TC_COMPILER_MISC) $(RS_COMPILER_MISC) $(EXT_OP) --sysroot="$(SYSROOT)" -Werror-implicit-function-declaration $(M_OPT) $(USER_CPP_OPTS)
+C_OPT_FILE := $(PLATFORM_INCS_FILE)
+
+OBJS := #
+
+# Global C/C++
+ifeq ($(strip $(USER_ROOT)),)
+USER_ROOT := $(PROJ_ROOT)
+endif
+$(eval $(call C_PROC_RAW,$(OBJ_OUTPUT),$(USER_SRCS),$(USER_INC_DIRS),$(USER_INC_FILES),$(USER_DEFS),$(USER_UNDEFS),$(C_OPT),$(C_OPT_FILE),C,c,$(CC),OBJS))
+$(foreach ext,cpp cxx cc c++ C,$(eval $(call C_PROC_RAW,$(OBJ_OUTPUT),$(USER_SRCS),$(USER_INC_DIRS),$(USER_CPP_INC_FILES),$(USER_CPP_DEFS),$(USER_CPP_UNDEFS),$(CPP_OPT),$(C_OPT_FILE),C++,$(ext),$(CXX),OBJS)))
+
+# Individual C/C++
+ifneq ($(strip $(USER_EXT_C_KEYS)),)
+$(foreach var,$(USER_EXT_C_KEYS),$(eval $(call C_PROC_RAW,$(OBJ_OUTPUT),$(USER_EXT_$(var)_SRCS),$(USER_EXT_$(var)_INC_DIRS),$(USER_EXT_$(var)_INC_FILES),$(USER_EXT_$(var)_DEFS),$(USER_EXT_$(var)_UNDEFS),$(C_OPT),$(C_OPT_FILE),C,c,$(CC),OBJS)))
+$(foreach ext,cpp cxx cc c++ C,$(foreach var,$(USER_EXT_C_KEYS),$(eval $(call C_PROC_RAW,$(OBJ_OUTPUT),$(USER_EXT_$(var)_SRCS),$(USER_EXT_$(var)_INC_DIRS),$(USER_EXT_$(var)_CPP_INC_FILES),$(USER_EXT_$(var)_CPP_DEFS),$(USER_EXT_$(var)_CPP_UNDEFS),$(CPP_OPT),$(C_OPT_FILE),C++,$(ext),$(CXX),OBJS))))
+endif
+
+
+ifneq ($(strip $(USER_LIB_DIRS)),)
+_ENC_USER_LIB_DIRS := $(call ENCODE_4MAKE,$(USER_LIB_DIRS))
+_ENC_USER_LIB_DIRS := $(addprefix -L,$(_ENC_USER_LIB_DIRS))
+LIBPATHS := $(call DECODE_4MAKE,$(_ENC_USER_LIB_DIRS))
+endif
+
+LIBS += $(addprefix -l,$(USER_LIBS))
+
+UOBJS += $(USER_OBJS)
+
+M_OPT = -MMD -MP -MF"$(@:%.o=%.d)"
+
+DEPS := $(OBJS:.o=.d)
+
+ifneq ($(strip $(DEPS)),)
+-include $(PROJ_ROOT)/Build/$(DEPS)
+endif
+
+
+ifeq ($(strip $(APPTYPE)),app)
+$(APPFILE) : $(OBJS) $(UOBJS)
+ @echo ' Building target: $@'
+ @echo ' Invoking: C/C++ Linker'
+ $(call MAKEDIRS,$(@D))
+ $(CXX) -o $(APPFILE) $(OBJS) $(UOBJS) $(LIBPATHS) -Xlinker --as-needed $(LIBS) $(LINK_FLAGS) $(TC_LINKER_MISC) $(RS_LINKER_MISC) -pie -lpthread --sysroot="$(SYSROOT)" -Xlinker --version-script="$(PROJ_ROOT)/.exportMap" $(RS_LIB_PATHS) $(RS_LIBRARIES) -Xlinker -rpath="/opt/usr/apps/$(APPID)/lib" -Werror-implicit-function-declaration $(USER_LINK_OPTS)
+ @echo ' Finished building target: $@'
+endif
+ifeq ($(strip $(APPTYPE)),staticLib)
+$(APPFILE) : $(OBJS) $(UOBJS)
+ @echo ' Building target: $@'
+ @echo ' Invoking: Archive utility'
+ $(call MAKEDIRS,$(@D))
+ $(AR) -r $(APPFILE) $(OBJS) $(UOBJS) $(AR_FLAGS) $(USER_LINK_OPTS)
+ @echo ' Finished building target: $@'
+endif
+ifeq ($(strip $(APPTYPE)),sharedLib)
+$(APPFILE) : $(OBJS) $(UOBJS)
+ @echo ' Building target: $@'
+ @echo ' Invoking: C/C++ Linker'
+ $(call MAKEDIRS,$(@D))
+ $(CXX) -o $(APPFILE) $(OBJS) $(UOBJS) $(LIBPATHS) -Xlinker --as-needed $(LIBS) $(LINK_FLAGS) $(TC_LINKER_MISC) $(RS_LINKER_MISC) -shared -lpthread --sysroot="$(SYSROOT)" $(RS_LIB_PATHS) $(RS_LIBRARIES) $(USER_LINK_OPTS)
+ @echo ' Finished building target: $@'
+endif
+
+
+$(OBJ_OUTPUT) :
+ $(call MAKEDIRS,$@)
+
+$(OUTPUT_DIR) :
+ $(call MAKEDIRS,$@)
+
+
+ifneq ($(strip $(PLATFORM_INCS)),)
+$(PLATFORM_INCS_FILE) : $(OBJ_OUTPUT)
+ @echo ' Building inc file: $@'
+ifneq ($(findstring Windows,$(OS)),)
+ifneq ($(findstring 3.82,$(MAKE_VERSION)),)
+ $(file > $@,$(PLATFORM_INCS))
+else
+ @echo $(PLATFORM_INCS) > $@
+endif
+else
+ @echo $(PLATFORM_INCS) > $@
+endif
+endif
+
+
+include $(BUILD_ROOT)/build_edc.mk
+
+#ifeq ($(strip $(ENVENTOR_SHARED_RES_PATH)),)
+ENVENTOR_SHARED_RES_PATH ?= $(ENVENTOR_PATH)/share/enventor
+#endif
+
+EDJ_FILES :=
+
+# Global EDCs
+ifneq ($(strip $(USER_EDCS)),)
+$(eval $(call EDJ_PROC_RAW,$(OUTPUT_DIR),$(USER_EDCS),$(USER_EDCS_IMAGE_DIRS),$(USER_EDCS_SOUND_DIRS),$(USER_EDCS_FONT_DIRS),EDJ_FILES))
+endif
+
+# Individual EDCs
+ifneq ($(strip $(USER_EXT_EDC_KEYS)),)
+$(foreach var,$(USER_EXT_EDC_KEYS),$(eval $(call EDJ_PROC_RAW,$(OUTPUT_DIR),$(USER_EXT_$(var)_EDCS),$(USER_EXT_$(var)_EDCS_IMAGE_DIRS),$(USER_EXT_$(var)_EDCS_SOUND_DIRS),$(USER_EXT_$(var)_EDCS_FONT_DIRS),EDJ_FILES)))
+endif
+
+
+include $(BUILD_ROOT)/build_po.mk
+
+MO_FILES :=
+
+# Global POs
+ifneq ($(strip $(USER_POS)),)
+$(eval $(call MO_PROC_RAW,$(OUTPUT_DIR),$(USER_POS),$(APPID2),MO_FILES))
+endif
+
+
+secondary-outputs : $(EDJ_FILES) $(MO_FILES)
+
+-include appendix.mk
+
+app_build : $(OUTPUT_DIR) $(APPFILE) secondary-outputs
+ @echo ========= done =========
+
+
+app_clean :
+ rm -f $(APPFILE)
+ rm -rf $(OUTPUT_DIR)
+
+build_version :
+ @echo makefile.mk : $(BUILD_SCRIPT_VERSION)
--- /dev/null
+# Add inputs and outputs from these tool invocations to the build variables
+
+SYSROOT = $(SBI_SYSROOT)
+
+USR_INCS := $(addprefix -I $(SYSROOT),$(PLATFORM_INCS_EX))
+
+ifeq ($(strip $(PLATFORM_LIB_PATHS)),)
+RS_LIB_PATHS := "$(SYSROOT)/usr/lib"
+else
+RS_LIB_PATHS := $(addprefix -L$(SYSROOT),$(PLATFORM_LIB_PATHS))
+endif
+
+RS_LIBRARIES := $(addprefix -l,$(RS_LIBRARIES_EX))
+
+PLATFORM_INCS = $(USR_INCS) -I"$(SDK_PATH)/library"
--- /dev/null
+# Add inputs and outputs from these tool invocations to the build variables
+
+ifneq ($(strip $(SHELL_BIN)),)
+SHELL = $(SHELL_BIN)
+else
+SHELL = sh
+endif
+
+ifneq ($(strip $(MKDIR_BIN)),)
+MKDIR = $(MKDIR_BIN)
+MKDIR_OP = -p
+else
+MKDIR = mkdir
+MKDIR_OP = -p
+endif
+
+ifneq ($(strip $(UNAME_BIN)),)
+UNAME = $(UNAME_BIN)
+else
+UNAME = uname
+endif
+
+ifneq ($(strip $(M4_BIN)),)
+M4 = $(M4_BIN)
+else
+M4 = m4
+endif
+
+ifneq ($(strip $(TR_BIN)),)
+TR = $(TR_BIN)
+else
+TR = tr
+endif
+
+ifneq ($(strip $(FIND_BIN)),)
+FIND = $(FIND_BIN)
+else
+FIND = find
+endif
+
+ifneq ($(strip $(SED_BIN)),)
+SED = $(SED_BIN)
+else
+SED = sed
+endif
+
+ifneq ($(strip $(GREP_BIN)),)
+GREP = $(GREP_BIN)
+else
+GREP = grep
+endif
+
+ifneq ($(strip $(EDJE_CC_BIN)),)
+EDJE_CC = $(EDJE_CC_BIN)
+else
+EDJE_CC = edje_cc
+endif
+
+ifneq ($(strip $(MSGFMT_BIN)),)
+MSGFMT = $(MSGFMT_BIN)
+else
+MSGFMT = msgfmt
+endif
+
+ifneq ($(strip $(CKSUM_BIN)),)
+CKSUM = $(CKSUM_BIN)
+else
+CKSUM = cksum
+endif
+
--- /dev/null
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+PROJECT(video-player C CXX)
+
+
+SET(SRCS
+ src/vp-main.c
+ src/serviceParser/vp-service-parser.c
+)
+
+INCLUDE_DIRECTORIES(
+ ${CMAKE_CURRENT_SOURCE_DIR}/include
+ ${CMAKE_CURRENT_SOURCE_DIR}/include/serviceParser
+)
+
+INCLUDE(FindPkgConfig)
+pkg_check_modules(${PROJECT_NAME}_pkgs REQUIRED
+ elementary
+ ecore
+ ecore-evas
+ edje
+ eina
+ evas
+ dlog
+ ecore-input
+ glib-2.0
+ capi-appfw-application
+ capi-content-media-content
+ capi-web-url-download
+ libcore-context-manager
+ libtzplatform-config
+)
+
+#SET(VIDEO_PLAYER_PACKAGE "com.${VIDEO_PLAYER_VENDOR}.video-player")
+SET(VIDEO_PLAYER_PACKAGE "org.tizen.video-player")
+SET(VIDEO_PLAYER_DIR "${TZ_SYS_RO_APP}/${VIDEO_PLAYER_PACKAGE}")
+SET(VIDEO_PLAYER_RES_DIR "${TZ_SYS_RO_APP}/${VIDEO_PLAYER_PACKAGE}/res")
+SET(VIDEO_PLAYER_BINDIR "${TZ_SYS_RO_APP}/${VIDEO_PLAYER_PACKAGE}/bin")
+SET(VP_RESDIR "${TZ_SYS_RO_APP}/${VIDEO_PLAYER_PACKAGE}/res")
+SET(VP_LOCALEDIR "${VP_RESDIR}/locale")
+
+ADD_DEFINITIONS("-DVP_LOCALEDIR=\"${VP_LOCALEDIR}\"")
+
+FOREACH(flag ${${PROJECT_NAME}_pkgs_CFLAGS})
+ SET(EXTRA_CXXFLAGS "${EXTRA_CXXFLAGS} ${flag}")
+ENDFOREACH(flag)
+
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fPIC -fvisibility=hidden")
+SET(CMAKE_C_FLAGS_DEBUG "-O0 -g")
+SET(CMAKE_C_FLAGS_RELEASE "-O2 -fPIC")
+
+SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -pie -Wl,--rpath=/usr/lib")
+SET(CMAKE_LDFLAGS "-Wl,-zdefs" )
+
+ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS})
+
+TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${${PROJECT_NAME}_pkgs_LDFLAGS} common playview video-downloader -ldl)
+INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${VIDEO_PLAYER_BINDIR})
+
+# install desktop file & icon
+INSTALL(FILES ${CMAKE_SOURCE_DIR}/res/images/org.tizen.video-player.png DESTINATION ${CMAKE_DESKTOP_ICON_DIR})
+INSTALL(FILES ${VIDEO_PLAYER_PACKAGE}.xml DESTINATION ${CMAKE_APP_SHARE_PACKAGES_DIR})
+
+ADD_SUBDIRECTORY(res/po)
+
--- /dev/null
+
+# Add pre/post build process
+PREBUILD_DESC =
+PREBUILD_COMMAND =
+POSTBUILD_DESC =
+POSTBUILD_COMMAND =
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#ifndef __VP_SERVICE_PARSER__
+#define __VP_SERVICE_PARSER__
+
+#include <glib.h>
+#include <Eina.h>
+#include <app.h>
+
+typedef enum {
+ VP_LAUNCH_TYPE_NONE = 0,
+ VP_LAUNCH_TYPE_STORE,
+ VP_LAUNCH_TYPE_LIST,
+ VP_LAUNCH_TYPE_SIMPLE,
+ VP_LAUNCH_TYPE_EMAIL,
+ VP_LAUNCH_TYPE_MMS,
+ VP_LAUNCH_TYPE_MYFILE,
+ VP_LAUNCH_TYPE_GALLERY,
+ VP_LAUNCH_TYPE_IMAGE_VIEWER,
+ VP_LAUNCH_TYPE_IMAGE_VIEWER_TRIM,
+ VP_LAUNCH_TYPE_MULTI_PATH,
+ VP_LAUNCH_TYPE_MAX,
+} VpLaunchType;
+
+
+typedef enum {
+ VP_VIDEO_SORT_TYPE_BY_NONE = 0,
+
+ VP_VIDEO_SORT_TYPE_BY_NAME_DESC,
+ VP_VIDEO_SORT_TYPE_BY_NAME_ASC,
+ VP_VIDEO_SORT_TYPE_BY_DATE_DESC,
+ VP_VIDEO_SORT_TYPE_BY_DATE_ASC,
+
+ VP_VIDEO_SORT_TYPE_BY_MAX,
+} VpVideoSortType;
+
+
+typedef enum {
+ VP_VIDEO_PLAY_LIST_TYPE_NONE = 0,
+
+ VP_VIDEO_PLAY_LIST_TYPE_FOLDER,
+ VP_VIDEO_PLAY_LIST_TYPE_ALL_FOLDER_GALLERY,
+ VP_VIDEO_PLAY_LIST_TYPE_TAG_GALLERY,
+ VP_VIDEO_PLAY_LIST_TYPE_FAVORITE,
+ VP_VIDEO_PLAY_LIST_TYPE_MAX,
+} VpVideoPlayListType;
+
+
+typedef struct {
+ VpLaunchType eLaunchType; // launch type
+
+ VpVideoSortType eSortType; // only use gallery, image viewer and my files(?)
+ VpVideoPlayListType eListType; // only use gallery, image viewer and my files(?)
+#if 0 //Tizen3.0 Build error
+ Ecore_X_Window nParentXID;
+#else
+ unsigned int nParentXID;
+#endif
+
+ Eina_Bool bLaunchMultiWindow; // launch multi winodw
+ Eina_Bool bStreaming; // launch streaming
+ Eina_Bool bStoreDownload;
+ double dStoreDL_FileSize;
+ int nStorePlayedTime;
+ Eina_Bool bStopAfterRepeat;
+
+ char *pMediaUri; // play file path or url
+ char *szMediaTitle; // media file title
+ char *szDeviceID;
+ char *szAutoPlay;
+ char *szDMRID;
+ char *szCookie;
+ char *szProxy;
+
+ char **szMultiPath;
+ int nMultiPath;
+
+ char **szMultiTitle;
+ int nMultiTitle;
+
+ char **szIsSameAP; // Samsung link : remote / local content,
+ int nSameAP;
+
+ char **szMultiSubTitle;
+ int nMultiSubTitle;
+
+ char **szMultiPosition;
+ int nMultiPosition;
+
+ char **szMultiDuration;
+ int nMultiDuration;
+
+ char *pStoreOrderId;
+ char *pStoreServerId;
+ char *pStoreAppId;
+ char *pStoreMvId;
+} VpServiceData;
+
+
+#ifdef _cplusplus
+extern "C" {
+#endif
+
+
+ Eina_Bool VpServiceParserGetServiceData(app_control_h pAppSvcHandle,
+ VpServiceData * pReceiveData);
+ void VpServiceParserDestroyServiceData(VpServiceData * pServiceData);
+
+
+#ifdef _cplusplus
+}
+#endif
+#endif //__VP_SERVICE_PARSER__
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#ifndef __VP_MAIN__
+#define __VP_MAIN__
+
+
+#ifndef EXPORT_API
+#define EXPORT_API __attribute__((__visibility__("default")))
+#endif
+
+
+#include "vp-service-parser.h"
+#include <Ecore.h>
+
+
+/**
+ * @struct Video player App data
+ */
+typedef struct {
+ VpServiceData *pServiceData;
+ bool bPause;
+ void *pPlayView;
+
+ Ecore_Idler *pAppSvcIdler;
+
+ //////////////////////////////////////
+ // for multi window
+ char *pValStartup;
+ char *pValLayout;
+
+ bool bIsRelaunch;
+ //////////////////////////////////////
+} VpAppData;
+
+
+#endif //__VP_MAIN__
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns="http://tizen.org/ns/packages" package="org.tizen.video-player" version="1.0.39" install-location="internal-only" api-version="2.4">
+ <label>video-player</label>
+ <!--INDIA-->
+ <label xml:lang="en-gb">Video Player</label> <!-- -->
+ <label xml:lang="bn-in">ভিডিও প্লেয়ার</label>
+ <label xml:lang="gu-in">વિડિયો પ્લેયર</label>
+ <label xml:lang="hi-in">वीडियो प्लेयर</label>
+ <label xml:lang="kn-in">ವೀಡಿಯೊ ಪ್ಲೇಯರ್</label>
+ <label xml:lang="ml-in">വീഡിയോ പ്ലെയര്</label>
+ <label xml:lang="si-lk">වීඩියෝ වාදකය</label>
+ <label xml:lang="ta-in">நிகழ்பட இயக்கி</label>
+ <label xml:lang="te-in">వీడియో ప్లేయర్</label>
+ <label xml:lang="ur-pk">ویڈیو پلیئر</label>
+ <!--SEA-->
+ <label xml:lang="en-us">Video Player</label>
+ <label xml:lang="en-ph">Video Player</label>
+ <label xml:lang="zh-cn">视频播放器</label>
+ <label xml:lang="tl-ph">Video Player</label>
+ <label xml:lang="id-id">Pemutar Video</label>
+ <label xml:lang="ko-kr">비디오 플레이어</label>
+ <label xml:lang="ms-my">Pemain Video</label>
+ <label xml:lang="my-mm">ဗီြဒီယုိ ဖြင့္စက္</label>
+ <label xml:lang="th-th">เครื่องเล่นวีดีโอ</label>
+ <label xml:lang="vi-vn">Máy xem video</label>
+ <label xml:lang="lo-la">ເຄື່ອງຫຼິ້ນວິດີໂອ</label>
+ <label xml:lang="km-kh">កម្មវិធីចាក់វីដេអូ</label>
+ <!--Latin-->
+ <label xml:lang="pt-br">Video Player</label>
+ <label xml:lang="es-us">Reproductor de Video</label>
+ <author email="jhyuk47.lee@samsung.com" href="www.samsung.com">Jonghyuk Lee</author>
+ <description>Video player</description>
+ <ui-application appid="org.tizen.video-player" exec="/usr/apps/org.tizen.video-player/bin/video-player" nodisplay="true" multiple="false" type="capp" taskmanage="true" hw-acceleration="on" process-pool="true" launch_mode="caller">
+ <label>Video player</label>
+ <icon>org.tizen.video-player.png</icon>
+ <metadata key="http://developer.samsung.com/tizen/metadata/multiwindow"/>
+ <!--INDIA-->
+ <label xml:lang="en-gb">Video Player</label> <!-- -->
+ <label xml:lang="bn-in">ভিডিও প্লেয়ার</label>
+ <label xml:lang="gu-in">વિડિયો પ્લેયર</label>
+ <label xml:lang="hi-in">वीडियो प्लेयर</label>
+ <label xml:lang="kn-ca">ವೀಡಿಯೊ ಪ್ಲೇಯರ್</label>
+ <label xml:lang="ml-my">വീഡിയോ പ്ലെയര്</label>
+ <label xml:lang="si-lk">වීඩියෝ වාදකය</label>
+ <label xml:lang="ta-in">நிகழ்பட இயக்கி</label>
+ <label xml:lang="te-in">వీడియో ప్లేయర్</label>
+ <label xml:lang="ur-pk">ویڈیو پلیئر</label>
+ <!--SEA-->
+ <label xml:lang="en-us">Video Player</label>
+ <label xml:lang="en-ph">Video Player</label>
+ <label xml:lang="zh-cn">视频播放器</label>
+ <label xml:lang="tl-ph">Video Player</label>
+ <label xml:lang="id-id">Pemutar Video</label>
+ <label xml:lang="ko-kr">비디오 플레이어</label>
+ <label xml:lang="ms-mw">Pemain Video</label>
+ <label xml:lang="my-mm">ဗီြဒီယုိ ဖြင့္စက္</label>
+ <label xml:lang="th-th">เครื่องเล่นวีดีโอ</label>
+ <label xml:lang="vi-vn">Máy xem video</label>
+ <label xml:lang="lo-la">ເຄື່ອງຫຼິ້ນວິດີໂອ</label>
+ <label xml:lang="km-kh">កម្មវិធីចាក់វីដេអូ</label>
+ <!--Latin-->
+ <label xml:lang="pt-br">Video Player</label>
+ <label xml:lang="es-us">Reproductor de Video</label>
+ <app-control>
+ <operation name="http://tizen.org/appcontrol/operation/view" />
+ <mime name="video/mp4" />
+ <mime name="video/3gp" />
+ <mime name="video/divx" />
+ <mime name="video/x-msvideo" />
+ <mime name="video/x-ms-wmv" />
+ <mime name="video/x-ms-asf" />
+ <mime name="application/vnd.ms-asf" />
+ <mime name="video/x-flv" />
+ <mime name="video/3gpp" />
+ <mime name="video/x-matroska" />
+ <mime name="video/vnd.ms-playready.media.pyv" />
+ <mime name="application/vnd.apple.mpegurl" />
+ <mime name="application/x-mpegurl" />
+ <mime name="audio/x-mpegurl" />
+ <mime name="video/x-mpegurl" />
+ <mime name="video/x-flv" />
+ <mime name="video/ogg" />
+ <mime name="video/quicktime" />
+ <mime name="video/mp2t" />
+ <mime name="audio/isma" />
+ <mime name="application/sdp" />
+ <uri name="http" />
+ <uri name="https" />
+ <uri name="rtsp" />
+ <uri name="rtp" />
+ </app-control>
+ <app-control>
+ <operation name="http://tizen.org/appcontrol/operation/view" />
+ <mime name="video/mp4" />
+ <mime name="video/3gp" />
+ <mime name="video/divx" />
+ <mime name="video/x-msvideo" />
+ <mime name="video/x-ms-wmv" />
+ <mime name="video/x-ms-asf" />
+ <mime name="application/vnd.ms-asf" />
+ <mime name="video/x-flv" />
+ <mime name="video/3gpp" />
+ <mime name="video/x-matroska" />
+ <mime name="video/vnd.ms-playready.media.pyv" />
+ <mime name="application/vnd.apple.mpegurl" />
+ <mime name="application/x-mpegurl" />
+ <mime name="video/x-mpegurl" />
+ <mime name="video/x-flv" />
+ <mime name="video/ogg" />
+ <mime name="video/quicktime" />
+ <mime name="video/mp2t" />
+ <mime name="application/sdp" />
+ </app-control>
+ </ui-application>
+ <privileges>
+ <privilege>http://tizen.org/privilege/wifi.wifidirect.admin</privilege>
+ <privilege>http://tizen.org/privilege/wifi.wifidirect.read</privilege>
+ <privilege>http://tizen.org/privilege/maps</privilege>
+ <privilege>http://tizen.org/privilege/mediastorage</privilege>
+ <privilege>http://tizen.org/privilege/systemsettings</privilege>
+ <privilege>http://tizen.org/privilege/externalstorage.appdata</privilege>
+ <privilege>http://tizen.org/privilege/telephony</privilege>
+ <privilege>http://tizen.org/privilege/externalstorage</privilege>
+ <privilege>http://tizen.org/privilege/wifidirect</privilege>
+ <privilege>http://tizen.org/privilege/network.get</privilege>
+ <privilege>http://tizen.org/privilege/volume.set</privilege>
+ <privilege>http://tizen.org/privilege/appmanager.launch</privilege>
+ <privilege>http://tizen.org/privilege/content.write</privilege>
+ <privilege>http://tizen.org/privilege/display</privilege>
+ <privilege>http://tizen.org/privilege/internet</privilege>
+ </privileges>
+</manifest>
--- /dev/null
+
+# Project Name
+APPNAME = video-player
+
+# Project Type
+type = app
+
+# Project Profile
+profile = mobile-3.0
+
+# C Sources
+USER_SRCS = src/serviceParser/vp-service-parser.c src/vp-main.c ../playview/src/core/vp-media-key.c ../src/view/mp-library-view-mgr.c ../playview/src/feature/vp-subtitle-size.c ../playview/src/feature/vp-share.c ../common/src/vp-pinch-zoom.c ../src/view/mp-video-list-remove-ctrl.c ../playview/src/feature/vp-audio-track.c ../playview/src/widget/vp-play-brightness-popup.c ../src/widget/mp-video-view-popup-ctrl.c ../playview/src/core/vp-image-util.c ../src/widget/mp-external-ug.c ../src/view/mp-video-list-view-common.c ../playview/src/core/vp-multi-path.c ../src/feature/mp-launching-video-displayer.c ../src/view/mp-video-list-view-thumbnail.c ../playview/src/common/vp-play-config.c ../src/view/mp-video-list-personal-view.c ../src/view/mp-video-detail-view.c ../playview/src/feature/vp-sound-alive.c ../src/view/mp-video-list-view-folder.c ../playview/src/vp-play-view.c ../src/view/mp-video-list-view-item-of-folder.c ../playview/src/feature/vp-subtitle-sync.c ../playview/src/feature/vp-sound-path.c ../common/src/vp-media-content-util.c ../playview/src/common/vp-play-preference.c ../playview/src/widget/vp-play-volume-popup.c ../playview/src/core/vp-media-contents.c ../common/src/vp-db-util.c ../src/widget/mp-video-list-option-ctrl.c ../playview/src/feature/vp-repeat.c ../playview/src/core/vp-avrcp.c ../playview/src/feature/vp-subtitle-alignment.c ../playview/src/widget/vp-play-subtitle.c ../common/src/vp-util.c ../src/widget/mp-video-list-sort-ctrl.c ../src/view/mp-video-list-personal-ctrl.c ../common/src/vp-file-util.c ../playview/src/feature/vp-subtitle-bg-color.c ../src/common/mp-util-media-service.c ../playview/src/widget/vp-play-bookmark.c ../playview/src/feature/vp-subtitle-select.c ../src/widget/mp-util-widget-ctrl.c ../playview/src/feature/vp-subtitle-font.c ../common/src/vp-chapter-db.c ../src/view/mp-video-list-view-normal.c ../src/common/mp-util-config.c ../playview/src/common/vp-play-util.c ../playview/src/widget/vp-play-minicontroller.c ../playview/src/widget/vp-play-lockscreenmc.c ../playview/src/widget/vp-play-popup.c ../src/common/mp-rotate-ctrl.c ../src/common/mp-util-preference.c ../playview/src/feature/vp-detail.c ../playview/src/widget/vp-play-progressbar.c ../playview/src/feature/vp-subtitle-edge.c ../src/widget/mp-video-nocontent-layout.c ../src/view/mp-video-list-share-via-view.c ../src/viewMgr/videos-view-mgr.c ../src/widget/mp-footer-toolbar.c ../playview/src/core/vp-sound.c ../playview/src/common/vp-play-ug.c ../playview/src/core/vp-device-language.c ../playview/src/feature/vp-play-speed.c ../src/view/mp-video-list-folder-share-via-view.c ../playview/src/feature/vp-subtitle-track.c ../playview/src/feature/vp-subtitle-color.c ../playview/src/core/vp-hollic.c ../src/view/mp-video-list-view-select.c ../playview/src/core/vp-mm-player.c ../src/view/mp-video-list-remove-view.c ../playview/src/widget/vp-play-volume.c ../playview/src/widget/vp-play-loading-ani.c ../playview/src/view/vp-play-normal-view.c ../playview/src/core/vp-device.c ../src/view/mp-video-list-view-main.c ../playview/src/widget/vp-play-button.c ../playview/src/widget/vp-play-more.c ../src/widget/mp-video-rename-ctrl.c ../common/src/vp-preview-db.c ../src/widget/mp-video-list-view-as-ctrl.c ../src/widget/mp-video-list-auto-play-ctrl.c ../src/feature/mp-util-move.c ../src/view/mp-video-search-view.c ../playview/src/feature/vp-capture.c ../src/common/mp-drm-ctrl.c ../src/common/mp-video-info-ctrl.c ../playview/src/feature/vp-subtitle.c ../src/common/mp-video-util-db-controller.c ../common/src/vp-thumb-db.c ../src/common/mp-util.c ../playview/src/core/vp-sensor.c ../playview/src/feature/vp-zoom-guide.c ../playview/src/feature/vp-setting.c
+
+# EDC Sources
+USER_EDCS =
+
+# PO Sources
+USER_POS = res/po/pt_BR.po res/po/el_GR.po res/po/sr.po res/po/sl.po res/po/mk.po res/po/en.po res/po/da.po res/po/zh_HK.po res/po/fr_CA.po res/po/es_ES.po res/po/et.po res/po/cs.po res/po/ga.po res/po/de.po res/po/ja_JP.po res/po/uk.po res/po/sv.po res/po/nl.po res/po/fr.po res/po/ca.po res/po/nb.po res/po/zh_TW.po res/po/pt_PT.po res/po/hu.po res/po/hi.po res/po/es_US.po res/po/ka.po res/po/is.po res/po/ru_RU.po res/po/en_US.po res/po/hy.po res/po/zh_CN.po res/po/sk.po res/po/tr_TR.po res/po/ar.po res/po/gl.po res/po/az.po res/po/kk.po res/po/eu.po res/po/ko_KR.po res/po/it_IT.po res/po/en_PH.po res/po/pl.po res/po/lv.po res/po/fi.po res/po/bg.po res/po/ro.po res/po/uz.po res/po/lt.po res/po/hr.po
+
+# User Defines
+USER_DEFS = USE_I_FRAMESEKK VS_FEATURE_THUMBNAIL_VIEW VS_FEATURE_FOLDER_VIEW SUBTITLE_K_FEATURE _SUBTITLE_MULTI_LANGUAGE _TRIME_VIEW_NEW_FEATURE ENABLE_VOLUME_BRIGHTNESS_POPUP
+USER_CPP_DEFS =
+
+# User Undefines
+USER_UNDEFS =
+USER_CPP_UNDEFS =
+
+# User Libraries
+USER_LIBS =
+
+# User Objects
+USER_OBJS =
+USER_OBJS_ABS =
+
+# User Includes
+## C Compiler
+USER_INC_DIRS = include include/serviceParser $(workspace_loc)/include $(workspace_loc)/playview/include $(workspace_loc)/common/include $(workspace_loc)/include/common $(workspace_loc)/include/feature $(workspace_loc)/include/view $(workspace_loc)/include/viewMgr $(workspace_loc)/include/widget $(workspace_loc)/playview/src/include $(workspace_loc)/playview/src/core/include $(workspace_loc)/playview/src/common/include $(workspace_loc)/playview/src/feature/include $(workspace_loc)/playview/src/view/include $(workspace_loc)/playview/src/widget/include $(workspace_loc)/common/src/include
+USER_INC_DIRS_ABS = include include/serviceParser $(workspace_loc)/include $(workspace_loc)/playview/include $(workspace_loc)/common/include $(workspace_loc)/include/common $(workspace_loc)/include/feature $(workspace_loc)/include/view $(workspace_loc)/include/viewMgr $(workspace_loc)/include/widget $(workspace_loc)/playview/src/include $(workspace_loc)/playview/src/core/include $(workspace_loc)/playview/src/common/include $(workspace_loc)/playview/src/feature/include $(workspace_loc)/playview/src/view/include $(workspace_loc)/playview/src/widget/include $(workspace_loc)/common/src/include
+USER_INC_FILES =
+USER_INC_FILES_ABS =
+## C++ Compiler
+USER_CPP_INC_DIRS =
+USER_CPP_INC_DIRS_ABS =
+USER_CPP_INC_FILES =
+USER_CPP_INC_FILES_ABS =
+
+# User Library Path
+USER_LIB_DIRS =
+USER_LIB_DIRS_ABS =
+
+# EDC Resource Path
+USER_EDCS_IMAGE_DIRS = edje/images $(workspace_loc)/playview/res/edje/images
+USER_EDCS_IMAGE_DIRS_ABS =
+USER_EDCS_SOUND_DIRS = edje/sounds
+USER_EDCS_SOUND_DIRS_ABS =
+USER_EDCS_FONT_DIRS = edje/fonts
+USER_EDCS_FONT_DIRS_ABS =
+
+# EDC Flags
+USER_EXT_EDC_KEYS = EDC0
+
+USER_EXT_EDC0_EDCS = res/edje/pv-trim-control.edc res/edje/pv-custom-winset.edc res/edje/custom/pv-custom-image.edc res/edje/pv-sensor-popup.edc res/edje/custom/pv-custom-define.edc res/edje/pv-bookmark-item.edc res/edje/pv-normal-control.edc res/edje/pv-normal-top-control.edc res/edje/pv-tag-buddy.edc res/edje/pv-volume.edc res/edje/pv-progressbar.edc res/edje/pv-macro.edc res/edje/pv-multi-main.edc res/edje/pv-trim-main.edc res/edje/pv-colorselector.edc res/edje/pv-lockscreenmini.edc res/edje/pv-minicontroller.edc res/edje/pv-brightness-popup.edc res/edje/pv-speed-popup.edc res/edje/pv-tag-preview.edc res/edje/pv-zoom-guide.edc res/edje/pv-normal-main.edc res/edje/pv-popup.edc res/edje/pv-gesture.edc res/edje/pv-trim-top-control.edc res/edje/pv-subtitle.edc res/edje/pv-subtitle-color-popup.edc res/edje/pv-volume-popup.edc res/edje/pv-image.edc res/edje/pv-resource.edc res/edje/pv-normal-function.edc res/edje/pv-chapter-main-new.edc res/edje/pv-trim-item.edc res/edje/pv-bookmark.edc
+USER_EXT_EDC0_EDCS_IMAGE_DIRS = edje/images $(workspace_loc)/playview/res/edje/images
+USER_EXT_EDC0_EDCS_IMAGE_DIRS_ABS = edje/images $(workspace_loc)/playview/res/edje/images
+USER_EXT_EDC0_EDCS_SOUND_DIRS = edje/sounds
+USER_EXT_EDC0_EDCS_SOUND_DIRS_ABS =
+USER_EXT_EDC0_EDCS_FONT_DIRS = edje/fonts
+USER_EXT_EDC0_EDCS_FONT_DIRS_ABS =
+
+# Resource Filter
+USER_RES_INCLUDE =
+USER_RES_EXCLUDE = res/**/*.edc
+
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#define BUTTON_NAVIFRAME_TITLE_BUTTON_BG_MIN_MAX_INC 63 63
+#define BUTTON_NAVIFRAME_TITLE_BUTTON_MIN_MAX_INC 63 63
+
+#define BUTTON_CUSTOM_ICON_NORMAL_COLOR 236 234 226 255
+#define BUTTON_CUSTOM_ICON_PRESS_COLOR 64 147 247 255
+#define BUTTON_CUSTOM_ICON_DIM_COLOR 236 234 226 75
+
+#define BUTTON_NAVIFRAME_MORE_BG_MIN_MAX_INC 85 98
+#define BUTTON_NAVIFRAME_MORE_DEFAULT_IMAGE_MIN_MAX_INC 63 63
+
+#define BUTTON_CIRCLE_01_MIN_MAX_INC 40 40
+#define BUTTON_CIRCLE_02_MIN_MAX_INC 36 36
+#define BUTTON_CIRCLE_03_MIN_MAX_INC 45 45
+
+#define BUTTON_FLAT_MIN_MAX_INC 30 30
+
+#define BUTTON_ROUND_LEFT_MIN_MAX_INC 104 68
+#define BUTTON_ROUND_CENTER_MIN_MAX_INC 104 68
+#define BUTTON_ROUND_RIGHT_MIN_MAX_INC 104 68
+
+#define BUTTON_ROUND_ICON_MIN_MAX_INC 40 40
+
+#define BUTTON_NAVIFRAME_TITLE_ICON_CLIPPER_NORMAL_COLOR_INC 255 255 255 255
+#define BUTTON_NAVIFRAME_TITLE_ICON_CLIPPER_DEFAULT_COLOR_INC 101 101 101 255
+#define BUTTON_NAVIFRAME_TITLE_ICON_CLIPPER_DEFAULT_BLACK_COLOR_INC 255 255 255 255
+#define BUTTON_NAVIFRAME_TITLE_ICON_CLIPPER_PRESSED_COLOR_INC 64 147 247 255
+#define BUTTON_NAVIFRAME_TITLE_ICON_CLIPPER_DISABLED_COLOR_INC 101 101 101 76
+
+
+#define BUTTON_CUSTOM_ICON_STYLES(style_name, min_width, min_height) \
+group { \
+ name: "elm/button/base/custom/"style_name; \
+ parts { \
+ part { \
+ name: "button_image"; \
+ type: RECT; \
+ scale: 1; \
+ description { \
+ state: "default" 0.0; \
+ min: min_width min_height; \
+ max: min_width min_height; \
+ fixed: 1 1; \
+ visible: 0; \
+ } \
+ description { \
+ state: "clicked" 0.0; \
+ inherit: "default" 0.0; \
+ } \
+ description { \
+ state: "disabled" 0.0; \
+ inherit: "default" 0.0; \
+ } \
+ description { \
+ state: "focused" 0.0; \
+ inherit: "default" 0.0; \
+ } \
+ } \
+ part { \
+ name: "elm.text"; \
+ type: TEXT; \
+ mouse_events: 0; \
+ scale: 1; \
+ description { \
+ state: "default" 0.0; \
+ visible: 0; \
+ rel1 { relative: 0.0 0.0;} \
+ rel2 { relative: 0.0 0.0;} \
+ color: 0 0 0 0; \
+ text { \
+ font: "Tizen:style=Regular"; \
+ size: 24; \
+ min: 0 0; \
+ } \
+ } \
+ } \
+ part { \
+ name: "elm.swallow.content"; \
+ type: SWALLOW; \
+ scale: 1; \
+ mouse_events: 0; \
+ description { \
+ state: "default" 0.0; \
+ visible: 1; \
+ min: min_width min_height; \
+ max: min_width min_height; \
+ fixed: 1 1; \
+ rel1.to: "button_image"; \
+ rel2.to: "button_image"; \
+ } \
+ } \
+ part { \
+ name: "over2"; \
+ type: RECT; \
+ repeat_events: 1; \
+ ignore_flags: ON_HOLD; \
+ description { \
+ state: "default" 0.0; \
+ color: 0 0 0 0; \
+ } \
+ } \
+ part { \
+ name: "over3"; \
+ type: RECT; \
+ repeat_events: 1; \
+ ignore_flags: ON_HOLD; \
+ description { \
+ state: "default" 0.0; \
+ color: 0 0 0 0; \
+ } \
+ } \
+ } \
+ programs \
+ { \
+ program { \
+ name: "button_down"; \
+ signal: "mouse,down,1"; \
+ source: "over2"; \
+ action: SIGNAL_EMIT "elm,action,press" ""; \
+ } \
+ program { \
+ name: "button_up"; \
+ signal: "mouse,up,1"; \
+ source: "over3"; \
+ action: SIGNAL_EMIT "elm,action,unpress" ""; \
+ } \
+ program { \
+ name: "button_clicked"; \
+ signal: "mouse,clicked,1"; \
+ source: "over2"; \
+ action: SIGNAL_EMIT "elm,action,click" ""; \
+ } \
+ program { \
+ name: "button_click"; \
+ source: "over2"; \
+ signal: "mouse,clicked,1"; \
+ action: RUN_PLUGIN "touch_sound_plugin"; \
+ } \
+ } \
+}
+
+
+
+group {
+ name: "elm/button/base/custom/circle_1/default";
+ parts {
+ part {
+ name: "button_image";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ rel1.relative: 0.3 0.3;
+ rel2.relative: 0.7 0.7;
+ color: 0 166 191 255;
+ visible: 0;
+ }
+ description {
+ state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "focused" 0.0;
+ inherit: "default" 0.0;
+ }
+ }
+ part {
+ name: "button_bg";
+ type: IMAGE;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ rel1.relative: 0 0;
+ rel2.relative: 1 1;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ image.normal: "button/T01-2_control_circle_button_01_press.png";
+ color: 0 166 191 255;
+ }
+ description {
+ state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ image.normal: "button/T01-2_control_circle_button_01_press.png";
+ color: 0 166 191 255;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ image.normal: "button/T01-2_control_circle_button_01_press.png";
+ color: 0 166 191 255;
+ }
+ description {
+ state: "focused" 0.0;
+ inherit: "default" 0.0;
+ image.normal: "button/T01-2_control_circle_button_01_press.png";
+ color: 0 166 191 255;
+ }
+ }
+
+ part {
+ name: "button_circle";
+ type: IMAGE;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ rel1.relative: 0 0;
+ rel2.relative: 1 1;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ image.normal: "button/T01-2_control_circle_button_01.png";
+ color: 0 166 191 255;
+ }
+ description {
+ state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ image.normal: "button/T01-2_control_circle_button_01.png";
+ color: 0 166 191 255;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ image.normal: "button/T01-2_control_circle_button_01.png";
+ color: 0 166 191 255;
+ }
+ description {
+ state: "focused" 0.0;
+ inherit: "default" 0.0;
+ image.normal: "button/T01-2_control_circle_button_01_focus.png";
+ color: 0 166 191 255;
+ }
+ }
+ part {
+ name: "elm.text";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 0.0 0.0;}
+ color: 0 0 0 0;
+ text {
+ font: "Tizen:style=Regular";
+ size: 24;
+ min: 0 0;
+ }
+ }
+ }
+ part {
+ name: "elm.swallow.content";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ rel1.relative: 0 0;
+ rel2.relative: 1 1;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ }
+ part {
+ name: "over2";
+ type: RECT;
+ ignore_flags: ON_HOLD;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ rel1.relative: 0 0;
+ rel2.relative: 1 1;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ }
+ part {
+ name: "over3";
+ type: RECT;
+ repeat_events: 1;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ rel1.relative: 0 0;
+ rel2.relative: 1 1;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ }
+ part {
+ name: "disabler";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ visible: 0;
+ rel1.relative: 0 0;
+ rel2.relative: 1 1;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ } /* parts */
+ programs {
+ program {
+ name: "button_click";
+ signal: "mouse,down,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,press" "";
+ after: "button_click_anim";
+ }
+
+ program {
+ name: "button_click_anim";
+ action: STATE_SET "clicked" 0.0;
+ target: "button_image";
+ //target: "button_circle";
+ //target: "button_bg";
+ }
+
+ program {
+ name: "button_unclick";
+ signal: "mouse,up,1";
+ source: "over3";
+ action: SIGNAL_EMIT "elm,action,unpress" "";
+ after: "button_unclick_anim";
+ }
+ program {
+ name: "button_unclick_anim";
+ action: STATE_SET "default" 0.0;
+ target: "button_image";
+ //target: "button_circle";
+ //target: "button_bg";
+ }
+
+ program {
+ name: "button_unclick3";
+ signal: "mouse,clicked,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,click" "";
+ }
+
+ program {
+ name: "disable";
+ signal: "elm,state,disabled";
+ source: "elm";
+ action: STATE_SET "disabled" 0.0;
+ target: "button_image";
+ target: "disabler";
+ //target: "button_circle";
+ //target: "button_bg";
+ }
+ program {
+ name: "enable";
+ signal: "elm,state,enabled";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "button_image";
+ target: "disabler";
+ //target: "button_circle";
+ //target: "button_bg";
+ }
+
+ /*program {
+ name: "focused";
+ signal: "elm,action,focus";
+ source: "elm";
+ action: STATE_SET "focused" 0.0;
+ target: "button_circle";
+ target: "button_bg";
+ }
+
+ program {
+ name: "unfocused";
+ signal: "elm,action,unfocus";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "button_circle";
+ target: "button_bg";
+ }*/
+ program {
+ name: "button_clicked";
+ source: "over2";
+ signal: "mouse,clicked,1";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ } /* programs */
+}
+
+group {
+ name: "elm/button/base/custom/circle_1_focus/default";
+ parts {
+ part {
+ name: "button_image";
+ type: RECT;
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ rel1.relative: 0.3 0.3;
+ rel2.relative: 0.7 0.7;
+ color: 0 255 0 255;
+ visible: 0;
+ }
+ description {
+ state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "focused" 0.0;
+ inherit: "default" 0.0;
+ }
+ }
+ part {
+ name: "button_bg";
+ type: IMAGE;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ rel1.relative: 0 0;
+ rel2.relative: 1 1;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ image.normal: "button/T01-2_control_circle_button_01_press.png";
+ color: 0 166 191 255;
+ }
+ description {
+ state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ image.normal: "button/T01-2_control_circle_button_01_press.png";
+ color: 0 166 191 255;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ image.normal: "button/T01-2_control_circle_button_01_press.png";
+ color: 0 166 191 255;
+ }
+ description {
+ state: "focused" 0.0;
+ inherit: "default" 0.0;
+ image.normal: "button/T01-2_control_circle_button_01_press.png";
+ color: 0 166 191 255;
+ }
+ }
+
+ part {
+ name: "button_circle";
+ type: IMAGE;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ rel1.relative: 0 0;
+ rel2.relative: 1 1;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ image.normal: "button/T01-2_control_circle_button_01.png";
+ color: 0 166 191 255;
+ }
+ description {
+ state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ image.normal: "button/T01-2_control_circle_button_01.png";
+ color: 0 166 191 255;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ image.normal: "button/T01-2_control_circle_button_01.png";
+ color: 0 166 191 255;
+ }
+ description {
+ state: "focused" 0.0;
+ inherit: "default" 0.0;
+ image.normal: "button/T01-2_control_circle_button_01.png";
+ color: 0 166 191 255;
+ }
+ }
+ part {
+ name: "elm.text";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 0.0 0.0;}
+ color: 0 0 0 0;
+ text {
+ font: "Tizen:style=Regular";
+ size: 24;
+ min: 0 0;
+ }
+ }
+ }
+ part {
+ name: "elm.swallow.content";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ rel1.relative: 0 0;
+ rel2.relative: 1 1;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ }
+ part {
+ name: "over2";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ rel1.relative: 0 0;
+ rel2.relative: 1 1;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ }
+ part {
+ name: "over3";
+ type: RECT;
+ repeat_events: 1;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ rel1.relative: 0 0;
+ rel2.relative: 1 1;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ }
+ part {
+ name: "disabler";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ visible: 0;
+ rel1.relative: 0 0;
+ rel2.relative: 1 1;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ rel1.relative: 0 0;
+ rel2.relative: 1 1;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ }
+ } /* parts */
+ programs {
+ program {
+ name: "button_click";
+ signal: "mouse,down,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,press" "";
+ after: "button_click_anim";
+ }
+
+ program {
+ name: "button_click_anim";
+ action: STATE_SET "clicked" 0.0;
+ target: "button_image";
+ target: "button_circle";
+ target: "button_bg";
+ }
+
+ program {
+ name: "button_unclick";
+ signal: "mouse,up,1";
+ source: "over3";
+ action: SIGNAL_EMIT "elm,action,unpress" "";
+ after: "button_unclick_anim";
+ }
+ program {
+ name: "button_unclick_anim";
+ action: STATE_SET "default" 0.0;
+ target: "button_image";
+ target: "button_circle";
+ target: "button_bg";
+ }
+
+ program {
+ name: "button_unclick3";
+ signal: "mouse,clicked,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,click" "";
+ }
+
+ program {
+ name: "disable";
+ signal: "elm,state,disabled";
+ source: "elm";
+ action: STATE_SET "disabled" 0.0;
+ target: "button_image";
+ target: "disabler";
+ target: "button_circle";
+ target: "button_bg";
+ }
+ program {
+ name: "enable";
+ signal: "elm,state,enabled";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "button_image";
+ target: "disabler";
+ target: "button_circle";
+ target: "button_bg";
+ }
+
+ program {
+ name: "focused";
+ signal: "elm,action,focus";
+ source: "elm";
+ action: STATE_SET "focused" 0.0;
+ target: "button_circle";
+ target: "button_bg";
+ }
+
+ program {
+ name: "unfocused";
+ signal: "elm,action,unfocus";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "button_circle";
+ target: "button_bg";
+ }
+ program {
+ name: "button_clicked";
+ source: "over2";
+ signal: "mouse,clicked,1";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ } /* programs */
+}
+
+group {
+ name: "elm/button/base/custom/circle_2/default";
+ parts {
+ part {
+ name: "button_image";
+ type: IMAGE;
+ description {
+ state: "default" 0.0;
+ rel1.relative: 0.8 0.3;
+ rel2.relative: 1.2 0.7;
+ visible: 1;
+ image { normal: "control/T01-2_control_circle_icon_rewind.png";}
+ color: 0 166 191 255;
+ }
+ description {
+ state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "focused" 0.0;
+ inherit: "default" 0.0;
+ }
+ }
+
+ /*part {
+ name: "button_bg";
+ type: IMAGE;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ rel1.relative: 0 0;
+ rel2.relative: 1 1;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ image.normal: "button/T01-2_control_circle_button_02_press.png";
+ color: 0 0 0 153;
+ }
+ description {
+ state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ image.normal: "button/T01-2_control_circle_button_02_press.png";
+ color: 66 162 207 255;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ image.normal: "button/T01-2_control_circle_button_02_press.png";
+ color: 0 0 0 153;
+ }
+ description {
+ state: "focused" 0.0;
+ inherit: "default" 0.0;
+ image.normal: "button/T01-2_control_circle_button_02_press.png";
+ color: 0 0 0 153;
+ }
+ }
+
+ part {
+ name: "button_circle";
+ type: IMAGE;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ rel1.relative: 0 0;
+ rel2.relative: 1 1;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ image.normal: "button/T01-2_control_circle_button_02.png";
+ color: 255 255 255 255 128;
+ }
+ description {
+ state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ image.normal: "button/T01-2_control_circle_button_02.png";
+ color: 66 162 207 255;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ image.normal: "button/T01-2_control_circle_button_02.png";
+ color: 255 255 255 51;
+ }
+ description {
+ state: "focused" 0.0;
+ inherit: "default" 0.0;
+ image.normal: "button/T01-2_control_circle_button_02.png";
+ color: 255 255 255 255 128;
+ }
+ }*/
+ part {
+ name: "elm.text";
+ type: TEXT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 0.0 0.0;}
+ color: 0 0 0 0;
+ text {
+ font: "Tizen:style=Regular";
+ size: 24;
+ min: 0 0;
+ }
+ }
+ }
+ /*part {
+ name: "elm.swallow.content";
+ type: SWALLOW;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ rel1.relative: 0 0;
+ rel2.relative: 1 1;
+
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ }*/
+ part {
+ name: "over2";
+ type: RECT;
+ ignore_flags: ON_HOLD;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ rel1.relative: 0 0;
+ rel2.relative: 1 1;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ }
+ part {
+ name: "over3";
+ type: RECT;
+ repeat_events: 1;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ rel1.relative: 0 0;
+ rel2.relative: 1 1;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ }
+ part {
+ name: "disabler";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ visible: 0;
+ rel1.relative: 0 0;
+ rel2.relative: 1 1;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ } /* parts */
+ programs {
+ program {
+ name: "button_click";
+ signal: "mouse,down,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,press" "";
+ after: "button_click_anim";
+ }
+
+ program {
+ name: "button_click_anim";
+ action: STATE_SET "clicked" 0.0;
+ target: "button_image";
+ //target: "button_circle";
+ //target: "button_bg";
+ }
+
+ program {
+ name: "button_unclick";
+ signal: "mouse,up,1";
+ source: "over3";
+ action: SIGNAL_EMIT "elm,action,unpress" "";
+ after: "button_unclick_anim";
+ }
+ program {
+ name: "button_unclick_anim";
+ action: STATE_SET "default" 0.0;
+ target: "button_image";
+ //target: "button_circle";
+ //target: "button_bg";
+ }
+
+ program {
+ name: "button_unclick3";
+ signal: "mouse,clicked,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,click" "";
+ }
+
+ program {
+ name: "disable";
+ signal: "elm,state,disabled";
+ source: "elm";
+ action: STATE_SET "disabled" 0.0;
+ target: "button_image";
+ target: "disabler";
+ //target: "button_circle";
+ //target: "button_bg";
+ }
+ program {
+ name: "enable";
+ signal: "elm,state,enabled";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "button_image";
+ target: "disabler";
+ //target: "button_circle";
+ //target: "button_bg";
+ }
+ /*program {
+ name: "focused";
+ action: STATE_SET "focused" 0.0;
+ target: "button_circle";
+ target: "button_bg";
+ }
+
+ program {
+ name: "unfocused";
+ action: STATE_SET "default" 0.0;
+ target: "button_circle";
+ target: "button_bg";
+ }*/
+ program {
+ name: "button_clicked";
+ source: "over2";
+ signal: "mouse,clicked,1";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ } /* programs */
+}
+
+
+group {
+ name: "elm/button/base/custom/circle_3/default";
+ parts {
+ part {
+ name: "button_image";
+ type: IMAGE;
+ description {
+ state: "default" 0.0;
+ rel1.relative: -0.2 0.3;
+ rel2.relative: 0.2 0.7;
+ visible: 1;
+ image { normal: "control/T01-2_control_circle_icon_next.png";}
+ color: 0 166 191 255;
+ }
+ description {
+ state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "focused" 0.0;
+ inherit: "default" 0.0;
+ }
+ }
+
+ /*part {
+ name: "button_bg";
+ type: IMAGE;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ rel1.relative: 0 0;
+ rel2.relative: 1 1;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ image.normal: "button/T01-2_control_circle_button_02_press.png";
+ color: 0 0 0 153;
+ }
+ description {
+ state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ image.normal: "button/T01-2_control_circle_button_02_press.png";
+ color: 66 162 207 255;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ image.normal: "button/T01-2_control_circle_button_02_press.png";
+ color: 0 0 0 153;
+ }
+ description {
+ state: "focused" 0.0;
+ inherit: "default" 0.0;
+ image.normal: "button/T01-2_control_circle_button_02_press.png";
+ color: 0 0 0 153;
+ }
+ }
+
+ part {
+ name: "button_circle";
+ type: IMAGE;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ rel1.relative: 0 0;
+ rel2.relative: 1 1;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ image.normal: "button/T01-2_control_circle_button_02.png";
+ color: 255 255 255 255 128;
+ }
+ description {
+ state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ image.normal: "button/T01-2_control_circle_button_02.png";
+ color: 66 162 207 255;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ image.normal: "button/T01-2_control_circle_button_02.png";
+ color: 255 255 255 51;
+ }
+ description {
+ state: "focused" 0.0;
+ inherit: "default" 0.0;
+ image.normal: "button/T01-2_control_circle_button_02.png";
+ color: 255 255 255 255 128;
+ }
+ }*/
+ part {
+ name: "elm.text";
+ type: TEXT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 0.0 0.0;}
+ color: 0 0 0 0;
+ text {
+ font: "Tizen:style=Regular";
+ size: 24;
+ min: 0 0;
+ }
+ }
+ }
+ /*part {
+ name: "elm.swallow.content";
+ type: SWALLOW;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ rel1.relative: 0 0;
+ rel2.relative: 1 1;
+
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ }*/
+ part {
+ name: "over2";
+ type: RECT;
+ ignore_flags: ON_HOLD;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ rel1.relative: 0 0;
+ rel2.relative: 1 1;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ }
+ part {
+ name: "over3";
+ type: RECT;
+ repeat_events: 1;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ rel1.relative: 0 0;
+ rel2.relative: 1 1;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ }
+ part {
+ name: "disabler";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ visible: 0;
+ rel1.relative: 0 0;
+ rel2.relative: 1 1;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ } /* parts */
+ programs {
+ program {
+ name: "button_click";
+ signal: "mouse,down,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,press" "";
+ after: "button_click_anim";
+ }
+
+ program {
+ name: "button_click_anim";
+ action: STATE_SET "clicked" 0.0;
+ target: "button_image";
+ //target: "button_circle";
+ //target: "button_bg";
+ }
+
+ program {
+ name: "button_unclick";
+ signal: "mouse,up,1";
+ source: "over3";
+ action: SIGNAL_EMIT "elm,action,unpress" "";
+ after: "button_unclick_anim";
+ }
+ program {
+ name: "button_unclick_anim";
+ action: STATE_SET "default" 0.0;
+ target: "button_image";
+ //target: "button_circle";
+ //target: "button_bg";
+ }
+
+ program {
+ name: "button_unclick3";
+ signal: "mouse,clicked,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,click" "";
+ }
+
+ program {
+ name: "disable";
+ signal: "elm,state,disabled";
+ source: "elm";
+ action: STATE_SET "disabled" 0.0;
+ target: "button_image";
+ target: "disabler";
+ //target: "button_circle";
+ //target: "button_bg";
+ }
+ program {
+ name: "enable";
+ signal: "elm,state,enabled";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "button_image";
+ target: "disabler";
+ //target: "button_circle";
+ //target: "button_bg";
+ }
+ /*program {
+ name: "focused";
+ action: STATE_SET "focused" 0.0;
+ target: "button_circle";
+ target: "button_bg";
+ }
+
+ program {
+ name: "unfocused";
+ action: STATE_SET "default" 0.0;
+ target: "button_circle";
+ target: "button_bg";
+ }*/
+ program {
+ name: "button_clicked";
+ source: "over2";
+ signal: "mouse,clicked,1";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ } /* programs */
+}
+
+
+
+
+group { name: "elm/button/base/custom/navi_button/default";
+ parts {
+ part { name: "button_image";
+ type: RECT;
+ scale: 1;
+ description { state: "default" 0.0;
+ visible: 0;
+ min: BUTTON_NAVIFRAME_TITLE_BUTTON_BG_MIN_MAX_INC;
+ max: BUTTON_NAVIFRAME_TITLE_BUTTON_BG_MIN_MAX_INC;
+ }
+ description { state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ }
+ description { state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ }
+ }
+ part { name: "elm.swallow.content";
+ type: SWALLOW;
+ scale: 1;
+ clip_to: "elm.icon.clipper";
+ description { state: "default" 0.0;
+ visible: 1;
+ fixed: 1 1;
+ min: BUTTON_NAVIFRAME_TITLE_BUTTON_MIN_MAX_INC;
+ max: BUTTON_NAVIFRAME_TITLE_BUTTON_MIN_MAX_INC;
+ rel1 { relative: 0.5 0.5; to : "button_image"; }
+ rel2 { relative: 0.5 0.5; to : "button_image"; }
+
+ }
+ description { state: "visible" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ part { name: "elm.swallow.icon.proxy";
+ type: PROXY;
+ scale: 1;
+ clip_to: "elm.icon.proxy.clipper";
+ description { state: "default" 0.0;
+ source: "elm.swallow.content";
+ rel1.to: "elm.swallow.content";
+ rel1.offset: 0 -2;
+ rel2.to: "elm.swallow.content";
+ rel2.offset: -1 -3;
+ }
+ }
+ part { name: "elm.icon.proxy.clipper";
+ type: RECT;
+ description { state: "default" 0.0;
+ color: BUTTON_NAVIFRAME_TITLE_ICON_CLIPPER_DEFAULT_BLACK_COLOR_INC;
+ }
+ description { state: "clicked" 0.0;
+ color: BUTTON_NAVIFRAME_TITLE_ICON_CLIPPER_PRESSED_COLOR_INC;
+ }
+ description { state: "disabled" 0.0;
+ color: BUTTON_NAVIFRAME_TITLE_ICON_CLIPPER_DISABLED_COLOR_INC;
+ }
+ }
+ part { name: "elm.icon.clipper";
+ type: RECT;
+ description { state: "default" 0.0;
+ color: BUTTON_NAVIFRAME_TITLE_ICON_CLIPPER_NORMAL_COLOR_INC;
+ }
+ description { state: "clicked" 0.0;
+ color: BUTTON_NAVIFRAME_TITLE_ICON_CLIPPER_NORMAL_COLOR_INC;
+ }
+ description { state: "disabled" 0.0;
+ color: BUTTON_NAVIFRAME_TITLE_ICON_CLIPPER_DISABLED_COLOR_INC;
+ }
+ }
+ part { name: "over2";
+ type: RECT;
+ ignore_flags: ON_HOLD;
+ description { state: "default" 0.0;
+ color: 0 0 0 0;
+ }
+ }
+ part { name: "over3";
+ type: RECT;
+ repeat_events: 1;
+ description { state: "default" 0.0;
+ color: 0 0 0 0;
+ }
+ }
+ part { name: "disabler";
+ type: RECT;
+ description { state: "default" 0.0;
+ color: 0 0 0 0;
+ visible: 0;
+ }
+ description { state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ }
+ programs {
+ program { name: "button_click";
+ signal: "mouse,down,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,press" "";
+ after: "button_click_anim";
+ }
+ program { name: "button_click_anim";
+ action: STATE_SET "clicked" 0.0;
+ target: "button_image";
+ target: "elm.icon.clipper";
+ target: "elm.icon.proxy.clipper";
+ }
+ program { name: "button_unpress";
+ action: SIGNAL_EMIT "elm,action,unpress" "";
+ }
+ program { name: "button_mouseout_clicked";
+ signal: "mouse,up,1";
+ source: "over3";
+ action: STATE_SET "default" 0.0;
+ target: "elm.icon.clipper";
+ target: "elm.icon.proxy.clipper";
+ after: button_unpress;
+ }
+ program { name: "touch_snd";
+ signal: "mouse,clicked,1";
+ source: "over2";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ after: button_unclick3;
+ }
+ program { name: "button_unclick3";
+ action: SIGNAL_EMIT "elm,action,click" "";
+ }
+ program { name: "icon_show";
+ signal: "elm,state,icon,visible";
+ source: "elm";
+ action: STATE_SET "visible" 0.0;
+ target: "elm.swallow.content";
+ }
+ program { name: "icon_hide";
+ signal: "elm,state,icon,hidden";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "elm.swallow.content";
+ }
+ program { name: "disable";
+ signal: "elm,state,disabled";
+ source: "elm";
+ action: STATE_SET "disabled" 0.0;
+ target: "button_image";
+ target: "disabler";
+ target: "elm.icon.clipper";
+ target: "elm.icon.proxy.clipper";
+ }
+ program { name: "enable";
+ signal: "elm,state,enabled";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "button_image";
+ target: "elm.icon.clipper";
+ target: "elm.icon.proxy.clipper";
+ target: "disabler";
+ }
+ }
+}
+
+group {
+ name: "elm/button/base/custom/sound_path/default";
+ parts {
+ part {
+ name: "button_image";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ fixed: 1 1;
+ min: BUTTON_NAVIFRAME_TITLE_BUTTON_BG_MIN_MAX_INC;
+ max: BUTTON_NAVIFRAME_TITLE_BUTTON_BG_MIN_MAX_INC;
+ visible: 0;
+ }
+ description {
+ state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "focused" 0.0;
+ inherit: "default" 0.0;
+ }
+ }
+ part {
+ name: "rotate_button";
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ fixed: 1 1;
+ min: BUTTON_NAVIFRAME_TITLE_BUTTON_MIN_MAX_INC;
+ max: BUTTON_NAVIFRAME_TITLE_BUTTON_MIN_MAX_INC;
+ rel1 { relative: 0.5 0.5; to : "button_image"; }
+ rel2 { relative: 0.5 0.5; to : "button_image"; }
+ image.normal: "button/T01_2_icon_bluetooth_headset.png";
+ }
+ description {
+ state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ image.normal: "button/T01_2_icon_bluetooth_headset_press.png";
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ image.normal: "button/T01_2_icon_bluetooth_headset.png";
+ }
+ }
+ part {
+ name: "elm.text";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 0.0 0.0;}
+ color: 0 0 0 0;
+ text {
+ font: "Tizen:style=Regular";
+ size: 24;
+ min: 0 0;
+ }
+ }
+ }
+ part {
+ name: "over2";
+ type: RECT;
+ ignore_flags: ON_HOLD;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "over3";
+ type: RECT;
+ repeat_events: 1;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "disabler";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ visible: 0;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ } /* parts */
+ programs {
+ program {
+ name: "button_click";
+ signal: "mouse,down,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,press" "";
+ after: "button_click_anim";
+ }
+
+ program {
+ name: "button_click_anim";
+ action: STATE_SET "clicked" 0.0;
+ target: "button_image";
+ target: "rotate_button";
+ }
+
+ program {
+ name: "button_unclick";
+ signal: "mouse,up,1";
+ source: "over3";
+ action: SIGNAL_EMIT "elm,action,unpress" "";
+ after: "button_unclick_anim";
+ }
+ program {
+ name: "button_unclick_anim";
+ action: STATE_SET "default" 0.0;
+ target: "button_image";
+ target: "rotate_button";
+ }
+
+ program {
+ name: "button_unclick3";
+ signal: "mouse,clicked,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,click" "";
+ }
+
+ program {
+ name: "disable";
+ signal: "elm,state,disabled";
+ source: "elm";
+ action: STATE_SET "disabled" 0.0;
+ target: "button_image";
+ target: "disabler";
+ target: "rotate_button";
+ }
+ program {
+ name: "enable";
+ signal: "elm,state,enabled";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "button_image";
+ target: "disabler";
+ target: "rotate_button";
+ }
+ } /* programs */
+}
+
+group
+{
+ name: "elm/button/base/custom/allshare/default";
+ parts
+ {
+ part {
+ name: "button_image";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ fixed: 1 1;
+ min: BUTTON_NAVIFRAME_TITLE_BUTTON_BG_MIN_MAX_INC;
+ max: BUTTON_NAVIFRAME_TITLE_BUTTON_BG_MIN_MAX_INC;
+ visible: 0;
+ }
+ description {
+ state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "focused" 0.0;
+ inherit: "default" 0.0;
+ }
+ }
+ part {
+ name: "allshare_button";
+ type: IMAGE;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ fixed: 1 1;
+ min: BUTTON_NAVIFRAME_TITLE_BUTTON_MIN_MAX_INC;
+ max: BUTTON_NAVIFRAME_TITLE_BUTTON_MIN_MAX_INC;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ image.normal: "button/T01_2_icon_Near_by_device.png";
+ }
+ description {
+ state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ image.normal: "button/T01_2_icon_Near_by_device_press.png";
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ image.normal: "button/T01_2_icon_Near_by_device.png";
+ }
+ description {
+ state: "focused" 0.0;
+ inherit: "default" 0.0;
+ image.normal: "button/T01_2_icon_Near_by_device_press.png";
+ }
+ }
+ part {
+ name: "elm.text";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 0.0 0.0;}
+ color: 0 0 0 0;
+ text {
+ font: "Tizen:style=Regular";
+ size: 24;
+ min: 0 0;
+ }
+ }
+ }
+ part {
+ name: "over2";
+ type: RECT;
+ repeat_events: 1;
+ ignore_flags: ON_HOLD;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "over3";
+ type: RECT;
+ repeat_events: 1;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "disabler";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ visible: 0;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ }
+
+ programs
+ {
+ program {
+ name: "button_click";
+ signal: "mouse,down,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,press" "";
+ after: "button_click_anim";
+ }
+
+ program {
+ name: "button_click_anim";
+ action: STATE_SET "clicked" 0.0;
+ target: "button_image";
+ target: "allshare_button";
+ }
+
+ program {
+ name: "button_unclick";
+ signal: "mouse,up,1";
+ source: "over3";
+ action: SIGNAL_EMIT "elm,action,unpress" "";
+ after: "button_unclick_anim";
+ }
+ program {
+ name: "button_unclick_anim";
+ action: STATE_SET "default" 0.0;
+ target: "button_image";
+ target: "allshare_button";
+ }
+
+ program {
+ name: "button_unclick3";
+ signal: "mouse,clicked,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,click" "";
+ }
+
+ program {
+ name: "disable";
+ signal: "elm,state,disabled";
+ source: "elm";
+ action: STATE_SET "disabled" 0.0;
+ target: "button_image";
+ target: "disabler";
+ target: "allshare_button";
+ }
+ program {
+ name: "enable";
+ signal: "elm,state,enabled";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "button_image";
+ target: "disabler";
+ target: "allshare_button";
+ }
+ program {
+ name: "focused";
+ signal: "elm,action,focus";
+ source: "elm";
+ action: STATE_SET "focused" 0.0;
+ target: "allshare_button";
+ }
+
+ program {
+ name: "unfocused";
+ signal: "elm,action,unfocus";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "allshare_button";
+ }
+ program {
+ name: "button_clicked";
+ source: "over2";
+ signal: "mouse,clicked,1";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ }
+
+}
+
+group {
+ name: "elm/button/base/custom/check/default";
+ parts {
+ part {
+ name: "button_image";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ fixed: 1 1;
+ min: BUTTON_NAVIFRAME_TITLE_BUTTON_BG_MIN_MAX_INC;
+ max: BUTTON_NAVIFRAME_TITLE_BUTTON_BG_MIN_MAX_INC;
+ visible: 0;
+ }
+ description {
+ state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "focused" 0.0;
+ inherit: "default" 0.0;
+ }
+ }
+ part {
+ name: "save_button";
+ scale: 1;
+ mouse_events: 0;
+ type: IMAGE;
+ description {
+ state: "default" 0.0;
+ fixed: 1 1;
+ min: BUTTON_NAVIFRAME_TITLE_BUTTON_MIN_MAX_INC;
+ max: BUTTON_NAVIFRAME_TITLE_BUTTON_MIN_MAX_INC;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ image.normal: "button/T01_2_icon_check.png";
+ }
+ description {
+ state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ image.normal: "button/T01_2_icon_check_press.png";
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ image.normal: "button/T01_2_icon_check.png";
+ }
+ }
+ part {
+ name: "elm.text";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 0.0 0.0;}
+ color: 0 0 0 0;
+ text {
+ font: "Tizen:style=Regular";
+ size: 24;
+ min: 0 0;
+ }
+ }
+ }
+ part {
+ name: "over2";
+ type: RECT;
+ ignore_flags: ON_HOLD;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "over3";
+ type: RECT;
+ repeat_events: 1;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "disabler";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ visible: 0;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ } /* parts */
+ programs {
+ program {
+ name: "button_click";
+ signal: "mouse,down,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,press" "";
+ after: "button_click_anim";
+ }
+
+ program {
+ name: "button_click_anim";
+ action: STATE_SET "clicked" 0.0;
+ target: "button_image";
+ target: "save_button";
+ }
+
+ program {
+ name: "button_unclick";
+ signal: "mouse,up,1";
+ source: "over3";
+ action: SIGNAL_EMIT "elm,action,unpress" "";
+ after: "button_unclick_anim";
+ }
+ program {
+ name: "button_unclick_anim";
+ action: STATE_SET "default" 0.0;
+ target: "button_image";
+ target: "save_button";
+ }
+
+ program {
+ name: "button_unclick3";
+ signal: "mouse,clicked,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,click" "";
+ }
+
+ program {
+ name: "disable";
+ signal: "elm,state,disabled";
+ source: "elm";
+ action: STATE_SET "disabled" 0.0;
+ target: "button_image";
+ target: "disabler";
+ target: "save_button";
+ }
+ program {
+ name: "enable";
+ signal: "elm,state,enabled";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "button_image";
+ target: "disabler";
+ target: "save_button";
+ }
+ program {
+ name: "button_clicked";
+ source: "over2";
+ signal: "mouse,clicked,1";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ } /* programs */
+}
+
+group {
+ name: "elm/button/base/playview/naviframe/close/default";
+ parts {
+ part {
+ name: "button_image";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ fixed: 1 1;
+ min: BUTTON_NAVIFRAME_TITLE_BUTTON_BG_MIN_MAX_INC;
+ max: BUTTON_NAVIFRAME_TITLE_BUTTON_BG_MIN_MAX_INC;
+ visible: 0;
+ }
+ description {
+ state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "focused" 0.0;
+ inherit: "default" 0.0;
+ }
+ }
+ part {
+ name: "back_button";
+ type: IMAGE;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ fixed: 1 1;
+ min: BUTTON_NAVIFRAME_TITLE_BUTTON_MIN_MAX_INC;
+ max: BUTTON_NAVIFRAME_TITLE_BUTTON_MIN_MAX_INC;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ image.normal: "button/T01_2_icon_close.png";
+ }
+ description {
+ state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ image.normal: "button/T01_2_icon_close_press.png";
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ image.normal: "button/T01_2_icon_close.png";
+ }
+ }
+ part {
+ name: "elm.text";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 0.0 0.0;}
+ color: 0 0 0 0;
+ text {
+ font: "Tizen:style=Regular";
+ size: 24;
+ min: 0 0;
+ }
+ }
+ }
+
+ part {
+ name: "over2";
+ type: RECT;
+ ignore_flags: ON_HOLD;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "over3";
+ type: RECT;
+ repeat_events: 1;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "disabler";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ visible: 0;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ } /* parts */
+ programs {
+ program {
+ name: "button_click";
+ signal: "mouse,down,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,press" "";
+ after: "button_click_anim";
+ }
+
+ program {
+ name: "button_click_anim";
+ action: STATE_SET "clicked" 0.0;
+ target: "button_image";
+ target: "back_button";
+ }
+
+ program {
+ name: "button_unclick";
+ signal: "mouse,up,1";
+ source: "over3";
+ action: SIGNAL_EMIT "elm,action,unpress" "";
+ after: "button_unclick_anim";
+ }
+ program {
+ name: "button_unclick_anim";
+ action: STATE_SET "default" 0.0;
+ target: "button_image";
+ target: "back_button";
+ }
+
+ program {
+ name: "button_unclick3";
+ signal: "mouse,clicked,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,click" "";
+ }
+
+ program {
+ name: "disable";
+ signal: "elm,state,disabled";
+ source: "elm";
+ action: STATE_SET "disabled" 0.0;
+ target: "button_image";
+ target: "disabler";
+ target: "back_button";
+ }
+ program {
+ name: "enable";
+ signal: "elm,state,enabled";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "button_image";
+ target: "disabler";
+ target: "back_button";
+ }
+ program {
+ name: "button_clicked";
+ source: "over2";
+ signal: "mouse,clicked,1";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ } /* programs */
+}
+
+
+
+
+group {
+ name: "elm/button/base/custom/round_left/default";
+ parts {
+ part {
+ name: "button_image";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ fixed: 1 1;
+ min: BUTTON_ROUND_LEFT_MIN_MAX_INC;
+ max: BUTTON_ROUND_LEFT_MIN_MAX_INC;
+ visible: 0;
+ }
+ description {
+ state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "focused" 0.0;
+ inherit: "default" 0.0;
+ }
+ }
+ part {
+ name: "round_button";
+ type: IMAGE;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ fixed: 1 1;
+ min: BUTTON_ROUND_LEFT_MIN_MAX_INC;
+ max: BUTTON_ROUND_LEFT_MIN_MAX_INC;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ image { normal: "multi/T01_2_mw_control_bg_left.png"; border: 37 1 0 0;}
+ }
+ description {
+ state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ image { normal: "multi/T01_2_mw_control_bg_left_press.png"; border: 37 1 0 0;}
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ image { normal: "multi/T01_2_mw_control_bg_left.png"; border: 37 1 0 0;}
+ }
+ }
+ part {
+ name: "elm.text";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 0.0 0.0;}
+ color: 0 0 0 0;
+ text {
+ font: "Tizen:style=Regular";
+ size: 24;
+ min: 0 0;
+ }
+ }
+ }
+ part {
+ name: "elm.swallow.content";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: BUTTON_ROUND_ICON_MIN_MAX_INC;
+ max: BUTTON_ROUND_ICON_MIN_MAX_INC;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ rel1 { relative: 0.5 0.5; to: "button_image"; }
+ rel2 { relative: 0.5 0.5; to: "button_image"; }
+ }
+ }
+
+ part {
+ name: "over2";
+ type: RECT;
+ ignore_flags: ON_HOLD;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "over3";
+ type: RECT;
+ repeat_events: 1;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "disabler";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ visible: 0;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ } /* parts */
+ programs {
+ program {
+ name: "button_click";
+ signal: "mouse,down,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,press" "";
+ after: "button_click_anim";
+ }
+
+ program {
+ name: "button_click_anim";
+ action: STATE_SET "clicked" 0.0;
+ target: "button_image";
+ target: "round_button";
+ }
+
+ program {
+ name: "button_unclick";
+ signal: "mouse,up,1";
+ source: "over3";
+ action: SIGNAL_EMIT "elm,action,unpress" "";
+ after: "button_unclick_anim";
+ }
+ program {
+ name: "button_unclick_anim";
+ action: STATE_SET "default" 0.0;
+ target: "button_image";
+ target: "round_button";
+ }
+
+ program {
+ name: "button_unclick3";
+ signal: "mouse,clicked,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,click" "";
+ }
+
+ program {
+ name: "disable";
+ signal: "elm,state,disabled";
+ source: "elm";
+ action: STATE_SET "disabled" 0.0;
+ target: "button_image";
+ target: "disabler";
+ target: "round_button";
+ }
+ program {
+ name: "enable";
+ signal: "elm,state,enabled";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "button_image";
+ target: "disabler";
+ target: "round_button";
+ }
+ program {
+ name: "button_clicked";
+ source: "over2";
+ signal: "mouse,clicked,1";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ } /* programs */
+}
+
+
+group {
+ name: "elm/button/base/custom/round_right/default";
+ parts {
+ part {
+ name: "button_image";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ fixed: 1 1;
+ min: BUTTON_ROUND_RIGHT_MIN_MAX_INC;
+ max: BUTTON_ROUND_RIGHT_MIN_MAX_INC;
+ visible: 0;
+ }
+ description {
+ state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "focused" 0.0;
+ inherit: "default" 0.0;
+ }
+ }
+ part {
+ name: "round_button";
+ type: IMAGE;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ fixed: 1 1;
+ min: BUTTON_ROUND_RIGHT_MIN_MAX_INC;
+ max: BUTTON_ROUND_RIGHT_MIN_MAX_INC;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ image { normal: "multi/T01_2_mw_control_bg_right.png"; border: 1 37 0 0;}
+ }
+ description {
+ state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ image { normal: "multi/T01_2_mw_control_bg_right_press.png"; border: 1 37 0 0;}
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ image { normal: "multi/T01_2_mw_control_bg_right.png"; border: 1 37 0 0;}
+ }
+ }
+ part {
+ name: "elm.text";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 0.0 0.0;}
+ color: 0 0 0 0;
+ text {
+ font: "Tizen:style=Regular";
+ size: 24;
+ min: 0 0;
+ }
+ }
+ }
+ part {
+ name: "elm.swallow.content";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: BUTTON_ROUND_ICON_MIN_MAX_INC;
+ max: BUTTON_ROUND_ICON_MIN_MAX_INC;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ rel1 { relative: 0.5 0.5; to: "button_image"; }
+ rel2 { relative: 0.5 0.5; to: "button_image"; }
+ }
+ }
+ part {
+ name: "over2";
+ type: RECT;
+ ignore_flags: ON_HOLD;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "over3";
+ type: RECT;
+ repeat_events: 1;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "disabler";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ visible: 0;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ } /* parts */
+ programs {
+ program {
+ name: "button_click";
+ signal: "mouse,down,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,press" "";
+ after: "button_click_anim";
+ }
+
+ program {
+ name: "button_click_anim";
+ action: STATE_SET "clicked" 0.0;
+ target: "button_image";
+ target: "round_button";
+ }
+
+ program {
+ name: "button_unclick";
+ signal: "mouse,up,1";
+ source: "over3";
+ action: SIGNAL_EMIT "elm,action,unpress" "";
+ after: "button_unclick_anim";
+ }
+ program {
+ name: "button_unclick_anim";
+ action: STATE_SET "default" 0.0;
+ target: "button_image";
+ target: "round_button";
+ }
+
+ program {
+ name: "button_unclick3";
+ signal: "mouse,clicked,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,click" "";
+ }
+
+ program {
+ name: "disable";
+ signal: "elm,state,disabled";
+ source: "elm";
+ action: STATE_SET "disabled" 0.0;
+ target: "button_image";
+ target: "disabler";
+ target: "round_button";
+ }
+ program {
+ name: "enable";
+ signal: "elm,state,enabled";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "button_image";
+ target: "disabler";
+ target: "round_button";
+ }
+ program {
+ name: "button_clicked";
+ source: "over2";
+ signal: "mouse,clicked,1";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ } /* programs */
+}
+
+
+
+group {
+ name: "elm/button/base/custom/round_center/default";
+ parts {
+ part {
+ name: "button_image";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ fixed: 1 1;
+ min: BUTTON_ROUND_CENTER_MIN_MAX_INC;
+ max: BUTTON_ROUND_CENTER_MIN_MAX_INC;
+ visible: 0;
+ }
+ description {
+ state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "focused" 0.0;
+ inherit: "default" 0.0;
+ }
+ }
+ part {
+ name: "round_button";
+ type: IMAGE;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ fixed: 1 1;
+ min: BUTTON_ROUND_LEFT_MIN_MAX_INC;
+ max: BUTTON_ROUND_LEFT_MIN_MAX_INC;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ image { normal: "multi/T01_2_mw_control_bg_center.png"; border: 19 19 0 0;}
+ }
+ description {
+ state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ image { normal: "multi/T01_2_mw_control_bg_center_press.png"; border: 19 19 0 0;}
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ image { normal: "multi/T01_2_mw_control_bg_center.png"; border: 19 19 0 0;}
+ }
+ }
+ part {
+ name: "elm.text";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 0.0 0.0;}
+ color: 0 0 0 0;
+ text {
+ font: "Tizen:style=Regular";
+ size: 24;
+ min: 0 0;
+ }
+ }
+ }
+ part {
+ name: "elm.swallow.content";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ fixed: 1 1;
+ min: BUTTON_ROUND_ICON_MIN_MAX_INC;
+ max: BUTTON_ROUND_ICON_MIN_MAX_INC;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ rel1 { relative: 0.5 0.5; to: "button_image"; }
+ rel2 { relative: 0.5 0.5; to: "button_image"; }
+ }
+ }
+ part {
+ name: "over2";
+ type: RECT;
+ ignore_flags: ON_HOLD;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "over3";
+ type: RECT;
+ repeat_events: 1;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "disabler";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ visible: 0;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ } /* parts */
+ programs {
+ program {
+ name: "button_click";
+ signal: "mouse,down,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,press" "";
+ after: "button_click_anim";
+ }
+
+ program {
+ name: "button_click_anim";
+ action: STATE_SET "clicked" 0.0;
+ target: "button_image";
+ target: "round_button";
+ }
+
+ program {
+ name: "button_unclick";
+ signal: "mouse,up,1";
+ source: "over3";
+ action: SIGNAL_EMIT "elm,action,unpress" "";
+ after: "button_unclick_anim";
+ }
+ program {
+ name: "button_unclick_anim";
+ action: STATE_SET "default" 0.0;
+ target: "button_image";
+ target: "round_button";
+ }
+
+ program {
+ name: "button_unclick3";
+ signal: "mouse,clicked,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,click" "";
+ }
+
+ program {
+ name: "disable";
+ signal: "elm,state,disabled";
+ source: "elm";
+ action: STATE_SET "disabled" 0.0;
+ target: "button_image";
+ target: "disabler";
+ target: "round_button";
+ }
+ program {
+ name: "enable";
+ signal: "elm,state,enabled";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "button_image";
+ target: "disabler";
+ target: "round_button";
+ }
+ program {
+ name: "button_clicked";
+ source: "over2";
+ signal: "mouse,clicked,1";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ } /* programs */
+}
+
+
+group {
+ name: "elm/button/base/custom/flat_70_70/default";
+ parts {
+ part {
+ name: "button_image";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ fixed: 1 1;
+ min: BUTTON_FLAT_MIN_MAX_INC;
+ max: BUTTON_FLAT_MIN_MAX_INC;
+ visible: 0;
+ }
+ description {
+ state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "focused" 0.0;
+ inherit: "default" 0.0;
+ }
+ }
+ part {
+ name: "elm.text";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 0.0 0.0;}
+ color: 0 0 0 0;
+ text {
+ font: "Tizen:style=Regular";
+ size: 24;
+ min: 0 0;
+ }
+ }
+ }
+ part {
+ name: "elm.swallow.content";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: BUTTON_FLAT_MIN_MAX_INC;
+ max: BUTTON_FLAT_MIN_MAX_INC;
+ fixed: 1 1;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+ part {
+ name: "elm.swallow.content.press";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: BUTTON_FLAT_MIN_MAX_INC;
+ max: BUTTON_FLAT_MIN_MAX_INC;
+ fixed: 1 1;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ part {
+ name: "elm.swallow.content.dim";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: BUTTON_FLAT_MIN_MAX_INC;
+ max: BUTTON_FLAT_MIN_MAX_INC;
+ fixed: 1 1;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+
+ part {
+ name: "over2";
+ type: RECT;
+ ignore_flags: ON_HOLD;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "over3";
+ type: RECT;
+ repeat_events: 1;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "disabler";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ visible: 0;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ } /* parts */
+ programs {
+ program {
+ name: "button_click";
+ signal: "mouse,down,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,press" "";
+ after: "button_click_anim";
+ }
+
+ program {
+ name: "button_click_anim";
+ source: "elm";
+ script {
+ set_state(PART:"button_image", "clicked", 0.0);
+ set_state(PART:"elm.swallow.content", "hide", 0.0);
+ set_state(PART:"elm.swallow.content.press", "show", 0.0);
+ set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+ }
+ }
+
+ program {
+ name: "button_unclick";
+ signal: "mouse,up,1";
+ source: "over3";
+ action: SIGNAL_EMIT "elm,action,unpress" "";
+ after: "button_unclick_anim";
+ }
+ program {
+ name: "button_unclick_anim";
+ source: "elm";
+ script {
+ set_state(PART:"button_image", "default", 0.0);
+ set_state(PART:"elm.swallow.content", "default", 0.0);
+ set_state(PART:"elm.swallow.content.press", "default", 0.0);
+ set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+ }
+ }
+
+ program {
+ name: "button_unclick3";
+ signal: "mouse,clicked,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,click" "";
+ }
+
+ program {
+ name: "disable";
+ signal: "elm,state,disabled";
+ source: "elm";
+ script {
+ set_state(PART:"button_image", "default", 0.0);
+ set_state(PART:"disabler", "disabled", 0.0);
+ set_state(PART:"elm.swallow.content", "hide", 0.0);
+ set_state(PART:"elm.swallow.content.press", "default", 0.0);
+ set_state(PART:"elm.swallow.content.dim", "show", 0.0);
+ }
+ }
+ program {
+ name: "enable";
+ source: "elm";
+ signal: "elm,state,enabled";
+ script {
+ set_state(PART:"button_image", "default", 0.0);
+ set_state(PART:"disabler", "default", 0.0);
+ set_state(PART:"elm.swallow.content", "default", 0.0);
+ set_state(PART:"elm.swallow.content.press", "default", 0.0);
+ set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+ }
+ }
+
+ program {
+ name: "button_clicked";
+ source: "over2";
+ signal: "mouse,clicked,1";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ } /* programs */
+}
+
+//volume icon
+
+group {
+ name: "elm/button/base/custom/flat_46_46/default";
+ parts {
+ part {
+ name: "button_image";
+ type: RECT;
+ scale: 1;
+
+ description {
+ state: "default" 0.0;
+ rel1.relative:0.0 0.0;
+ rel2.relative:0.95 1.0;
+ color:255 0 0 255;
+ visible: 0;
+ }
+ description {
+ state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "focused" 0.0;
+ inherit: "default" 0.0;
+ }
+ }
+ part {
+ name: "elm.swallow.content";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 26 26;
+ max: 26 26;
+ //fixed: 1 1;
+ rel1
+ { relative: 0.0 0.0; to:"button_image";}
+ rel2
+ {relative: 1.0 1.0; to:"button_image"; }
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+ part {
+ name: "elm.swallow.content.press";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 26 26;
+ max: 26 26;
+ fixed: 1 1;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ part {
+ name: "elm.swallow.content.dim";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 26 26;
+ max: 26 26;
+ fixed: 1 1;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ part {
+ name: "elm.text";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ align: 0.5 0.5;
+ rel1 { relative: 0.0 0.7; to:"button_image";}
+ rel2 { relative: 1.0 1.0; to:"button_image";}
+ color: 255 255 255 255;
+ text {
+ font: "Tizen:style=Regular";
+ size: 10;
+ align: 0.5 0.5;
+ }
+ }
+ }
+ part {
+ name: "over2";
+ type: RECT;
+ ignore_flags: ON_HOLD;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "over3";
+ type: RECT;
+ repeat_events: 1;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "disabler";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ visible: 0;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ } /* parts */
+ programs {
+ program {
+ name: "button_click";
+ signal: "mouse,down,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,press" "";
+ after: "button_click_anim";
+ }
+
+ program {
+ name: "button_click_anim";
+ source: "elm";
+ script {
+ set_state(PART:"button_image", "clicked", 0.0);
+ set_state(PART:"elm.swallow.content", "hide", 0.0);
+ set_state(PART:"elm.swallow.content.press", "show", 0.0);
+ set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+ }
+ }
+
+ program {
+ name: "button_unclick";
+ signal: "mouse,up,1";
+ source: "over3";
+ action: SIGNAL_EMIT "elm,action,unpress" "";
+ after: "button_unclick_anim";
+ }
+ program {
+ name: "button_unclick_anim";
+ source: "elm";
+ script {
+ set_state(PART:"button_image", "default", 0.0);
+ set_state(PART:"elm.swallow.content", "default", 0.0);
+ set_state(PART:"elm.swallow.content.press", "default", 0.0);
+ set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+ }
+ }
+
+ program {
+ name: "button_unclick3";
+ signal: "mouse,clicked,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,click" "";
+ }
+
+ program {
+ name: "disable";
+ signal: "elm,state,disabled";
+ source: "elm";
+ script {
+ set_state(PART:"button_image", "default", 0.0);
+ set_state(PART:"disabler", "disabled", 0.0);
+ set_state(PART:"elm.swallow.content", "hide", 0.0);
+ set_state(PART:"elm.swallow.content.press", "default", 0.0);
+ set_state(PART:"elm.swallow.content.dim", "show", 0.0);
+ }
+ }
+ program {
+ name: "enable";
+ source: "elm";
+ signal: "elm,state,enabled";
+ script {
+ set_state(PART:"button_image", "default", 0.0);
+ set_state(PART:"disabler", "default", 0.0);
+ set_state(PART:"elm.swallow.content", "default", 0.0);
+ set_state(PART:"elm.swallow.content.press", "default", 0.0);
+ set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+ }
+ }
+
+ program {
+ name: "button_clicked";
+ source: "over2";
+ signal: "mouse,clicked,1";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ } /* programs */
+}
+
+//screen size icon
+
+group {
+ name: "elm/button/base/custom/flat_56_56/default";
+ parts {
+ part {
+ name: "button_image";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ //rel1.relative:0.7 0.0;
+ //rel2.relative:1.0 1.0;
+ color:0 0 255 255;
+ visible: 0;
+ }
+ description {
+ state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "focused" 0.0;
+ inherit: "default" 0.0;
+ }
+ }
+ part {
+ name: "elm.swallow.content";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 26 26;
+ max: 26 26;
+ //fixed: 1 1;
+ rel1
+ { relative: 0.0 0.0; to:"button_image";}
+ rel2
+ {relative: 1.0 1.0; to:"button_image"; }
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+ part {
+ name: "elm.swallow.content.press";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 26 26;
+ max: 26 26;
+ fixed: 1 1;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ part {
+ name: "elm.swallow.content.dim";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 26 26;
+ max: 26 26;
+ fixed: 1 1;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ part {
+ name: "elm.text";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ align: 0.5 0.5;
+ rel1 { relative: 0.0 0.6;to: "button_image";}
+ rel2 { relative: 1.0 1.0;to: "button_image";}
+ color: 0 166 191 255;
+ text {
+ font: "Tizen:style=Regular";
+ size: 10;
+ align: 0.5 0.5;
+ }
+ }
+ }
+ part {
+ name: "over2";
+ type: RECT;
+ ignore_flags: ON_HOLD;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "over3";
+ type: RECT;
+ repeat_events: 1;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "disabler";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ visible: 0;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ } /* parts */
+ programs {
+ program {
+ name: "button_click";
+ signal: "mouse,down,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,press" "";
+ after: "button_click_anim";
+ }
+
+ program {
+ name: "button_click_anim";
+ source: "elm";
+ script {
+ set_state(PART:"button_image", "clicked", 0.0);
+ set_state(PART:"elm.swallow.content", "hide", 0.0);
+ set_state(PART:"elm.swallow.content.press", "show", 0.0);
+ set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+ }
+ }
+
+ program {
+ name: "button_unclick";
+ signal: "mouse,up,1";
+ source: "over3";
+ action: SIGNAL_EMIT "elm,action,unpress" "";
+ after: "button_unclick_anim";
+ }
+ program {
+ name: "button_unclick_anim";
+ source: "elm";
+ script {
+ set_state(PART:"button_image", "default", 0.0);
+ set_state(PART:"elm.swallow.content", "default", 0.0);
+ set_state(PART:"elm.swallow.content.press", "default", 0.0);
+ set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+ }
+ }
+
+ program {
+ name: "button_unclick3";
+ signal: "mouse,clicked,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,click" "";
+ }
+
+ program {
+ name: "disable";
+ signal: "elm,state,disabled";
+ source: "elm";
+ script {
+ set_state(PART:"button_image", "default", 0.0);
+ set_state(PART:"disabler", "disabled", 0.0);
+ set_state(PART:"elm.swallow.content", "hide", 0.0);
+ set_state(PART:"elm.swallow.content.press", "default", 0.0);
+ set_state(PART:"elm.swallow.content.dim", "show", 0.0);
+ }
+ }
+ program {
+ name: "enable";
+ source: "elm";
+ signal: "elm,state,enabled";
+ script {
+ set_state(PART:"button_image", "default", 0.0);
+ set_state(PART:"disabler", "default", 0.0);
+ set_state(PART:"elm.swallow.content", "default", 0.0);
+ set_state(PART:"elm.swallow.content.press", "default", 0.0);
+ set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+ }
+ }
+
+ program {
+ name: "button_clicked";
+ source: "over2";
+ signal: "mouse,clicked,1";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ } /* programs */
+}
+
+
+group {
+ name: "elm/button/base/custom/flat_63_63/default";
+ parts {
+ part {
+ name: "button_image";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ fixed: 1 1;
+ min: 63 63;
+ max: 63 63;
+ visible: 0;
+ }
+ description {
+ state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "focused" 0.0;
+ inherit: "default" 0.0;
+ }
+ }
+ part {
+ name: "elm.text";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 0.0 0.0;}
+ color: 0 0 0 0;
+ text {
+ font: "Tizen:style=Regular";
+ size: 24;
+ min: 0 0;
+ }
+ }
+ }
+ part {
+ name: "elm.swallow.content";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 63 63;
+ max: 63 63;
+ fixed: 1 1;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+ part {
+ name: "elm.swallow.content.press";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 63 63;
+ max: 63 63;
+ fixed: 1 1;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ part {
+ name: "elm.swallow.content.dim";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 63 63;
+ max: 63 63;
+ fixed: 1 1;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+
+ part {
+ name: "over2";
+ type: RECT;
+ ignore_flags: ON_HOLD;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "over3";
+ type: RECT;
+ repeat_events: 1;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "disabler";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ visible: 0;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ } /* parts */
+ programs {
+ program {
+ name: "button_click";
+ signal: "mouse,down,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,press" "";
+ after: "button_click_anim";
+ }
+
+ program {
+ name: "button_click_anim";
+ source: "elm";
+ script {
+ set_state(PART:"button_image", "clicked", 0.0);
+ set_state(PART:"elm.swallow.content", "hide", 0.0);
+ set_state(PART:"elm.swallow.content.press", "show", 0.0);
+ set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+ }
+ }
+
+ program {
+ name: "button_unclick";
+ signal: "mouse,up,1";
+ source: "over3";
+ action: SIGNAL_EMIT "elm,action,unpress" "";
+ after: "button_unclick_anim";
+ }
+ program {
+ name: "button_unclick_anim";
+ source: "elm";
+ script {
+ set_state(PART:"button_image", "default", 0.0);
+ set_state(PART:"elm.swallow.content", "default", 0.0);
+ set_state(PART:"elm.swallow.content.press", "default", 0.0);
+ set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+ }
+ }
+
+ program {
+ name: "button_unclick3";
+ signal: "mouse,clicked,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,click" "";
+ }
+
+ program {
+ name: "disable";
+ signal: "elm,state,disabled";
+ source: "elm";
+ script {
+ set_state(PART:"button_image", "default", 0.0);
+ set_state(PART:"disabler", "disabled", 0.0);
+ set_state(PART:"elm.swallow.content", "hide", 0.0);
+ set_state(PART:"elm.swallow.content.press", "default", 0.0);
+ set_state(PART:"elm.swallow.content.dim", "show", 0.0);
+ }
+ }
+ program {
+ name: "enable";
+ source: "elm";
+ script {
+ set_state(PART:"button_image", "default", 0.0);
+ set_state(PART:"disabler", "default", 0.0);
+ set_state(PART:"elm.swallow.content", "default", 0.0);
+ set_state(PART:"elm.swallow.content.press", "default", 0.0);
+ set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+ }
+ }
+
+ program {
+ name: "button_clicked";
+ source: "over2";
+ signal: "mouse,clicked,1";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ } /* programs */
+}
+
+group {
+ name: "elm/button/base/custom/flat_63_85/default";
+ parts {
+ part {
+ name: "button_image";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ fixed: 1 1;
+ min: 63 85;
+ max: 63 85;
+ visible: 0;
+ }
+ description {
+ state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "focused" 0.0;
+ inherit: "default" 0.0;
+ }
+ }
+ part {
+ name: "elm.text";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 0.0 0.0;}
+ color: 0 0 0 0;
+ text {
+ font: "Tizen:style=Regular";
+ size: 24;
+ min: 0 0;
+ }
+ }
+ }
+ part {
+ name: "elm.swallow.content";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 63 63;
+ max: 63 63;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+ part {
+ name: "elm.swallow.content.press";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 63 63;
+ max: 63 63;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ part {
+ name: "elm.swallow.content.dim";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 63 63;
+ max: 63 63;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+
+ part {
+ name: "over2";
+ type: RECT;
+ ignore_flags: ON_HOLD;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "over3";
+ type: RECT;
+ repeat_events: 1;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "disabler";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ visible: 0;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ } /* parts */
+ programs {
+ program {
+ name: "button_click";
+ signal: "mouse,down,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,press" "";
+ after: "button_click_anim";
+ }
+
+ program {
+ name: "button_click_anim";
+ source: "elm";
+ script {
+ set_state(PART:"button_image", "clicked", 0.0);
+ set_state(PART:"elm.swallow.content", "hide", 0.0);
+ set_state(PART:"elm.swallow.content.press", "show", 0.0);
+ set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+ }
+ }
+
+ program {
+ name: "button_unclick";
+ signal: "mouse,up,1";
+ source: "over3";
+ action: SIGNAL_EMIT "elm,action,unpress" "";
+ after: "button_unclick_anim";
+ }
+ program {
+ name: "button_unclick_anim";
+ source: "elm";
+ script {
+ set_state(PART:"button_image", "default", 0.0);
+ set_state(PART:"elm.swallow.content", "default", 0.0);
+ set_state(PART:"elm.swallow.content.press", "default", 0.0);
+ set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+ }
+ }
+
+ program {
+ name: "button_unclick3";
+ signal: "mouse,clicked,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,click" "";
+ }
+
+ program {
+ name: "disable";
+ signal: "elm,state,disabled";
+ source: "elm";
+ script {
+ set_state(PART:"button_image", "default", 0.0);
+ set_state(PART:"disabler", "disabled", 0.0);
+ set_state(PART:"elm.swallow.content", "hide", 0.0);
+ set_state(PART:"elm.swallow.content.press", "default", 0.0);
+ set_state(PART:"elm.swallow.content.dim", "show", 0.0);
+ }
+ }
+ program {
+ name: "enable";
+ signal: "elm,state,enabled";
+ source: "elm";
+ script {
+ set_state(PART:"button_image", "default", 0.0);
+ set_state(PART:"disabler", "default", 0.0);
+ set_state(PART:"elm.swallow.content", "default", 0.0);
+ set_state(PART:"elm.swallow.content.press", "default", 0.0);
+ set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+ }
+ }
+ /*keep default state when it is focused, Only show blue border in focued state*/
+ program {
+ name: "focused";
+ signal: "elm,action,focus";
+ source: "elm";
+ script {
+ set_state(PART:"button_image", "clicked", 0.0);
+ set_state(PART:"disabler", "default", 0.0);
+ set_state(PART:"elm.swallow.content", "default", 0.0);
+ set_state(PART:"elm.swallow.content.press", "default", 0.0);
+ set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+ }
+ }
+
+ program {
+ name: "unfocused";
+ signal: "elm,action,unfocus";
+ source: "elm";
+ script {
+ set_state(PART:"button_image", "default", 0.0);
+ set_state(PART:"disabler", "default", 0.0);
+ set_state(PART:"elm.swallow.content", "default", 0.0);
+ set_state(PART:"elm.swallow.content.press", "default", 0.0);
+ set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+ }
+ }
+
+ program {
+ name: "button_clicked";
+ source: "over2";
+ signal: "mouse,clicked,1";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ } /* programs */
+}
+
+group {
+ name: "elm/button/base/custom/flat_94_60/default";
+ parts {
+ part {
+ name: "button_image";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ fixed: 1 1;
+ min: 94 60;
+ max: 94 60;
+ visible: 0;
+ }
+ description {
+ state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "focused" 0.0;
+ inherit: "default" 0.0;
+ }
+ }
+ part {
+ name: "elm.text";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 0.0 0.0;}
+ color: 0 0 0 0;
+ text {
+ font: "Tizen:style=Regular";
+ size: 24;
+ min: 0 0;
+ }
+ }
+ }
+ part {
+ name: "elm.swallow.content";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 45 45;
+ max: 45 45;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+ part {
+ name: "elm.swallow.content.press";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 45 45;
+ max: 45 45;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ part {
+ name: "elm.swallow.content.dim";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 45 45;
+ max: 45 45;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+
+ part {
+ name: "over2";
+ type: RECT;
+ ignore_flags: ON_HOLD;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "over3";
+ type: RECT;
+ repeat_events: 1;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "disabler";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ visible: 0;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ } /* parts */
+ programs {
+ program {
+ name: "button_click";
+ signal: "mouse,down,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,press" "";
+ after: "button_click_anim";
+ }
+
+ program {
+ name: "button_click_anim";
+ source: "elm";
+ script {
+ set_state(PART:"button_image", "clicked", 0.0);
+ set_state(PART:"elm.swallow.content", "hide", 0.0);
+ set_state(PART:"elm.swallow.content.press", "show", 0.0);
+ set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+ }
+ }
+
+ program {
+ name: "button_unclick";
+ signal: "mouse,up,1";
+ source: "over3";
+ action: SIGNAL_EMIT "elm,action,unpress" "";
+ after: "button_unclick_anim";
+ }
+ program {
+ name: "button_unclick_anim";
+ source: "elm";
+ script {
+ set_state(PART:"button_image", "default", 0.0);
+ set_state(PART:"elm.swallow.content", "default", 0.0);
+ set_state(PART:"elm.swallow.content.press", "default", 0.0);
+ set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+ }
+ }
+
+ program {
+ name: "button_unclick3";
+ signal: "mouse,clicked,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,click" "";
+ }
+
+ program {
+ name: "disable";
+ signal: "elm,state,disabled";
+ source: "elm";
+ script {
+ set_state(PART:"button_image", "default", 0.0);
+ set_state(PART:"disabler", "disabled", 0.0);
+ set_state(PART:"elm.swallow.content", "hide", 0.0);
+ set_state(PART:"elm.swallow.content.press", "default", 0.0);
+ set_state(PART:"elm.swallow.content.dim", "show", 0.0);
+ }
+ }
+ program {
+ name: "enable";
+ signal: "elm,state,enabled";
+ source: "elm";
+ script {
+ set_state(PART:"button_image", "default", 0.0);
+ set_state(PART:"disabler", "default", 0.0);
+ set_state(PART:"elm.swallow.content", "default", 0.0);
+ set_state(PART:"elm.swallow.content.press", "default", 0.0);
+ set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+ }
+ }
+
+ program {
+ name: "button_clicked";
+ source: "over2";
+ signal: "mouse,clicked,1";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ } /* programs */
+}
+
+
+group {
+ name: "elm/button/base/custom/flat_36_36/default";
+ parts {
+ part {
+ name: "button_image";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ fixed: 1 1;
+ min: 36 36;
+ max: 36 36;
+ visible: 0;
+ }
+ description {
+ state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "focused" 0.0;
+ inherit: "default" 0.0;
+ }
+ }
+ part {
+ name: "elm.text";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 0.0 0.0;}
+ color: 0 0 0 0;
+ text {
+ font: "Tizen:style=Regular";
+ size: 24;
+ min: 0 0;
+ }
+ }
+ }
+ part {
+ name: "elm.swallow.content";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 36 36;
+ max: 36 36;
+ fixed: 1 1;
+ align: 0.0 0.0;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+ part {
+ name: "elm.swallow.content.press";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 36 36;
+ max: 36 36;
+ fixed: 1 1;
+ align: 0.0 0.0;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ part {
+ name: "elm.swallow.content.dim";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 36 36;
+ max: 36 36;
+ fixed: 1 1;
+ align: 0.0 0.0;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+
+ part {
+ name: "over2";
+ type: RECT;
+ ignore_flags: ON_HOLD;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "over3";
+ type: RECT;
+ repeat_events: 1;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "disabler";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ visible: 0;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ } /* parts */
+ programs {
+ program {
+ name: "button_click";
+ signal: "mouse,down,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,press" "";
+ after: "button_click_anim";
+ }
+
+ program {
+ name: "button_click_anim";
+ source: "elm";
+ script {
+ set_state(PART:"button_image", "clicked", 0.0);
+ set_state(PART:"elm.swallow.content", "hide", 0.0);
+ set_state(PART:"elm.swallow.content.press", "show", 0.0);
+ set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+ }
+ }
+
+ program {
+ name: "button_unclick";
+ signal: "mouse,up,1";
+ source: "over3";
+ action: SIGNAL_EMIT "elm,action,unpress" "";
+ after: "button_unclick_anim";
+ }
+ program {
+ name: "button_unclick_anim";
+ source: "elm";
+ script {
+ set_state(PART:"button_image", "default", 0.0);
+ set_state(PART:"elm.swallow.content", "default", 0.0);
+ set_state(PART:"elm.swallow.content.press", "default", 0.0);
+ set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+ }
+ }
+
+ program {
+ name: "button_unclick3";
+ signal: "mouse,clicked,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,click" "";
+ }
+
+ program {
+ name: "disable";
+ signal: "elm,state,disabled";
+ source: "elm";
+ script {
+ set_state(PART:"button_image", "default", 0.0);
+ set_state(PART:"disabler", "disabled", 0.0);
+ set_state(PART:"elm.swallow.content", "hide", 0.0);
+ set_state(PART:"elm.swallow.content.press", "default", 0.0);
+ set_state(PART:"elm.swallow.content.dim", "show", 0.0);
+ }
+ }
+ program {
+ name: "enable";
+ signal: "elm,state,enabled";
+ source: "elm";
+ script {
+ set_state(PART:"button_image", "default", 0.0);
+ set_state(PART:"disabler", "default", 0.0);
+ set_state(PART:"elm.swallow.content", "default", 0.0);
+ set_state(PART:"elm.swallow.content.press", "default", 0.0);
+ set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+ }
+ }
+
+ program {
+ name: "button_clicked";
+ source: "over2";
+ signal: "mouse,clicked,1";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ } /* programs */
+}
+
+
+group {
+ name: "elm/button/base/custom/flat_63_78/default";
+ parts {
+ part {
+ name: "button_image";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ fixed: 1 1;
+ min: 40 40;
+ max: 40 40;
+ align: 0.5 0.5;
+ visible: 0;
+ }
+ description {
+ state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "focused" 0.0;
+ inherit: "default" 0.0;
+ }
+ }
+ part {
+ name: "elm.text";
+ type: TEXT;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 0.0 0.0;}
+ color: 0 0 0 0;
+ text {
+ font: "Tizen:style=Regular";
+ size: 24;
+ min: 0 0;
+ }
+ }
+ }
+ part {
+ name: "elm.swallow.content";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 40 40;
+ max: 40 40;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+ part {
+ name: "elm.swallow.content.press";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 40 40;
+ max: 40 40;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ part {
+ name: "elm.swallow.content.dim";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 40 40;
+ max: 40 40;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+
+ part {
+ name: "over2";
+ type: RECT;
+ mouse_events: 1;
+ repeat_events: 1;
+ ignore_flags: ON_HOLD;
+ description {
+ state: "default" 0.0;
+ min: 50 50;
+ max: 50 50;
+ rel1.to: "button_image";
+ rel2.to: "button_image";
+ align: 0.5 0.5;
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "over3";
+ type: RECT;
+ mouse_events: 1;
+ repeat_events: 1;
+ description {
+ state: "default" 0.0;
+ min: 100 100;
+ max: 100 100;
+ align: 0.5 0.5;
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "disabler";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ align: 0.5 0.5;
+ visible: 0;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ } /* parts */
+ programs {
+ program {
+ name: "button_click";
+ signal: "mouse,down,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,press" "";
+ after: "button_click_anim";
+ }
+
+ program {
+ name: "button_click_anim";
+ source: "elm";
+ script {
+ set_state(PART:"button_image", "clicked", 0.0);
+ set_state(PART:"elm.swallow.content", "hide", 0.0);
+ set_state(PART:"elm.swallow.content.press", "show", 0.0);
+ set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+ }
+ }
+
+ program {
+ name: "button_unclick";
+ signal: "mouse,up,1";
+ source: "over3";
+ action: SIGNAL_EMIT "elm,action,unpress" "";
+ after: "button_unclick_anim";
+ }
+ program {
+ name: "button_unclick_anim";
+ source: "elm";
+ script {
+ set_state(PART:"button_image", "default", 0.0);
+ set_state(PART:"elm.swallow.content", "default", 0.0);
+ set_state(PART:"elm.swallow.content.press", "default", 0.0);
+ set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+ }
+ }
+
+ program {
+ name: "button_unclick3";
+ signal: "mouse,clicked,1";
+ source: "over2";
+ action: SIGNAL_EMIT "elm,action,click" "";
+ }
+
+ program {
+ name: "disable";
+ signal: "elm,state,disabled";
+ source: "elm";
+ script {
+ set_state(PART:"button_image", "default", 0.0);
+ set_state(PART:"disabler", "disabled", 0.0);
+ set_state(PART:"elm.swallow.content", "hide", 0.0);
+ set_state(PART:"elm.swallow.content.press", "default", 0.0);
+ set_state(PART:"elm.swallow.content.dim", "show", 0.0);
+ }
+ }
+ program {
+ name: "enable";
+ signal: "elm,state,enabled";
+ source: "elm";
+ script {
+ set_state(PART:"button_image", "default", 0.0);
+ set_state(PART:"disabler", "default", 0.0);
+ set_state(PART:"elm.swallow.content", "default", 0.0);
+ set_state(PART:"elm.swallow.content.press", "default", 0.0);
+ set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+ }
+ }
+
+ program {
+ name: "button_clicked";
+ source: "over2";
+ signal: "mouse,clicked,1";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ } /* programs */
+}
+group {
+ name: "elm/button/base/back";
+ images
+ {
+ image: "button/core_icon_back.png" COMP;
+ }
+ parts {
+ part {
+ name: "bg";
+ type: RECT;
+ mouse_events: 1;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ min: 80 80;
+ max: 80 80;
+ }
+ }
+ part {
+ name: "icon";
+ type: IMAGE;
+ mouse_events: 1;
+ description {
+ state: "default" 0.0;
+ rel1 {
+ relative: 0 0;
+ to: "bg";
+ }
+ rel2 {
+ relative: 1 1;
+ to: "bg";
+ }
+ image {
+ normal: "button/core_icon_back.png";
+ }
+ }
+ }
+ } /*parts*/
+ programs {
+ program {
+ name: "buttonclicked";
+ signal: "mouse,clicked,1";
+ source: "bg";
+ action: SIGNAL_EMIT "elm,action,click" "";
+ }
+ program {
+ name: "buttontextclicked";
+ signal: "mouse,clicked,1";
+ source: "icon";
+ action: SIGNAL_EMIT "elm,action,click" "";
+ }
+ program{
+ name: "touch_snd";
+ source: "bg";
+ signal: "mouse,clicked,1";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ program{
+ name: "touch_snd1";
+ source: "icon";
+ signal: "mouse,clicked,1";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ }
+
+}
+
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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
+ }
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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
+
+
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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;
+ }
+ }
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#define GENLIST_HEIGHT_MULTILINE_SUB 38
+#define GENLIST_HEIGHT_2LINE_SUB 42
+#define GENLIST_LIST_SUB_TEXT_SIZE 32
+#define GENLIST_TREESIZE_DEFAULT 26
+#define GENLIST_PART_LIST_LINE_HEIGHT 1
+#define GENLIST_HEIGHT_2LINE_MAIN 57
+#define GENLIST_PADDING_SIZE_DEFAULT 16
+#define GENLIST_PADDING_SIZE_LEFT 62
+#define GENLIST_PADDING_SIZE_RIGHT GENLIST_PADDING_SIZE_LEFT
+#define GENLIST_PADDING_SIZE_TOP_2LINE 19
+#define GENLIST_PADDING_SIZE_BOTTOM_2LINE 19
+#define GENLIST_HEIGHT_1LINE 112 // (114 - top/bottom padding)
+#define GENLIST_PADDING_SIZE_TOP 5
+#define GENLIST_PADDING_SIZE_BOTTOM 5
+#define GENLIST_ICON_MEDIUM_SIZE 81
+#define GENLIST_BTN_01_HEIGHT 74
+
+#define GENLIST_LIST_MAIN_TEXT_SIZE 44
+
+//popup
+#define POPUP_ITEM_BG_PRESSED_BORDER_INC 8 8 8 8
+#define POPUP_ITEM_BG_LEFT_TOP_PAD_MIN_INC 4 4
+#define POPUP_ITEM_BG_RIGHT_BOTTOM_PAD_MIN_INC 4 6
+
+
+//white
+///---------------------------------------------------------------start
+#define GENLIST_LIST_BG_COLOR 248 246 239 0
+#define GENLIST_LIST_PRESS_COLOR 87 135 194 255
+#define GENLIST_LIST_DIM_COLOR 248 246 239 255
+#define GENLIST_LIST_LINE2_COLOR 204 203 199 255
+#define GENLIST_LIST_LINE1_COLOR 250 250 250 255
+#define GENLIST_LIST_MAIN_TEXT_UNREAD_COLOR 0 0 0 255
+#define GENLIST_LIST_GROUP_TEXT_COLOR 14 104 173 255
+
+#define GENLIST_LIST_SUB_TEXT_DEFAULT_COLOR_STYLE "#4F4F4FFF"
+#define GENLIST_LIST_SUB_TEXT_DEFAULT_DIM_COLOR_STYLE "#A3A99FFF"
+//#define GENLIST_LIST_TEXT_FOCUS_COLOR_STYLE "#FFFFFFFF"
+#define GENLIST_PART_MATCH_TAG_COLOR "+ color=#1382FF"
+
+
+// Genlist Text
+#define GENLIST_LIST_MAIN_TEXT_UNREAD_COLOR_STYLE "#000000FF"
+#define GENLIST_LIST_MAIN_TEXT_UNREAD_DIM_COLOR 124 123 119 255
+#define GENLIST_LIST_MAIN_TEXT_UNREAD_DIM_COLOR_STYLE "#7C7B77FF"
+#define GENLIST_LIST_MAIN_TEXT_READ_COLOR 128 128 128 255
+#define GENLIST_LIST_MAIN_TEXT_READ_DIM_COLOR 188 187 183 255
+#define GENLIST_LIST_TEXT_FOCUS_COLOR 255 255 255 255
+#define GENLIST_LIST_TEXT_FOCUS_COLOR_STYLE "#FAFAFAFF"
+
+
+//popup
+#define GENLIST_LIST_BG_POPUP_COLOR 0 0 0 0
+#define GENLIST_LIST_BG_POPUP_PRESS_COLOR 255 255 255 255
+#define GENLIST_LIST_LINE1_POPUP_COLOR 211 209 203 255
+#define GENLIST_LIST_LINE2_POPUP_COLOR 250 250 250 255
+
+
+#define PV_POPUP_TITLE_LINE_WIDTH_HEIGHT_MIN 0 4
+#define PV_GENLIST_LIST_LINE1_POPUP_COLOR 211 209 203 255
+
+//----------------------------------------------------------------end
+
+#define GENLIST_PARAM_ICON_MEDIUM \
+ min: GENLIST_ICON_MEDIUM_SIZE GENLIST_ICON_MEDIUM_SIZE; \
+ max: GENLIST_ICON_MEDIUM_SIZE GENLIST_ICON_MEDIUM_SIZE;
+
+#define GENLIST_PARAM_ICON_BTN_01 \
+ min: 0 GENLIST_BTN_01_HEIGHT; \
+ max: -1 GENLIST_BTN_01_HEIGHT;
+
+
+#define STYLE_TAG \
+ tag: "br" "\n";\
+ tag: "ps" "ps";\
+ tag: "tab" "\t";\
+ tag: "b" "+ font_weight=Bold";
+
+#define STYLE_TAG_MATCH \
+ tag: "match" GENLIST_PART_MATCH_TAG_COLOR;
+
+
+styles {
+ style { name: "genlist_style_list_sub_text_default_wrap";
+ base: "font=Tizen:style=Bold font_size="GENLIST_LIST_SUB_TEXT_SIZE" color=#FFFFFF wrap=mixed";
+ STYLE_TAG
+ STYLE_TAG_MATCH
+ }
+ style { name: "genlist_style_list_main_multiline_text_default_wrap";
+ base: "font=Tizen:style=Bold font_size="GENLIST_LIST_SUB_TEXT_SIZE" color=#FFFFFF wrap=mixed";
+ STYLE_TAG
+ STYLE_TAG_MATCH
+ }
+ style { name: "genlist_style_list_sub_multiline_text_default_wrap";
+ base: "font=Tizen:style=Light font_size="GENLIST_LIST_SUB_TEXT_SIZE" color=#FFFFFF wrap=mixed";
+ STYLE_TAG
+ STYLE_TAG_MATCH
+ }
+ style { name: "genlist_style_list_sub_text_default_dim_wrap";
+ base: "font=Tizen:style=Bold font_size="GENLIST_LIST_SUB_TEXT_SIZE" color=#FFFFFF wrap=mixed";
+ STYLE_TAG
+ STYLE_TAG_MATCH
+ }
+ style { name: "genlist_style_list_sub_text_focus_wrap";
+ base: "font=Tizen:style=Bold font_size="GENLIST_LIST_SUB_TEXT_SIZE" color=#FFFFFF wrap=mixed";
+ STYLE_TAG
+ STYLE_TAG_MATCH
+ }
+
+ style { name: "genlist_style_list_main_text_default_wrap";
+ base: "font=Tizen:style=Bold font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color=#FFFFFF wrap=mixed";
+ STYLE_TAG
+ STYLE_TAG_MATCH
+ }
+ style { name: "genlist_style_list_main_text_default_dim_wrap";
+ base: "font=Tizen:style=Bold font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color=#FFFFFF wrap=mixed";
+ STYLE_TAG
+ STYLE_TAG_MATCH
+ }
+ style { name: "genlist_style_list_main_text_focus_wrap";
+ base: "font=Tizen:style=Bold font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color=#FFFFFF wrap=mixed";
+ STYLE_TAG
+ STYLE_TAG_MATCH
+ }
+ style { name: "genlist_style_list_main_text_custom_wrap";
+ base: "font=Tizen:style=Roman font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color=#FFFFFF wrap=mixed";
+ STYLE_TAG
+ STYLE_TAG_MATCH
+ }
+ style { name: "genlist_style_list_main_1_text_default_wrap";
+ base: "font=Tizen:style=Regular font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color=#FFFFFF wrap=mixed";
+ STYLE_TAG
+ STYLE_TAG_MATCH
+ }
+ style { name: "genlist_style_list_main_1_text_default_dim_wrap";
+ base: "font=Tizen:style=Regular font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color=#FFFFFF wrap=mixed";
+ STYLE_TAG
+ STYLE_TAG_MATCH
+ }
+ style { name: "genlist_style_list_main_1_text_focus_wrap";
+ base: "font=Tizen:style=Regular font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color=#FFFFFF wrap=mixed";
+ STYLE_TAG
+ STYLE_TAG_MATCH
+ }
+}
+
+
+#define GENLIST_NAME(NAME) \
+ name: "elm/genlist/item/"NAME; \
+ alias: "elm/genlist/item_compress/"NAME; \
+ alias: "elm/genlist/tree/"NAME; \
+ alias: "elm/genlist/tree_compress/"NAME;
+
+ // | PART == HERE |
+ // ------------------
+ #define GENLIST_DESCRIPTION_ENVELOP( PART, PARAM ) \
+ description { state: "default" 0.0;\
+ rel1 { \
+ relative: 0 0; \
+ to: PART; \
+ }\
+ rel2 {\
+ relative: 1 1;\
+ to: PART; \
+ }\
+ PARAM\
+ }
+
+
+ // | top |
+ // ---------------------
+ // left | HERE | right
+ // ---------------------
+ // | bottom |
+#define GENLIST_DESCRIPTION( left, right, top, bottom, param ) \
+ description { state: "default" 0.0;\
+ rel1 { \
+ relative: 1 1; \
+ to_x: left; \
+ to_y: top; \
+ }\
+ rel2 {\
+ relative: 0 0;\
+ to_x: right;\
+ to_y: bottom;\
+ }\
+ param\
+ }
+
+
+// | top |
+// ---------------------
+// left | HERE | right
+#define GENLIST_DESCRIPTION_LRT( left, right, top, param ) \
+ description { state: "default" 0.0;\
+ align: 0.5 0;\
+ rel1 { \
+ relative: 1 1; \
+ to_x: left; \
+ to_y: top; \
+ }\
+ rel2 {\
+ relative: 0 1;\
+ to_x: right;\
+ to_y: top;\
+ }\
+ param\
+ }
+
+// ---------------------
+// left |--> HERE
+// ---------------------
+#define GENLIST_DESCRIPTION_L( left, param ) \
+ description { state: "default" 0.0;\
+ align: 0 0.5; \
+ fixed: 1 0; \
+ rel1 { \
+ relative: 1 0; \
+ to_x: left; \
+ to_y: "base"; \
+ }\
+ rel2 { \
+ relative: 1 1;\
+ to_x: left; \
+ to_y: "base"; \
+ }\
+ param\
+ }
+
+// | top |
+// -----------------
+// | HERE <--| right
+// -----------------
+// | bottom |
+#define GENLIST_DESCRIPTION_RTB( right, top, bottom, param ) \
+ description { state: "default" 0.0;\
+ align: 1 0.5;\
+ rel1 { \
+ relative: 0 1; \
+ to_x: right; \
+ to_y: top; \
+ }\
+ rel2 {\
+ relative: 0 0;\
+ to_x: right;\
+ to_y: bottom;\
+ }\
+ param\
+ }
+
+// --------------------------
+// left |--> HERE <--| right
+// --------------------------
+#define GENLIST_DESCRIPTION_LR( left, right, param ) \
+ description { state: "default" 0.0;\
+ rel1 { \
+ relative: 1 0; \
+ to_x: left; \
+ to_y: "base"; \
+ }\
+ rel2 {\
+ relative: 0 1;\
+ to_x: right;\
+ to_y: "base"; \
+ }\
+ param\
+ }
+
+// | top |
+// ---------------------
+// left |--> HERE |
+// ---------------------
+// | bottom |
+#define GENLIST_DESCRIPTION_LTB( left, top, bottom, param ) \
+ description { state: "default" 0.0;\
+ align: 0 0.5;\
+ rel1 { \
+ relative: 1 1; \
+ to_x: left; \
+ to_y: top; \
+ }\
+ rel2 {\
+ relative: 1 0;\
+ to_x: left;\
+ to_y: bottom;\
+ }\
+ param\
+ }
+
+
+#define GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS_TB_WRAP \
+ description { state: "disabled" 0.0; \
+ inherit: "default" 0.0; \
+ text.style: "genlist_style_list_sub_text_default_dim_wrap"; \
+ } \
+ description { state: "selected" 0.0; \
+ inherit: "default" 0.0; \
+ text.style: "genlist_style_list_sub_text_focus_wrap"; \
+ }
+
+#define GENLIST_PARAM_SUBITEM_DEFAULT_TB_WRAP \
+ text { \
+ min: 0 1; \
+ style: "genlist_style_list_sub_text_default_wrap"; \
+ }
+
+#define GENLIST_PARAM_MULTI_MAINITEM_DEFAULT_TB_WRAP \
+ text { \
+ min: 0 1; \
+ style: "genlist_style_list_main_multiline_text_default_wrap"; \
+ }
+
+#define GENLIST_PARAM_MULTI_SUBITEM_DEFAULT_TB_WRAP \
+ text { \
+ min: 0 1; \
+ style: "genlist_style_list_sub_multiline_text_default_wrap"; \
+ }
+
+#define GENLIST_PARAM_MAINITEM_DEFAULT_TB_WRAP \
+ text { \
+ min: 0 1; \
+ style: "genlist_style_list_main_text_default_wrap"; \
+ }
+
+#define GENLIST_PARAM_MAINITEM_CUSTOM_TB_WRAP \
+ text { \
+ min: 0 1; \
+ style: "genlist_style_list_main_text_custom_wrap"; \
+ }
+
+#define GENLIST_PARAM_MAINITEM_1TEXT_DEFAULT_TB_WRAP \
+ text { \
+ min: 0 1; \
+ style: "genlist_style_list_main_1_text_default_wrap"; \
+ }
+
+#define GENLIST_DESCRIPTION_MAINITEM_1TEXT_DEFAULT_OTHERS_TB_WRAP \
+ description { state: "disabled" 0.0; \
+ inherit: "default" 0.0; \
+ text.style: "genlist_style_list_main_1_text_default_dim_wrap"; \
+ } \
+ description { state: "selected" 0.0; \
+ inherit: "default" 0.0; \
+ text.style: "genlist_style_list_main_1_text_focus_wrap"; \
+ }
+
+
+#define GENLIST_DESCRIPTION_MAINITEM_DEFAULT_OTHERS_TB_WRAP \
+ description { state: "disabled" 0.0; \
+ inherit: "default" 0.0; \
+ text.style: "genlist_style_list_main_text_default_dim_wrap"; \
+ } \
+ description { state: "selected" 0.0; \
+ inherit: "default" 0.0; \
+ text.style: "genlist_style_list_main_text_focus_wrap"; \
+ }
+
+#define GENLIST_PART_TEXTBLOCK(NAME, DESCRIPION) \
+ part { name: NAME; \
+ scale: 1; \
+ type: TEXTBLOCK; \
+ repeat_events: 1; \
+ DESCRIPION \
+ }
+
+#define GENLIST_PART_TEXT(NAME, DESCRIPION) \
+ part { name: NAME; \
+ scale: 1; \
+ type: TEXT; \
+ repeat_events: 1; \
+ DESCRIPION \
+ }
+
+#define GENLIST_PART_SPACER(NAME, DESCRIPION) \
+ part { name: NAME; \
+ scale: 1; \
+ mouse_events: 0; \
+ type: SPACER; \
+ DESCRIPION \
+ }
+
+#define GENLIST_PART_RECT(NAME, DESCRIPION) \
+ part { name: NAME; \
+ scale: 1; \
+ type: RECT; \
+ DESCRIPION \
+ }
+
+#define GENLIST_PART_IMAGE(NAME, DESCRIPION) \
+ part { name: NAME; \
+ scale: 1; \
+ type: IMAGE; \
+ DESCRIPION \
+ }
+
+#define GENLIST_PART_ICON(NAME, DESCRIPION) \
+ part { name: NAME; \
+ scale: 1; \
+ type: SWALLOW; \
+ DESCRIPION \
+ }
+
+#define GENLIST_PART_ICON_MEDIUM_L(NAME, LEFT) \
+ GENLIST_PART_ICON(NAME, \
+ GENLIST_DESCRIPTION_LTB(LEFT, "elm.padding.top", "elm.padding.bottom", \
+ GENLIST_PARAM_ICON_MEDIUM \
+ fixed: 1 1; \
+ ) \
+ )
+
+
+// list main text
+#define GENLIST_PARAM_LISTITEM \
+ color: 8 8 8 255; \
+ text { \
+ align: 0 0.5; \
+ min: 0 1; \
+ font: "Tizen:style=Regular"; \
+ size: GENLIST_LIST_MAIN_TEXT_SIZE; \
+ }
+
+// list main text
+#define GENLIST_DESCRIPTION_LISTITEM_OTHERS \
+ description { state: "disabled" 0.0; \
+ inherit: "default" 0.0; \
+ color: GENLIST_LIST_MAIN_TEXT_UNREAD_DIM_COLOR; \
+ } \
+ description { state: "read" 0.0; \
+ inherit: "default" 0.0; \
+ color: GENLIST_LIST_MAIN_TEXT_READ_COLOR; \
+ } \
+ description { state: "read,disabled" 0.0; \
+ inherit: "default" 0.0; \
+ color: GENLIST_LIST_MAIN_TEXT_READ_DIM_COLOR; \
+ } \
+ description { state: "selected" 0.0; \
+ inherit: "default" 0.0; \
+ color: GENLIST_LIST_TEXT_FOCUS_COLOR; \
+ }
+
+#define GENLIST_PART_PADDING_T_SIZE( NAME, TOP, SIZE ) \
+ GENLIST_PART_SPACER(NAME, \
+ description { state: "default" 0.0; \
+ min: 0 SIZE; \
+ max: -1 SIZE; \
+ fixed: 0 1; \
+ align: 0.5 0; \
+ rel1 { \
+ relative: 0 1; \
+ to: TOP; \
+ } \
+ rel2 { \
+ relative: 1 1; \
+ to: TOP; \
+ } \
+ } \
+ )
+
+#define GENLIST_PART_EXPANDED_PAD \
+ part { name: "elm.swallow.pad"; \
+ type: SWALLOW; \
+ scale: 1; \
+ mouse_events: 0; \
+ description { state: "default" 0.0; \
+ visible: 0; \
+ min: 0 0; \
+ fixed: 1 0; \
+ align: 0.0 0.5; \
+ rel1.to: "base"; \
+ rel2.to: "base"; \
+ rel2.relative: 0.0 1.0; \
+ } \
+ } \
+
+#define GENLIST_PROLOG \
+ data.item: "selectraise" "on"; \
+ data.item: "treesize" 0;
+
+
+#define GENLIST_PROLOG_NORMAL \
+ GENLIST_PROLOG \
+ data.item: "treesize" GENLIST_TREESIZE_DEFAULT; \
+ data.item: "flips" "elm.flip.icon elm.flip.content"; \
+ images { \
+ image : "genlist/00_list_group_bg.png" COMP; \
+ image : "genlist/00_list_group_bg_press.png" COMP; \
+ }
+
+#define GENLIST_PART_BASE_SIZE(HEIGHT) \
+ part { name: "base"; \
+ type: RECT; \
+ mouse_events: 0; \
+ scale: 1; \
+ description { state: "default" 0.0; \
+ color: 0 0 0 0; \
+ min: 0 HEIGHT; \
+ } \
+ } \
+ part { name: "state"; \
+ type: RECT; \
+ mouse_events: 0; \
+ scale: 1; \
+ description { state: "default" 0.0; \
+ color: 0 0 0 0; \
+ } \
+ description { state: "decorate" 0.0; \
+ inherit: "default"; \
+ } \
+ description { state: "reorder" 0.0; \
+ inherit: "default"; \
+ } \
+ description { state: "decorate_reorder" 0.0; \
+ inherit: "default"; \
+ } \
+ }
+
+#define GENLIST_PART_BASE \
+ GENLIST_PART_BASE_SIZE(0)
+
+#define GENLIST_DESCRIPTION_DECORATE_PADDING \
+ description { state: "decorate" 0.0; \
+ inherit: "default" 0.0; \
+ min: 0 0; \
+ max: 0 0; \
+ }
+
+#define GENLIST_DESCRIPTION_DECORATE_REORDER_PADDING \
+ description { state: "decorate_reorder" 0.0; \
+ inherit: "default" 0.0; \
+ min: 0 0; \
+ max: 0 0; \
+ }
+
+#define GENLIST_DESCRIPTION_REORDER_PADDING \
+ description { state: "reorder" 0.0; \
+ inherit: "default" 0.0; \
+ min: 32 0; \
+ max: 32 -1; \
+ }
+
+
+#define GENLIST_PART_PADDING_LEFT \
+ GENLIST_PART_EXPANDED_PAD \
+ GENLIST_PART_SPACER("elm.padding.left", \
+ GENLIST_DESCRIPTION_L("elm.swallow.pad", \
+ min: GENLIST_PADDING_SIZE_LEFT 0; \
+ max: GENLIST_PADDING_SIZE_LEFT -1; \
+ fixed: 1 0; \
+ ) \
+ GENLIST_DESCRIPTION_DECORATE_PADDING \
+ GENLIST_DESCRIPTION_REORDER_PADDING \
+ GENLIST_DESCRIPTION_DECORATE_REORDER_PADDING \
+ )
+
+#define GENLIST_PART_PADDING_RIGHT \
+ GENLIST_PART_SPACER("elm.padding.right", \
+ description { state: "default" 0.0; \
+ min: GENLIST_PADDING_SIZE_RIGHT 0; \
+ max: GENLIST_PADDING_SIZE_RIGHT -1; \
+ fixed: 1 0; \
+ align: 1.0 0.5; \
+ rel1.to: "base"; \
+ rel2.to: "base"; \
+ rel1.relative: 1 0; \
+ } \
+ GENLIST_DESCRIPTION_DECORATE_PADDING \
+ GENLIST_DESCRIPTION_REORDER_PADDING \
+ GENLIST_DESCRIPTION_DECORATE_REORDER_PADDING \
+ )
+
+
+#define GENLIST_PART_PADDING_R( NAME, RIGHT ) \
+ GENLIST_PART_SPACER(NAME, \
+ description { state: "default" 0.0; \
+ fixed: 1 0; \
+ min: GENLIST_PADDING_SIZE_DEFAULT 0; \
+ max: GENLIST_PADDING_SIZE_DEFAULT -1; \
+ align: 1 0.5; \
+ rel1 { \
+ relative: 0 0; \
+ to_x: RIGHT; \
+ } \
+ rel2 { \
+ relative: 0 1; \
+ to_x: RIGHT; \
+ } \
+ } \
+ )
+
+#define GENLIST_PART_ICON_BTN_01_LTB(NAME, LEFT, TOP, BOTTOM) \
+ GENLIST_PART_ICON(NAME, \
+ GENLIST_DESCRIPTION_LTB(LEFT, TOP, BOTTOM,\
+ GENLIST_PARAM_ICON_BTN_01 \
+ fixed: 1 1; \
+ ) \
+ )
+
+#define GENLIST_PART_BG_NORMAL \
+ GENLIST_PART_RECT("bg_clip", \
+ mouse_events: 0; \
+ description { state: "default" 0.0; \
+ visible: 1; \
+ color: 255 255 255 255; \
+ } \
+ description { state: "decorate" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 0; \
+ } \
+ description { state: "reorder" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 0; \
+ } \
+ description { state: "decorate_reorder" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 0; \
+ } \
+ ) \
+ GENLIST_PART_RECT("bg_reorder_clip", \
+ mouse_events: 0; \
+ description { state: "default" 0.0; \
+ visible: 0; \
+ } \
+ description { state: "reorder" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 1; \
+ color: 255 255 255 255; \
+ } \
+ description { state: "decorate_reorder" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 0; \
+ } \
+ description { state: "decorate" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 0; \
+ } \
+ description { state: "reorder_flip" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 0; \
+ } \
+ ) \
+ GENLIST_PART_RECT("bg", \
+ clip_to: "bg_clip"; \
+ description { state: "default" 0.0; \
+ color: GENLIST_LIST_BG_COLOR; \
+ } \
+ description { state: "selected" 0.0; \
+ inherit: "default" 0.0; \
+ color: GENLIST_LIST_PRESS_COLOR; \
+ } \
+ description { state: "disabled" 0.0; \
+ inherit: "default" 0.0; \
+ color: GENLIST_LIST_DIM_COLOR; \
+ } \
+ ) \
+ GENLIST_PART_SPACER("bg_reorder_left", \
+ description { state: "default" 0.0; \
+ min: 16 0; \
+ max: 16 -1; \
+ fixed: 1 0; \
+ align: 0 0.5; \
+ rel2.relative: 0 1; \
+ } \
+ ) \
+ GENLIST_PART_SPACER("bg_reorder_right", \
+ description { state: "default" 0.0; \
+ min: 16 0; \
+ max: 16 -1; \
+ fixed: 1 0; \
+ align: 1.0 0.5; \
+ rel1.relative: 1 0; \
+ } \
+ ) \
+ GENLIST_PART_SPACER("bg_reorder_top", \
+ description { state: "default" 0.0; \
+ min: 0 2; \
+ max: -1 2; \
+ fixed: 0 1; \
+ align: 0.5 0; \
+ rel2.relative: 1 0; \
+ } \
+ ) \
+ GENLIST_PART_SPACER("bg_reorder_bottom", \
+ description { state: "default" 0.0; \
+ min: 0 2; \
+ max: -1 2; \
+ fixed: 0 1; \
+ align: 0.5 1.0; \
+ rel1.relative: 0 1; \
+ } \
+ ) \
+ GENLIST_PART_IMAGE("bg_reorder", \
+ clip_to: "bg_reorder_clip"; \
+ description { state: "default" 0.0; \
+ rel1 { \
+ relative: 1 1; \
+ to_x: "bg_reorder_left"; \
+ to_y: "bg_reorder_top"; \
+ } \
+ rel2 { \
+ relative: 0 0; \
+ to_x: "bg_reorder_right"; \
+ to_y: "bg_reorder_bottom"; \
+ } \
+ image { \
+ normal: "genlist/00_list_group_bg.png"; \
+ border: 17 17 8 8; \
+ border_scale: 1; \
+ } \
+ } \
+ description { state: "selected" 0.0; \
+ inherit: "default"; \
+ image { \
+ normal: "genlist/00_list_group_bg_press.png"; \
+ border: 17 17 8 8; \
+ border_scale: 1; \
+ } \
+ } \
+ description { state: "flipped" 0.0; \
+ inherit: "default"; \
+ visible: 0; \
+ } \
+ ) \
+ GENLIST_PART_RECT("sound", \
+ repeat_events: 1; /*for play_sound to check selected state*/ \
+ description { state: "default" 0.0; \
+ color: 0 0 0 0; \
+ } \
+ ) \
+
+
+#define GENLIST_PART_BOTTOM_LINE \
+ GENLIST_PART_RECT("bottom_line_clip", \
+ description { state: "default" 0.0; \
+ color: 255 255 255 255; \
+ } \
+ description { state: "decorate" 0.0; \
+ inherit: "default" 0.0; \
+ color: 0 0 0 0; \
+ } \
+ description { state: "reorder" 0.0; \
+ inherit: "default" 0.0; \
+ color: 0 0 0 0; \
+ } \
+ description { state: "decorate_reorder" 0.0; \
+ inherit: "default" 0.0; \
+ color: 0 0 0 0; \
+ } \
+ ) \
+ GENLIST_PART_RECT("bottom_line", \
+ mouse_events: 0; \
+ clip_to: "bottom_line_clip"; \
+ description { state: "default" 0.0; \
+ min: 0 GENLIST_PART_LIST_LINE_HEIGHT; \
+ max: -1 GENLIST_PART_LIST_LINE_HEIGHT; \
+ fixed: 0 1; \
+ align: 0.5 1; \
+ color: GENLIST_LIST_LINE1_COLOR; \
+ rel1.to: "bottom_line2"; \
+ rel2.to: "bottom_line2"; \
+ rel2.relative: 1 0; \
+ rel1.offset: -1 -1; \
+ } \
+ description { state: "flipped" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 0; \
+ } \
+ ) \
+ GENLIST_PART_RECT("bottom_line2", \
+ mouse_events: 0; \
+ clip_to: "bottom_line_clip"; \
+ description { state: "default" 0.0; \
+ min: 0 GENLIST_PART_LIST_LINE_HEIGHT; \
+ max: -1 GENLIST_PART_LIST_LINE_HEIGHT; \
+ fixed: 0 1; \
+ align: 0.5 1; \
+ color: GENLIST_LIST_LINE2_COLOR; \
+ rel1.to_x: "base"; \
+ rel1.relative: 0 0; \
+ rel2.to_x: "base"; \
+ rel2.relative: 1 1; \
+ rel1.offset: -1 -1; \
+ } \
+ description { state: "flipped" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 0; \
+ } \
+ )
+
+#define GENLIST_PART_PADDING_TOP_2LINE \
+ GENLIST_PART_SPACER("elm.padding.top", \
+ description { \
+ state: "default" 0.0; \
+ min: 0 GENLIST_PADDING_SIZE_TOP_2LINE; \
+ max: -1 GENLIST_PADDING_SIZE_TOP_2LINE; \
+ fixed: 0 1; \
+ rel1.to: "base"; \
+ rel2.to: "base"; \
+ rel2.relative: 1.0 0.0; \
+ align: 0.5 0.0; \
+ } \
+ description { state: "reorder" 0.0; \
+ inherit: "default" 0.0; \
+ min: 0 (GENLIST_PADDING_SIZE_TOP_2LINE+2); \
+ max: -1 (GENLIST_PADDING_SIZE_TOP_2LINE+2); \
+ } \
+ )
+
+#define GENLIST_PART_PADDING_BOTTOM_2LINE \
+ GENLIST_PART_SPACER("elm.padding.bottom", \
+ description { state: "default" 0.0; \
+ min: 0 GENLIST_PADDING_SIZE_BOTTOM_2LINE; \
+ max: -1 GENLIST_PADDING_SIZE_BOTTOM_2LINE; \
+ fixed: 0 1; \
+ rel1.to: "base"; \
+ rel2.to: "base"; \
+ rel1.relative: 0.0 1.0; \
+ align: 0.5 1.0; \
+ } \
+ description { state: "reorder" 0.0; \
+ inherit: "default" 0.0; \
+ min: 0 (GENLIST_PADDING_SIZE_BOTTOM_2LINE+2); \
+ max: -1 (GENLIST_PADDING_SIZE_BOTTOM_2LINE+2); \
+ } \
+ )
+
+#define GENLIST_PART_PADDING_TOP \
+ GENLIST_PART_SPACER("elm.padding.top", \
+ description { \
+ state: "default" 0.0; \
+ min: 0 GENLIST_PADDING_SIZE_TOP; \
+ max: -1 GENLIST_PADDING_SIZE_TOP; \
+ fixed: 0 1; \
+ rel1.to: "base"; \
+ rel2.to: "base"; \
+ rel2.relative: 1.0 0.0; \
+ align: 0.5 0.0; \
+ } \
+ description { state: "reorder" 0.0; \
+ inherit: "default" 0.0; \
+ min: 0 (GENLIST_PADDING_SIZE_TOP+2); \
+ max: -1 (GENLIST_PADDING_SIZE_TOP+2); \
+ } \
+ )
+
+#define GENLIST_PART_PADDING_BOTTOM \
+ GENLIST_PART_SPACER("elm.padding.bottom", \
+ description { state: "default" 0.0; \
+ min: 0 GENLIST_PADDING_SIZE_BOTTOM; \
+ max: -1 GENLIST_PADDING_SIZE_BOTTOM; \
+ fixed: 0 1; \
+ rel1.to: "base"; \
+ rel2.to: "base"; \
+ rel1.relative: 0.0 1.0; \
+ align: 0.5 1.0; \
+ } \
+ description { state: "reorder" 0.0; \
+ inherit: "default" 0.0; \
+ min: 0 (GENLIST_PADDING_SIZE_BOTTOM+2); \
+ max: -1 (GENLIST_PADDING_SIZE_BOTTOM+2); \
+ } \
+ )
+
+
+#define GENLIST_PART_FLIP \
+ GENLIST_PART_RECT("elm.flip.bg", \
+ mouse_events: 0; \
+ description { state: "default" 0.0;\
+ color: 0 0 0 0;\
+ } \
+ description { state: "flipped" 0.0; \
+ inherit: "default" 0.0; \
+ rel2.offset: 0 -3; \
+ color: GENLIST_LIST_BG_COLOR;\
+ }\
+ ) \
+ GENLIST_PART_SPACER("elm.flip.padding.right", \
+ description { state: "default" 0.0; \
+ min: 26 0; \
+ max: 26 -1; \
+ fixed: 1 0; \
+ align: 1 0.5; \
+ rel1.relative: 1 0; \
+ } \
+ ) \
+ GENLIST_PART_ICON("elm.flip.content", \
+ GENLIST_DESCRIPTION("elm.padding.left", "elm.flip.padding.icon.left", \
+ "elm.padding.top", "elm.padding.bottom", \
+ visible: 0; \
+ aspect: 1 1; \
+ min: 0 96; \
+ ) \
+ description { state: "flipped" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 1; \
+ } \
+ ) \
+ GENLIST_PART_PADDING_R("elm.flip.padding.icon.left", "elm.flip.icon") \
+ GENLIST_PART_ICON( "elm.flip.icon", \
+ GENLIST_DESCRIPTION_RTB("elm.flip.padding.right", \
+ "elm.padding.top", "elm.padding.bottom", \
+ visible: 0; \
+ aspect: 1 1; \
+ align: 1 0.5; \
+ max: 158 74; \
+ ) \
+ description { state: "flipped" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 1; \
+ } \
+ )
+
+#define GENLIST_PART_FOCUS \
+ GENLIST_PART_IMAGE("focus_part", \
+ mouse_events: 0; \
+ description { state: "default" 0.0; \
+ visible: 0; \
+ image { \
+ normal: "genlist/00_focus.png"; \
+ border: 6 6 6 6; \
+ border_scale: 1; \
+ } \
+ } \
+ description { state: "focused" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 1; \
+ } \
+ ) \
+ GENLIST_PART_ICON("elm.icon.focus", \
+ repeat_events: 1; \
+ GENLIST_DESCRIPTION_ENVELOP("focus_part", \
+ fixed: 1 1; \
+ ) \
+ )
+
+#define GENLIST_PART_FOCUS_REORDER \
+ GENLIST_PART_IMAGE("focus_part_reorder", \
+ mouse_events: 0; \
+ description { state: "default" 0.0; \
+ rel1 { \
+ relative: 1 1; \
+ to_x: "bg_reorder_left"; \
+ to_y: "bg_reorder_top"; \
+ } \
+ rel2 { \
+ relative: 0 0; \
+ to_x: "bg_reorder_right"; \
+ to_y: "bg_reorder_bottom"; \
+ } \
+ visible: 0; \
+ image { \
+ normal: "genlist/00_focus.png"; \
+ border: 6 6 6 6; \
+ border_scale: 1; \
+ } \
+ } \
+ description { state: "focused" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 1; \
+ } \
+ )
+
+#define GENLIST_PART_PADDING_L( NAME, LEFT ) \
+ GENLIST_PART_SPACER(NAME, \
+ description { state: "default" 0.0; \
+ fixed: 1 0; \
+ min: GENLIST_PADDING_SIZE_DEFAULT 0; \
+ max: GENLIST_PADDING_SIZE_DEFAULT -1; \
+ align: 0 0.5; \
+ rel1 { \
+ relative: 1 0; \
+ to_x: LEFT; \
+ } \
+ rel2 { \
+ relative: 1 1; \
+ to_x: LEFT; \
+ } \
+ } \
+ )
+
+
+#define GENLIST_PART_FOCUS_NORMAL \
+ GENLIST_PART_FOCUS \
+ GENLIST_PART_FOCUS_REORDER
+
+
+#define GENLIST_PROGRAM_DEFAULT( TARGET ) \
+ program { name: "default"; \
+ signal: "elm,state,default"; \
+ source: "elm"; \
+ action: STATE_SET "default" 0.0; \
+ TARGET \
+ } \
+
+#define GENLIST_PROGRAM_DISABLED( TARGET ) \
+ program { name: "enabled"; \
+ signal: "elm,state,enabled"; \
+ source: "elm"; \
+ action: STATE_SET "default" 0.0; \
+ TARGET \
+ } \
+ program { name: "disabled"; \
+ signal: "elm,state,disabled"; \
+ source: "elm"; \
+ action: STATE_SET "disabled" 0.0; \
+ TARGET \
+ }
+
+#define GENLIST_PROGRAM_FOCUS \
+ program { name: "focused"; \
+ signal: "elm,state,focused"; \
+ source: "elm"; \
+ action: STATE_SET "focused" 0.0; \
+ target: "focus_part"; \
+ } \
+ program { name: "unfocused"; \
+ signal: "elm,state,unfocused"; \
+ source: "elm"; \
+ action: STATE_SET "default" 0.0; \
+ target: "focus_part"; \
+ }
+
+#define GENLIST_PROGRAM_FOCUS_NORMAL \
+ program { name: "focused"; \
+ signal: "elm,action,focus_highlight,show"; \
+ source: "elm"; \
+ script { \
+ new st[31]; \
+ new Float:vl; \
+ get_state(PART:"bg_reorder_clip", st, 30, vl); \
+ if (!strcmp(st, "reorder") || !strcmp(st, "decorate_reorder")) \
+ set_state(PART:"focus_part_reorder", "focused", 0.0); \
+ else \
+ set_state(PART:"focus_part", "focused", 0.0); \
+ } \
+ } \
+ program { name: "unfocused"; \
+ signal: "elm,action,focus_highlight,hide"; \
+ source: "elm"; \
+ action: STATE_SET "default" 0.0; \
+ target: "focus_part_reorder"; \
+ target: "focus_part"; \
+ }
+
+#define GENLIST_PROGRAM_FOCUS_DIALOGUE \
+ program { name: "focused"; \
+ signal: "elm,state,focused"; \
+ source: "elm"; \
+ script { \
+ new st[31]; \
+ new Float:vl; \
+ get_state(PART:"bg_dialogue", st, 30, vl); \
+ if (!strcmp(st, "top") || !strcmp(st, "top_selected") || !strcmp(st, "2depth_top")) \
+ set_state(PART:"focus_part_dialogue", "top_focused", 0.0); \
+ else if (!strcmp(st, "center") || !strcmp(st, "center_selected") || !strcmp(st, "2depth_center")) \
+ set_state(PART:"focus_part_dialogue", "center_focused", 0.0); \
+ else if (!strcmp(st, "bottom") || !strcmp(st, "bottom_selected") || !strcmp(st, "2depth_bottom")) \
+ set_state(PART:"focus_part_dialogue", "bottom_focused", 0.0); \
+ else if (!strcmp(st, "default") || !strcmp(st, "selected") || !strcmp(st, "2depth")) \
+ set_state(PART:"focus_part_dialogue", "focused", 0.0); \
+ } \
+ } \
+ program { name: "unfocused"; \
+ signal: "elm,state,unfocused"; \
+ source: "elm"; \
+ action: STATE_SET "default" 0.0; \
+ target: "focus_part_dialogue"; \
+ }
+
+#define GENLIST_PROGRAM_SOUND( SRC ) \
+ program { name: "play_sound"SRC; \
+ signal: "mouse,clicked,1"; \
+ source: SRC; \
+ script { \
+ new st[31]; \
+ new Float:vl; \
+ get_state(PART:SRC, st, 30, vl); \
+ } \
+ }
+
+#define GENLIST_PROGRAM_SELECT( TARGET ) \
+ program { name: "selected"; \
+ signal: "elm,state,selected"; \
+ source: "elm"; \
+ action: STATE_SET "selected" 0.0; \
+ TARGET \
+ } \
+ program { name: "unselected"; \
+ signal: "elm,state,unselected"; \
+ source: "elm"; \
+ action: STATE_SET "default" 0.0; \
+ TARGET \
+ }
+
+#define GENLIST_PROGRAM_DECORATE_REORDER( NAME, TARGET ) \
+ program { name: "reorder_enabled"NAME; \
+ signal: "elm,state,reorder,mode_set"; \
+ source: "elm"; \
+ script { \
+ new st[31]; \
+ new Float:vl; \
+ get_state(PART:"state", st, 30, vl); \
+ if (!strcmp(st, "decorate") || !strcmp(st, "decorate_reorder")) { \
+ run_program(PROGRAM:"decorate_reorder_set"NAME); \
+ } else { \
+ run_program(PROGRAM:"reorder_set"NAME); \
+ } \
+ } \
+ } \
+ program { name: "reorder_disabled"NAME; \
+ signal: "elm,state,reorder,mode_unset"; \
+ source: "elm"; \
+ script { \
+ new st[31]; \
+ new Float:vl; \
+ get_state(PART:"state", st, 30, vl); \
+ if (!strcmp(st, "decorate") || !strcmp(st, "decorate_reorder")) { \
+ run_program(PROGRAM:"decorate_set"NAME); \
+ } else { \
+ run_program(PROGRAM:"default_set"NAME); \
+ } \
+ } \
+ } \
+ program { name: "decorate_enabled_effect"NAME; \
+ signal: "elm,state,decorate,enabled,effect";\
+ source: "elm";\
+ script { \
+ new st[31]; \
+ new Float:vl; \
+ get_state(PART:"state", st, 30, vl); \
+ if (!strcmp(st, "reorder") || !strcmp(st, "decorate_reorder")) { \
+ run_program(PROGRAM:"decorate_reorder_set"NAME); \
+ } else { \
+ run_program(PROGRAM:"decorate_set"NAME); \
+ } \
+ } \
+ }\
+ program { name: "decorate_disabled_effect"NAME;\
+ signal: "elm,state,decorate,disabled,effect";\
+ source: "elm";\
+ script { \
+ new st[31]; \
+ new Float:vl; \
+ get_state(PART:"state", st, 30, vl); \
+ if (!strcmp(st, "reorder") || !strcmp(st, "decorate_reorder")) { \
+ run_program(PROGRAM:"reorder_set"NAME); \
+ } else { \
+ run_program(PROGRAM:"default_set"NAME); \
+ } \
+ } \
+ }\
+ program { name: "decorate_enabled"NAME;\
+ signal: "elm,state,decorate,enabled";\
+ source: "elm";\
+ script { \
+ new st[31]; \
+ new Float:vl; \
+ get_state(PART:"state", st, 30, vl); \
+ if (!strcmp(st, "reorder") || !strcmp(st, "decorate_reorder")) { \
+ run_program(PROGRAM:"decorate_reorder_set"NAME); \
+ } else { \
+ run_program(PROGRAM:"decorate_set"NAME); \
+ } \
+ } \
+ }\
+ program { name: "decorate_disabled"NAME;\
+ signal: "elm,state,decorate,disabled";\
+ source: "elm";\
+ script { \
+ new st[31]; \
+ new Float:vl; \
+ get_state(PART:"state", st, 30, vl); \
+ if (!strcmp(st, "reorder") || !strcmp(st, "decorate_reorder")) { \
+ run_program(PROGRAM:"reorder_set"NAME); \
+ } else { \
+ run_program(PROGRAM:"default_set"NAME); \
+ } \
+ } \
+ } \
+ program { name: "default_set"NAME; \
+ action: STATE_SET "default" 0.0;\
+ target: "state"; \
+ TARGET \
+ } \
+ program { name: "decorate_set"NAME; \
+ action: STATE_SET "decorate" 0.0;\
+ target: "state"; \
+ TARGET \
+ } \
+ program { name: "reorder_set"NAME; \
+ action: STATE_SET "reorder" 0.0;\
+ target: "state"; \
+ TARGET \
+ } \
+ program { name: "decorate_reorder_set"NAME; \
+ action: STATE_SET "decorate_reorder" 0.0;\
+ target: "state"; \
+ TARGET \
+ }
+
+#define GENLIST_PROGRAM_FLIP \
+ program { name: "flip_enabled"; \
+ signal: "elm,state,flip,enabled"; \
+ source: "elm"; \
+ transition: DECELERATE 0.5; \
+ action: STATE_SET "flipped" 0.0; \
+ target: "elm.flip.content"; \
+ target: "elm.flip.icon"; \
+ } \
+ program { name: "flip_disabled"; \
+ signal: "elm,state,flip,disabled"; \
+ source: "elm"; \
+ transition: DECELERATE 0.5; \
+ action: STATE_SET "default" 0.0; \
+ target: "elm.flip.content"; \
+ target: "elm.flip.icon"; \
+ } \
+ program { name: "flip_enabled_bg"; \
+ signal: "elm,state,flip,enabled"; \
+ source: "elm"; \
+ action: STATE_SET "flipped" 0.0; \
+ target: "elm.flip.bg"; \
+ } \
+ program { name: "flip_disabled_bg"; \
+ signal: "elm,state,flip,disabled"; \
+ source: "elm"; \
+ action: STATE_SET "default" 0.0; \
+ target: "elm.flip.bg"; \
+ }
+
+
+#define GENLIST_PROGRAMS_NORMAL( TARGET ) \
+ programs { \
+ GENLIST_PROGRAM_DEFAULT( TARGET \
+ target: "bg"; \
+ target: "bg_clip"; \
+ target: "bottom_line"; \
+ target: "bottom_line2"; \
+ target: "bottom_line_clip"; \
+ target: "bg_reorder"; \
+ target: "elm.padding.left"; \
+ target: "elm.padding.right"; \
+ target: "elm.padding.top"; \
+ target: "elm.padding.bottom"; \
+ ) \
+ GENLIST_PROGRAM_DISABLED( TARGET \
+ target: "bg"; \
+ target: "bg_reorder"; \
+ ) \
+ GENLIST_PROGRAM_FOCUS_NORMAL \
+ GENLIST_PROGRAM_SELECT( TARGET \
+ target: "bg"; \
+ target: "bg_reorder"; \
+ ) \
+ GENLIST_PROGRAM_SOUND("bg") \
+ GENLIST_PROGRAM_SOUND("bg_reorder") \
+ GENLIST_PROGRAM_DECORATE_REORDER("normal", TARGET \
+ target: "bg_clip"; \
+ target: "bg_reorder_clip"; \
+ target: "bottom_line_clip"; \
+ target: "elm.padding.left"; \
+ target: "elm.padding.right"; \
+ target: "elm.padding.top"; \
+ target: "elm.padding.bottom"; \
+ ) \
+ GENLIST_PROGRAM_FLIP \
+ }
+
+ group { GENLIST_NAME("video.multiline/2text/default")
+ GENLIST_PROLOG_NORMAL
+ data.item: "texts" "elm.text.1 elm.text.2";
+
+ parts {
+ GENLIST_PART_BASE
+ GENLIST_PART_BG_NORMAL
+ GENLIST_PART_BOTTOM_LINE
+ GENLIST_PART_PADDING_LEFT
+ GENLIST_PART_PADDING_RIGHT
+ GENLIST_PART_PADDING_TOP_2LINE
+ GENLIST_PART_PADDING_BOTTOM_2LINE
+
+ GENLIST_PART_TEXT("elm.text.1",
+ GENLIST_DESCRIPTION_LRT("elm.padding.left", "elm.padding.right", "elm.padding.top",
+ GENLIST_PARAM_LISTITEM
+ min: 0 GENLIST_HEIGHT_2LINE_MAIN;
+ fixed: 0 1;
+ )
+ GENLIST_DESCRIPTION_LISTITEM_OTHERS
+ )
+ //GENLIST_PART_PADDING_T_SIZE("elm.padding.text1.bottom", "elm.text.1", 0)
+ GENLIST_PART_TEXTBLOCK("elm.text.2",
+ GENLIST_DESCRIPTION("elm.padding.left", "elm.padding.right", "elm.text.1", "elm.padding.bottom",
+ GENLIST_PARAM_SUBITEM_DEFAULT_TB_WRAP
+ min: 0 GENLIST_HEIGHT_MULTILINE_SUB;
+ )
+ GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS_TB_WRAP
+ )
+ GENLIST_PART_FLIP
+ GENLIST_PART_FOCUS_NORMAL
+ }
+ GENLIST_PROGRAMS_NORMAL( target: "elm.text.1"; target: "elm.text.2"; )
+ }
+
+ group { GENLIST_NAME("video.multiline/1text.2icon/default")
+ GENLIST_PROLOG_NORMAL
+ data.item: "texts" "elm.text";
+ data.item: "contents" "elm.icon.1 elm.icon.2";
+
+ parts {
+ GENLIST_PART_BASE
+ GENLIST_PART_BG_NORMAL
+ GENLIST_PART_BOTTOM_LINE
+ GENLIST_PART_PADDING_LEFT
+ GENLIST_PART_PADDING_RIGHT
+ GENLIST_PART_PADDING_TOP
+ GENLIST_PART_PADDING_BOTTOM
+
+ GENLIST_PART_ICON_BTN_01_LTB("elm.icon.2", "elm.padding.left", "elm.padding.top", "elm.padding.bottom")
+ GENLIST_PART_PADDING_L("elm.padding.icon2.right", "elm.icon.2")
+ GENLIST_PART_ICON_MEDIUM_L( "elm.icon.1", "elm.padding.icon2.right")
+ GENLIST_PART_PADDING_L("elm.padding.icon1.right", "elm.icon.1")
+ GENLIST_PART_TEXTBLOCK("elm.text",
+ GENLIST_DESCRIPTION_LR("elm.padding.icon1.right", "elm.padding.right",
+ GENLIST_PARAM_MAINITEM_1TEXT_DEFAULT_TB_WRAP
+ min: 0 GENLIST_HEIGHT_1LINE;
+ )
+ GENLIST_DESCRIPTION_MAINITEM_1TEXT_DEFAULT_OTHERS_TB_WRAP
+ )
+ GENLIST_PART_FLIP
+ GENLIST_PART_FOCUS_NORMAL
+ }
+ GENLIST_PROGRAMS_NORMAL( target: "elm.text"; target: "elm.icon.1"; target: "elm.icon.2"; )
+ }
+
+ group { GENLIST_NAME("video.multiline/2text.1icon/default")
+ GENLIST_PROLOG_NORMAL
+ data.item: "texts" "elm.text.1 elm.text.2" ;
+ data.item: "contents" "elm.icon";
+ parts {
+ GENLIST_PART_BASE
+ GENLIST_PART_BG_NORMAL
+ GENLIST_PART_BOTTOM_LINE
+ GENLIST_PART_PADDING_LEFT
+ GENLIST_PART_PADDING_RIGHT
+ GENLIST_PART_PADDING_TOP_2LINE
+ GENLIST_PART_PADDING_BOTTOM_2LINE
+
+ GENLIST_PART_ICON_MEDIUM_L( "elm.icon", "elm.padding.left")
+ GENLIST_PART_PADDING_L("elm.padding.icon.right", "elm.icon")
+ GENLIST_PART_TEXTBLOCK("elm.text.1",
+ GENLIST_DESCRIPTION_LRT("elm.padding.icon.right", "elm.padding.right", "elm.padding.top",
+ GENLIST_PARAM_MAINITEM_DEFAULT_TB_WRAP
+ min: 0 GENLIST_HEIGHT_2LINE_MAIN;
+ )
+ GENLIST_DESCRIPTION_MAINITEM_DEFAULT_OTHERS_TB_WRAP
+ )
+ GENLIST_PART_TEXTBLOCK("elm.text.2",
+ GENLIST_DESCRIPTION("elm.padding.icon.right", "elm.padding.right", "elm.text.1", "elm.padding.bottom",
+ GENLIST_PARAM_MULTI_SUBITEM_DEFAULT_TB_WRAP
+ min: 0 GENLIST_HEIGHT_MULTILINE_SUB;
+ )
+ GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS_TB_WRAP
+ )
+ GENLIST_PART_FLIP
+ GENLIST_PART_FOCUS_NORMAL
+ }
+ GENLIST_PROGRAMS_NORMAL( target: "elm.text.1"; target: "elm.text.2"; target: "elm.icon";)
+ }
+
+
+ group { GENLIST_NAME("video.multiline/1text.1icon/default")
+ GENLIST_PROLOG_NORMAL
+ data.item: "texts" "elm.text";
+ data.item: "contents" "elm.icon";
+ parts {
+ GENLIST_PART_BASE
+ GENLIST_PART_BG_NORMAL
+ GENLIST_PART_BOTTOM_LINE
+ GENLIST_PART_PADDING_LEFT
+ GENLIST_PART_PADDING_RIGHT
+ GENLIST_PART_PADDING_TOP
+ GENLIST_PART_PADDING_BOTTOM
+
+ GENLIST_PART_ICON_MEDIUM_L( "elm.icon", "elm.padding.left")
+ GENLIST_PART_PADDING_L("elm.padding.icon.right", "elm.icon")
+ GENLIST_PART_TEXTBLOCK("elm.text",
+ GENLIST_DESCRIPTION_LR("elm.padding.icon.right", "elm.padding.right",
+ GENLIST_PARAM_MAINITEM_CUSTOM_TB_WRAP
+ min: 0 GENLIST_HEIGHT_1LINE;
+ )
+ GENLIST_DESCRIPTION_MAINITEM_DEFAULT_OTHERS_TB_WRAP
+ )
+ GENLIST_PART_FLIP
+ GENLIST_PART_FOCUS_NORMAL
+ }
+ GENLIST_PROGRAMS_NORMAL( target: "elm.text"; target: "elm.icon";)
+ }
+
+ group {
+ name: "elm/genlist/item/custom.subtitle/default";
+ alias: "elm/genlist/item_compress/custom.subtitle/default";
+ alias: "elm/genlist/tree/custom.subtitle/default";
+ alias: "elm/genlist/tree_compress/custom.subtitle/default";
+ data.item: "stacking" "above";
+ data.item: "selectraise" "on";
+ data.item: "texts" "elm.text";
+ data.item: "contents" "elm.icon";
+ parts {
+ part {
+ name: "base";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ //color: 22 28 45 255;
+ color: GENLIST_LIST_BG_POPUP_COLOR;
+ min: 0 76;
+ }
+ }
+ part {
+ name: "elm.text";
+ scale: 1;
+ type: TEXT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ align: 0.0 0.0;
+ rel1 {
+ relative: 26/618 0.0; offset: 0 0; to: "base";
+ }
+ rel2 {
+ relative: 556/618 1.0; to: "base";
+ }
+ text {
+ align: 0.0 0.5;
+ min: 0 1;
+ size: 27;
+ }
+ color: 21 108 148 255;
+ }
+ }
+ part {
+ name: "elm.icon";
+ scale: 0;
+ type: SWALLOW;
+ description {
+ state: "default" 0.0;
+ align: 1.0 0.0;
+ fixed: 1 1;
+ rel1 {
+ relative: 1.0 23/76; to: "base";
+ }
+ rel2 {
+ relative: 1.0 59/76; to: "base"; offset:-26 0;
+ }
+ min: 36 36;
+ max: 36 36;
+ }
+ }
+
+ part {
+ name:"bottom.line";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ //min: PV_POPUP_TITLE_LINE_WIDTH_HEIGHT_MIN;
+ //color: PV_GENLIST_LIST_LINE1_POPUP_COLOR;
+ color: 217 217 217 255;
+ fixed: 0 1;
+ align: 0.5 1.0;
+ rel1 { relative: 0.0 1.0; to_x: "base"; to_y: "elm.icon"; offset:4 13;}
+ rel2 { relative: 1.0 1.0; to_x: "base"; to_y: "elm.icon"; offset:-5 17;}
+ }
+ }
+ }
+}/* group */
+
+
+#define GENLIST_POPUP_STYLE(NAME) \
+ group { GENLIST_NAME(NAME"/popup/default") \
+ inherit: "elm/genlist/item/"NAME"/default"; \
+ images { \
+ image: "genlist/00_popup_list_press.png" COMP; \
+ } \
+ parts { \
+ GENLIST_PART_SPACER("bg_left_top_padding", \
+ description { state: "default" 0.0; \
+ min: POPUP_ITEM_BG_LEFT_TOP_PAD_MIN_INC; \
+ fixed: 1 1; \
+ align: 0 0; \
+ rel2.relative: 0 0; \
+ } \
+ ) \
+ GENLIST_PART_SPACER("bg_right_bottom_padding", \
+ description { state: "default" 0.0; \
+ min: POPUP_ITEM_BG_RIGHT_BOTTOM_PAD_MIN_INC; \
+ fixed: 1 1; \
+ align: 1 1; \
+ rel1.relative: 1 1; \
+ } \
+ ) \
+ GENLIST_PART_IMAGE("bg", \
+ description { state: "default" 0.0; \
+ image { \
+ normal: "genlist/00_popup_list_press.png"; \
+ border: POPUP_ITEM_BG_PRESSED_BORDER_INC; \
+ border_scale: 1; \
+ } \
+ rel1 { \
+ relative: 1 1; \
+ to_x: "bg_left_top_padding"; \
+ to_y: "bg_left_top_padding"; \
+ } \
+ rel2 { \
+ relative: 0 0; \
+ to_x: "bg_right_bottom_padding"; \
+ to_y: "bg_right_bottom_padding"; \
+ } \
+ color: GENLIST_LIST_BG_POPUP_COLOR; \
+ } \
+ description { state: "disabled" 0.0; \
+ inherit: "default" 0.0; \
+ color: GENLIST_LIST_BG_POPUP_COLOR; \
+ } \
+ description { state: "selected" 0.0; \
+ inherit: "default" 0.0; \
+ color: GENLIST_LIST_BG_POPUP_PRESS_COLOR; \
+ } \
+ ) \
+ GENLIST_PART_RECT("bottom_line", \
+ description { state: "default" 0.0; \
+ color: GENLIST_LIST_LINE1_POPUP_COLOR; \
+ rel1.to: "bottom_line2"; \
+ rel2.to: "bottom_line2"; \
+ rel2.relative: 1 0; \
+ } \
+ description { state: "disabled" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 0; \
+ } \
+ ) \
+ GENLIST_PART_RECT("bottom_line2", \
+ description { state: "default" 0.0; \
+ color: GENLIST_LIST_LINE2_POPUP_COLOR; \
+ rel1.to_x: "bg"; \
+ rel2.to_x: "bg"; \
+ rel1.offset: 1 0; \
+ rel2.offset: -2 -1; \
+ } \
+ description { state: "disabled" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 0; \
+ } \
+ ) \
+ } \
+ programs { \
+ program { name : "hide_bottomline"; \
+ signal: "elm,state,bottomline,hide"; \
+ source: ""; \
+ action: STATE_SET "disabled" 0.0; \
+ target: "bottom_line"; \
+ target: "bottom_line2"; \
+ } \
+ program { name : "show_bottomline"; \
+ signal: "elm,state,bottomline,show"; \
+ source: ""; \
+ action: STATE_SET "default" 0.0; \
+ target: "bottom_line"; \
+ target: "bottom_line2"; \
+ } \
+ } \
+ }
+
+
+//popup
+GENLIST_POPUP_STYLE("video.multiline/2text")
+GENLIST_POPUP_STYLE("video.multiline/1text.2icon")
+GENLIST_POPUP_STYLE("video.multiline/1text.1icon")
+GENLIST_POPUP_STYLE("video.multiline/2text.1icon")
+
+#define POPUP_FS_OUTSIDE_PADDING "500"
+#define POPUP_FS_TITLE_AREA_HEIGHT "72"
+
+#define POPUP_FS_TITLE_LEFT_PADDING 15
+#define POPUP_FS_TITLE_RIGHT_PADDING 15
+#define POPUP_FS_TITLE_TOP_PADDING 3
+#define POPUP_FS_TITLE_BOTTOM_PADDING 3
+#define POPUP_SUBTITLE_HEIGHT 28
+
+
+#define POPUP_FS_DEFAULT_TEXT_FONT_SIZE_INC 30
+#define POPUP_FS_SUBTITLE_TEXT_FONT_SIZE_INC 21
+
+#define POPUP_FS_DEFAULT_BASE_DEFAULT_MIN_INC 480 0
+#define POPUP_FS_DEFAULT_BASE_DEFAULT_MAX_INC 480 800
+#define POPUP_FS_DEFAULT_BASE_LANDSCAPE_MIN_INC 800 0
+#define POPUP_FS_DEFAULT_BASE_LANDSCAPE_MAX_INC 800 480
+#define POPUP_FS_DEFAULT_TITLE_DEFAULT_MIN_INC 480 72
+#define POPUP_FS_DEFAULT_TITLE_DEFAULT_MAX_INC 800 72
+#define POPUP_FS_DEFAULT_BUTTON_BG_DEFAULT_MIN_INC 480 0
+#define POPUP_FS_DEFAULT_TEXT_SHADOW_COLOR_INC "#08080855"
+#define POPUP_FS_SUBTITLE_TEXT_SHADOW_COLOR_INC "#08080855"
+
+ group { name: "elm/popup/fullsrceen/default";
+ data {
+ item: "focus_highlight" "on";
+ item: "default_orient" "2"; //top, center:1 bottom:2
+ item: "title_height" POPUP_FS_TITLE_AREA_HEIGHT;
+ item: "popup_outside_pad" POPUP_FS_OUTSIDE_PADDING;
+ }
+ styles {
+ style { name: "popup_fs_title_style";
+ base: "font=Tizen:style=Regular align=center font_size="POPUP_FS_DEFAULT_TEXT_FONT_SIZE_INC" color=#FFFFFF wrap=mixed ellipsis=1.0 style=far_shadow,bottom shadow_color="POPUP_FS_DEFAULT_TEXT_SHADOW_COLOR_INC"";
+ tag: "br" "\n";
+ tag: "tab" "\t";
+ }
+ style { name: "popup_subtitle_style";
+ base: "font=Tizen:style=Regular align=center font_size="POPUP_FS_SUBTITLE_TEXT_FONT_SIZE_INC" color=#FFFFFF wrap=mixed ellipsis=1.0 style=far_shadow,bottom shadow_color="POPUP_FS_SUBTITLE_TEXT_SHADOW_COLOR_INC"";
+ tag: "br" "\n";
+ tag: "tab" "\t";
+ }
+ }
+ parts {
+ part { name: "base";
+ scale: 1;
+ type: RECT;
+ description { state: "default" 0.0;
+ min: POPUP_FS_DEFAULT_BASE_DEFAULT_MAX_INC;
+ max: POPUP_FS_DEFAULT_BASE_DEFAULT_MAX_INC;
+ fixed: 1 0;
+ }
+ description { state: "landscape" 0.0;
+ inherit: "default" 0.0;
+ min: POPUP_FS_DEFAULT_BASE_LANDSCAPE_MAX_INC;
+ max: POPUP_FS_DEFAULT_BASE_LANDSCAPE_MAX_INC;
+ }
+ }
+ part { name: "bg";
+ type: RECT;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1.to: "base";
+ rel2.to: "base";
+ color: 255 255 255 255;
+ }
+ }
+ part { name: "access.outline";
+ type: RECT;
+ repeat_events: 1;
+ description { state: "default" 0.0;
+ fixed: 1 1;
+ rel1.to: "base";
+ rel2.to: "base";
+ color: 0 0 0 0;
+ }
+ }
+ part { name: "elm.bg.title";
+ type: RECT;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: 0 0;
+ max: 0 0;
+ fixed: 1 1;
+ align: 0.5 0.0;
+ rel1.relative: 0.0 0.0;
+ rel2.relative: 0.0 1.0;
+ color: 115 167 191 255;
+ }
+ description { state: "visible" 0.0;
+ inherit: "default" 0.0;
+ min: POPUP_FS_DEFAULT_TITLE_DEFAULT_MAX_INC;
+ max: POPUP_FS_DEFAULT_TITLE_DEFAULT_MAX_INC;
+ }
+ description { state: "landscape" 0.0;
+ inherit: "default" 0.0;
+ min: POPUP_FS_DEFAULT_TITLE_DEFAULT_MAX_INC;
+ max: POPUP_FS_DEFAULT_TITLE_DEFAULT_MAX_INC;
+ }
+ }
+ part { name: "title_left_top_padding";
+ type: SPACER;
+ scale: 1;
+ description { state: "default" 0.0;
+ align: 0.0 0.0;
+ rel1.to: "elm.bg.title";
+ fixed: 1 1;
+ min: POPUP_FS_TITLE_LEFT_PADDING POPUP_FS_TITLE_TOP_PADDING;
+ max: POPUP_FS_TITLE_LEFT_PADDING POPUP_FS_TITLE_TOP_PADDING;
+ }
+ }
+ part { name: "title_right_bottom_padding";
+ type: SPACER;
+ scale: 1;
+ description { state: "default" 0.0;
+ align: 1.0 1.0;
+ rel2.to: "elm.bg.title";
+ fixed: 1 1;
+ min: POPUP_FS_TITLE_RIGHT_PADDING POPUP_FS_TITLE_BOTTOM_PADDING;
+ max: POPUP_FS_TITLE_RIGHT_PADDING POPUP_FS_TITLE_BOTTOM_PADDING;
+ }
+ }
+ part { name: "elm.text.title";
+ type: TEXTBLOCK;
+ scale:1;
+ description { state: "default" 0.0;
+ fixed: 1 1;
+ text {
+ style: "popup_fs_title_style";
+ size: POPUP_FS_DEFAULT_TEXT_FONT_SIZE_INC;
+ }
+ rel1 {
+ relative: 1.0 1.0;
+ to: "title_left_top_padding";
+ }
+ rel2 {
+ relative: 0.0 0.0;
+ to: "title_right_bottom_padding";
+ }
+ }
+ description { state: "subtitle_visible" 0.0;
+ inherit: "default" 0.0;
+ rel2 {
+ relative: 1.0 0.0;
+ to: "elm.text.subtitle";
+ }
+ }
+ }
+
+ part { name: "elm.text.subtitle";
+ type: TEXTBLOCK;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: 0 POPUP_SUBTITLE_HEIGHT;
+ max: -1 POPUP_SUBTITLE_HEIGHT;
+ text.style: "popup_subtitle_style";
+ rel1 {
+ relative: 1.0 0.0;
+ to_x: "title_left_top_padding";
+ to_y: "title_right_bottom_padding";
+ }
+ rel2 {
+ relative: 0.0 0.0;
+ to: "title_right_bottom_padding";
+ }
+ align: 0.5 1.0;
+ fixed: 1 1;
+ visible: 0;
+ }
+ description { state: "subtitle_visible" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ part { name: "access.title";
+ type: RECT;
+ repeat_events: 1;
+ description { state: "default" 0.0;
+ rel1.to: "elm.bg.title";
+ rel2.to: "elm.bg.title";
+ color: 0 0 0 0;
+ }
+ }
+ part { name: "elm.swallow.content";
+ type: SWALLOW;
+ scale: 1;
+ description { state: "default" 0.0;
+ fixed: 1 0;
+ rel1.to: "base";
+ rel2.to: "base";
+ }
+ description { state: "show_title_area" 0.0;
+ inherit: "default" 0.0;
+ rel1 {
+ relative: 0.0 1.0;
+ to_x: "base";
+ to_y: "elm.bg.title";
+ }
+ rel2.to: "base";
+ }
+ description { state: "show_action_area" 0.0;
+ inherit: "default" 0.0;
+ rel1.to: "base";
+ rel2 {
+ relative: 1.0 0.0;
+ to_x: "base";
+ to_y: "elm.swallow.action_area.bg";
+ }
+ }
+ description { state: "show_action_title_area" 0.0;
+ inherit: "default" 0.0;
+ rel1 {
+ relative: 0.0 1.0;
+ to_x: "base";
+ to_y: "elm.bg.title";
+ }
+ rel2 {
+ relative: 1.0 0.0;
+ to_x: "base";
+ to_y: "elm.swallow.action_area.bg";
+ }
+ }
+ }
+ part { name: "access.body";
+ type: RECT;
+ repeat_events: 1;
+ description { state: "default" 0.0;
+ fixed: 1 1;
+ rel1.to: "elm.swallow.content";
+ rel2.to: "elm.swallow.content";
+ color: 0 0 0 0;
+ }
+ }
+ part { name: "elm.swallow.action_area.bg";
+ type: RECT;
+ scale : 1;
+ description { state: "default" 0.0;
+ fixed : 1 1;
+ align: 0.5 1.0;
+ visible: 0;
+ rel1 {
+ relative: 0.0 1.0;
+ to: "base";
+ }
+ rel2.to: "base";
+ }
+ description { state: "visible" 0.0;
+ inherit: "default" 0.0;
+ min: POPUP_FS_DEFAULT_BUTTON_BG_DEFAULT_MIN_INC;
+ visible: 1;
+ color: 245 245 242 255;
+ }
+ }
+ part { name: "elm.swallow.action_area";
+ type: SWALLOW;
+ scale : 1;
+ description { state: "default" 0.0;
+ rel1.to: "elm.swallow.action_area.bg";
+ rel2.to: "elm.swallow.action_area.bg";
+ }
+ }
+ }
+ programs {
+ program { name: "show_subtitle";
+ signal: "elm,state,subtitle,text,visible";
+ source: "elm";
+ action: STATE_SET "subtitle_visible" 0.0;
+ target: "elm.text.title";
+ target: "elm.text.subtitle";
+ }
+ program { name: "hide_subtitle";
+ signal: "elm,state,subtitle,text,hidden";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "elm.text.title";
+ target: "elm.text.subtitle";
+ }
+ program { name: show_title_area;
+ signal: "elm,state,title_area,visible";
+ source: "elm";
+ script {
+ new st[31];
+ new Float:vl;
+ get_state(PART:"elm.swallow.action_area.bg", st, 30, vl);
+ if (!strcmp(st, "visible"))
+ set_state(PART:"elm.swallow.content", "show_action_title_area", 0.0);
+ else
+ set_state(PART:"elm.swallow.content", "show_title_area", 0.0);
+ set_state(PART:"elm.bg.title", "visible", 0.0);
+ }
+ }
+ program { name: hide_title_area;
+ signal: "elm,state,title_area,hidden";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ script {
+ new st[31];
+ new Float:vl;
+ get_state(PART:"elm.swallow.action_area.bg", st, 30, vl);
+ if ((!strcmp(st, "visible")) || (!strcmp(st, "landscape_visible")))
+ set_state(PART:"elm.swallow.content", "show_action_area", 0.0);
+ else
+ set_state(PART:"elm.swallow.content", "default", 0.0);
+ set_state(PART:"elm.bg.title", "default", 0.0);
+ }
+ }
+ program { name: show_action_area;
+ signal: "elm,state,action_area,visible";
+ source: "elm";
+ script {
+ new st[31];
+ new Float:vl;
+ get_state(PART:"elm.bg.title", st, 30, vl);
+ if ((!strcmp(st, "visible")))
+ set_state(PART:"elm.swallow.content", "show_action_title_area", 0.0);
+ else
+ set_state(PART:"elm.swallow.content", "show_action_area", 0.0);
+ set_state(PART:"elm.swallow.action_area.bg", "visible", 0.0);
+ }
+ }
+ program { name: hide_action_area;
+ signal: "elm,state,action_area,hidden";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ script {
+ new st[31];
+ new Float:vl;
+ get_state(PART:"elm.bg.title", st, 30, vl);
+ if ((!strcmp(st, "visible")))
+ set_state(PART:"elm.swallow.content", "show_title_area", 0.0);
+ else
+ set_state(PART:"elm.swallow.content", "default", 0.0);
+ set_state(PART:"elm.swallow.action_area.bg", "default", 0.0);
+ }
+ }
+ program { name: "change_to_landscape";
+ action: STATE_SET "landscape" 0.0;
+ target: "base";
+ target: "elm.bg.title";
+ after: "orientation_change";
+ }
+ program { name: "title_change_to_portrait";
+ action: STATE_SET "visible" 0.0;
+ target: "elm.bg.title";
+ }
+ program { name: "orientation_change";
+ action: SIGNAL_EMIT "elm,state,orientation,changed" "";
+ after: "title_change_to_portrait";
+ }
+ program { name: "change_to_portrait";
+ action: STATE_SET "default" 0.0;
+ target: "base";
+ after: "orientation_change";
+ }
+ program { name: "landscape_mode";
+ source: "elm";
+ signal: "elm,state,orient,90";
+ after: "change_to_landscape";
+ }
+ program { name: "landscape_mode2";
+ source: "elm";
+ signal: "elm,state,orient,270";
+ after: "change_to_landscape";
+ }
+ program { name: "portrait_mode";
+ source: "elm";
+ signal: "elm,state,orient,0";
+ after: "change_to_portrait";
+ }
+ program { name: "portrait_mode2";
+ source: "elm";
+ signal: "elm,state,orient,180";
+ after: "change_to_portrait";
+ }
+ } /* end of programs */
+ }
+ group { name: "elm/popup/fullsrceen/notitle/default";
+ data {
+ item: "focus_highlight" "on";
+ item: "default_orient" "2"; //top, center:1 bottom:2
+ item: "title_height" POPUP_FS_TITLE_AREA_HEIGHT;
+ item: "popup_outside_pad" POPUP_FS_OUTSIDE_PADDING;
+ }
+ parts {
+ part { name: "base";
+ scale: 1;
+ type: RECT;
+ description { state: "default" 0.0;
+ min: POPUP_FS_DEFAULT_BASE_DEFAULT_MAX_INC;
+ max: POPUP_FS_DEFAULT_BASE_DEFAULT_MAX_INC;
+ fixed: 1 0;
+ }
+ description { state: "landscape" 0.0;
+ inherit: "default" 0.0;
+ min: POPUP_FS_DEFAULT_BASE_LANDSCAPE_MAX_INC;
+ max: POPUP_FS_DEFAULT_BASE_LANDSCAPE_MAX_INC;
+ }
+ }
+ part { name: "bg";
+ type: RECT;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1.to: "base";
+ rel2.to: "base";
+ color: 255 255 255 255;
+ }
+ }
+
+ part { name: "elm.bg.title";
+ type: RECT;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: 0 0;
+ max: 0 0;
+ fixed: 1 1;
+ align: 0.5 0.0;
+ rel1.relative: 0.0 0.0;
+ rel2.relative: 0.0 1.0;
+ visible: 0;
+ }
+ }
+ part { name: "elm.swallow.content";
+ type: SWALLOW;
+ scale: 1;
+
+ description { state: "default" 0.0;
+ rel1 {
+ relative: 0.0 1.0;
+ to_x: "base";
+ to_y: "elm.bg.title";
+ }
+ rel2.to: "base";
+ }
+ }
+ }
+
+ programs {
+ program { name: "change_to_landscape";
+ action: STATE_SET "landscape" 0.0;
+ target: "base";
+ after: "orientation_change";
+ }
+ program { name: "orientation_change";
+ action: SIGNAL_EMIT "elm,state,orientation,changed" "";
+ }
+ program { name: "change_to_portrait";
+ action: STATE_SET "default" 0.0;
+ target: "base";
+ after: "orientation_change";
+ }
+ program { name: "landscape_mode";
+ source: "elm";
+ signal: "elm,state,orient,90";
+ after: "change_to_landscape";
+ }
+ program { name: "landscape_mode2";
+ source: "elm";
+ signal: "elm,state,orient,270";
+ after: "change_to_landscape";
+ }
+ program { name: "portrait_mode";
+ source: "elm";
+ signal: "elm,state,orient,0";
+ after: "change_to_portrait";
+ }
+ program { name: "portrait_mode2";
+ source: "elm";
+ signal: "elm,state,orient,180";
+ after: "change_to_portrait";
+ }
+ } /* end of programs */
+ }
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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;
+
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+ group {
+ name: "elm/layout/application/play_view";
+ parts {
+ part {
+ name: "elm.swallow.bg";
+ type: SWALLOW;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 255;
+ }
+ }
+ part {
+ name: "elm.swallow.event";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: 0.0 0.0; }
+ rel2 { relative: 1.0 1.0; }
+ }
+ }
+ part {
+ name: "elm.swallow.content";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ }
+ }
+ } /* parts */
+} /* group */
+
+ group {
+ name: "elm/layout/application/multi_view";
+ parts {
+ part {
+ name: "elm.swallow.bg";
+ type: SWALLOW;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 255;
+ }
+ }
+ part {
+ name: "elm.swallow.content";
+ type: SWALLOW;
+ mouse_events: 1;
+ repeat_events : 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ }
+ }
+ } /* parts */
+} /* group */
+group {
+ name: "elm/layout/application/detail_view";
+ parts {
+ part {
+ name: "elm.swallow.bg";
+ type: SWALLOW;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 255;
+ }
+ }
+ part {
+ name: "elm.swallow.event";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: 0.0 0.0; }
+ rel2 { relative: 1.0 1.0; }
+ }
+ }
+ part {
+ name: "elm.swallow.content";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ }
+ }
+ } /* parts */
+} /* group */
+
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#define NAVIFRAME_TITLE_BG_COLOR_INC 0 0 0 0
+#define NAVIFRAME_TOOLBAR_BG_COLOR_INC 0 0 0 0
+#define NAVIFRAME_TITLE_TOP_PADDING_INC 0 16
+#define NAVIFRAME_TITLE_H_INC 50
+#define NAVIFRAME_TOOLBAR_HEIGHT_INC 0
+#define NAVIFRAME_TITLE_FUNC_BTN_SIZE_INC 63 63
+
+#define NAVIFRAME_PADDING_INC 20 0
+#define NAVIFRAME_PADDING2_INC 6 0
+#define NAVIFRAME_PADDING3_INC 8 0
+
+#define NAVIFRAME_BOTTOM_TEXT_PADDING_INC 0 11
+#define NAVIFRAME_BOTTOM_RIGHT_PADDING_INC 26 11
+#define NAVIFRAME_BOTTOM_PADDING_INC 0 10
+
+#define NAVIFRAME_VIEW_TRANS_TIME 0.3
+
+#define NAVIFRAME_TOP_LINE_COLOR 0 0 0 0
+
+//tag buddy
+#define NAVIFRAME_TAG_TOP_PADDING 116
+#define NAVIFRAME_TAG_RIGHT_PADDING 26
+#define NAVIFRAME_TAG_LEFT_PADDING 26
+#define NAVIFRAME_TAG_HEIGHT 192
+
+
+group {
+ name:"elm/naviframe/item/playview/basic/default";
+ alias:"elm/naviframe/item/playview/1line/default";
+ script {
+ public tbar_bg = 0; //Toolbar BG Show call count
+ public buttons_visible = 0; //when both buttons are visible
+ public toolbar_buttons_visible = 0; //when both toolbar buttons are visible
+ }
+ parts {
+ part {
+ name: "base";
+ type: RECT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ }
+ description {
+ state: "left" 0.0;
+ inherit: "default" 0.0;
+ rel1.relative: -1.0 0.0;
+ rel2.relative: 0.0 1.0;
+ }
+ description {
+ state: "right" 0.0;
+ inherit: "default" 0.0;
+ rel1.relative: 1.0 0.0;
+ rel2.relative: 2.0 1.0;
+ }
+ }
+
+ part {
+ name: "title_swallow";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 0;
+ align: 0.0 1.0;
+ fixed: 0 1;
+ visible: 1;
+ rel1 { relative: 0.0 0.0; to: "base"; }
+ rel2 { relative: 1.0 0.0; to: "base"; }
+ color: NAVIFRAME_TITLE_BG_COLOR_INC;
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ min: 0 NAVIFRAME_TITLE_H_INC;
+ fixed: 0 1;
+ rel1 { relative: 0.0 0.0; to: "base"; }
+ rel2 { relative: 1.0 0.0; to: "base"; }
+ }
+ }
+
+ part {
+ name: "title_bg";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 NAVIFRAME_TITLE_H_INC;
+ align: 0.0 0.0;
+ fixed: 0 1;
+ visible: 1;
+ rel1 { relative: 0.0 0.0; to: "title_swallow"; }
+ rel2 { relative: 1.0 0.0; to: "title_swallow"; }
+ color: NAVIFRAME_TITLE_BG_COLOR_INC;
+ }
+/*
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ min: 0 0;
+ fixed: 0 1;
+ rel1 { relative: 0.0 0.0; to: "base"; }
+ rel2 { relative: 1.0 0.0; to: "base"; }
+ }
+*/
+ }
+ part {
+ name: "title_line";
+ type: RECT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ min: 0 2;
+ align: 0.0 0.0;
+ fixed: 0 1;
+ visible: 1;
+ rel1 { relative: 0.0 0.0; to: "title_swallow"; }
+ rel2 { relative: 1.0 0.0; to: "title_swallow"; }
+ color: NAVIFRAME_TOP_LINE_COLOR;
+ }
+/*
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ min: 0 0;
+ }
+*/
+ }
+ part {
+ name: "title_clip";
+ type: RECT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ rel1 { to: "title_bg"; }
+ rel2 { to: "title_bg"; }
+ }
+ }
+ part {
+ name: "top_padding";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: NAVIFRAME_TITLE_TOP_PADDING_INC;
+ fixed: 0 1;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 0.0; to: "title_bg"; }
+ rel2 { relative: 1.0 0.0; to: "title_bg"; }
+ visible: 0;
+ }
+ }/*
+ part {
+ name: "padding_center_text1";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ min: NAVIFRAME_PADDING_INC;
+ visible: 0;
+ fixed: 1 0;
+ align: 0.0 0.0;
+ rel1 { relative: 1.0 0.0; to: "title_left_btn"; }
+ rel2 { relative: 1.0 1.0; to: "title_left_btn"; }
+ }
+ }*/
+ part {
+ name: "padding_center_text1";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 45 0;
+ fixed: 1 0;
+ align: 0.0 0.5;
+ rel1 { relative: 0.0 0.0; to: "title_bg"; }
+ rel2 { relative: 0.0 1.0; to: "title_bg"; }
+ visible: 0;
+ }
+ }
+
+ part {
+ name: "elm.swallow.content";
+ type: SWALLOW;
+ scale: 1;
+ repeat_events: 0;
+ clip_to: "content_clip";
+ description {
+ state: "default" 0.0;
+ align: 0.0 0.0;
+ // _NATIVE_BUFFER_SYNC
+ rel1 { relative: 0.0 0.0; to: "base"; }
+ rel2 { relative: 1.0 1.0; to: "base"; }
+ /*
+ rel1.relative: 0.0 1.0;
+ rel1.to_x: "base";
+ rel1.to_y: "title_bg";
+ rel2.relative: 1.0 0.0;
+ rel2.to_x: "base";
+ rel2.to_y: "toolbar_bg";
+ */
+ }
+ description {
+ state: "sip_visible" 0.0;
+ inherit: "default" 0.0;
+ rel2.relative: 1.0 1.0;
+ rel2.to: "base";
+ }
+ }
+ part {
+ name: "content_clip";
+ type: RECT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ rel1.to: "elm.swallow.content";
+ rel2.to: "elm.swallow.content";
+ }
+ }
+ part {
+ name: "padding_center_text2";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 45 0;
+ fixed: 1 0;
+ align: 1.0 0.5;
+ rel1 { relative: 1.0 0.0; to: "title_bg"; }
+ rel2 { relative: 1.0 1.0; to: "title_bg"; }
+ visible: 0;
+ }
+ }
+ part {
+ name: "padding_bottom_text";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: NAVIFRAME_BOTTOM_TEXT_PADDING_INC;
+ fixed: 0 1;
+ align: 0.0 1.0;
+ rel1 { relative: 0.0 1.0; to: "title_bg"; }
+ rel2 { relative: 1.0 1.0; to: "title_bg"; }
+ visible: 0;
+ }
+ }
+ part {
+ name: "elm.text.title";
+ type: TEXT;
+ effect: FAR_SHADOW BOTTOM;
+ scale: 1;
+ repeat_events: 1;
+ clip_to: "title_clip";
+ description {
+ state: "default" 0.0;
+ text {
+ min: 0 0;
+ max: 1 0;
+ size: 18;
+ }
+/* chageable GUI
+ color: VIDEO_TITLE_FONT_DEFAULT_COLOR;
+ color3: 0 0 0 255;
+ align: 0.5 0.5;
+*/
+ color: 240 240 240 255;
+
+ fixed: 1 1;
+ rel1 { relative: 1.0 1.0; to_x: "padding_center_text1"; to_y: "top_padding"; }
+ rel2 { relative: 0.0 0.0; to_x: "padding_center_text2"; to_y: "padding_bottom_text"; }
+ }
+ }
+ part {
+ name: "access.title";
+ type: RECT;
+ repeat_events: 1;
+ description {
+ state: "default" 0.0;
+ fixed: 1 1;
+ rel1.to: "title_bg";
+ rel2.to: "title_bg";
+ color: 0 0 0 0;
+ }
+ }
+
+ part {
+ name: "padding_before_text";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ align: 1.0 0.5;
+ rel1 { relative: 0.0 0.0; to: "elm.text.title"; }
+ rel2 { relative: 0.0 1.0; to: "elm.text.title"; }
+ fixed: 1 0;
+ min: NAVIFRAME_PADDING_INC;
+ visible: 0;
+ }
+ }
+
+ part {
+ name: "click_event_area";
+ type: RECT;
+ ignore_flags: ON_HOLD;
+ repeat_events: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { to: "title_bg"; }
+ rel2 { to: "title_bg"; }
+ visible: 0;
+ }
+ }
+
+ part {
+ name: "title_btns_padding";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: NAVIFRAME_PADDING2_INC;
+ fixed: 1 1;
+ align: 0.0 0.5;
+ visible: 0;
+ rel1 { relative: 0.0 0.0; to: "title_bg"; }
+ rel2 { relative: 0.0 1.0; to: "title_bg"; }
+ }
+ }
+
+ part {
+ name: "bottom_right_padding";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 0;
+ fixed: 1 1;
+ align: 1.0 1.0;
+ rel1 { relative: 1.0 1.0; to: "title_bg"; }
+ rel2 { relative: 1.0 1.0; to: "title_bg"; }
+ visible: 0;
+ }
+ description {
+ state: "visible" 0.0;
+ inherit: "default" 0.0;
+ min: NAVIFRAME_BOTTOM_RIGHT_PADDING_INC;
+ }
+ }
+
+ part {
+ name: "title_left_btn";
+ type: SWALLOW;
+ scale: 1;
+ clip_to: "title_clip";
+ description {
+ state: "default" 0.0;
+ max: NAVIFRAME_TITLE_FUNC_BTN_SIZE_INC;
+ fixed: 1 1;
+ align: 0.0 0.5;
+ rel1 { relative: 0.5 0.0; to: "title_btns_padding"; }
+ rel2 { relative: 0.5 1.0; to: "title_btns_padding"; }
+ }
+ }
+ part {
+ name: "title_right_btn";
+ type: SWALLOW;
+ scale: 1;
+ clip_to: "title_clip";
+ description {
+ state: "default" 0.0;
+ max: NAVIFRAME_TITLE_FUNC_BTN_SIZE_INC;
+ align: 1 0.5;
+ fixed: 1 1;
+ rel1 { relative: 1.0 1.0; to_x: "title_bg"; to_y: "top_padding"; }
+ rel2 { relative: 0.0 0.0; to: "bottom_right_padding"; }
+ }
+ }
+ part {
+ name: "toolbar_bg";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 0;
+ max: 999999 0;
+ fixed: 0 1;
+ align: 0.0 1.0;
+ visible: 0;
+ rel1 { to: "base"; }
+ rel2 { to: "base"; }
+ color: NAVIFRAME_TOOLBAR_BG_COLOR_INC;
+ }
+ description {
+ state: "visible" 0.0;
+ inherit: "default" 0.0;
+ min: 0 NAVIFRAME_TOOLBAR_HEIGHT_INC;
+ max: 999999 NAVIFRAME_TOOLBAR_HEIGHT_INC;
+ visible: 1;
+ }
+ description {
+ state: "sip_visible" 0.0;
+ inherit: "default" 0.0;
+ align: 0.0 0.0;
+ min: 1 NAVIFRAME_TITLE_H_INC;
+ rel1 { to: "title_bg"; }
+ rel2 { to: "title_bg"; }
+ visible: 1;
+ }
+ }
+ part {
+ name: "pv.tag.left.padding";
+ type: SPACER;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: NAVIFRAME_TAG_LEFT_PADDING 0;
+ fixed: 1 0;
+ align: 0.0 0.5;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 0.0 1.0;}
+ }
+ }
+ part {
+ name: "pv.tag.right.padding";
+ type: SPACER;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: NAVIFRAME_TAG_RIGHT_PADDING 0;
+ fixed: 1 0;
+ align: 1.0 0.5;
+ rel1 { relative: 1.0 0.0;}
+ rel2 { relative: 1.0 1.0;}
+ }
+ }
+ part {
+ name: "pv.tag.top.padding";
+ type: SPACER;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 NAVIFRAME_TAG_TOP_PADDING;
+ fixed: 0 1;
+ align: 0.5 0.0;
+ rel1 { relative: 1.0 0.0; to: "pv.tag.left.padding";}
+ rel2 { relative: 0.0 0.0; to: "pv.tag.right.padding";}
+ }
+ }
+ part {
+ name: "pv.tag.bg";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 0 NAVIFRAME_TAG_HEIGHT;
+ fixed: 0 1;
+ align: 0.5 0.0;
+ rel1 { relative: 0.0 1.0; to:"pv.tag.top.padding";}
+ rel2 { relative: 1.0 1.0; to:"pv.tag.top.padding";}
+ color: 90 46 7 255;
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+ }
+ programs {
+ program {
+ name: "content_new_pushed";
+ signal: "elm,state,new,pushed,internal";
+ source: "";
+ action: STATE_SET "default" 0.0;
+ target: "base";
+ transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+ after: "show_finished";
+ }
+ program {
+ name: "content_cur_pushed";
+ signal: "elm,state,cur,pushed,internal";
+ source: "";
+ action: STATE_SET "left" 0.0;
+ target: "base";
+ transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+ after: "pushed_finished";
+ }
+ program {
+ name: "content_prev_popped";
+ signal: "elm,state,prev,popped,internal";
+ source: "";
+ action: STATE_SET "default" 0.0;
+ target: "base";
+ transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+ after: "show_finished";
+ }
+ program {
+ name: "content_cur_popped";
+ signal: "elm,state,cur,popped,internal";
+ source: "";
+ action: STATE_SET "right" 0.0;
+ target: "base";
+ transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+ after: "popped_finished";
+ }
+ program {
+ name: "cur_pushed";
+ signal: "elm,state,cur,pushed";
+ source: "elm";
+ script {
+ set_state(PART:"base", "default", 0.0);
+ emit("elm,state,cur,pushed,internal", "");
+ }
+ }
+ program {
+ name: "new_pushed";
+ signal: "elm,state,new,pushed";
+ source: "elm";
+ script {
+ set_state(PART:"base", "right", 0.0);
+ emit("elm,state,new,pushed,internal", "");
+ }
+ }
+ program {
+ name: "prev_popped";
+ signal: "elm,state,prev,popped";
+ source: "elm";
+ script {
+ set_state(PART:"base", "left", 0.0);
+ emit("elm,state,prev,popped,internal", "");
+ }
+ }
+ program {
+ name: "cur_popped";
+ signal: "elm,state,cur,popped";
+ source: "elm";
+ script {
+ set_state(PART:"base", "default", 0.0);
+ emit("elm,state,cur,popped,internal", "");
+ }
+ }
+ program {
+ name: "visible";
+ signal: "elm,state,visible";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "base";
+ }
+ program {
+ name: "title_show";
+ signal: "elm,state,title,show";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "title_swallow";
+ transition: LINEAR 0.2;
+ after: "show_finished";
+ }
+ program {
+ name: "title_hide";
+ signal: "elm,state,title,hide";
+ source: "elm";
+ action: STATE_SET "hide" 0.0;
+ target: "title_swallow";
+ transition: LINEAR 0.2;
+ after: "hide_finished";
+ }
+ program {
+ name: "no_effect_title_hide";
+ signal: "elm,state,title,no,effect,hide";
+ source: "elm";
+ action: STATE_SET "hide" 0.0;
+ target: "title_swallow";
+ transition: LINEAR 0.0;
+ after: "hide_finished";
+ }
+ program {
+ name: "subtitle_show";
+ signal: "elm,state,subtitle,show";
+ source: "elm";
+ script {
+ set_state(PART:"elm.text.title", "subtitle_is_set", 0.0);
+ }
+ }
+ program {
+ name: "subtitle_hide";
+ signal: "elm,state,subtitle,hide";
+ source: "elm";
+ script {
+ set_state(PART:"elm.text.title", "default", 0.0);
+ }
+ }
+ program {
+ name: "prev_btn_show";
+ signal: "elm,state,prev_btn,show";
+ source: "elm";
+ script {
+ emit("elm,state,toolbar_bg,show", "elm");
+ }
+ }
+ program {
+ name: "prev_btn_hide";
+ signal: "elm,state,prev_btn,hide";
+ source: "elm";
+ script {
+ emit("elm,state,toolbar_bg,hide", "elm");
+ }
+ }
+ program {
+ name: "sip_show";
+ signal: "elm,state,sip,shown";
+ source: "";
+ script {
+ if (get_int(tbar_bg) <= 0)
+ set_state(PART:"toolbar_bg", "default", 0.0);
+ else
+ {
+ set_state(PART:"toolbar_bg", "sip_visible", 0.0);
+ set_state(PART:"elm.swallow.content", "sip_visible", 0.0);
+ }
+ }
+ }
+
+ program {
+ name: "sip_hide";
+ signal: "elm,state,sip,hidden";
+ source: "";
+ script {
+ if (get_int(tbar_bg) <= 0)
+ set_state(PART:"toolbar_bg", "default", 0.0);
+ else
+ {
+ set_state(PART:"toolbar_bg", "visible", 0.0);
+ set_state(PART:"elm.swallow.content", "default", 0.0);
+ }
+ }
+ }
+ program {
+ name: "left_btn_show";
+ signal: "elm,state,title_left_btn,show";
+ source: "elm";
+ script {
+ set_int(buttons_visible, get_int(buttons_visible) + 1);
+ set_state(PART:"bottom_right_padding", "visible", 0.0);
+ }
+ }
+ program {
+ name: "left_btn_hide";
+ signal: "elm,state,title_left_btn,hide";
+ source: "elm";
+ script {
+ set_int(buttons_visible, get_int(buttons_visible) - 1);
+ if (get_int(buttons_visible) == 0)
+ set_state(PART:"bottom_right_padding", "default", 0.0);
+ }
+ }
+ program {
+ name: "right_btn_show";
+ signal: "elm,state,title_right_btn,show";
+ source: "elm";
+ action: STATE_SET "visible" 0.0;
+ script {
+ set_int(buttons_visible, get_int(buttons_visible) + 1);
+ set_state(PART:"bottom_right_padding", "visible", 0.0);
+ }
+ }
+ program {
+ name: "right_btn_hide";
+ signal: "elm,state,title_right_btn,hide";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ script {
+ set_int(buttons_visible, get_int(buttons_visible) - 1);
+ if (get_int(buttons_visible) == 0)
+ set_state(PART:"bottom_right_padding", "default", 0.0);
+ }
+ }
+
+ program {
+ name: "toolbar_bg_show";
+ signal: "elm,state,toolbar_bg,show";
+ source: "elm";
+ script {
+ set_state(PART:"toolbar_bg", "visible", 0.0);
+ set_int(tbar_bg, get_int(tbar_bg) + 1);
+ }
+ }
+ program {
+ name: "toolbar_bg_hide";
+ signal: "elm,state,toolbar_bg,hide";
+ source: "elm";
+ script {
+ set_int(tbar_bg, get_int(tbar_bg) - 1);
+ if (get_int(tbar_bg) <= 0)
+ set_state(PART:"toolbar_bg", "default", 0.0);
+ }
+ }
+ program {
+ name: "toolbar_open";
+ signal: "elm,state,toolbar,open";
+ source: "";
+ action: STATE_SET "visible" 0.0;
+ target: "toolbar_bg";
+ transition: LINEAR 0.2;
+ }
+ program {
+ name: "toolbar_close";
+ signal: "elm,state,toolbar,close";
+ source: "";
+ action: STATE_SET "default" 0.0;
+ target: "toolbar_bg";
+ transition: LINEAR 0.2;
+ }
+
+ program {
+ name: "show_finished";
+ action: SIGNAL_EMIT "elm,action,show,finished" "";
+ }
+ program {
+ name: "hide_finished";
+ action: SIGNAL_EMIT "elm,action,hide,finished" "";
+ }
+
+ program {
+ name: "pushed_finished";
+ action: SIGNAL_EMIT "elm,action,pushed,finished" "";
+ }
+ program {
+ name: "popped_finished";
+ action: SIGNAL_EMIT "elm,action,popped,finished" "";
+ }
+ program {
+ name: "title_clicked";
+ signal: "mouse,clicked,1";
+ source: "click_event_area";
+ action: SIGNAL_EMIT "elm,action,title,clicked" "";
+ }
+ program {
+ name: "display_mode_compress";
+ signal: "display,mode,compress";
+ source: "";
+ action: SIGNAL_EMIT "elm,state,toolbar,instant_close" "";
+ }
+ program {
+ name: "display_mode_default";
+ signal: "display,mode,default";
+ source: "";
+ action: SIGNAL_EMIT "elm,state,toolbar,instant_open" "";
+ }
+ program {
+ name: "pv.tag.bg.hide";
+ signal: "signal.pv.tag.bg.hide";
+ source: "*";
+ action: STATE_SET "hide" 0.0;
+ target: "pv.tag.bg";
+ }
+ program {
+ name: "pv.tag.bg.show";
+ signal: "signal.pv.tag.bg.show";
+ source: "*";
+ action: STATE_SET "default" 0.0;
+ target: "pv.tag.bg";
+ }
+ }
+}
+
+
+
+group {
+ name:"elm/naviframe/item/playview/multiwin/default";
+ script {
+ public tbar_bg = 0; //Toolbar BG Show call count
+ public buttons_visible = 0; //when both buttons are visible
+ public toolbar_buttons_visible = 0; //when both toolbar buttons are visible
+ }
+ parts {
+ part {
+ name: "base";
+ type: RECT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ }
+ description {
+ state: "left" 0.0;
+ inherit: "default" 0.0;
+ rel1.relative: -1.0 0.0;
+ rel2.relative: 0.0 1.0;
+ }
+ description {
+ state: "right" 0.0;
+ inherit: "default" 0.0;
+ rel1.relative: 1.0 0.0;
+ rel2.relative: 2.0 1.0;
+ }
+ }
+ part {
+ name: "title_bg";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 0;
+ align: 0.0 0.0;
+ fixed: 0 1;
+ visible: 1;
+ rel1 { relative: 0.0 0.0; to: "base"; }
+ rel2 { relative: 1.0 0.0; to: "base"; }
+ color: NAVIFRAME_TITLE_BG_COLOR_INC;
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ min: 0 0;
+ fixed: 0 1;
+ rel1 { relative: 0.0 0.0; to: "base"; }
+ rel2 { relative: 1.0 0.0; to: "base"; }
+ }
+ }
+ part {
+ name: "title_clip";
+ type: RECT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ rel1 { to: "title_bg"; }
+ rel2 { to: "title_bg"; }
+ }
+ }
+ part {
+ name: "top_padding";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 0;
+ fixed: 0 1;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 0.0; to: "title_bg"; }
+ rel2 { relative: 1.0 0.0; to: "title_bg"; }
+ visible: 0;
+ }
+ }
+ part {
+ name: "padding_center_text1";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ min: 0 0;
+ fixed: 1 0;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 0.0; to: "title_bg"; }
+ rel2 { relative: 0.0 1.0; to: "title_bg"; }
+ visible: 0;
+ }
+ }
+
+ part {
+ name: "elm.swallow.content";
+ type: SWALLOW;
+ scale: 1;
+ repeat_events: 0;
+ clip_to: "content_clip";
+ description {
+ state: "default" 0.0;
+ align: 0.0 0.0;
+ rel1.relative: 0.0 1.0;
+ rel1.to_x: "base";
+ rel1.to_y: "title_bg";
+ rel2.relative: 1.0 0.0;
+ rel2.to_x: "base";
+ rel2.to_y: "toolbar_bg";
+ }
+ description {
+ state: "sip_visible" 0.0;
+ inherit: "default" 0.0;
+ rel2.relative: 1.0 1.0;
+ rel2.to: "base";
+ }
+ }
+ part {
+ name: "content_clip";
+ type: RECT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ rel1.to: "elm.swallow.content";
+ rel2.to: "elm.swallow.content";
+ }
+ }
+ part {
+ name: "padding_center_text2";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 0;
+ fixed: 1 0;
+ align: 1.0 0.5;
+ rel1 { relative: 0.0 0.0; to: "title_btns_padding_ext"; }
+ rel2 { relative: 0.0 1.0; to: "title_btns_padding_ext"; }
+ visible: 0;
+ }
+ }
+ part {
+ name: "padding_bottom_text";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 0;
+ fixed: 0 1;
+ align: 0.0 1.0;
+ rel1 { relative: 0.0 1.0; to: "title_bg"; }
+ rel2 { relative: 1.0 1.0; to: "title_bg"; }
+ visible: 0;
+ }
+ }
+ part {
+ name: "elm.text.title";
+ type: TEXT;
+ effect: FAR_SHADOW BOTTOM;
+ scale: 1;
+ repeat_events: 1;
+ clip_to: "title_clip";
+ description {
+ state: "default" 0.0;
+ text {
+ font: VIDEO_TITLE_FONT_STYLE;
+ size: VIDEO_TITLE_FONT_SIZE;
+ min: 0 0;
+ max: 1 0;
+ align: 0.0 0.5;
+ }
+ color: VIDEO_TITLE_FONT_DEFAULT_COLOR;
+ color3: 0 0 0 255;
+ align: 0.0 0.5;
+ fixed: 1 1;
+ rel1 { relative: 1.0 1.0; to_x: "padding_center_text1"; to_y: "top_padding"; }
+ rel2 { relative: 0.0 0.0; to_x: "padding_center_text2"; to_y: "padding_bottom_text"; }
+ }
+ }
+ part {
+ name: "access.title";
+ type: RECT;
+ repeat_events: 1;
+ description {
+ state: "default" 0.0;
+ fixed: 1 1;
+ rel1.to: "title_bg";
+ rel2.to: "title_bg";
+ color: 0 0 0 0;
+ }
+ }
+
+ part {
+ name: "padding_before_text";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ align: 1.0 0.5;
+ rel1 { relative: 0.0 0.0; to: "elm.text.title"; }
+ rel2 { relative: 0.0 1.0; to: "elm.text.title"; }
+ fixed: 1 0;
+ min: 0 0;
+ visible: 0;
+ }
+ }
+
+ part {
+ name: "click_event_area";
+ type: RECT;
+ ignore_flags: ON_HOLD;
+ repeat_events: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { to: "title_bg"; }
+ rel2 { to: "title_bg"; }
+ visible: 0;
+ }
+ }
+ part {
+ name: "title_left_btn_ext";
+ type: SWALLOW;
+ scale: 1;
+ clip_to: "title_clip";
+ description {
+ state: "default" 0.0;
+ max: 0 0;
+ fixed: 1 1;
+ align: 1 0.5;
+ rel1 { relative: 0.0 0.0; to: "title_btns_padding_ext"; }
+ rel2 { relative: 0.0 1.0; to: "title_btns_padding_ext"; }
+ }
+ }
+ part {
+ name: "title_btns_padding_ext";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 0;
+ fixed: 1 1;
+ align: 1 0.5;
+ visible: 0;
+ rel1 { relative: 0.0 0.0; to: "title_left_btn"; }
+ rel2 { relative: 0.0 1.0; to: "title_left_btn"; }
+ }
+ description {
+ state: "visible" 0.0;
+ inherit: "default" 0.0;
+ min: 0 0;
+ }
+ }
+ part {
+ name: "title_left_btn";
+ type: SWALLOW;
+ scale: 1;
+ clip_to: "title_clip";
+ description {
+ state: "default" 0.0;
+ max: 0 0;
+ fixed: 1 1;
+ align: 1 0.5;
+ rel1 { relative: 0.0 0.0; to: "title_btns_padding"; }
+ rel2 { relative: 0.0 1.0; to: "title_btns_padding"; }
+ }
+ }
+ part {
+ name: "title_btns_padding";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 0;
+ fixed: 1 1;
+ align: 1 0.5;
+ visible: 0;
+ rel1 { relative: 0.0 0.0; to: "title_right_btn"; }
+ rel2 { relative: 0.0 1.0; to: "title_right_btn"; }
+ }
+ description {
+ state: "visible" 0.0;
+ inherit: "default" 0.0;
+ min: 0 0;
+ }
+ }
+ part {
+ name: "bottom_right_padding";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 0;
+ fixed: 1 1;
+ align: 1.0 1.0;
+ rel1 { relative: 1.0 1.0; to: "title_bg"; }
+ rel2 { relative: 1.0 1.0; to: "title_bg"; }
+ visible: 0;
+ }
+ description {
+ state: "visible" 0.0;
+ inherit: "default" 0.0;
+ min: 0 0;
+ }
+ }
+ part {
+ name: "title_right_btn";
+ type: SWALLOW;
+ scale: 1;
+ clip_to: "title_clip";
+ description {
+ state: "default" 0.0;
+ max: 0 0;
+ align: 1 0.5;
+ fixed: 1 1;
+ rel1 { relative: 1.0 1.0; to_x: "title_bg"; to_y: "top_padding"; }
+ rel2 { relative: 0.0 0.0; to: "bottom_right_padding"; }
+ }
+ }
+ part {
+ name: "toolbar_bg";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 0;
+ max: 999999 0;
+ fixed: 0 1;
+ align: 0.0 1.0;
+ visible: 0;
+ rel1 { to: "base"; }
+ rel2 { to: "base"; }
+ color: 0 0 0 0;
+ }
+ description {
+ state: "visible" 0.0;
+ inherit: "default" 0.0;
+ min: 0 0;
+ max: 999999 0;
+ visible: 1;
+ }
+ description {
+ state: "sip_visible" 0.0;
+ inherit: "default" 0.0;
+ align: 0.0 0.0;
+ min: 1 0;
+ rel1 { to: "title_bg"; }
+ rel2 { to: "title_bg"; }
+ visible: 1;
+ }
+ }
+ }
+ programs {
+ program {
+ name: "content_new_pushed";
+ signal: "elm,state,new,pushed,internal";
+ source: "";
+ action: STATE_SET "default" 0.0;
+ target: "base";
+ transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+ after: "show_finished";
+ }
+ program {
+ name: "content_cur_pushed";
+ signal: "elm,state,cur,pushed,internal";
+ source: "";
+ action: STATE_SET "left" 0.0;
+ target: "base";
+ transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+ after: "pushed_finished";
+ }
+ program {
+ name: "content_prev_popped";
+ signal: "elm,state,prev,popped,internal";
+ source: "";
+ action: STATE_SET "default" 0.0;
+ target: "base";
+ transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+ after: "show_finished";
+ }
+ program {
+ name: "content_cur_popped";
+ signal: "elm,state,cur,popped,internal";
+ source: "";
+ action: STATE_SET "right" 0.0;
+ target: "base";
+ transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+ after: "popped_finished";
+ }
+ program {
+ name: "cur_pushed";
+ signal: "elm,state,cur,pushed";
+ source: "elm";
+ script {
+ set_state(PART:"base", "default", 0.0);
+ emit("elm,state,cur,pushed,internal", "");
+ }
+ }
+ program {
+ name: "new_pushed";
+ signal: "elm,state,new,pushed";
+ source: "elm";
+ script {
+ set_state(PART:"base", "right", 0.0);
+ emit("elm,state,new,pushed,internal", "");
+ }
+ }
+ program {
+ name: "prev_popped";
+ signal: "elm,state,prev,popped";
+ source: "elm";
+ script {
+ set_state(PART:"base", "left", 0.0);
+ emit("elm,state,prev,popped,internal", "");
+ }
+ }
+ program {
+ name: "cur_popped";
+ signal: "elm,state,cur,popped";
+ source: "elm";
+ script {
+ set_state(PART:"base", "default", 0.0);
+ emit("elm,state,cur,popped,internal", "");
+ }
+ }
+ program {
+ name: "visible";
+ signal: "elm,state,visible";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "base";
+ }
+ program {
+ name: "title_show";
+ signal: "elm,state,title,show";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "title_bg";
+ transition: LINEAR 0.4;
+ after: "show_finished";
+ }
+ program {
+ name: "title_hide";
+ signal: "elm,state,title,hide";
+ source: "elm";
+ action: STATE_SET "hide" 0.0;
+ target: "title_bg";
+ transition: LINEAR 0.4;
+ after: "hide_finished";
+ }
+ program {
+ name: "subtitle_show";
+ signal: "elm,state,subtitle,show";
+ source: "elm";
+ script {
+ set_state(PART:"elm.text.title", "subtitle_is_set", 0.0);
+ }
+ }
+ program {
+ name: "subtitle_hide";
+ signal: "elm,state,subtitle,hide";
+ source: "elm";
+ script {
+ set_state(PART:"elm.text.title", "default", 0.0);
+ }
+ }
+ program {
+ name: "prev_btn_show";
+ signal: "elm,state,prev_btn,show";
+ source: "elm";
+ script {
+ emit("elm,state,toolbar_bg,show", "elm");
+ }
+ }
+ program {
+ name: "prev_btn_hide";
+ signal: "elm,state,prev_btn,hide";
+ source: "elm";
+ script {
+ emit("elm,state,toolbar_bg,hide", "elm");
+ }
+ }
+ program {
+ name: "sip_show";
+ signal: "elm,state,sip,shown";
+ source: "";
+ script {
+ if (get_int(tbar_bg) <= 0)
+ set_state(PART:"toolbar_bg", "default", 0.0);
+ else
+ {
+ set_state(PART:"toolbar_bg", "sip_visible", 0.0);
+ set_state(PART:"elm.swallow.content", "sip_visible", 0.0);
+ }
+ }
+ }
+
+ program {
+ name: "sip_hide";
+ signal: "elm,state,sip,hidden";
+ source: "";
+ script {
+ if (get_int(tbar_bg) <= 0)
+ set_state(PART:"toolbar_bg", "default", 0.0);
+ else
+ {
+ set_state(PART:"toolbar_bg", "visible", 0.0);
+ set_state(PART:"elm.swallow.content", "default", 0.0);
+ }
+ }
+ }
+ program {
+ name: "left_btn_show";
+ signal: "elm,state,title_left_btn,show";
+ source: "elm";
+ script {
+ set_int(buttons_visible, get_int(buttons_visible) + 1);
+ set_state(PART:"bottom_right_padding", "visible", 0.0);
+ if (get_int(buttons_visible) >= 2)
+ set_state(PART:"title_btns_padding", "visible", 0.0);
+ }
+ }
+ program {
+ name: "left_btn_hide";
+ signal: "elm,state,title_left_btn,hide";
+ source: "elm";
+ script {
+ set_int(buttons_visible, get_int(buttons_visible) - 1);
+ set_state(PART:"title_btns_padding", "default", 0.0);
+ if (get_int(buttons_visible) == 0)
+ set_state(PART:"bottom_right_padding", "default", 0.0);
+ }
+ }
+ program {
+ name: "right_btn_show";
+ signal: "elm,state,title_right_btn,show";
+ source: "elm";
+ action: STATE_SET "visible" 0.0;
+ script {
+ set_int(buttons_visible, get_int(buttons_visible) + 1);
+ set_state(PART:"bottom_right_padding", "visible", 0.0);
+ if (get_int(buttons_visible) >= 2)
+ set_state(PART:"title_btns_padding", "visible", 0.0);
+ }
+ }
+ program {
+ name: "right_btn_hide";
+ signal: "elm,state,title_right_btn,hide";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ script {
+ set_int(buttons_visible, get_int(buttons_visible) - 1);
+ set_state(PART:"title_btns_padding", "default", 0.0);
+ if (get_int(buttons_visible) == 0)
+ set_state(PART:"bottom_right_padding", "default", 0.0);
+ }
+ }
+
+ program {
+ name: "toolbar_bg_show";
+ signal: "elm,state,toolbar_bg,show";
+ source: "elm";
+ script {
+ set_state(PART:"toolbar_bg", "visible", 0.0);
+ set_int(tbar_bg, get_int(tbar_bg) + 1);
+ }
+ }
+ program {
+ name: "toolbar_bg_hide";
+ signal: "elm,state,toolbar_bg,hide";
+ source: "elm";
+ script {
+ set_int(tbar_bg, get_int(tbar_bg) - 1);
+ if (get_int(tbar_bg) <= 0)
+ set_state(PART:"toolbar_bg", "default", 0.0);
+ }
+ }
+ program {
+ name: "toolbar_open";
+ signal: "elm,state,toolbar,open";
+ source: "";
+ action: STATE_SET "visible" 0.0;
+ target: "toolbar_bg";
+ transition: LINEAR 0.2;
+ }
+ program {
+ name: "toolbar_close";
+ signal: "elm,state,toolbar,close";
+ source: "";
+ action: STATE_SET "default" 0.0;
+ target: "toolbar_bg";
+ transition: LINEAR 0.2;
+ }
+
+ program {
+ name: "show_finished";
+ action: SIGNAL_EMIT "elm,action,show,finished" "";
+ }
+ program {
+ name: "hide_finished";
+ action: SIGNAL_EMIT "elm,action,hide,finished" "";
+ }
+
+ program {
+ name: "pushed_finished";
+ action: SIGNAL_EMIT "elm,action,pushed,finished" "";
+ }
+ program {
+ name: "popped_finished";
+ action: SIGNAL_EMIT "elm,action,popped,finished" "";
+ }
+ program {
+ name: "title_clicked";
+ signal: "mouse,clicked,1";
+ source: "click_event_area";
+ action: SIGNAL_EMIT "elm,action,title,clicked" "";
+ }
+ program {
+ name: "display_mode_compress";
+ signal: "display,mode,compress";
+ source: "";
+ action: SIGNAL_EMIT "elm,state,toolbar,instant_close" "";
+ }
+ program {
+ name: "display_mode_default";
+ signal: "display,mode,default";
+ source: "";
+ action: SIGNAL_EMIT "elm,state,toolbar,instant_open" "";
+ }
+ }
+}
+
+group {
+ name:"elm/naviframe/item/playview/trim/default";
+ script {
+ public tbar_bg = 0; //Toolbar BG Show call count
+ public buttons_visible = 0; //when both buttons are visible
+ public toolbar_buttons_visible = 0; //when both toolbar buttons are visible
+ }
+ parts {
+ part {
+ name: "base";
+ type: RECT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ }
+ description {
+ state: "left" 0.0;
+ inherit: "default" 0.0;
+ rel1.relative: -1.0 0.0;
+ rel2.relative: 0.0 1.0;
+ }
+ description {
+ state: "right" 0.0;
+ inherit: "default" 0.0;
+ rel1.relative: 1.0 0.0;
+ rel2.relative: 2.0 1.0;
+ }
+ }
+ part {
+ name: "title_bg";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 NAVIFRAME_TITLE_H_INC;
+ align: 0.0 0.0;
+ fixed: 0 1;
+ visible: 1;
+ rel1 { relative: 0.0 0.0; to: "base"; }
+ rel2 { relative: 1.0 0.0; to: "base"; }
+ color: NAVIFRAME_TITLE_BG_COLOR_INC;
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ min: 0 0;
+ fixed: 0 1;
+ rel1 { relative: 0.0 0.0; to: "base"; }
+ rel2 { relative: 1.0 0.0; to: "base"; }
+ }
+ }
+ part {
+ name: "title_line";
+ type: RECT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ min: 0 6;
+ align: 0.0 0.0;
+ fixed: 0 1;
+ visible: 1;
+ rel1 { relative: 0.0 0.0; to: "title_bg"; }
+ rel2 { relative: 1.0 0.0; to: "title_bg"; }
+ color: NAVIFRAME_TOP_LINE_COLOR;
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ min: 0 0;
+ }
+ }
+ part {
+ name: "title_clip";
+ type: RECT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ rel1 { to: "title_bg"; }
+ rel2 { to: "title_bg"; }
+ }
+ }
+ part {
+ name: "top_padding";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: NAVIFRAME_TITLE_TOP_PADDING_INC;
+ fixed: 0 1;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 0.0; to: "title_bg"; }
+ rel2 { relative: 1.0 0.0; to: "title_bg"; }
+ visible: 0;
+ }
+ }
+ part {
+ name: "padding_center_text1";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ min: NAVIFRAME_PADDING_INC;
+ visible: 0;
+ fixed: 1 0;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 0.0; to: "title_bg"; }
+ rel2 { relative: 0.0 1.0; to: "title_bg"; }
+ }
+ }
+
+ part {
+ name: "elm.swallow.content";
+ type: SWALLOW;
+ scale: 1;
+ repeat_events: 0;
+ clip_to: "content_clip";
+ description {
+ state: "default" 0.0;
+ align: 0.0 0.0;
+ rel1.relative: 0.0 1.0;
+ rel1.to_x: "base";
+ rel1.to_y: "title_bg";
+ rel2.relative: 1.0 0.0;
+ rel2.to_x: "base";
+ rel2.to_y: "toolbar_bg";
+ }
+ description {
+ state: "sip_visible" 0.0;
+ inherit: "default" 0.0;
+ rel2.relative: 1.0 1.0;
+ rel2.to: "base";
+ }
+ }
+ part {
+ name: "content_clip";
+ type: RECT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ rel1.to: "elm.swallow.content";
+ rel2.to: "elm.swallow.content";
+ }
+ }
+ part {
+ name: "padding_center_text2";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: NAVIFRAME_PADDING2_INC;
+ fixed: 1 0;
+ align: 1.0 0.5;
+ rel1 { relative: 0.0 0.0; to: "title_left_btn"; }
+ rel2 { relative: 0.0 1.0; to: "title_left_btn"; }
+ visible: 0;
+ }
+ }
+ part {
+ name: "padding_bottom_text";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: NAVIFRAME_BOTTOM_TEXT_PADDING_INC;
+ fixed: 0 1;
+ align: 0.0 1.0;
+ rel1 { relative: 0.0 1.0; to: "title_bg"; }
+ rel2 { relative: 1.0 1.0; to: "title_bg"; }
+ visible: 0;
+ }
+ }
+ part {
+ name: "elm.text.title";
+ type: TEXT;
+ effect: FAR_SHADOW BOTTOM;
+ scale: 1;
+ repeat_events: 1;
+ clip_to: "title_clip";
+ description {
+ state: "default" 0.0;
+ text {
+ font: VIDEO_TITLE_FONT_STYLE;
+ size: VIDEO_TITLE_FONT_SIZE;
+ min: 0 0;
+ max: 1 0;
+ align: 0.0 0.5;
+ }
+ color: VIDEO_TITLE_FONT_DEFAULT_COLOR;
+ color3: 0 0 0 255;
+ align: 0.0 0.5;
+ fixed: 1 1;
+ rel1 { relative: 1.0 1.0; to_x: "padding_center_text1"; to_y: "top_padding"; }
+ rel2 { relative: 0.0 0.0; to_x: "padding_center_text2"; to_y: "padding_bottom_text"; }
+ }
+ }
+
+ part {
+ name: "access.title";
+ type: RECT;
+ repeat_events: 1;
+ description {
+ state: "default" 0.0;
+ fixed: 1 1;
+ rel1.to: "title_bg";
+ rel2.to: "title_bg";
+ color: 0 0 0 0;
+ }
+ }
+
+ part {
+ name: "padding_before_text";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ align: 1.0 0.5;
+ rel1 { relative: 0.0 0.0; to: "elm.text.title"; }
+ rel2 { relative: 0.0 1.0; to: "elm.text.title"; }
+ fixed: 1 0;
+ min: NAVIFRAME_PADDING_INC;
+ visible: 0;
+ }
+ }
+
+ part {
+ name: "click_event_area";
+ type: RECT;
+ ignore_flags: ON_HOLD;
+ repeat_events: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { to: "title_bg"; }
+ rel2 { to: "title_bg"; }
+ visible: 0;
+ }
+ }
+ part {
+ name: "title_left_btn_line_shadow";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 1 48;
+ fixed: 1 1;
+ align: 1.0 0.5;
+ rel1 { relative: 0.0 0.5; to_x: "title_left_btn_line"; to_y: "title_bg"; }
+ rel2 { relative: 0.0 0.5; to_x: "title_left_btn_line"; to_y: "title_bg"; }
+ color: 0 0 0 81;
+ }
+ }
+
+ part {
+ name: "title_left_btn_line";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 2 48;
+ fixed: 1 1;
+ align: 1.0 0.5;
+ rel1 { relative: 0.0 0.5; to_x: "title_left_btns_padding"; to_y: "title_bg"; }
+ rel2 { relative: 0.0 0.5; to_x: "title_left_btns_padding"; to_y: "title_bg"; }
+ color: 255 255 255 81;
+ }
+ }
+
+ part {
+ name: "title_left_btns_padding";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: NAVIFRAME_PADDING2_INC;
+ fixed: 1 1;
+ align: 1.0 0.5;
+ visible: 0;
+ rel1 { relative: 0.0 0.0; to_x: "title_left_btn"; to_y: "title_bg"; }
+ rel2 { relative: 0.0 1.0; to_x: "title_left_btn"; to_y: "title_bg"; }
+ }
+ }
+
+ part {
+ name: "title_left_btn";
+ type: SWALLOW;
+ scale: 1;
+ clip_to: "title_clip";
+ description {
+ state: "default" 0.0;
+ max: NAVIFRAME_TITLE_FUNC_BTN_SIZE_INC;
+ fixed: 1 1;
+ align: 1.0 0.5;
+ rel1 { relative: 0.0 0.0; to: "title_btns_padding"; }
+ rel2 { relative: 0.0 1.0; to: "title_btns_padding"; }
+ }
+ }
+
+ part {
+ name: "title_btns_padding";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: NAVIFRAME_PADDING2_INC;
+ fixed: 1 1;
+ align: 1.0 0.5;
+ visible: 0;
+ rel1 { relative: 0.0 0.0; to_x: "title_right_btn_line"; to_y: "title_bg"; }
+ rel2 { relative: 0.0 1.0; to_x: "title_right_btn_line"; to_y: "title_bg"; }
+ }
+ }
+
+ part {
+ name: "title_right_btn_line_shadow";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 1 48;
+ fixed: 1 1;
+ align: 1.0 0.5;
+ rel1 { relative: 0.0 0.5; to_x: "title_right_btn_line"; to_y: "title_bg"; }
+ rel2 { relative: 0.0 0.5; to_x: "title_right_btn_line"; to_y: "title_bg"; }
+ color: 0 0 0 81;
+ }
+ }
+
+ part {
+ name: "title_right_btn_line";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 2 48;
+ fixed: 1 1;
+ align: 1.0 0.5;
+ rel1 { relative: 0.0 0.5; to_x: "title_btns_line_padding"; to_y: "title_bg"; }
+ rel2 { relative: 0.0 0.5; to_x: "title_btns_line_padding"; to_y: "title_bg"; }
+ color: 255 255 255 81;
+ }
+ }
+
+ part {
+ name: "title_btns_line_padding";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: NAVIFRAME_PADDING2_INC;
+ fixed: 1 1;
+ align: 1.0 0.5;
+ visible: 0;
+ rel1 { relative: 0.0 0.0; to_x: "title_right_btn"; to_y: "title_bg"; }
+ rel2 { relative: 0.0 1.0; to_x: "title_right_btn"; to_y: "title_bg"; }
+ }
+ }
+
+ part {
+ name: "bottom_right_padding";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 0;
+ fixed: 1 1;
+ align: 1.0 1.0;
+ rel1 { relative: 1.0 1.0; to: "title_bg"; }
+ rel2 { relative: 1.0 1.0; to: "title_bg"; }
+ visible: 0;
+ }
+ description {
+ state: "visible" 0.0;
+ inherit: "default" 0.0;
+ min: NAVIFRAME_PADDING2_INC;
+ }
+ }
+
+
+ part {
+ name: "title_right_btn";
+ type: SWALLOW;
+ scale: 1;
+ clip_to: "title_clip";
+ description {
+ state: "default" 0.0;
+ max: NAVIFRAME_TITLE_FUNC_BTN_SIZE_INC;
+ align: 1.0 0.5;
+ fixed: 1 1;
+ rel1 { relative: 0.0 0.5; to_x: "bottom_right_padding"; to_y: "title_bg"; }
+ rel2 { relative: 0.0 0.5; to_x: "bottom_right_padding"; to_y: "title_bg"; }
+ }
+ }
+
+ part {
+ name: "toolbar_bg";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 0;
+ max: 999999 0;
+ fixed: 0 1;
+ align: 0.0 1.0;
+ visible: 0;
+ rel1 { to: "base"; }
+ rel2 { to: "base"; }
+ color: NAVIFRAME_TOOLBAR_BG_COLOR_INC;
+ }
+ description {
+ state: "visible" 0.0;
+ inherit: "default" 0.0;
+ min: 0 NAVIFRAME_TOOLBAR_HEIGHT_INC;
+ max: 999999 NAVIFRAME_TOOLBAR_HEIGHT_INC;
+ visible: 1;
+ }
+ description {
+ state: "sip_visible" 0.0;
+ inherit: "default" 0.0;
+ align: 0.0 0.0;
+ min: 1 NAVIFRAME_TITLE_H_INC;
+ rel1 { to: "title_bg"; }
+ rel2 { to: "title_bg"; }
+ visible: 1;
+ }
+ }
+ }
+ programs {
+ program {
+ name: "content_new_pushed";
+ signal: "elm,state,new,pushed,internal";
+ source: "";
+ action: STATE_SET "default" 0.0;
+ target: "base";
+ transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+ after: "show_finished";
+ }
+ program {
+ name: "content_cur_pushed";
+ signal: "elm,state,cur,pushed,internal";
+ source: "";
+ action: STATE_SET "left" 0.0;
+ target: "base";
+ transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+ after: "pushed_finished";
+ }
+ program {
+ name: "content_prev_popped";
+ signal: "elm,state,prev,popped,internal";
+ source: "";
+ action: STATE_SET "default" 0.0;
+ target: "base";
+ transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+ after: "show_finished";
+ }
+ program {
+ name: "content_cur_popped";
+ signal: "elm,state,cur,popped,internal";
+ source: "";
+ action: STATE_SET "right" 0.0;
+ target: "base";
+ transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+ after: "popped_finished";
+ }
+ program {
+ name: "cur_pushed";
+ signal: "elm,state,cur,pushed";
+ source: "elm";
+ script {
+ set_state(PART:"base", "default", 0.0);
+ emit("elm,state,cur,pushed,internal", "");
+ }
+ }
+ program {
+ name: "new_pushed";
+ signal: "elm,state,new,pushed";
+ source: "elm";
+ script {
+ set_state(PART:"base", "right", 0.0);
+ emit("elm,state,new,pushed,internal", "");
+ }
+ }
+ program {
+ name: "prev_popped";
+ signal: "elm,state,prev,popped";
+ source: "elm";
+ script {
+ set_state(PART:"base", "left", 0.0);
+ emit("elm,state,prev,popped,internal", "");
+ }
+ }
+ program {
+ name: "cur_popped";
+ signal: "elm,state,cur,popped";
+ source: "elm";
+ script {
+ set_state(PART:"base", "default", 0.0);
+ emit("elm,state,cur,popped,internal", "");
+ }
+ }
+ program {
+ name: "visible";
+ signal: "elm,state,visible";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "base";
+ }
+ program {
+ name: "title_show";
+ signal: "elm,state,title,show";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "title_bg";
+ target: "title_line";
+ }
+ program {
+ name: "title_hide";
+ signal: "elm,state,title,hide";
+ source: "elm";
+ action: STATE_SET "hide" 0.0;
+ target: "title_bg";
+ target: "title_line";
+ }
+ program {
+ name: "subtitle_show";
+ signal: "elm,state,subtitle,show";
+ source: "elm";
+ script {
+ set_state(PART:"elm.text.title", "subtitle_is_set", 0.0);
+ }
+ }
+ program {
+ name: "subtitle_hide";
+ signal: "elm,state,subtitle,hide";
+ source: "elm";
+ script {
+ set_state(PART:"elm.text.title", "default", 0.0);
+ }
+ }
+ program {
+ name: "prev_btn_show";
+ signal: "elm,state,prev_btn,show";
+ source: "elm";
+ script {
+ emit("elm,state,toolbar_bg,show", "elm");
+ }
+ }
+ program {
+ name: "prev_btn_hide";
+ signal: "elm,state,prev_btn,hide";
+ source: "elm";
+ script {
+ emit("elm,state,toolbar_bg,hide", "elm");
+ }
+ }
+ program {
+ name: "sip_show";
+ signal: "elm,state,sip,shown";
+ source: "";
+ script {
+ if (get_int(tbar_bg) <= 0)
+ set_state(PART:"toolbar_bg", "default", 0.0);
+ else
+ {
+ set_state(PART:"toolbar_bg", "sip_visible", 0.0);
+ set_state(PART:"elm.swallow.content", "sip_visible", 0.0);
+ }
+ }
+ }
+
+ program {
+ name: "sip_hide";
+ signal: "elm,state,sip,hidden";
+ source: "";
+ script {
+ if (get_int(tbar_bg) <= 0)
+ set_state(PART:"toolbar_bg", "default", 0.0);
+ else
+ {
+ set_state(PART:"toolbar_bg", "visible", 0.0);
+ set_state(PART:"elm.swallow.content", "default", 0.0);
+ }
+ }
+ }
+ program {
+ name: "left_btn_show";
+ signal: "elm,state,title_left_btn,show";
+ source: "elm";
+ script {
+ set_int(buttons_visible, get_int(buttons_visible) + 1);
+ set_state(PART:"bottom_right_padding", "visible", 0.0);
+ }
+ }
+ program {
+ name: "left_btn_hide";
+ signal: "elm,state,title_left_btn,hide";
+ source: "elm";
+ script {
+ set_int(buttons_visible, get_int(buttons_visible) - 1);
+ if (get_int(buttons_visible) == 0)
+ set_state(PART:"bottom_right_padding", "default", 0.0);
+ }
+ }
+ program {
+ name: "right_btn_show";
+ signal: "elm,state,title_right_btn,show";
+ source: "elm";
+ action: STATE_SET "visible" 0.0;
+ script {
+ set_int(buttons_visible, get_int(buttons_visible) + 1);
+ set_state(PART:"bottom_right_padding", "visible", 0.0);
+ }
+ }
+ program {
+ name: "right_btn_hide";
+ signal: "elm,state,title_right_btn,hide";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ script {
+ set_int(buttons_visible, get_int(buttons_visible) - 1);
+ if (get_int(buttons_visible) == 0)
+ set_state(PART:"bottom_right_padding", "default", 0.0);
+ }
+ }
+
+ program {
+ name: "toolbar_bg_show";
+ signal: "elm,state,toolbar_bg,show";
+ source: "elm";
+ script {
+ set_state(PART:"toolbar_bg", "visible", 0.0);
+ set_int(tbar_bg, get_int(tbar_bg) + 1);
+ }
+ }
+ program {
+ name: "toolbar_bg_hide";
+ signal: "elm,state,toolbar_bg,hide";
+ source: "elm";
+ script {
+ set_int(tbar_bg, get_int(tbar_bg) - 1);
+ if (get_int(tbar_bg) <= 0)
+ set_state(PART:"toolbar_bg", "default", 0.0);
+ }
+ }
+ program {
+ name: "toolbar_open";
+ signal: "elm,state,toolbar,open";
+ source: "";
+ action: STATE_SET "visible" 0.0;
+ target: "toolbar_bg";
+ transition: LINEAR 0.2;
+ }
+ program {
+ name: "toolbar_close";
+ signal: "elm,state,toolbar,close";
+ source: "";
+ action: STATE_SET "default" 0.0;
+ target: "toolbar_bg";
+ transition: LINEAR 0.2;
+ }
+
+ program {
+ name: "show_finished";
+ action: SIGNAL_EMIT "elm,action,show,finished" "";
+ }
+ program {
+ name: "hide_finished";
+ action: SIGNAL_EMIT "elm,action,hide,finished" "";
+ }
+
+ program {
+ name: "pushed_finished";
+ action: SIGNAL_EMIT "elm,action,pushed,finished" "";
+ }
+ program {
+ name: "popped_finished";
+ action: SIGNAL_EMIT "elm,action,popped,finished" "";
+ }
+ program {
+ name: "title_clicked";
+ signal: "mouse,clicked,1";
+ source: "click_event_area";
+ action: SIGNAL_EMIT "elm,action,title,clicked" "";
+ }
+ program {
+ name: "display_mode_compress";
+ signal: "display,mode,compress";
+ source: "";
+ action: SIGNAL_EMIT "elm,state,toolbar,instant_close" "";
+ }
+ program {
+ name: "display_mode_default";
+ signal: "display,mode,default";
+ source: "";
+ action: SIGNAL_EMIT "elm,state,toolbar,instant_open" "";
+ }
+ }
+}
+
+
+
+group {
+ name:"elm/naviframe/item/playview/chapter/default";
+ script {
+ public tbar_bg = 0; //Toolbar BG Show call count
+ public buttons_visible = 0; //when both buttons are visible
+ public toolbar_buttons_visible = 0; //when both toolbar buttons are visible
+ }
+ parts {
+ part {
+ name: "base";
+ type: RECT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ }
+ description {
+ state: "left" 0.0;
+ inherit: "default" 0.0;
+ rel1.relative: -1.0 0.0;
+ rel2.relative: 0.0 1.0;
+ }
+ description {
+ state: "right" 0.0;
+ inherit: "default" 0.0;
+ rel1.relative: 1.0 0.0;
+ rel2.relative: 2.0 1.0;
+ }
+ }
+ part {
+ name: "title_bg";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 0;
+ align: 0.0 0.0;
+ fixed: 0 1;
+ visible: 1;
+ rel1 { relative: 0.0 0.0; to: "base"; }
+ rel2 { relative: 1.0 0.0; to: "base"; }
+ color: NAVIFRAME_TITLE_BG_COLOR_INC;
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ min: 0 0;
+ fixed: 0 1;
+ rel1 { relative: 0.0 0.0; to: "base"; }
+ rel2 { relative: 1.0 0.0; to: "base"; }
+ }
+ }
+ part {
+ name: "title_line";
+ type: RECT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ min: 0 6;
+ align: 0.0 0.0;
+ fixed: 0 1;
+ visible: 1;
+ rel1 { relative: 0.0 0.0; to: "title_bg"; }
+ rel2 { relative: 1.0 0.0; to: "title_bg"; }
+ color: NAVIFRAME_TOP_LINE_COLOR;
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ min: 0 0;
+ }
+ }
+ part {
+ name: "title_clip";
+ type: RECT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ rel1 { to: "title_bg"; }
+ rel2 { to: "title_bg"; }
+ }
+ }
+ part {
+ name: "top_padding";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 0;
+ fixed: 0 1;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 0.0; to: "title_bg"; }
+ rel2 { relative: 1.0 0.0; to: "title_bg"; }
+ visible: 0;
+ }
+ }
+ part {
+ name: "padding_center_text1";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ min: 0 0;
+ fixed: 1 0;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 0.0; to: "title_bg"; }
+ rel2 { relative: 0.0 1.0; to: "title_bg"; }
+ visible: 0;
+ }
+ }
+
+ part {
+ name: "elm.swallow.content";
+ type: SWALLOW;
+ scale: 1;
+ repeat_events: 0;
+ clip_to: "content_clip";
+ description {
+ state: "default" 0.0;
+ align: 0.0 0.0;
+ rel1.relative: 0.0 1.0;
+ rel1.to_x: "base";
+ rel1.to_y: "title_bg";
+ rel2.relative: 1.0 0.0;
+ rel2.to_x: "base";
+ rel2.to_y: "toolbar_bg";
+ }
+ description {
+ state: "sip_visible" 0.0;
+ inherit: "default" 0.0;
+ rel2.relative: 1.0 1.0;
+ rel2.to: "base";
+ }
+ }
+ part {
+ name: "content_clip";
+ type: RECT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ rel1.to: "elm.swallow.content";
+ rel2.to: "elm.swallow.content";
+ }
+ }
+ part {
+ name: "padding_center_text2";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 0;
+ fixed: 1 0;
+ align: 1.0 0.5;
+ rel1 { relative: 0.0 0.0; to: "title_btns_padding_ext"; }
+ rel2 { relative: 0.0 1.0; to: "title_btns_padding_ext"; }
+ visible: 0;
+ }
+ }
+ part {
+ name: "padding_bottom_text";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 0;
+ fixed: 0 1;
+ align: 0.0 1.0;
+ rel1 { relative: 0.0 1.0; to: "title_bg"; }
+ rel2 { relative: 1.0 1.0; to: "title_bg"; }
+ visible: 0;
+ }
+ }
+
+ part {
+ name: "elm.text.title";
+ type: TEXT;
+ effect: FAR_SHADOW BOTTOM;
+ scale: 1;
+ repeat_events: 1;
+ clip_to: "title_clip";
+ description {
+ state: "default" 0.0;
+ text {
+ font: VIDEO_TITLE_FONT_STYLE;
+ size: VIDEO_TITLE_FONT_SIZE;
+ min: 0 0;
+ max: 1 0;
+ align: 0.5 0.5;
+ }
+ color: VIDEO_TITLE_FONT_DEFAULT_COLOR;
+ color3: 0 0 0 255;
+ align: 0.5 0.5;
+ fixed: 1 1;
+ rel1 { relative: 1.0 1.0; to_x: "padding_center_text1"; to_y: "top_padding"; }
+ rel2 { relative: 0.0 0.0; to_x: "padding_center_text2"; to_y: "padding_bottom_text"; }
+ }
+ }
+
+ part {
+ name: "access.title";
+ type: RECT;
+ repeat_events: 1;
+ description {
+ state: "default" 0.0;
+ fixed: 1 1;
+ rel1.to: "title_bg";
+ rel2.to: "title_bg";
+ color: 0 0 0 0;
+ }
+ }
+
+ part {
+ name: "padding_before_text";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ align: 1.0 0.5;
+ rel1 { relative: 0.0 0.0; to: "elm.text.title"; }
+ rel2 { relative: 0.0 1.0; to: "elm.text.title"; }
+ fixed: 1 0;
+ min: 0 0;
+ visible: 0;
+ }
+ }
+
+ part {
+ name: "click_event_area";
+ type: RECT;
+ ignore_flags: ON_HOLD;
+ repeat_events: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { to: "title_bg"; }
+ rel2 { to: "title_bg"; }
+ visible: 0;
+ }
+ }
+ part {
+ name: "title_left_btn_ext";
+ type: SWALLOW;
+ scale: 1;
+ clip_to: "title_clip";
+ description {
+ state: "default" 0.0;
+ max: 0 0;
+ fixed: 1 1;
+ align: 1 0.5;
+ rel1 { relative: 0.0 0.0; to: "title_btns_padding_ext"; }
+ rel2 { relative: 0.0 1.0; to: "title_btns_padding_ext"; }
+ }
+ }
+ part {
+ name: "title_btns_padding_ext";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 0;
+ fixed: 1 1;
+ align: 1 0.5;
+ visible: 0;
+ rel1 { relative: 0.0 0.0; to: "title_left_btn"; }
+ rel2 { relative: 0.0 1.0; to: "title_left_btn"; }
+ }
+ description {
+ state: "visible" 0.0;
+ inherit: "default" 0.0;
+ min: 0 0;
+ }
+ }
+ part {
+ name: "title_left_btn";
+ type: SWALLOW;
+ scale: 1;
+ clip_to: "title_clip";
+ description {
+ state: "default" 0.0;
+ max: 0 0;
+ fixed: 1 1;
+ align: 1 0.5;
+ rel1 { relative: 0.0 0.0; to: "title_btns_padding"; }
+ rel2 { relative: 0.0 1.0; to: "title_btns_padding"; }
+ }
+ }
+ part {
+ name: "title_btns_padding";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 0;
+ fixed: 1 1;
+ align: 1 0.5;
+ visible: 0;
+ rel1 { relative: 0.0 0.0; to: "title_right_btn"; }
+ rel2 { relative: 0.0 1.0; to: "title_right_btn"; }
+ }
+ description {
+ state: "visible" 0.0;
+ inherit: "default" 0.0;
+ min: 0 0;
+ }
+ }
+ part {
+ name: "bottom_right_padding";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 0;
+ fixed: 1 1;
+ align: 1.0 1.0;
+ rel1 { relative: 1.0 1.0; to: "title_bg"; }
+ rel2 { relative: 1.0 1.0; to: "title_bg"; }
+ visible: 0;
+ }
+ description {
+ state: "visible" 0.0;
+ inherit: "default" 0.0;
+ min: 0 0;
+ }
+ }
+ part {
+ name: "title_right_btn";
+ type: SWALLOW;
+ scale: 1;
+ clip_to: "title_clip";
+ description {
+ state: "default" 0.0;
+ max: 0 0;
+ align: 1 0.5;
+ fixed: 1 1;
+ rel1 { relative: 1.0 1.0; to_x: "title_bg"; to_y: "top_padding"; }
+ rel2 { relative: 0.0 0.0; to: "bottom_right_padding"; }
+ }
+ }
+ part {
+ name: "toolbar_bg";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 0;
+ max: 999999 0;
+ fixed: 0 1;
+ align: 0.0 1.0;
+ visible: 0;
+ rel1 { to: "base"; }
+ rel2 { to: "base"; }
+ color: 0 0 0 255;
+ }
+ description {
+ state: "visible" 0.0;
+ inherit: "default" 0.0;
+ min: 0 98;
+ max: 999999 98;
+ visible: 1;
+ }
+ description {
+ state: "sip_visible" 0.0;
+ inherit: "default" 0.0;
+ align: 0.0 0.0;
+ min: 1 0;
+ rel1 { to: "title_bg"; }
+ rel2 { to: "title_bg"; }
+ visible: 1;
+ }
+ }
+ part {
+ name: "prev_btn_bg";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ min: 112 0;
+ fixed: 1 0;
+ align: 1.0 0.0;
+ rel1 { relative: 1.0 0.0; to: "toolbar_bg"; }
+ rel2.to: "toolbar_bg";
+ visible: 0;
+ }
+ }
+ part {
+ name: "elm.swallow.prev_btn";
+ type: SWALLOW;
+ scale: 1;
+ clip_to: "toolbar_clip";
+ description {
+ state: "default" 0.0;
+ max: 85 98;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ rel1.to: "prev_btn_bg";
+ rel2.to: "prev_btn_bg";
+ }
+ }
+ part {
+ name: "toolbar_clip";
+ type: RECT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ rel1 { to: "toolbar_bg"; }
+ rel2 { to: "toolbar_bg"; }
+ }
+ }
+ }
+
+ programs {
+ program {
+ name: "content_new_pushed";
+ signal: "elm,state,new,pushed,internal";
+ source: "";
+ action: STATE_SET "default" 0.0;
+ target: "base";
+ transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+ after: "show_finished";
+ }
+ program {
+ name: "content_cur_pushed";
+ signal: "elm,state,cur,pushed,internal";
+ source: "";
+ action: STATE_SET "left" 0.0;
+ target: "base";
+ transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+ after: "pushed_finished";
+ }
+ program {
+ name: "content_prev_popped";
+ signal: "elm,state,prev,popped,internal";
+ source: "";
+ action: STATE_SET "default" 0.0;
+ target: "base";
+ transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+ after: "show_finished";
+ }
+ program {
+ name: "content_cur_popped";
+ signal: "elm,state,cur,popped,internal";
+ source: "";
+ action: STATE_SET "right" 0.0;
+ target: "base";
+ transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+ after: "popped_finished";
+ }
+ program {
+ name: "cur_pushed";
+ signal: "elm,state,cur,pushed";
+ source: "elm";
+ script {
+ set_state(PART:"base", "default", 0.0);
+ emit("elm,state,cur,pushed,internal", "");
+ }
+ }
+ program {
+ name: "new_pushed";
+ signal: "elm,state,new,pushed";
+ source: "elm";
+ script {
+ set_state(PART:"base", "right", 0.0);
+ emit("elm,state,new,pushed,internal", "");
+ }
+ }
+ program {
+ name: "prev_popped";
+ signal: "elm,state,prev,popped";
+ source: "elm";
+ script {
+ set_state(PART:"base", "left", 0.0);
+ emit("elm,state,prev,popped,internal", "");
+ }
+ }
+ program {
+ name: "cur_popped";
+ signal: "elm,state,cur,popped";
+ source: "elm";
+ script {
+ set_state(PART:"base", "default", 0.0);
+ emit("elm,state,cur,popped,internal", "");
+ }
+ }
+ program {
+ name: "visible";
+ signal: "elm,state,visible";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "base";
+ }
+ program {
+ name: "title_show";
+ signal: "elm,state,title,show";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "title_bg";
+ target: "title_line";
+ transition: LINEAR 0.4;
+ after: "show_finished";
+ }
+ program {
+ name: "title_hide";
+ signal: "elm,state,title,hide";
+ source: "elm";
+ action: STATE_SET "hide" 0.0;
+ target: "title_bg";
+ target: "title_line";
+ transition: LINEAR 0.4;
+ after: "hide_finished";
+ }
+ program {
+ name: "subtitle_show";
+ signal: "elm,state,subtitle,show";
+ source: "elm";
+ script {
+ set_state(PART:"elm.text.title", "subtitle_is_set", 0.0);
+ }
+ }
+ program {
+ name: "subtitle_hide";
+ signal: "elm,state,subtitle,hide";
+ source: "elm";
+ script {
+ set_state(PART:"elm.text.title", "default", 0.0);
+ }
+ }
+ program {
+ name: "prev_btn_show";
+ signal: "elm,state,prev_btn,show";
+ source: "elm";
+ script {
+ emit("elm,state,toolbar_bg,show", "elm");
+ }
+ }
+ program {
+ name: "prev_btn_hide";
+ signal: "elm,state,prev_btn,hide";
+ source: "elm";
+ script {
+ emit("elm,state,toolbar_bg,hide", "elm");
+ }
+ }
+ program {
+ name: "sip_show";
+ signal: "elm,state,sip,shown";
+ source: "";
+ script {
+ if (get_int(tbar_bg) <= 0)
+ set_state(PART:"toolbar_bg", "default", 0.0);
+ else
+ {
+ set_state(PART:"toolbar_bg", "sip_visible", 0.0);
+ set_state(PART:"elm.swallow.content", "sip_visible", 0.0);
+ }
+ }
+ }
+
+ program {
+ name: "sip_hide";
+ signal: "elm,state,sip,hidden";
+ source: "";
+ script {
+ if (get_int(tbar_bg) <= 0)
+ set_state(PART:"toolbar_bg", "default", 0.0);
+ else
+ {
+ set_state(PART:"toolbar_bg", "visible", 0.0);
+ set_state(PART:"elm.swallow.content", "default", 0.0);
+ }
+ }
+ }
+ program {
+ name: "left_btn_show";
+ signal: "elm,state,title_left_btn,show";
+ source: "elm";
+ script {
+ set_int(buttons_visible, get_int(buttons_visible) + 1);
+ set_state(PART:"bottom_right_padding", "visible", 0.0);
+ if (get_int(buttons_visible) >= 2)
+ set_state(PART:"title_btns_padding", "visible", 0.0);
+ }
+ }
+ program {
+ name: "left_btn_hide";
+ signal: "elm,state,title_left_btn,hide";
+ source: "elm";
+ script {
+ set_int(buttons_visible, get_int(buttons_visible) - 1);
+ set_state(PART:"title_btns_padding", "default", 0.0);
+ if (get_int(buttons_visible) == 0)
+ set_state(PART:"bottom_right_padding", "default", 0.0);
+ }
+ }
+ program {
+ name: "right_btn_show";
+ signal: "elm,state,title_right_btn,show";
+ source: "elm";
+ action: STATE_SET "visible" 0.0;
+ script {
+ set_int(buttons_visible, get_int(buttons_visible) + 1);
+ set_state(PART:"bottom_right_padding", "visible", 0.0);
+ if (get_int(buttons_visible) >= 2)
+ set_state(PART:"title_btns_padding", "visible", 0.0);
+ }
+ }
+ program {
+ name: "right_btn_hide";
+ signal: "elm,state,title_right_btn,hide";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ script {
+ set_int(buttons_visible, get_int(buttons_visible) - 1);
+ set_state(PART:"title_btns_padding", "default", 0.0);
+ if (get_int(buttons_visible) == 0)
+ set_state(PART:"bottom_right_padding", "default", 0.0);
+ }
+ }
+
+ program {
+ name: "toolbar_bg_show";
+ signal: "elm,state,toolbar_bg,show";
+ source: "elm";
+ script {
+ set_state(PART:"toolbar_bg", "visible", 0.0);
+ set_int(tbar_bg, get_int(tbar_bg) + 1);
+ }
+ }
+ program {
+ name: "toolbar_bg_hide";
+ signal: "elm,state,toolbar_bg,hide";
+ source: "elm";
+ script {
+ set_int(tbar_bg, get_int(tbar_bg) - 1);
+ if (get_int(tbar_bg) <= 0)
+ set_state(PART:"toolbar_bg", "default", 0.0);
+ }
+ }
+ program {
+ name: "toolbar_open";
+ signal: "elm,state,toolbar,open";
+ source: "";
+ action: STATE_SET "visible" 0.0;
+ target: "toolbar_bg";
+ transition: LINEAR 0.2;
+ }
+ program {
+ name: "toolbar_close";
+ signal: "elm,state,toolbar,close";
+ source: "";
+ action: STATE_SET "default" 0.0;
+ target: "toolbar_bg";
+ transition: LINEAR 0.2;
+ }
+
+ program {
+ name: "show_finished";
+ action: SIGNAL_EMIT "elm,action,show,finished" "";
+ }
+ program {
+ name: "hide_finished";
+ action: SIGNAL_EMIT "elm,action,hide,finished" "";
+ }
+
+ program {
+ name: "pushed_finished";
+ action: SIGNAL_EMIT "elm,action,pushed,finished" "";
+ }
+ program {
+ name: "popped_finished";
+ action: SIGNAL_EMIT "elm,action,popped,finished" "";
+ }
+ program {
+ name: "title_clicked";
+ signal: "mouse,clicked,1";
+ source: "click_event_area";
+ action: SIGNAL_EMIT "elm,action,title,clicked" "";
+ }
+ program {
+ name: "display_mode_compress";
+ signal: "display,mode,compress";
+ source: "";
+ action: SIGNAL_EMIT "elm,state,toolbar,instant_close" "";
+ }
+ program {
+ name: "display_mode_default";
+ signal: "display,mode,default";
+ source: "";
+ action: SIGNAL_EMIT "elm,state,toolbar,instant_open" "";
+ }
+ }
+}
+
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES 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 */
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES 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 */
+
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "pv-image.edc"
+
+#define FONT_BOLD_TYPE "Tizen:style=Bold"
+
+#define FONT_VOLUME_COLOR 255 255 255 255
+
+
+collections {
+ base_scale : 1.6;
+ group {
+ name: "pv.brightness.popup";
+ parts {
+ part {
+ name: "pv.brightness.popup.rect";
+ type: RECT;
+ mouse_events: 1;
+ repeat_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible : 1;
+ min: 58 286;
+ fixed: 1 1;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 0.0 0.5;}
+ color: 0 0 0 0;
+ }
+ }
+
+ part {
+ name: "pv.brightness.popup.bg";
+ type: IMAGE;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible : 1;
+ min: 58 286;
+ fixed: 1 1;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 0.0 0.5;}
+ color: 255 255 255 255;
+ image { normal: "volume/T01_2_volume_popup_bg.png"; border: 0 0 29 29;}
+ }
+ }
+
+ part {
+ name: "pv.brightness.popup.icon.padding";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible : 0;
+ min: 0 12;
+ fixed: 1 1;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 0.0; to: "pv.brightness.popup.bg";}
+ rel2 { relative: 1.0 0.0; to: "pv.brightness.popup.bg";}
+ color: 255 0 0 255;
+
+ }
+ }
+
+ part {
+ name: "pv.brightness.popup.icon";
+ type: SWALLOW;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible : 1;
+ min: 22 22;
+ fixed: 1 1;
+ align: 0.5 0.0;
+ rel1 { relative: 0.5 1.0; to_x: "pv.brightness.popup.bg"; to_y: "pv.brightness.popup.icon.padding";}
+ rel2 { relative: 0.5 1.0; to_x: "pv.brightness.popup.bg"; to_y: "pv.brightness.popup.icon.padding";}
+ }
+ }
+
+ part {
+ name: "pv.brightness.popup.top.padding";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible : 0;
+ min: 0 11;
+ fixed: 1 1;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 1.0; to: "pv.brightness.popup.icon";}
+ rel2 { relative: 1.0 1.0; to: "pv.brightness.popup.icon";}
+ color: 255 0 0 255;
+
+ }
+ }
+
+ part {
+ name: "pv.brightness.popup.bottom.padding";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible : 0;
+ min: 0 18;
+ fixed: 1 1;
+ align: 0.0 1.0;
+ rel1 { relative: 0.0 1.0; to: "pv.brightness.popup.bg";}
+ rel2 { relative: 1.0 1.0; to: "pv.brightness.popup.bg";}
+ color: 255 0 0 255;
+
+ }
+ }
+
+ part {
+ name: "pv.brightness.popup.txt";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ effect: FAR_SHADOW BOTTOM;
+ description {
+ state: "default" 0.0;
+ visible : 1;
+ min: 0 23;
+ fixed: 1 1;
+ align: 0.5 1.0;
+ rel1 { relative: 0.0 0.0; to: "pv.brightness.popup.bottom.padding";}
+ rel2 { relative: 1.0 0.0; to: "pv.brightness.popup.bottom.padding";}
+ color: FONT_VOLUME_COLOR;
+ color3: 51 57 72 255;
+ text {
+ font: FONT_BOLD_TYPE;
+ size: 21;
+ text: "3";
+ align: 0.5 0.5;
+ }
+
+ }
+ }
+
+ part {
+ name: "pv.brightness.popup.txt.padding";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible : 0;
+ min: 0 11;
+ fixed: 0 1;
+ align: 0.0 1.0;
+ rel1 { relative: 0.0 0.0; to: "pv.brightness.popup.txt";}
+ rel2 { relative: 1.0 0.0; to: "pv.brightness.popup.txt";}
+ color: 255 0 0 255;
+
+ }
+ }
+
+ part {
+ name: "pv.brightness.popup.bar.bg";
+ type: IMAGE;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 6 0;
+ fixed: 1 0;
+ align: 0.5 0.5;
+ rel1 { relative: 0.5 1.0; to_x : "pv.brightness.popup.bg"; to_y : "pv.brightness.popup.top.padding";}
+ rel2 { relative: 0.5 0.0; to_x : "pv.brightness.popup.bg"; to_y : "pv.brightness.popup.txt.padding";}
+ image { normal: "volume/T01_2_volume_popup_progress_bg.png"; border: 0 0 19 19;}
+ color: 255 255 255 255;
+ }
+ }
+
+ part {
+ name: "pv.brightness.popup.bar.bg.top.padding";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 0 22;
+ fixed: 0 1;
+ align: 0.5 0.0;
+ rel1 { relative: 0.0 0.0; to : "pv.brightness.popup.bar.bg"; }
+ rel2 { relative: 1.0 0.0; to : "pv.brightness.popup.bar.bg"; }
+ color: 255 255 255 255;
+ }
+ }
+
+ part {
+ name: "pv.brightness.popup.bar.bg.bottom.padding";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 0 22;
+ fixed: 0 1;
+ align: 0.5 1.0;
+ rel1 { relative: 0.0 1.0; to : "pv.brightness.popup.bar.bg"; }
+ rel2 { relative: 1.0 1.0; to : "pv.brightness.popup.bar.bg"; }
+ color: 255 255 255 255;
+ }
+ }
+
+ part {
+ name: "pv.brightness.popup.bar.rect";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 0 13;
+ fixed: 0 1;
+ align: 0.5 1.0;
+ rel1 { relative: 0.0 1.0; to_x : "pv.brightness.popup.bar.bg"; to_y : "pv.brightness.popup.bar.bg.top.padding";}
+ rel2 { relative: 1.0 0.0; to_x : "pv.brightness.popup.bar.bg"; to_y : "pv.brightness.popup.bar.bg.bottom.padding";}
+ color: 255 255 255 255;
+ }
+ }
+
+
+ part {
+ name: "pv.brightness.popup.step";
+ type: IMAGE;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 6 0;
+ fixed: 1 0;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 0.5; to_x : "pv.brightness.popup.bar.bg"; to_y: "pv.brightness.popup.circle"; }
+ rel2 { relative: 1.0 1.0; to_x : "pv.brightness.popup.bar.bg"; to_y: "pv.brightness.popup.bar.bg"; offset: 0 2; }
+ color: 255 255 255 255;
+ image { normal: "volume/T01_2_volume_popup_progress_bar.png"; border: 0 0 10 10;}
+ color: 255 255 255 255;
+ }
+ }
+ part {
+ name: "pv.brightness.popup.confine.rect";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ align: 0.5 0.0;
+ min: 24 0;
+ rel1 { relative: 0.5 0.0; to: "pv.brightness.popup.bar.bg"; offset: 0 -11; }
+ rel2 { relative: 0.5 1.0; to: "pv.brightness.popup.bar.bg"; offset: 0 11; }
+ color: 255 255 255 0;
+ }
+ }
+
+ part {
+ name: "pv.brightness.popup.circle";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 24 24;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ rel1 { relative: 0.5 0.5; to_x: "pv.brightness.popup.bar.rect"; to_y: "pv.brightness.popup.playing"; }
+ rel2 { relative: 0.5 0.5; to_x: "pv.brightness.popup.bar.rect"; to_y: "pv.brightness.popup.playing"; }
+ color: 255 255 255 255;
+ }
+ }
+ part {
+ name: "pv.brightness.popup.playing";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 24 24;
+ fixed: 0 0;
+ align: 0.0 0.0;
+ }
+ dragable {
+ confine: "pv.brightness.popup.confine.rect";
+ x: 0 0 0;
+ y: -1 1 0;
+ }
+ }
+
+
+ part {
+ name: "pv.brightness.popup.point";
+ type: IMAGE;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 24 24;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ rel1 { relative: 0.5 0.5; to: "pv.brightness.popup.playing"; }
+ rel2 { relative: 0.5 0.5; to: "pv.brightness.popup.playing"; }
+ image { normal: "volume/T01_2_volume_popup_progress_handle.png";}
+ color: 255 255 255 255;
+ }
+ }
+ } /* parts */
+ } /* group */
+} /* collections */
+
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES 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 */
+
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES 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 */
+
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES 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"
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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;}
+ }
+ }
+ }
+}
+
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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;
+}
+
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+//#include "mp-defines.h"
+
+#define LOCKSCREEN_MINI_W 300
+#define LOCKSCREEN_MINI_H 93
+#define LOCKSCREEN_TOP_PADDING 19.2
+#define LOCKSCREEN_LEFT_PADDING 24
+#define LOCKSCREEN_RIGHT_PADDING 22.5
+#define LOCKSCREEN_BOTTOM_PADDING 36.8
+#define ALBUM_ART_SIZE 120 120
+
+#define LOCKSCREEN_BUTTON_SIZE_MIN_MAX 99 105
+#define LOCKSCREEN_BIG_BTN_SIZE_MIN_MAX 126 134
+
+#define MC_LOCKSCREEN_BG 30 28 28 0
+
+#define MC_LOCKSCREEN_PREVIOUS "lock_screen/control_circle_icon_rewind.png"
+#define MC_LOCKSCREEN_PREVIOUS_PRESS "lock_screen/control_circle_icon_rewind_press.png"
+#define MC_LOCKSCREEN_NEXT "lock_screen/control_circle_icon_ff.png"
+#define MC_LOCKSCREEN_NEXT_PRESS "lock_screen/control_circle_icon_ff_press.png"
+
+#define MC_LOCKSCREEN_PLAY "lock_screen/control_circle_icon_play.png"
+#define MC_LOCKSCREEN_PAUSE "lock_screen/control_circle_icon_pause.png"
+#define MC_LOCKSCREEN_PLAY_PRESS "lock_screen/control_circle_icon_play_press.png"
+#define MC_LOCKSCREEN_PAUSE_PRESS "lock_screen/control_circle_icon_pause_press.png"
+#define MC_MUSIC_STOP_BTN "lock_screen/control_circle_icon_stop.png"
+#define MC_MUSIC_ALBUM_FRAME "lock_screen/album_frame.png"
+
+
+#define LOCKSCREEN_INTERVAL 34.5
+#define MC_LOCKSCREEN_FOCUSED_COVER(__name, __over_part_bg) \
+part { \
+ name: __name"_focus"; \
+ type: SWALLOW; \
+ mouse_events: 1; \
+ scale: 1; \
+ repeat_events: 1; \
+ description { \
+ state: "default" 0.0; \
+ align: 0 0; \
+ visible:1; \
+ rel1 { \
+ relative: 0 0; \
+ to: __over_part_bg; \
+ } \
+ rel2 { \
+ relative: 1 1; \
+ to: __over_part_bg; \
+ } \
+ } \
+}
+
+#define MC_LOCKSCREEN_PART_AREA_FROM_LEFT(__name, __left_part, __width, __height) \
+part { name: __name; \
+ type: SPACER; \
+ scale: 1; \
+ mouse_events: 0; \
+ description { state: "default" 0.0; \
+ rel1 { relative: 1.0 0.5; to: __left_part; } \
+ rel2 { relative: 1.0 0.5; to: __left_part; } \
+ min: __width __height; \
+ fixed: 1 1; \
+ align: 0.0 0.5; \
+ } \
+}
+/*
+#define MC_LOCKSCREEN_PROGRAM_PLAY_TOUCH_SOUND \
+program { name: "play_sound"; \
+ action: RUN_PLUGIN "touch_sound_plugin"; \
+}
+*/
+#define MC_LOCKSCREEN_PART_ICON_BTN(__name, __to, __normal, __pressed, __btn_min_max) \
+part { name: __name"_clip"; \
+ type: RECT; \
+ scale: 1; \
+ mouse_events: 0; \
+ description { state: "default" 0.0; \
+ rel1.to: __name"_bg"; \
+ rel2.to: __name"_bg"; \
+ color: 255 255 255 255; \
+ } \
+ description { state: "hide" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 0; \
+ } \
+} \
+part { name: __name"_bg"; \
+ type: IMAGE; \
+ scale: 1; \
+ mouse_events: 0; \
+ clip_to: __name"_clip"; \
+ description { state: "default" 0.0; \
+ rel1 { relative: 0.5 0.5; to: __to; } \
+ rel2 { relative: 0.5 0.5; to: __to; }\
+ min: __btn_min_max; \
+ max: __btn_min_max; \
+ image.normal: __normal; \
+ fixed: 1 1; \
+ align: 0.5 0.5; \
+ } \
+ description { state: "pressed" 0.0; \
+ inherit: "default" 0.0; \
+ } \
+} \
+part { name: __name; \
+ type: RECT; \
+ scale: 1; \
+ mouse_events: 1; \
+ clip_to: __name"_clip"; \
+ description { state: "default" 0.0; \
+ rel1.to: __name"_bg"; \
+ rel2.to: __name"_bg"; \
+ color: 0 0 0 0; \
+ } \
+}
+
+#define MC_LOCKSCREEN_PART_BUTTON(__name, __to, __normal, __pressed, __min_max) \
+part { \
+ name: __name"_spacer"; \
+ type: SPACER; \
+ scale: 1; \
+ description { state: "default" 0.0; \
+ rel1 { relative: 0 0; to: __to; } \
+ rel2 { relative: 1 1; to: __to; } \
+ } \
+} \
+part { \
+ name: __name"_bg"; \
+ mouse_events: 0; \
+ type: RECT; \
+ scale: 1; \
+ description { \
+ state: "default" 0.0; \
+ align: 0.5 0.5; \
+ visible: 0; \
+ rel1 { \
+ relative: 0.5 0.5; \
+ to: __name"_spacer"; \
+ } \
+ rel2 { \
+ relative: 0.5 0.5; \
+ to: __name"_spacer"; \
+ } \
+ min: __min_max; \
+ max: __min_max; \
+ fixed: 1 1; \
+ } \
+ description { state: "invisible" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 0; \
+ } \
+} \
+part{ \
+ name : __name"_press_bg"; \
+ type: RECT; \
+ mouse_events:0; \
+ scale : 1; \
+ description { \
+ state: "default" 0.0; \
+ align: 0 0; \
+ visible:1; \
+ color: 0 0 0 0; \
+ rel1 { \
+ relative: 0 0; \
+ to: __name"_bg"; \
+ } \
+ rel2 { \
+ relative: 1 1; \
+ to: __name"_bg"; \
+ } \
+ } \
+ description { \
+ state: "press" 0.0; \
+ inherit: "default" 0.0; \
+ } \
+ description { state: "invisible" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 0; \
+ } \
+} \
+part { \
+ name: __name; \
+ type: IMAGE; \
+ mouse_events: 1; \
+ scale: 1; \
+ description { \
+ state: "default" 0.0; \
+ align: 0 0; \
+ visible:1; \
+ image { normal: __normal; } \
+ rel1 { \
+ relative: 0 0; \
+ to: __name"_bg"; \
+ } \
+ rel2 { \
+ relative: 1 1; \
+ to: __name"_bg"; \
+ } \
+ } \
+ description { \
+ state: "press" 0.0; \
+ inherit: "default" 0.0; \
+ image { normal: __pressed; } \
+ } \
+ description { state: "invisible" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 0; \
+ } \
+}
+
+#define MC_LOCKSCREEN_PAUSE_PART_BUTTON(__name, __to, __normal, __pressed, __min_max) \
+part { \
+ name: __name"_spacer"; \
+ type: SPACER; \
+ scale: 1; \
+ description { state: "default" 0.0; \
+ rel1 { relative: 0 0; to: __to; } \
+ rel2 { relative: 1 1; to: __to; } \
+ } \
+} \
+part { \
+ name: __name"_bg"; \
+ mouse_events: 0; \
+ type: RECT; \
+ scale: 1; \
+ description { \
+ state: "default" 0.0; \
+ align: 0.5 0.5; \
+ visible: 0; \
+ rel1 { \
+ relative: 0.5 0.5; \
+ to: __name"_spacer"; \
+ } \
+ rel2 { \
+ relative: 0.5 0.5; \
+ to: __name"_spacer"; \
+ } \
+ min: __min_max; \
+ max: __min_max; \
+ fixed: 1 1; \
+ color: 0 0 0 0; \
+ } \
+ description { state: "invisible" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 0; \
+ } \
+} \
+part{ \
+ name : __name"_press_bg"; \
+ type: RECT; \
+ mouse_events:0; \
+ scale : 1; \
+ description { \
+ state: "default" 0.0; \
+ align: 0 0; \
+ color: 0 0 0 0; \
+ visible:1; \
+ rel1 { \
+ relative: 0 0; \
+ to: __name"_bg"; \
+ } \
+ rel2 { \
+ relative: 1 1; \
+ to: __name"_bg"; \
+ } \
+ } \
+ description { \
+ state: "press" 0.0; \
+ inherit: "default" 0.0; \
+ } \
+ description { state: "invisible" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 0; \
+ } \
+} \
+part { \
+ name: __name; \
+ type: IMAGE; \
+ mouse_events: 1; \
+ scale: 1; \
+ description { \
+ state: "default" 0.0; \
+ align: 0 0; \
+ visible:1; \
+ image { normal: __normal; } \
+ rel1 { \
+ relative: 0 0; \
+ to: __name"_bg"; \
+ } \
+ rel2 { \
+ relative: 1 1; \
+ to: __name"_bg"; \
+ } \
+ } \
+ description { \
+ state: "press" 0.0; \
+ inherit: "default" 0.0; \
+ image { normal: __pressed; } \
+ } \
+ description { state: "invisible" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 0; \
+ } \
+}
+
+#define MC_LOCKSCREEN_PART_TEXT_BTN(__name, __to, __text_part_name) \
+part { name: __name"_clip"; \
+ type: RECT; \
+ scale: 1; \
+ mouse_events: 0; \
+ description { state: "default" 0.0; \
+ rel1.to: __to; \
+ rel2.to: __to; \
+ color: 255 255 255 255; \
+ } \
+ description { state: "hide" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 0; \
+ } \
+} \
+part { name: __name"_bg"; \
+ type: SPACER; \
+ scale: 1; \
+ mouse_events: 0; \
+ clip_to: __name"_clip"; \
+ description { state: "default" 0.0; \
+ rel1.to: __to; \
+ rel2.to: __to; \
+ } \
+ description { state: "pressed" 0.0; \
+ inherit: "default" 0.0; \
+ } \
+} \
+part { name: __text_part_name; \
+ type: TEXT; \
+ scale: 1; \
+ mouse_events: 0; \
+ clip_to: __name"_clip"; \
+ description { state: "default" 0.0; \
+ rel1.to: __name"_bg"; \
+ rel2.to: __name"_bg"; \
+ text { \
+ font: "Tizen:style=Medium"; \
+ text_class: "tizen"; \
+ size: 28; \
+ align: 0.5 0.5; \
+ } \
+ color: 149 149 149 255; \
+ } \
+} \
+part { name: __name; \
+ type: RECT; \
+ scale: 1; \
+ mouse_events: 1; \
+ clip_to: __name"_clip"; \
+ description { state: "default" 0.0; \
+ rel1.to: __to; \
+ rel2.to: __to; \
+ color: 0 0 0 0; \
+ } \
+}
+
+#define MC_LOCKSCREEN_PART_RECT(__name, __to, __sx, __sy, __ex, __ey) \
+part { \
+ name: __name; \
+ mouse_events: 1; \
+ repeat_events: 1; \
+ type: RECT; \
+ scale: 1; \
+ description { \
+ state: "default" 0.0; \
+ align: 0 0; \
+ visible: 1; \
+ rel1 { \
+ relative: __sx __sy; \
+ to: __to; \
+ } \
+ rel2 { \
+ relative: __ex __ey; \
+ to: __to; \
+ } \
+ color: 0 0 0 0; \
+ }\
+ description { \
+ state: "hide" 0.0; \
+ visible: 0; \
+ }\
+}
+
+#define MC_LOCKSCREEN_PART_SWALLOW(__name, __to, __sx, __sy, __ex, __ey) \
+part { \
+ name: __name; \
+ mouse_events: 1; \
+ type: SWALLOW; \
+ scale: 1; \
+ description { \
+ state: "default" 0.0; \
+ align: 0.5 0.5; \
+ fixed: 1 1; \
+ visible: 1; \
+ fixed:1 1;\
+ rel1 { \
+ relative: __sx __sy; \
+ to: __to; \
+ } \
+ rel2 { \
+ relative: __ex __ey; \
+ to: __to; \
+ } \
+ color: 0 0 0 0; \
+ } \
+}
+
+#define MC_LOCKSCREEN_PROGRAM_BTN_ACTION(__btn, __down_emission, __down_src, __up_emission, __up_src, __clicked_emission, __clicked_src) \
+program { \
+ source: __btn; \
+ signal: "mouse,down,1"; \
+ script { \
+ set_state(PART:__btn"_bg", "pressed", 0.0); \
+ emit(__down_emission, __down_src); \
+ } \
+ transition: ACCELERATE 0.02;\
+} \
+program { \
+ signal: "mouse,up,1"; \
+ source: __btn; \
+ script { \
+ set_state(PART:__btn"_bg", "default", 0.0); \
+ emit(__up_emission, __up_src); \
+ } \
+} \
+program { \
+ signal: "mouse,clicked,1"; \
+ source: __btn; \
+ action: SIGNAL_EMIT __clicked_emission __clicked_src; \
+}
+
+#define MC_LOCKSCREEN_BUTTON_PROGRAM(__name) \
+program { \
+ name: __name"_down"; \
+ source: __name; \
+ signal: "mouse,down,1"; \
+ action: STATE_SET "press" 0.0; \
+ target: __name"_bg"; \
+ target: __name"_press_bg"; \
+ target: __name; \
+ transition: ACCELERATE 0.02;\
+} \
+program { \
+ name: __name"_up"; \
+ source: __name; \
+ signal: "mouse,up,1"; \
+ action: STATE_SET "default" 0.0; \
+ target: __name"_bg"; \
+ target: __name"_press_bg"; \
+ target: __name; \
+ transition: DECELERATE 0.02;\
+} \
+program { \
+ name: __name"_unpressed"; \
+ source: __name; \
+ signal: "signal.button.unpressed"; \
+ action: STATE_SET "default" 0.0; \
+ target: __name"_bg"; \
+ target: __name"_press_bg"; \
+ target: __name; \
+ transition: DECELERATE 0.02;\
+} \
+program { \
+ name: __name"_clicked"; \
+ source: __name; \
+ signal: "mouse,clicked,1"; \
+ action: SIGNAL_EMIT __name"_clicked" 0.0; \
+}
+
+#define MC_LOCKSCREEN_BUTTON_VISIVBLE_PROGRAM(__name) \
+program { \
+ name: __name"_visible" ; \
+ signal: __name"_visible"; \
+ source: __name; \
+ action: STATE_SET "default" 0.0; \
+ target: __name"_bg"; \
+ target: __name"_press_bg"; \
+ target: __name; \
+} \
+program { \
+ name: __name"_invisible" ; \
+ signal: __name"_invisible"; \
+ source: __name; \
+ action: STATE_SET "invisible" 0.0; \
+ target: __name"_bg"; \
+ target: __name"_press_bg"; \
+ target: __name; \
+}
+
+#define MC_LOCKSCREEN_PROGRAM_BTN_VISIBLE(__btn, __show_signal, __hide_signal) \
+program { \
+ signal: __show_signal; \
+ source: "*"; \
+ action: STATE_SET "default" 0.0; \
+ target: __btn"_clip"; \
+} \
+program { \
+ signal: __hide_signal; \
+ source: "*"; \
+ action: STATE_SET "hide" 0.0; \
+ target: __btn"_clip"; \
+}
+
+#define MC_LOCKSCREEN_MINI_CONTROL_HIDE_SWALLOW_OPTION(__name, __to) \
+part { \
+ name: __name; \
+ mouse_events: 1; \
+ type: SWALLOW; \
+ scale: 1; \
+ repeat_events: 1; \
+ description { \
+ state: "default" 0.0; \
+ align: 0.5 0.5; \
+ visible: 0; \
+ rel1 { \
+ relative: 0 0; \
+ to: __to; \
+ } \
+ rel2 { \
+ relative: 1 1; \
+ to: __to; \
+ } \
+ color: 0 0 0 0; \
+ } \
+ description { \
+ state: "visible" 0.0; \
+ inherit: "default"; \
+ visible: 1; \
+ } \
+}
+
+#define MC_LOCKSCREEN_MINI_CONTROL_BUTTON_INVISIVBLE_PROGRAM(__name) \
+program { \
+ name: __name"_visible" ; \
+ signal: __name"_visible"; \
+ source: __name; \
+ action: STATE_SET "visible" 0.0; \
+ target: __name; \
+} \
+program { \
+ name: __name"_invisible" ; \
+ signal: __name"_invisible"; \
+ source: __name; \
+ action: STATE_SET "default" 0.0; \
+ target: __name; \
+}
+
+externals {
+ external: "elm";
+ external: "feedback";
+}
+
+collections {
+base_scale: 2.4;
+/*
+sounds {
+ sample {
+ name: "button-pressed" AS_IS;
+ source: MP_BUTTON_PRESSED_NAME;
+ }
+}
+plugins {
+ plugin {
+ name: "touch_sound_plugin";
+ source: "feedback";
+ param: "FEEDBACK_TYPE_SOUND FEEDBACK_PATTERN_TAP";
+ }
+}
+*/
+group {
+ name: "video-lockscreenmini";
+ images {
+ image: MC_LOCKSCREEN_PREVIOUS COMP;
+ image: MC_LOCKSCREEN_PREVIOUS_PRESS COMP;
+ image: MC_LOCKSCREEN_NEXT COMP;
+ image: MC_LOCKSCREEN_NEXT_PRESS COMP;
+ image: MC_LOCKSCREEN_PLAY COMP;
+ image: MC_LOCKSCREEN_PAUSE COMP;
+ image: MC_LOCKSCREEN_PLAY_PRESS COMP;
+ image: MC_LOCKSCREEN_PAUSE_PRESS COMP;
+ image: MC_MUSIC_ALBUM_FRAME COMP;
+ }
+ parts {
+ part{ name: "bg";
+ type : RECT;
+ scale : 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ min : 0 LOCKSCREEN_MINI_H;
+ fixed: 1 1;
+ rel1{ relative : 0 0;}
+ rel2{ relative : 1 1;}
+ color : MC_LOCKSCREEN_BG;
+ }
+ }
+
+ part { name: "padding.top";
+ type: SPACER;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 0; to: "bg"; }
+ rel2 { relative: 1 0; to: "bg"; }
+ min: 0 LOCKSCREEN_TOP_PADDING;
+ fixed: 0 1;
+ align: 0 0;
+ }
+ }
+
+ part { name: "padding.left";
+ type: SPACER;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 0; to: "bg"; }
+ rel2 { relative: 0 1; to: "bg"; }
+ min: LOCKSCREEN_LEFT_PADDING 0;
+ fixed: 1 0;
+ align: 0 0;
+ }
+ }
+
+ part { name: "padding.right";
+ type: SPACER;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 1 0; to: "bg"; }
+ rel2 { relative: 1 1; to: "bg"; }
+ min: LOCKSCREEN_RIGHT_PADDING 0;
+ fixed: 1 0;
+ align: 1 0;
+ }
+ }
+
+ part { name: "padding.bottom";
+ type: SPACER;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 1; to: "bg"; }
+ rel2 { relative: 1 1; to: "bg"; }
+ min: 0 LOCKSCREEN_BOTTOM_PADDING;
+ fixed: 0 1;
+ align: 0 1;
+ }
+ }
+ part { name: "padding_for_albumart.top";
+ type: SPACER;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: 0 0; to: "bg"; }
+ rel2 { relative: 1 0; to: "bg"; }
+ min: 0 40;
+ fixed: 0 1;
+ align: 0.0 0.0;
+ }
+ }
+
+ part { name: "padding_for_albumart.bottom";
+ type: SPACER;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 1; to: "bg"; }
+ rel2 { relative: 1 1; to: "bg"; }
+ min: 0 15;
+ fixed: 0 1;
+ align: 0 1;
+ }
+ }
+ part { name: "albumarmt_bg";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 1.0 1.0; to_x: "padding.left"; to_y: "padding_for_albumart.top"; }
+ rel2 { relative: 1.0 0.0; to_x: "padding.left"; to_y: "padding_for_albumart.bottom"; }
+ min: ALBUM_ART_SIZE;
+ max: ALBUM_ART_SIZE;
+ fixed: 1 1;
+ align: 0.0 0.5;
+ }
+ }
+ part { name: "albumart_image";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 1;
+ clip_to: "albumarmt_bg";
+ description { state: "default" 0.0;
+ rel1 { relative: 0.5 0.5; to: "albumarmt_bg"; }
+ rel2 { relative: 0.5 0.5; to: "albumarmt_bg"; }
+ min: ALBUM_ART_SIZE;
+ max: ALBUM_ART_SIZE;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ }
+ }
+
+ part { name: "albumarmt_frame";
+ type: IMAGE;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 0.0 0.0; to: "albumarmt_bg";}
+ rel2 { relative: 1.0 1.0; to: "albumarmt_bg";}
+ min: ALBUM_ART_SIZE;
+ image.normal: MC_MUSIC_ALBUM_FRAME;
+ color_class:"AO009";
+ }
+ }
+ part { name: "elm.text";
+ type: SWALLOW;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 1.0 1.0; to_x: "padding.left"; to_y: "padding.top";}
+ rel2 { relative: 0 1.0; to_x: "padding.right"; to_y: "padding.top"; offset: 0 45;}
+ fixed: 1 1;
+ }
+ }
+
+ part { name: "control_area";
+ type: SPACER;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 1.0 1.0; to_x: "padding.left"; to_y: "elm.text"; }
+ rel2 { relative: 0.0 0.0; to_x: "padding.right"; to_y: "padding.bottom"; }
+ min: 0 134.4;
+ fixed: 0 1;
+ align: 0.5 0.5;
+ }
+ }
+
+ part { name: "rew_btn_area";
+ type: SPACER;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 0.27 0.45; to_x: "control_area"; to_y: "control_area";}
+ rel2 { relative: 0.27 0.45; to_x: "control_area"; to_y: "control_area";}
+ min: 99 134;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ }
+ }
+
+ part { name: "left_area";
+ type: SPACER;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 0.0 0.0; to: "rew_btn_area"; }
+ rel2 { relative: 1.0 1.0; to: "rew_btn_area"; }
+ min: LOCKSCREEN_BUTTON_SIZE_MIN_MAX;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ }
+ }
+
+ MC_LOCKSCREEN_PART_BUTTON("rew_btn", "left_area", MC_LOCKSCREEN_PREVIOUS, MC_LOCKSCREEN_PREVIOUS_PRESS, LOCKSCREEN_BUTTON_SIZE_MIN_MAX)
+ MC_LOCKSCREEN_FOCUSED_COVER("rew", "left_area");
+
+ MC_LOCKSCREEN_PART_AREA_FROM_LEFT("rew_right_padding", "left_area", LOCKSCREEN_INTERVAL, 134)
+
+ MC_LOCKSCREEN_PART_AREA_FROM_LEFT("play_pause_btn_area", "rew_right_padding", 126, 134)
+
+ MC_LOCKSCREEN_PART_BUTTON("play_btn", "play_pause_btn_area", MC_LOCKSCREEN_PAUSE, MC_LOCKSCREEN_PAUSE_PRESS, LOCKSCREEN_BIG_BTN_SIZE_MIN_MAX)
+ MC_LOCKSCREEN_PAUSE_PART_BUTTON("pause_btn", "play_pause_btn_area", MC_LOCKSCREEN_PLAY, MC_LOCKSCREEN_PLAY_PRESS, LOCKSCREEN_BIG_BTN_SIZE_MIN_MAX)
+
+ MC_LOCKSCREEN_FOCUSED_COVER("play_pause", "play_pause_btn_area");
+
+ MC_LOCKSCREEN_PART_AREA_FROM_LEFT("play_pause_right_padding", "play_pause_btn_area", LOCKSCREEN_INTERVAL, 134)
+
+ MC_LOCKSCREEN_PART_AREA_FROM_LEFT("ff_btn_area", "play_pause_right_padding", 99, 105)
+
+ MC_LOCKSCREEN_PART_BUTTON("ff_btn", "ff_btn_area", MC_LOCKSCREEN_NEXT, MC_LOCKSCREEN_NEXT_PRESS, LOCKSCREEN_BUTTON_SIZE_MIN_MAX)
+ MC_LOCKSCREEN_FOCUSED_COVER("ff", "ff_btn_area");
+
+ }
+
+ programs {
+/* MC_LOCKSCREEN_PROGRAM_PLAY_TOUCH_SOUND*/
+
+ MC_LOCKSCREEN_BUTTON_PROGRAM("rew_btn")
+ MC_LOCKSCREEN_BUTTON_PROGRAM("ff_btn")
+
+ MC_LOCKSCREEN_BUTTON_PROGRAM("play_btn")
+ MC_LOCKSCREEN_BUTTON_VISIVBLE_PROGRAM("play_btn")
+ MC_LOCKSCREEN_BUTTON_PROGRAM("pause_btn")
+ MC_LOCKSCREEN_BUTTON_VISIVBLE_PROGRAM("pause_btn")
+
+ program { name: "set_pause_icon";
+ signal: "set_pause";
+ source: "*";
+ script{
+ emit("hide_play_btn", "edje");
+ emit("show_pause_btn", "edje");
+ }
+ }
+ program { name: "set_play_icon";
+ signal: "set_play";
+ source: "*";
+ script{
+ emit("show_play_btn", "edje");
+ emit("hide_pause_btn", "edje");
+ }
+ }
+ }
+
+}
+
+group {
+ name: "video-lockscreenmini-live-streaming";
+ images {
+ image: MC_LOCKSCREEN_PLAY COMP;
+ image: MC_MUSIC_STOP_BTN COMP;
+ image: MC_LOCKSCREEN_PLAY_PRESS COMP;
+ image: MC_MUSIC_ALBUM_FRAME COMP;
+ }
+ parts {
+ part{ name: "bg";
+ type : RECT;
+ scale : 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ min : 0 LOCKSCREEN_MINI_H;
+ fixed: 1 1;
+ rel1{ relative : 0 0;}
+ rel2{ relative : 1 1;}
+ color : MC_LOCKSCREEN_BG;
+ }
+ }
+
+ part { name: "padding.top";
+ type: SPACER;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 0; to: "bg"; }
+ rel2 { relative: 1 0; to: "bg"; }
+ min: 0 LOCKSCREEN_TOP_PADDING;
+ fixed: 0 1;
+ align: 0 0;
+ }
+ }
+
+ part { name: "padding.left";
+ type: SPACER;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 0; to: "bg"; }
+ rel2 { relative: 0 1; to: "bg"; }
+ min: LOCKSCREEN_LEFT_PADDING 0;
+ fixed: 1 0;
+ align: 0 0;
+ }
+ }
+
+ part { name: "padding.right";
+ type: SPACER;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 1 0; to: "bg"; }
+ rel2 { relative: 1 1; to: "bg"; }
+ min: LOCKSCREEN_RIGHT_PADDING 0;
+ fixed: 1 0;
+ align: 1 0;
+ }
+ }
+
+ part { name: "padding.bottom";
+ type: SPACER;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 1; to: "bg"; }
+ rel2 { relative: 1 1; to: "bg"; }
+ min: 0 LOCKSCREEN_BOTTOM_PADDING;
+ fixed: 0 1;
+ align: 0 1;
+ }
+ }
+ part { name: "padding_for_albumart.top";
+ type: SPACER;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: 0 0; to: "bg"; }
+ rel2 { relative: 1 0; to: "bg"; }
+ min: 0 40;
+ fixed: 0 1;
+ align: 0.0 0.0;
+ }
+ }
+
+ part { name: "padding_for_albumart.bottom";
+ type: SPACER;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 1; to: "bg"; }
+ rel2 { relative: 1 1; to: "bg"; }
+ min: 0 15;
+ fixed: 0 1;
+ align: 0 1;
+ }
+ }
+ part { name: "albumarmt_bg";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 1.0 1.0; to_x: "padding.left"; to_y: "padding_for_albumart.top"; }
+ rel2 { relative: 1.0 0.0; to_x: "padding.left"; to_y: "padding_for_albumart.bottom"; }
+ min: ALBUM_ART_SIZE;
+ max: ALBUM_ART_SIZE;
+ fixed: 1 1;
+ align: 0.0 0.5;
+ }
+ }
+ part { name: "albumart_image";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 1;
+ clip_to: "albumarmt_bg";
+ description { state: "default" 0.0;
+ rel1 { relative: 0.5 0.5; to: "albumarmt_bg"; }
+ rel2 { relative: 0.5 0.5; to: "albumarmt_bg"; }
+ min: ALBUM_ART_SIZE;
+ max: ALBUM_ART_SIZE;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ }
+ }
+
+ part { name: "albumarmt_frame";
+ type: IMAGE;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 0.0 0.0; to: "albumarmt_bg";}
+ rel2 { relative: 1.0 1.0; to: "albumarmt_bg";}
+ min: ALBUM_ART_SIZE;
+ image.normal: MC_MUSIC_ALBUM_FRAME;
+ color_class:"AO009";
+ }
+ }
+ part { name: "elm.text";
+ type: SWALLOW;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 1.0 1.0; to_x: "padding.left"; to_y: "padding.top";}
+ rel2 { relative: 0 1.0; to_x: "padding.right"; to_y: "padding.top"; offset: 0 45;}
+ fixed: 1 1;
+ }
+ }
+
+ part { name: "control_area";
+ type: SPACER;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 1.0 1.0; to_x: "padding.left"; to_y: "elm.text"; }
+ rel2 { relative: 0.0 0.0; to_x: "padding.right"; to_y: "padding.bottom"; }
+ min: 0 134.4;
+ fixed: 0 1;
+ align: 0.5 0.5;
+ }
+ }
+
+ part { name: "left_side_area";
+ type: SPACER;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 0.27 0.45; to_x: "control_area"; to_y: "control_area";}
+ rel2 { relative: 0.27 0.45; to_x: "control_area"; to_y: "control_area";}
+ min: 99 134;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ }
+ }
+
+ part { name: "left_area";
+ type: SPACER;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 0.0 0.0; to: "left_side_area"; }
+ rel2 { relative: 1.0 1.0; to: "left_side_area"; }
+ min: LOCKSCREEN_BUTTON_SIZE_MIN_MAX;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ }
+ }
+
+ MC_LOCKSCREEN_PART_AREA_FROM_LEFT("left_area_padding", "left_area", LOCKSCREEN_INTERVAL, 134)
+
+ MC_LOCKSCREEN_PART_AREA_FROM_LEFT("play_pause_btn_area", "left_area_padding", 126, 134)
+
+ MC_LOCKSCREEN_PART_BUTTON("play_btn", "play_pause_btn_area", MC_MUSIC_STOP_BTN, MC_MUSIC_STOP_BTN, LOCKSCREEN_BIG_BTN_SIZE_MIN_MAX)
+ MC_LOCKSCREEN_PAUSE_PART_BUTTON("pause_btn", "play_pause_btn_area", MC_LOCKSCREEN_PLAY, MC_LOCKSCREEN_PLAY_PRESS, LOCKSCREEN_BIG_BTN_SIZE_MIN_MAX)
+
+ MC_LOCKSCREEN_FOCUSED_COVER("play_pause", "play_pause_btn_area");
+
+ MC_LOCKSCREEN_PART_AREA_FROM_LEFT("play_pause_right_padding", "play_pause_btn_area", LOCKSCREEN_INTERVAL, 134)
+ }
+
+ programs {
+ MC_LOCKSCREEN_BUTTON_PROGRAM("play_btn")
+ MC_LOCKSCREEN_BUTTON_VISIVBLE_PROGRAM("play_btn")
+ MC_LOCKSCREEN_BUTTON_PROGRAM("pause_btn")
+ MC_LOCKSCREEN_BUTTON_VISIVBLE_PROGRAM("pause_btn")
+
+ program { name: "set_pause_icon";
+ signal: "set_pause";
+ source: "*";
+ script{
+ emit("hide_play_btn", "edje");
+ emit("show_pause_btn", "edje");
+ }
+ }
+ program { name: "set_play_icon";
+ signal: "set_play";
+ source: "*";
+ script{
+ emit("show_play_btn", "edje");
+ emit("hide_pause_btn", "edje");
+ }
+ }
+ }
+
+}
+
+} // collection
+
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#define MINI_H 70
+#define MINI_H_PORT 70
+#define TOP_PADDING 4
+#define LEFT_PADDING 12
+#define RIGHT_PADDING 4
+#define BOTTOM_PADDING 6
+#define ALBUM_ART_SIZE 120 120
+#define BUTTON_SIZE_MIN_MAX 80 80
+#define BIG_BTN_SIZE_MIN_MAX 80 80
+#define BUTTON_EXPAND_OFFSET 0
+#define BUTTON_CLOSE_SIZE_MAX 30 30
+#define PLAY_BTN_SIZE_MIN_MAX 80 80
+#define FF_BTN_SIZE_MIN_MAX 80 80
+
+
+#define MC_BG 30 28 28 0
+
+
+#define MC_MUSIC_LAGRE_BTN_EF "mini_controller/bg_btn_player_01_ef.png"
+#define MC_MUSIC_LAGRE_BTN_BG "mini_controller/bg_btn_player_01.png"
+#define MC_MUSIC_PLAY_BTN "mini_controller/music_btn_player_play_nor.png"
+#define MC_MUSIC_PAUSE_BTN "mini_controller/music_btn_player_pause_nor.png"
+#define MC_MUSIC_STOP_BTN "mini_controller/control_circle_icon_stop.png"
+
+#define MC_MUSIC_SMALL_BTN_EF "mini_controller/bg_btn_player_02_ef.png"
+#define MC_MUSIC_SMALL_BTN_BG "mini_controller/bg_btn_player_02.png"
+
+#define MC_MUSIC_CLOSE_BTN "mini_controller/btn_controller_close.png"
+#define MC_MUSIC_PREV_BTN "mini_controller/music_btn_player_prev_nor.png"
+#define MC_MUSIC_NEXT_BTN "mini_controller/music_btn_player_next_nor.png"
+
+#define MC_MUSIC_ALBUM_FRAME "mini_controller/album_frame.png"
+
+#define MC_IMG_REW_NORMAL "mini_controller/btn_video_prev_nor.png"
+#define MC_IMG_REW_PRESSED "mini_controller/btn_video_prev_press.png"
+#define MC_IMG_PLAY_NORMAL "mini_controller/btn_video_play_nor.png"
+#define MC_IMG_PLAY_PRESSED "mini_controller/btn_video_play_press.png"
+#define MC_IMG_PAUSE_NORMAL "mini_controller/btn_video_pause_nor.png"
+#define MC_IMG_PAUSE_PRESSED "mini_controller/btn_video_pause_press.png"
+#define MC_IMG_FF_NORMAL "mini_controller/btn_video_next_nor.png"
+#define MC_IMG_FF_PRESSED "mini_controller/btn_video_next_press.png"
+#define MC_IMG_CLOSE_NORMAL "mini_controller/btn_close_nor.png"
+#define MC_IMG_CLOSE_PRESSED "mini_controller/btn_close_press.png"
+#define MC_IMG_PROGRESS_BG "mini_controller/video_progress_bg.png"
+#define MC_IMG_PROGRESS_BAR "mini_controller/video_progress.png"
+
+
+
+#define MC_FOCUSED_COVER(__name, __over_part_bg) \
+part { \
+ name: __name"_focus"; \
+ type: SWALLOW; \
+ mouse_events: 1; \
+ scale: 1; \
+ repeat_events: 1; \
+ description { \
+ state: "default" 0.0; \
+ align: 0 0; \
+ visible:1; \
+ fixed: 1 1;\
+ rel1 { \
+ relative: 0 0; \
+ to: __over_part_bg; \
+ } \
+ rel2 { \
+ relative: 1 1; \
+ to: __over_part_bg; \
+ } \
+ } \
+}
+
+#define MC_PART_AREA_FROM_LEFT(__name, __left_part, __width, __height) \
+part { name: __name; \
+ type: SPACER; \
+ scale: 1; \
+ mouse_events: 0; \
+ description { state: "default" 0.0; \
+ rel1 { relative: 1.0 0.5; to: __left_part; } \
+ rel2 { relative: 1.0 0.5; to: __left_part; } \
+ min: __width __height; \
+ fixed: 1 1; \
+ align: 0.0 0.5; \
+ } \
+}
+
+#define MC_PART_AREA_FROM_SWALLOW_LEFT(__name, __left_part, __width, __height) \
+part { name: __name; \
+ type: SWALLOW; \
+ scale: 1; \
+ mouse_events: 1; \
+ description { state: "default" 0.0; \
+ rel1 { relative: 1.0 0.5; to: __left_part; } \
+ rel2 { relative: 1.0 0.5; to: __left_part; } \
+ min: __width __height; \
+ fixed: 1 1; \
+ align: 0.0 0.5; \
+ } \
+}
+#define MC_IMAGE_PART_FOCUS(__name,__to,__image,__btn_min_max)\
+part { name: __name;\
+ type: IMAGE;\
+ scale: 1;\
+ mouse_events: 1;\
+ description { state: "default" 0.0;\
+ rel1 { relative: 0.5 0.5; to: __to; }\
+ rel2 { relative: 0.5 0.5; to: __to; }\
+ min: __btn_min_max;\
+ max: __btn_min_max;\
+ image.normal: __image;\
+ fixed: 1 1;\
+ align: 0.5 0.5;\
+ color: 41 215 255 255;\
+ }\
+ description { state: "pressed" 0.0;\
+ inherit: "default" 0.0;\
+ color: 41 215 255 255;\
+ }\
+ description { state: "focus" 0.0;\
+ inherit: "default" 0.0;\
+ color: 6 119 194 255;\
+ }\
+ description { state: "hide" 0.0;\
+ inherit: "default" 0.0;\
+ visible: 0;\
+ }\
+ }
+
+
+#define MC_IMAGE_PART(__name,__to,__image,__normal_code_red_component,__normal_code_green_component,__normal_code_blue_component,__normal_code_alpha_component,__press_code_red_component,__press_code_green_component,__press_code_blue_component,__press_code_alpha_component,__btn_min_max)\
+part { name: __name;\
+ type: IMAGE;\
+ scale: 1;\
+ mouse_events: 1;\
+ description { state: "default" 0.0;\
+ rel1 { relative: 0.5 0.5; to: __to; }\
+ rel2 { relative: 0.5 0.5; to: __to; }\
+ min: __btn_min_max;\
+ max: __btn_min_max;\
+ image.normal: __image;\
+ fixed: 1 1;\
+ align: 0.5 0.5;\
+ color: __normal_code_red_component __normal_code_green_component __normal_code_blue_component __normal_code_alpha_component;\
+ }\
+ description { state: "pressed" 0.0;\
+ inherit: "default" 0.0;\
+ color: __press_code_red_component __press_code_green_component __press_code_blue_component __press_code_alpha_component;\
+ }\
+ description { state: "hide" 0.0;\
+ inherit: "default" 0.0;\
+ visible: 0;\
+ }\
+ }
+
+#define MC_PROGRAM_IMAGE_VISIBLE(__btn, __show_signal, __hide_signal) \
+program { \
+ signal: __show_signal; \
+ source: "*"; \
+ action: STATE_SET "default" 0.0; \
+ target: __btn; \
+} \
+program { \
+ signal: __hide_signal; \
+ source: "*"; \
+ action: STATE_SET "hide" 0.0; \
+ target: __btn; \
+}
+
+
+#define MC_PART_ICON_BTN(__name, __to, __normal, __pressed, __btn_min_max) \
+part { name: __name"_clip"; \
+ type: RECT; \
+ scale: 1; \
+ mouse_events: 0; \
+ description { state: "default" 0.0; \
+ rel1.to: __name"_bg"; \
+ rel2.to: __name"_bg"; \
+ color: 255 255 255 255; \
+ } \
+ description { state: "hide" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 0; \
+ } \
+} \
+part { name: __name"_bg"; \
+ type: IMAGE; \
+ scale: 1; \
+ mouse_events: 0; \
+ clip_to: __name"_clip"; \
+ description { state: "default" 0.0; \
+ rel1 { relative: 0.5 0.5; to: __to; } \
+ rel2 { relative: 0.5 0.5; to: __to; }\
+ min: __btn_min_max; \
+ max: __btn_min_max; \
+ image.normal: __normal; \
+ fixed: 1 1; \
+ align: 0.5 0.5; \
+ } \
+ description { state: "pressed" 0.0; \
+ inherit: "default" 0.0; \
+ image.normal: __pressed; \
+ } \
+} \
+part { name: __name; \
+ type: RECT; \
+ scale: 1; \
+ mouse_events: 1; \
+ clip_to: __name"_clip"; \
+ description { state: "default" 0.0; \
+ rel1.to: __name"_bg"; \
+ rel2.to: __name"_bg"; \
+ color: 0 0 0 0; \
+ } \
+}
+
+#define MC_PART_TEXT_BTN(__name, __to, __text_part_name) \
+part { name: __name"_clip"; \
+ type: RECT; \
+ scale: 1; \
+ mouse_events: 0; \
+ description { state: "default" 0.0; \
+ rel1.to: __to; \
+ rel2.to: __to; \
+ color: 255 255 255 255; \
+ } \
+ description { state: "hide" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 0; \
+ } \
+} \
+part { name: __name"_bg"; \
+ type: SPACER; \
+ scale: 1; \
+ mouse_events: 0; \
+ clip_to: __name"_clip"; \
+ description { state: "default" 0.0; \
+ rel1.to: __to; \
+ rel2.to: __to; \
+ } \
+ description { state: "pressed" 0.0; \
+ inherit: "default" 0.0; \
+ } \
+} \
+part { name: __text_part_name; \
+ type: TEXT; \
+ scale: 1; \
+ mouse_events: 0; \
+ clip_to: __name"_clip"; \
+ description { state: "default" 0.0; \
+ rel1.to: __name"_bg"; \
+ rel2.to: __name"_bg"; \
+ text { \
+ font: "Tizen:style=Medium"; \
+ size: 28; \
+ align: 0.5 0.5; \
+ } \
+ color: 149 149 149 255; \
+ } \
+} \
+part { name: __name; \
+ type: RECT; \
+ scale: 1; \
+ mouse_events: 1; \
+ clip_to: __name"_clip"; \
+ description { state: "default" 0.0; \
+ rel1.to: __to; \
+ rel2.to: __to; \
+ color: 0 0 0 0; \
+ } \
+}
+
+#define MC_PART_RECT(__name, __to, __sx, __sy, __ex, __ey) \
+part { \
+ name: __name; \
+ mouse_events: 1; \
+ repeat_events: 1; \
+ type: RECT; \
+ scale: 1; \
+ description { \
+ state: "default" 0.0; \
+ align: 0 0; \
+ visible: 1; \
+ rel1 { \
+ relative: __sx __sy; \
+ to: __to; \
+ } \
+ rel2 { \
+ relative: __ex __ey; \
+ to: __to; \
+ } \
+ color: 0 0 0 0; \
+ }\
+ description { \
+ state: "hide" 0.0; \
+ visible: 0; \
+ }\
+}
+
+#define MC_PART_SWALLOW(__name, __to, __sx, __sy, __ex, __ey) \
+part { \
+ name: __name; \
+ mouse_events: 1; \
+ type: SWALLOW; \
+ scale: 1; \
+ description { \
+ state: "default" 0.0; \
+ align: 0.5 0.5; \
+ fixed: 1 1; \
+ visible: 1; \
+ fixed:1 1;\
+ rel1 { \
+ relative: __sx __sy; \
+ to: __to; \
+ } \
+ rel2 { \
+ relative: __ex __ey; \
+ to: __to; \
+ } \
+ color: 0 0 0 0; \
+ } \
+}
+
+#define MC_PROGRAM_BTN_ACTION(__btn, __down_emission, __down_src, __up_emission, __up_src, __clicked_emission, __clicked_src) \
+program { \
+ name: __btn"_after_down"; \
+ signal: "mouse,down,1"; \
+ source: __btn; \
+ script { \
+ set_state(PART:__btn"_bg", "pressed", 0.0); \
+ emit(__down_emission, __down_src); \
+ } \
+} \
+program { \
+ source: __btn; \
+ signal: "mouse,down,1"; \
+ action: PLAY_SAMPLE "button-pressed" 1.0; \
+ after: __btn"_after_down"; \
+ transition: ACCELERATE 0.02;\
+} \
+program { \
+ signal: "mouse,up,1"; \
+ source: __btn; \
+ script { \
+ set_state(PART:__btn"_bg", "default", 0.0); \
+ emit(__up_emission, __up_src); \
+ } \
+} \
+program { \
+ signal: "mouse,clicked,1"; \
+ source: __btn; \
+ action: SIGNAL_EMIT __clicked_emission __clicked_src; \
+}
+
+#define MC_PROGRAM_BTN_VISIBLE(__btn, __show_signal, __hide_signal) \
+program { \
+ signal: __show_signal; \
+ source: "*"; \
+ action: STATE_SET "default" 0.0; \
+ target: __btn"_clip"; \
+} \
+program { \
+ signal: __hide_signal; \
+ source: "*"; \
+ action: STATE_SET "hide" 0.0; \
+ target: __btn"_clip"; \
+}
+
+#define MINI_CONTROL_HIDE_SWALLOW_OPTION(__name, __to) \
+part { \
+ name: __name; \
+ mouse_events: 1; \
+ type: SWALLOW; \
+ scale: 1; \
+ repeat_events: 1; \
+ description { \
+ state: "default" 0.0; \
+ align: 0.5 0.5; \
+ visible: 0; \
+ rel1 { \
+ relative: 0 0; \
+ to: __to; \
+ } \
+ rel2 { \
+ relative: 1 1; \
+ to: __to; \
+ } \
+ color: 0 0 0 0; \
+ } \
+ description { \
+ state: "visible" 0.0; \
+ inherit: "default"; \
+ visible: 1; \
+ } \
+}
+
+#define MINI_CONTROL_BUTTON_INVISIVBLE_PROGRAM(__name) \
+program { \
+ name: __name"_visible" ; \
+ signal: __name"_visible"; \
+ source: __name; \
+ action: STATE_SET "visible" 0.0; \
+ target: __name; \
+} \
+program { \
+ name: __name"_invisible" ; \
+ signal: __name"_invisible"; \
+ source: __name; \
+ action: STATE_SET "default" 0.0; \
+ target: __name; \
+}
+
+externals {
+ external: "elm";
+ external: "feedback";
+}
+
+collections {
+base_scale: 2.4;
+/*
+sounds {
+ sample {
+ name: "button-pressed" AS_IS;
+ source: MP_BUTTON_PRESSED_NAME;
+ }
+}
+
+plugins {
+ plugin {
+ name: "touch_sound_plugin";
+ source: "feedback";
+ param: "FEEDBACK_TYPE_SOUND FEEDBACK_PATTERN_TAP";
+ }
+}
+*/
+group {
+ name: "video-minicontroller";
+ images {
+ image: MC_MUSIC_LAGRE_BTN_EF COMP;
+ image: MC_MUSIC_LAGRE_BTN_BG COMP;
+ image: MC_MUSIC_PLAY_BTN COMP;
+ image: MC_MUSIC_PAUSE_BTN COMP;
+ image: MC_MUSIC_SMALL_BTN_EF COMP;
+ image: MC_MUSIC_SMALL_BTN_BG COMP;
+
+ image: MC_MUSIC_CLOSE_BTN COMP;
+ image: MC_MUSIC_PREV_BTN COMP;
+ image: MC_MUSIC_NEXT_BTN COMP;
+
+ image: MC_MUSIC_ALBUM_FRAME COMP;
+ }
+ parts {
+ part{ name: "bg";
+ type : RECT;
+ scale : 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ min : 0 MINI_H_PORT;
+ fixed: 1 1;
+ rel1{ relative : 0 0;}
+ rel2{ relative : 1 1;}
+ color: MC_BG;
+ }
+ }
+
+ part { name: "event_box";
+ type : SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1 {
+ relative: 0 0;
+ to: "bg";
+ }
+ rel2 {
+ relative: 1 1;
+ to: "bg";
+ }
+ }
+ }
+
+ part { name: "padding.top";
+ type: SPACER;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 0; to: "bg"; }
+ rel2 { relative: 1 0; to: "bg"; }
+ min: 0 TOP_PADDING;
+ fixed: 0 1;
+ align: 0 0;
+ }
+ }
+
+ part { name: "padding.left";
+ type: SPACER; scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 0; to: "bg"; }
+ rel2 { relative: 0 1; to: "bg"; }
+ min: LEFT_PADDING 0;
+ fixed: 1 0;
+ align: 0 0;
+ }
+ }
+
+ part { name: "padding.right";
+ type: SPACER;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 1 0; to: "bg"; }
+ rel2 { relative: 1 1; to: "bg"; }
+ min: RIGHT_PADDING 0;
+ fixed: 1 0;
+ align: 1 0;
+ }
+ }
+
+ part { name: "padding.bottom";
+ type: SPACER;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 1; to: "bg"; }
+ rel2 { relative: 1 1; to: "bg"; }
+ min: 0 BOTTOM_PADDING;
+ fixed: 0 1;
+ align: 0 1;
+ }
+ }
+
+ part { name: "padding_for_albumart.top";
+ type: SPACER;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: 0 0; to: "bg"; }
+ rel2 { relative: 1 0; to: "bg"; }
+ min: 0 15;
+ fixed: 0 1;
+ align: 0.0 0.0;
+ }
+ }
+
+ part { name: "padding_for_albumart.bottom";
+ type: SPACER;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 1; to: "bg"; }
+ rel2 { relative: 1 1; to: "bg"; }
+ min: 0 15;
+ fixed: 0 1;
+ align: 0 1;
+ }
+ }
+
+ part { name: "albumarmt_bg";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 1.0 1.0; to_x: "padding.left"; to_y: "padding_for_albumart.top"; }
+ rel2 { relative: 1.0 0.0; to_x: "padding.left"; to_y: "padding_for_albumart.bottom"; }
+ min: ALBUM_ART_SIZE;
+ max: ALBUM_ART_SIZE;
+ fixed: 1 1;
+ align: 0.0 0.5;
+ }
+ }
+
+ part { name: "albumart_image";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 1;
+ clip_to: "albumarmt_bg";
+ description { state: "default" 0.0;
+ rel1 { relative: 0.5 0.5; to: "albumarmt_bg"; }
+ rel2 { relative: 0.5 0.5; to: "albumarmt_bg"; }
+ min: ALBUM_ART_SIZE;
+ max: ALBUM_ART_SIZE;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ }
+ }
+
+ part { name: "albumarmt_frame";
+ type: IMAGE;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 0.0 0.0; to: "albumarmt_bg";}
+ rel2 { relative: 1.0 1.0; to: "albumarmt_bg";}
+ min: ALBUM_ART_SIZE;
+ image.normal: MC_MUSIC_ALBUM_FRAME;
+ color_class:"AO009";
+ }
+ }
+
+ part { name: "right_area";
+ type: SPACER;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 1.0 1.0; to_x: "albumarmt_bg"; to_y: "padding.top"; }
+ rel2 { relative: 0.0 0.0; to_x: "padding.right"; to_y: "padding.bottom"; }
+ align: 0.0 0.0;
+ }
+ }
+
+ part { name: "elm.text"; // title
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0.0 1.0; to_x: "right_area"; to_y: "padding.top"; offset: 38 0;}
+ rel2 { relative: 0.83 1.0; to_x: "right_area"; to_y: "padding.top";}
+ min: 143 17;
+ fixed: 1 1;
+ align: 0.5 0.0;
+ }
+ }
+
+ part { name: "close_btn_area";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 0.0 1.0; to_x: "padding.right"; to_y: "elm.text";offset: -25 1;}
+ rel2 { relative: 0.0 0.0; to_x: "padding.right"; to_y: "elm.text"; offset: -25 1;}
+ min: BUTTON_CLOSE_SIZE_MAX;
+ max: BUTTON_CLOSE_SIZE_MAX;
+ color: 255 0 0 0;
+ fixed: 1 1;
+ }
+ }
+ MC_IMAGE_PART("close_btn","close_btn_area",MC_MUSIC_CLOSE_BTN,61,185,204,255,61,185,204,255,BUTTON_CLOSE_SIZE_MAX)
+ part { name: "close_btn_touch_area";
+ type: RECT;
+ scale: 1;
+ mouse_events: 1;
+ repeat_events: 1;
+ description { state: "default" 0.0;
+ rel1 { to: "close_btn_area"; offset: -7 -7; }
+ rel2 { to: "close_btn_area"; offset: 7 7; }
+ color: 0 0 0 0;
+ }
+ }
+
+ part { name: "mid_padding";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description
+ { state: "default" 0.0;
+ rel1 { relative: 0.0 1.0; to_x: "right_area"; to_y: "elm.text"; offset: 40 0; }
+ rel2 { relative: 1.0 1.0; to_x: "padding.right"; to_y: "elm.text"; offset: 0 0; }
+ align: 0.0 0.0;
+ color: 255 0 0 0;
+ }
+ }
+
+ part { name: "button_area";
+ type: RECT;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 1; to: "mid_padding";}
+ rel2 { relative: 1 0; to_x: "elm.text"; to_y: "padding.bottom"; }
+ visible: 1;
+ }
+ }
+
+ part { name: "rew_btn_area";
+ type: RECT;
+ scale: 1;
+ mouse_events: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0.0 0.5; to: "button_area"; offset: 10 0;}
+ rel2 { relative: 0.0 0.5; to: "button_area"; offset: 10 -16;}
+ min: BUTTON_SIZE_MIN_MAX;
+ fixed: 1 1;
+ align: 0.0 0.5;
+ visible: 0;
+ }
+ }
+
+ MC_IMAGE_PART("rew_btn_bg","rew_btn_area",MC_MUSIC_SMALL_BTN_BG,0,0,0,0,0,0,0,0,BUTTON_SIZE_MIN_MAX)
+ MC_IMAGE_PART("rew_btn_ef","rew_btn_area",MC_MUSIC_SMALL_BTN_EF,0,0,0,0,0,0,0,0,BUTTON_SIZE_MIN_MAX)
+ MC_IMAGE_PART("rew_btn","rew_btn_area",MC_MUSIC_PREV_BTN,61,185,204,255,34,104,115,255,FF_BTN_SIZE_MIN_MAX)
+ part { name: "rew_btn_touch_area";
+ type: RECT;
+ scale: 1;
+ mouse_events: 1;
+ repeat_events: 1;
+ description { state: "default" 0.0;
+ rel1 { to: "rew_btn_area"; }
+ rel2 { to: "rew_btn_area";}
+ color: 0 0 0 0;
+ }
+ }
+ MC_FOCUSED_COVER("rew_btn", "rew_btn_area");
+
+ part { name: "play_pause_btn_area";
+ type: SPACER;
+ scale: 1;
+ mouse_events: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0.4 0.5; to: "button_area"; offset: 0 0;}
+ rel2 { relative: 0.4 0.5; to: "button_area"; offset: 0 -16; }
+ min: BUTTON_SIZE_MIN_MAX;
+ max: BUTTON_SIZE_MIN_MAX;
+ fixed: 1 1;
+ align:0.0 0.5;
+ }
+ }
+
+ MC_IMAGE_PART("play_btn_bg","play_pause_btn_area",MC_MUSIC_LAGRE_BTN_BG,61,185,204,255,34,104,115,255,BIG_BTN_SIZE_MIN_MAX)
+ MC_IMAGE_PART_FOCUS("play_btn_ef","play_pause_btn_area",MC_MUSIC_LAGRE_BTN_EF,BIG_BTN_SIZE_MIN_MAX)
+ MC_IMAGE_PART("play_btn","play_pause_btn_area",MC_MUSIC_PLAY_BTN,255,255,255,255,255,255,255,255,PLAY_BTN_SIZE_MIN_MAX)
+ MC_IMAGE_PART("pause_btn","play_pause_btn_area",MC_MUSIC_PAUSE_BTN,255,255,255,255,255,255,255,255,PLAY_BTN_SIZE_MIN_MAX)
+ part { name: "play_btn_touch_area";
+ type: RECT;
+ scale: 1;
+ mouse_events: 1;
+ repeat_events: 1;
+ description { state: "default" 0.0;
+ rel1 { to: "play_pause_btn_area"; }
+ rel2 { to: "play_pause_btn_area"; }
+ color: 0 0 0 0;
+ }
+ }
+ MC_FOCUSED_COVER("play_pause", "play_pause_btn_area");
+
+ part { name: "ff_btn_area";
+ type: SPACER;
+ scale: 1;
+ mouse_events: 1;
+ description { state: "default" 0.0;
+ rel1 { relative:0.8 0.5; to: "button_area";offset: -10 0;}
+ rel2 { relative:0.8 0.5; to: "button_area";offset: -10 -16;}
+ min: FF_BTN_SIZE_MIN_MAX;
+ max: FF_BTN_SIZE_MIN_MAX;
+ fixed: 1 1;
+ align:0.0 0.5;
+ }
+ }
+ MC_IMAGE_PART("ff_btn_bg","ff_btn_area",MC_MUSIC_SMALL_BTN_BG,0,0,0,0,0,0,0,0,BUTTON_SIZE_MIN_MAX)
+ MC_IMAGE_PART("ff_btn_ef","ff_btn_area",MC_MUSIC_SMALL_BTN_EF,0,0,0,0,0,0,0,0,BUTTON_SIZE_MIN_MAX)
+ MC_IMAGE_PART("ff_btn","ff_btn_area",MC_MUSIC_NEXT_BTN,61,185,204,255,34,104,115,255,FF_BTN_SIZE_MIN_MAX)
+ part { name: "ff_btn_touch_area";
+ type: RECT;
+ scale: 1;
+ mouse_events: 1;
+ repeat_events: 1;
+ description { state: "default" 0.0;
+ rel1 { to: "ff_btn_area"; }
+ rel2 { to: "ff_btn_area";}
+ color: 0 0 0 0;
+ }
+ }
+ MC_FOCUSED_COVER("ff_btn", "ff_btn_area");
+ }
+
+ programs {
+ MC_PROGRAM_IMAGE_VISIBLE("play_btn", "show_play_btn", "hide_play_btn")
+ MC_PROGRAM_IMAGE_VISIBLE("pause_btn", "show_pause_btn", "hide_pause_btn")
+
+ program { name: "albumart_cb";
+ signal: "mouse,down,1";
+ source: "albumart_image";
+ script{
+ emit("albumart_clicked", "edje");
+ }
+ }
+
+ program { name: "close_area_btn_down";
+ signal: "mouse,down,1";
+ source: "close_btn_touch_area";
+ script{
+ set_state(PART:"close_btn", "pressed", 0.0);
+ emit("close_btn_down", "edje");
+ }
+ }
+
+ program { name: "close_area_btn_up";
+ signal: "mouse,up,1";
+ source: "close_btn_touch_area";
+ script{
+ set_state(PART:"close_btn", "default", 0.0);
+ emit("close_btn_up", "edje");
+ }
+ }
+
+ program { name: "play_pause_btn_area_press";
+ signal: "mouse,down,1";
+ source: "play_btn_touch_area";
+ script{
+ set_state(PART:"play_btn_bg", "pressed", 0.0);
+ set_state(PART:"play_btn_ef", "pressed", 0.0);
+ }
+ }
+
+ program { name: "play_pause_btn_area_up";
+ signal: "mouse,up,1";
+ source: "play_btn_touch_area";
+ script{
+ set_state(PART:"play_btn_bg", "default", 0.0);
+ set_state(PART:"play_btn_ef", "default", 0.0);
+ }
+ }
+
+ program { name: "rew_btn_touch_area_press";
+ signal: "mouse,down,1";
+ source: "rew_btn_touch_area";
+ script{
+ set_state(PART:"rew_btn_bg", "pressed", 0.0);
+ set_state(PART:"rew_btn_ef", "pressed", 0.0);
+ set_state(PART:"rew_btn", "pressed", 0.0);
+ }
+ }
+
+ program { name: "rew_btn_touch_area_up";
+ signal: "mouse,up,1";
+ source: "rew_btn_touch_area";
+ script{
+ set_state(PART:"rew_btn_bg", "default", 0.0);
+ set_state(PART:"rew_btn_ef", "default", 0.0);
+ set_state(PART:"rew_btn", "default", 0.0);
+ }
+ }
+
+ program { name: "ff_btn_touch_area_press";
+ signal: "mouse,down,1";
+ source: "ff_btn_touch_area";
+ script{
+ set_state(PART:"ff_btn_bg", "pressed", 0.0);
+ set_state(PART:"ff_btn_ef", "pressed", 0.0);
+ set_state(PART:"ff_btn", "pressed", 0.0);
+ }
+ }
+
+ program { name: "ff_btn_touch_area_up";
+ signal: "mouse,up,1";
+ source: "ff_btn_touch_area";
+ script{
+ set_state(PART:"ff_btn_bg", "default", 0.0);
+ set_state(PART:"ff_btn_ef", "default", 0.0);
+ set_state(PART:"ff_btn", "default", 0.0);
+ }
+ }
+
+ program { name: "close_area_btn_clicked";
+ signal: "mouse,clicked,1";
+ source: "close_btn_touch_area";
+ script{
+ emit("close_btn_clicked", "edje");
+ }
+ }
+/*
+ program{
+ name: "albumart_cb_after_down";
+ source: "albumart_image";
+ signal: "mouse,down,1";
+ transition: ACCELERATE 0.02;
+ }
+ program {
+ name: "albumart_cb_down";
+ source: "albumart_image";
+ signal: "mouse,down,1";
+ action: PLAY_SAMPLE "button-pressed" 1.0;
+ after: "albumart_cb_after_down";
+ transition: ACCELERATE 0.02;
+ }*/
+
+ program { name: "set_pause_icon";
+ signal: "set_pause";
+ source: "*";
+ script{
+ set_state(PART:"play_btn", "hide", 0.0);
+ set_state(PART:"pause_btn", "default",0.0);
+ set_state(PART:"play_btn_ef", "focus", 0.0);
+ }
+ }
+ program { name: "set_play_icon";
+ signal: "set_play";
+ source: "*";
+ script{
+ set_state(PART:"play_btn", "default", 0.0);
+ set_state(PART:"pause_btn", "hide",0.0);
+ set_state(PART:"play_btn_ef", "default", 0.0);
+ }
+ }
+ program { name: "set_ff_btn_uppressed";
+ signal: "ff_btn_unpressed";
+ source: "*";
+ script{
+ set_state(PART:"ff_btn_bg", "default", 0.0);
+ set_state(PART:"ff_btn_ef", "default", 0.0);
+ set_state(PART:"ff_btn", "default", 0.0);
+ }
+ }
+ program { name: "set_rew_btn_uppressed";
+ signal: "rew_btn_unpressed";
+ source: "*";
+ script{
+ set_state(PART:"rew_btn_bg", "default", 0.0);
+ set_state(PART:"rew_btn_ef", "default", 0.0);
+ set_state(PART:"rew_btn", "default", 0.0);
+ }
+ }
+/*
+ program { name: "touch_snd_rew";
+ signal: "mouse,down,1";
+ source: "rew_btn_touch_area";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+
+ program { name: "touch_snd_ff";
+ signal: "mouse,down,1";
+ source: "ff_btn_touch_area";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ program { name: "touch_snd_play_pause";
+ signal: "mouse,down,1";
+ source: "play_btn_touch_area";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ program { name: "touch_snd_shuffle";
+ signal: "mouse,down,1";
+ source: "shuffle_btn_touch_area";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ program { name: "touch_snd_close";
+ signal: "mouse,down,1";
+ source: "close_btn_touch_area";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ program { name: "touch_snd_repeat";
+ signal: "mouse,down,1";
+ source: "repeat_btn_touch_area";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+*/
+ }
+
+}
+
+group {
+ name: "video-minicontroller-live-streaming";
+ images {
+ image: MC_MUSIC_LAGRE_BTN_EF COMP;
+ image: MC_MUSIC_LAGRE_BTN_BG COMP;
+ image: MC_MUSIC_PLAY_BTN COMP;
+ image: MC_MUSIC_STOP_BTN COMP;
+ image: MC_MUSIC_SMALL_BTN_EF COMP;
+ image: MC_MUSIC_SMALL_BTN_BG COMP;
+ image: MC_MUSIC_CLOSE_BTN COMP;
+ image: MC_MUSIC_ALBUM_FRAME COMP;
+ }
+ parts {
+ part{ name: "bg";
+ type : RECT;
+ scale : 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ min : 0 MINI_H_PORT;
+ fixed: 1 1;
+ rel1{ relative : 0 0;}
+ rel2{ relative : 1 1;}
+ color: MC_BG;
+ }
+ }
+
+ part { name: "event_box";
+ type : SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1 {
+ relative: 0 0;
+ to: "bg";
+ }
+ rel2 {
+ relative: 1 1;
+ to: "bg";
+ }
+ }
+ }
+
+ part { name: "padding.top";
+ type: SPACER;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 0; to: "bg"; }
+ rel2 { relative: 1 0; to: "bg"; }
+ min: 0 TOP_PADDING;
+ fixed: 0 1;
+ align: 0 0;
+ }
+ }
+
+ part { name: "padding.left";
+ type: SPACER; scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 0; to: "bg"; }
+ rel2 { relative: 0 1; to: "bg"; }
+ min: LEFT_PADDING 0;
+ fixed: 1 0;
+ align: 0 0;
+ }
+ }
+
+ part { name: "padding.right";
+ type: SPACER;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 1 0; to: "bg"; }
+ rel2 { relative: 1 1; to: "bg"; }
+ min: RIGHT_PADDING 0;
+ fixed: 1 0;
+ align: 1 0;
+ }
+ }
+
+ part { name: "padding.bottom";
+ type: SPACER;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 1; to: "bg"; }
+ rel2 { relative: 1 1; to: "bg"; }
+ min: 0 BOTTOM_PADDING;
+ fixed: 0 1;
+ align: 0 1;
+ }
+ }
+
+ part { name: "padding_for_albumart.top";
+ type: SPACER;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: 0 0; to: "bg"; }
+ rel2 { relative: 1 0; to: "bg"; }
+ min: 0 15;
+ fixed: 0 1;
+ align: 0.0 0.0;
+ }
+ }
+
+ part { name: "padding_for_albumart.bottom";
+ type: SPACER;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 1; to: "bg"; }
+ rel2 { relative: 1 1; to: "bg"; }
+ min: 0 15;
+ fixed: 0 1;
+ align: 0 1;
+ }
+ }
+
+ part { name: "albumarmt_bg";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 1.0 1.0; to_x: "padding.left"; to_y: "padding_for_albumart.top"; }
+ rel2 { relative: 1.0 0.0; to_x: "padding.left"; to_y: "padding_for_albumart.bottom"; }
+ min: ALBUM_ART_SIZE;
+ max: ALBUM_ART_SIZE;
+ fixed: 1 1;
+ align: 0.0 0.5;
+ }
+ }
+
+ part { name: "albumart_image";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 1;
+ clip_to: "albumarmt_bg";
+ description { state: "default" 0.0;
+ rel1 { relative: 0.5 0.5; to: "albumarmt_bg"; }
+ rel2 { relative: 0.5 0.5; to: "albumarmt_bg"; }
+ min: ALBUM_ART_SIZE;
+ max: ALBUM_ART_SIZE;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ }
+ }
+
+ part { name: "albumarmt_frame";
+ type: IMAGE;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 0.0 0.0; to: "albumarmt_bg";}
+ rel2 { relative: 1.0 1.0; to: "albumarmt_bg";}
+ min: ALBUM_ART_SIZE;
+ image.normal: MC_MUSIC_ALBUM_FRAME;
+ color_class:"AO009";
+ }
+ }
+
+ part { name: "right_area";
+ type: SPACER;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 1.0 1.0; to_x: "albumarmt_bg"; to_y: "padding.top"; }
+ rel2 { relative: 0.0 0.0; to_x: "padding.right"; to_y: "padding.bottom"; }
+ align: 0.0 0.0;
+ }
+ }
+
+ part { name: "elm.text"; // title
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0.0 1.0; to_x: "right_area"; to_y: "padding.top"; offset: 38 0;}
+ rel2 { relative: 0.83 1.0; to_x: "right_area"; to_y: "padding.top";}
+ min: 143 17;
+ fixed: 1 1;
+ align: 0.5 0.0;
+ }
+ }
+
+ part { name: "close_btn_area";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 0.0 1.0; to_x: "padding.right"; to_y: "elm.text";offset: -25 1;}
+ rel2 { relative: 0.0 0.0; to_x: "padding.right"; to_y: "elm.text"; offset: -25 1;}
+ min: BUTTON_CLOSE_SIZE_MAX;
+ max: BUTTON_CLOSE_SIZE_MAX;
+ color: 255 0 0 0;
+ fixed: 1 1;
+ }
+ }
+ MC_IMAGE_PART("close_btn","close_btn_area",MC_MUSIC_CLOSE_BTN,61,185,204,255,61,185,204,255,BUTTON_CLOSE_SIZE_MAX)
+ part { name: "close_btn_touch_area";
+ type: RECT;
+ scale: 1;
+ mouse_events: 1;
+ repeat_events: 1;
+ description { state: "default" 0.0;
+ rel1 { to: "close_btn_area"; offset: -7 -7; }
+ rel2 { to: "close_btn_area"; offset: 7 7; }
+ color: 0 0 0 0;
+ }
+ }
+
+ part { name: "mid_padding";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description
+ { state: "default" 0.0;
+ rel1 { relative: 0.0 1.0; to_x: "right_area"; to_y: "elm.text"; offset: 40 0; }
+ rel2 { relative: 1.0 1.0; to_x: "padding.right"; to_y: "elm.text"; offset: 0 0; }
+ align: 0.0 0.0;
+ color: 255 0 0 0;
+ }
+ }
+
+ part { name: "button_area";
+ type: RECT;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 1; to: "mid_padding";}
+ rel2 { relative: 1 0; to_x: "elm.text"; to_y: "padding.bottom"; }
+ visible: 1;
+ }
+ }
+
+ part { name: "play_pause_btn_area";
+ type: SPACER;
+ scale: 1;
+ mouse_events: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0.4 0.5; to: "button_area"; offset: 0 0;}
+ rel2 { relative: 0.4 0.5; to: "button_area"; offset: 0 -16; }
+ min: BUTTON_SIZE_MIN_MAX;
+ max: BUTTON_SIZE_MIN_MAX;
+ fixed: 1 1;
+ align:0.0 0.5;
+ }
+ }
+
+ MC_IMAGE_PART("play_btn_bg","play_pause_btn_area",MC_MUSIC_LAGRE_BTN_BG,61,185,204,255,34,104,115,255,BIG_BTN_SIZE_MIN_MAX)
+ MC_IMAGE_PART_FOCUS("play_btn_ef","play_pause_btn_area",MC_MUSIC_LAGRE_BTN_EF,BIG_BTN_SIZE_MIN_MAX)
+ MC_IMAGE_PART("play_btn","play_pause_btn_area",MC_MUSIC_PLAY_BTN,255,255,255,255,255,255,255,255,PLAY_BTN_SIZE_MIN_MAX)
+ MC_IMAGE_PART("pause_btn","play_pause_btn_area",MC_MUSIC_STOP_BTN,255,255,255,255,255,255,255,255,PLAY_BTN_SIZE_MIN_MAX)
+ part { name: "play_btn_touch_area";
+ type: RECT;
+ scale: 1;
+ mouse_events: 1;
+ repeat_events: 1;
+ description { state: "default" 0.0;
+ rel1 { to: "play_pause_btn_area"; }
+ rel2 { to: "play_pause_btn_area"; }
+ color: 0 0 0 0;
+ }
+ }
+ MC_FOCUSED_COVER("play_pause", "play_pause_btn_area");
+ }
+
+ programs {
+ MC_PROGRAM_IMAGE_VISIBLE("play_btn", "show_play_btn", "hide_play_btn")
+ MC_PROGRAM_IMAGE_VISIBLE("pause_btn", "show_pause_btn", "hide_pause_btn")
+
+ program { name: "albumart_cb";
+ signal: "mouse,down,1";
+ source: "albumart_image";
+ script{
+ emit("albumart_clicked", "edje");
+ }
+ }
+
+ program { name: "close_area_btn_down";
+ signal: "mouse,down,1";
+ source: "close_btn_touch_area";
+ script{
+ set_state(PART:"close_btn", "pressed", 0.0);
+ emit("close_btn_down", "edje");
+ }
+ }
+
+ program { name: "close_area_btn_up";
+ signal: "mouse,up,1";
+ source: "close_btn_touch_area";
+ script{
+ set_state(PART:"close_btn", "default", 0.0);
+ emit("close_btn_up", "edje");
+ }
+ }
+
+ program { name: "play_pause_btn_area_press";
+ signal: "mouse,down,1";
+ source: "play_btn_touch_area";
+ script{
+ set_state(PART:"play_btn_bg", "pressed", 0.0);
+ set_state(PART:"play_btn_ef", "pressed", 0.0);
+ }
+ }
+
+ program { name: "play_pause_btn_area_up";
+ signal: "mouse,up,1";
+ source: "play_btn_touch_area";
+ script{
+ set_state(PART:"play_btn_bg", "default", 0.0);
+ set_state(PART:"play_btn_ef", "default", 0.0);
+ }
+ }
+
+ program { name: "close_area_btn_clicked";
+ signal: "mouse,clicked,1";
+ source: "close_btn_touch_area";
+ script{
+ emit("close_btn_clicked", "edje");
+ }
+ }
+
+ program { name: "set_pause_icon";
+ signal: "set_pause";
+ source: "*";
+ script{
+ set_state(PART:"play_btn", "hide", 0.0);
+ set_state(PART:"pause_btn", "default",0.0);
+ set_state(PART:"play_btn_ef", "focus", 0.0);
+ }
+ }
+ program { name: "set_play_icon";
+ signal: "set_play";
+ source: "*";
+ script{
+ set_state(PART:"play_btn", "default", 0.0);
+ set_state(PART:"pause_btn", "hide",0.0);
+ set_state(PART:"play_btn_ef", "default", 0.0);
+ }
+ }
+ }
+}
+
+group {
+ name: "video-minicontroller-ld";
+ images {
+ image: MC_MUSIC_LAGRE_BTN_EF COMP;
+ image: MC_MUSIC_LAGRE_BTN_BG COMP;
+ image: MC_MUSIC_PLAY_BTN COMP;
+ image: MC_MUSIC_PAUSE_BTN COMP;
+ image: MC_MUSIC_SMALL_BTN_EF COMP;
+ image: MC_MUSIC_SMALL_BTN_BG COMP;
+
+ image: MC_MUSIC_CLOSE_BTN COMP;
+ image: MC_MUSIC_PREV_BTN COMP;
+ image: MC_MUSIC_NEXT_BTN COMP;
+ }
+ parts {
+ part{ name: "bg";
+ type : RECT;
+ scale : 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ min : 0 MINI_H;
+ fixed: 1 1;
+ rel1{ relative : 0 0;}
+ rel2{ relative : 1 1;}
+ color: MC_BG;
+ }
+ }
+
+ part { name: "padding.top";
+ type: SPACER;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 0; to: "bg"; }
+ rel2 { relative: 1 0; to: "bg"; }
+ min: 0 TOP_PADDING;
+ fixed: 0 1;
+ align: 0 0;
+ }
+ }
+
+ part { name: "padding.left";
+ type: SPACER;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 0; to: "bg"; }
+ rel2 { relative: 0 1; to: "bg"; }
+ min: LEFT_PADDING 0;
+ fixed: 1 0;
+ align: 0 0;
+ }
+ }
+
+ part { name: "padding.right";
+ type: SPACER;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 1 0; to: "bg"; }
+ rel2 { relative: 1 1; to: "bg"; }
+ min: RIGHT_PADDING 0;
+ fixed: 1 0;
+ align: 1 0;
+ }
+ }
+
+ part { name: "padding.bottom";
+ type: SPACER;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 1; to: "bg"; }
+ rel2 { relative: 1 1; to: "bg"; }
+ min: 0 BOTTOM_PADDING;
+ fixed: 0 1;
+ align: 0 1;
+ }
+ }
+
+ part { name: "padding_for_albumart.top";
+ type: SPACER;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel2 { relative: 1.0 0.0; }
+ min: 0 7;
+ fixed: 0 1;
+ align: 0.0 0.0;
+ }
+ }
+
+ part { name: "padding_for_albumart.bottom";
+ type: SPACER;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 1; to: "bg"; }
+ rel2 { relative: 1 1; to: "bg"; }
+ min: 0 7;
+ fixed: 0 1;
+ align: 0 1;
+ }
+ }
+
+ part { name: "albumarmt_bg";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 1.0 1.0; to_x: "padding.left"; to_y: "padding_for_albumart.top"; }
+ rel2 { relative: 1.0 0.0; to_x: "padding.left"; to_y: "padding_for_albumart.bottom"; }
+ min: ALBUM_ART_SIZE;
+ max: ALBUM_ART_SIZE;
+ fixed: 1 1;
+ align: 0.0 0.5;
+ }
+ }
+ part { name: "albumart_image";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 1;
+ clip_to: "albumarmt_bg";
+ description { state: "default" 0.0;
+ rel1 { relative: 0.5 0.5; to: "albumarmt_bg"; }
+ rel2 { relative: 0.5 0.5; to: "albumarmt_bg"; }
+ min: ALBUM_ART_SIZE;
+ max: ALBUM_ART_SIZE;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ }
+ }
+ part { name: "albumarmt_frame";
+ type: IMAGE;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 0.0 0.0; to: "albumarmt_bg";}
+ rel2 { relative: 1.0 1.0; to: "albumarmt_bg";}
+ min: ALBUM_ART_SIZE;
+ image.normal: MC_MUSIC_ALBUM_FRAME;
+ color_class:"AO009";
+ }
+ }
+
+ part { name: "right_area";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 1.0 1.0; to_x: "albumarmt_bg"; to_y: "padding.top"; }
+ rel2 { relative: 0.0 0.0; to_x: "padding.right"; to_y: "padding.bottom"; }
+ align: 0.0 0.0;
+ color:0 255 0 0;
+ }
+ }
+ part { name: "elm.text"; // title
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0.1 1.0; to_x: "right_area"; to_y: "padding.top";}
+ rel2 { relative: 290/329 1.0; to_x: "right_area"; to_y: "padding.top";}
+ fixed: 1 1;
+ align: 0.5 0.0;
+ }
+ }
+
+ part { name: "mid_padding";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description
+ { state: "default" 0.0;
+ //min: 323 3;
+ //max: 323 3;
+ fixed: 1 1;
+ rel1 { relative: 0.0 1.0; to_x: "right_area"; to_y: "elm.text"; offset: 40 0; }
+ rel2 { relative: 1.0 1.0; to_x: "right_area"; to_y: "elm.text"; }
+ fixed: 1 1;
+ align: 0.0 0.0;
+ color: 255 0 0 0;
+ }
+ }
+
+ part { name: "close_btn_area";
+ type: SPACER;
+ scale: 1;
+ mouse_events: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0.0 0.0; to_x: "padding.right"; to_y: "elm.text";offset: -30 15;}
+ rel2 { relative: 0.0 0.0; to: "padding.right";to_y: "elm.text"; offset: -30 15;}
+ min: BUTTON_CLOSE_SIZE_MAX;
+ max: BUTTON_CLOSE_SIZE_MAX;
+ fixed: 1 1;
+ }
+ }
+ MC_IMAGE_PART("close_btn","close_btn_area",MC_MUSIC_CLOSE_BTN,61,185,204,255,61,185,204,255,BUTTON_CLOSE_SIZE_MAX)
+ part { name: "close_btn_touch_area";
+ type: RECT;
+ scale: 1;
+ mouse_events: 1;
+ repeat_events: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { to: "close_btn_area"; offset: -7 -7;}
+ rel2 { to: "close_btn_area"; offset: 7 7;}
+ color: 0 0 0 0;
+ }
+ }
+
+ part { name: "button_area";
+ type: RECT;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 1; to_x:"elm.text"; to_y: "mid_padding";}
+ rel2 { relative: 1 0; to_x: "elm.text"; to_y: "padding.bottom"; }
+ visible: 1;
+ color: 0 255 0 0;
+ }
+ }
+
+ part { name: "rew_btn_area";
+ type: RECT;
+ scale: 1;
+ mouse_events: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0.2 0.5; to: "button_area"; offset: 10 0;}
+ rel2 { relative: 0.2 0.5; to: "button_area"; offset: 10 -16;}
+ min: BUTTON_SIZE_MIN_MAX;
+ fixed: 1 1;
+ align: 0.0 0.5;
+ visible: 0;
+ }
+ }
+
+
+ MC_IMAGE_PART("rew_btn_bg","rew_btn_area",MC_MUSIC_SMALL_BTN_BG,0,0,0,0,0,0,0,0,BUTTON_SIZE_MIN_MAX)
+ MC_IMAGE_PART("rew_btn_ef","rew_btn_area",MC_MUSIC_SMALL_BTN_EF,0,0,0,0,0,0,0,0,BUTTON_SIZE_MIN_MAX)
+ MC_IMAGE_PART("rew_btn","rew_btn_area",MC_MUSIC_PREV_BTN,61,185,204,255,34,104,115,255,FF_BTN_SIZE_MIN_MAX)
+ part { name: "rew_btn_touch_area";
+ type: RECT;
+ scale: 1;
+ mouse_events: 1;
+ repeat_events: 1;
+ description { state: "default" 0.0;
+ rel1 { to: "rew_btn_area"; }
+ rel2 { to: "rew_btn_area";}
+ color: 0 0 0 0;
+ }
+ }
+ MC_FOCUSED_COVER("rew_btn", "rew_btn_area");
+
+
+
+ part { name: "play_pause_btn_area";
+ type: SPACER;
+ scale: 1;
+ mouse_events: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0.5 0.5; to: "button_area";offset: 0 0;}
+ rel2 { relative: 0.5 0.5; to: "button_area";offset: 0 -16;}
+ min: PLAY_BTN_SIZE_MIN_MAX;
+ max: PLAY_BTN_SIZE_MIN_MAX;
+ fixed: 1 1;
+ }
+ }
+
+
+ MC_IMAGE_PART("play_btn_bg","play_pause_btn_area",MC_MUSIC_LAGRE_BTN_BG,61,185,204,255,34,104,115,255,BIG_BTN_SIZE_MIN_MAX)
+ MC_IMAGE_PART_FOCUS("play_btn_ef","play_pause_btn_area",MC_MUSIC_LAGRE_BTN_EF,BIG_BTN_SIZE_MIN_MAX)
+ MC_IMAGE_PART("play_btn","play_pause_btn_area",MC_MUSIC_PLAY_BTN,255,255,255,255,255,255,255,255,PLAY_BTN_SIZE_MIN_MAX)
+ MC_IMAGE_PART("pause_btn","play_pause_btn_area",MC_MUSIC_PAUSE_BTN,255,255,255,255,255,255,255,255,PLAY_BTN_SIZE_MIN_MAX)
+ part { name: "play_btn_touch_area";
+ type: RECT;
+ scale: 1;
+ mouse_events: 1;
+ repeat_events: 1;
+ description { state: "default" 0.0;
+ rel1 { to: "play_pause_btn_area"; }
+ rel2 { to: "play_pause_btn_area";}
+ color: 0 0 0 0;
+ fixed: 1 1;
+ }
+ }
+ MC_FOCUSED_COVER("play_pause", "play_pause_btn_area");
+
+
+ part { name: "ff_btn_area";
+ type: SPACER;
+ scale: 1;
+ mouse_events: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0.7 0.5; to: "button_area";offset: -10 0;}
+ rel2 { relative: 0.7 0.5; to: "button_area";offset: -10 -16;}
+ min: FF_BTN_SIZE_MIN_MAX;
+ max: FF_BTN_SIZE_MIN_MAX;
+ fixed: 1 1;
+ align:0.0 0.5;
+ }
+ }
+
+ MC_IMAGE_PART("ff_btn_bg","ff_btn_area",MC_MUSIC_SMALL_BTN_BG,0,0,0,0,0,0,0,0,BUTTON_SIZE_MIN_MAX)
+ MC_IMAGE_PART("ff_btn_ef","ff_btn_area",MC_MUSIC_SMALL_BTN_EF,0,0,0,0,0,0,0,0,BUTTON_SIZE_MIN_MAX)
+ MC_IMAGE_PART("ff_btn","ff_btn_area",MC_MUSIC_NEXT_BTN,61,185,204,255,34,104,115,255,FF_BTN_SIZE_MIN_MAX)
+ part { name: "ff_btn_touch_area";
+ type: RECT;
+ scale: 1;
+ mouse_events: 1;
+ repeat_events: 1;
+ description { state: "default" 0.0;
+ rel1 { to: "ff_btn_area"; }
+ rel2 { to: "ff_btn_area";}
+ color: 0 0 0 0;
+ fixed: 1 1;
+ }
+ }
+ MC_FOCUSED_COVER("ff_btn", "ff_btn_area");
+ }
+
+ programs {
+
+ MC_PROGRAM_IMAGE_VISIBLE("play_btn", "show_play_btn", "hide_play_btn")
+ MC_PROGRAM_IMAGE_VISIBLE("pause_btn", "show_pause_btn", "hide_pause_btn")
+
+ program { name: "play_pause_btn_area_press";
+ signal: "mouse,down,1";
+ source: "play_btn_touch_area";
+ script{
+ set_state(PART:"play_btn_bg", "pressed", 0.0);
+ set_state(PART:"play_btn_ef", "pressed", 0.0);
+ }
+ }
+
+ program { name: "play_pause_btn_area_up";
+ signal: "mouse,up,1";
+ source: "play_btn_touch_area";
+ script{
+ set_state(PART:"play_btn_bg", "default", 0.0);
+ set_state(PART:"play_btn_ef", "default", 0.0);
+ }
+ }
+
+ program { name: "rew_btn_touch_area_press";
+ signal: "mouse,down,1";
+ source: "rew_btn_touch_area";
+ script{
+ set_state(PART:"rew_btn_bg", "pressed", 0.0);
+ set_state(PART:"rew_btn_ef", "pressed", 0.0);
+ set_state(PART:"rew_btn", "pressed", 0.0);
+ }
+ }
+
+ program { name: "rew_btn_touch_area_up";
+ signal: "mouse,up,1";
+ source: "rew_btn_touch_area";
+ script{
+ set_state(PART:"rew_btn_bg", "default", 0.0);
+ set_state(PART:"rew_btn_ef", "default", 0.0);
+ set_state(PART:"rew_btn", "default", 0.0);
+ }
+ }
+
+ program { name: "ff_btn_touch_area_press";
+ signal: "mouse,down,1";
+ source: "ff_btn_touch_area";
+ script{
+ set_state(PART:"ff_btn_bg", "pressed", 0.0);
+ set_state(PART:"ff_btn_ef", "pressed", 0.0);
+ set_state(PART:"ff_btn", "pressed", 0.0);
+ }
+ }
+
+ program { name: "ff_btn_touch_area_up";
+ signal: "mouse,up,1";
+ source: "ff_btn_touch_area";
+ script{
+ set_state(PART:"ff_btn_bg", "default", 0.0);
+ set_state(PART:"ff_btn_ef", "default", 0.0);
+ set_state(PART:"ff_btn", "default", 0.0);
+ }
+ }
+
+ program { name: "albumart_cb";
+ signal: "mouse,down,1";
+ source: "albumart_image";
+ script{
+ emit("albumart_clicked", "edje");
+ }
+ }
+ /*
+ program{
+ name: "albumart_cb_after_down";
+ source: "albumart_image";
+ signal: "mouse,down,1";
+ transition: ACCELERATE 0.02;
+ }
+ program {
+ name: "albumart_cb_down";
+ source: "albumart_image";
+ signal: "mouse,down,1";
+ action: PLAY_SAMPLE "button-pressed" 1.0;
+ after: "albumart_cb_after_down";
+ transition: ACCELERATE 0.02;
+ }
+*/
+ program { name: "close_area_btn_down";
+ signal: "mouse,down,1";
+ source: "close_btn_touch_area";
+ script{
+ set_state(PART:"close_btn", "pressed", 0.0);
+ emit("close_btn_down", "edje");
+ }
+ }
+
+ program { name: "close_area_btn_up";
+ signal: "mouse,up,1";
+ source: "close_btn_touch_area";
+ script{
+ set_state(PART:"close_btn", "default", 0.0);
+ emit("close_btn_up", "edje");
+ }
+ }
+
+ program { name: "close_area_btn_clicked";
+ signal: "mouse,up,1";
+ source: "close_btn_touch_area";
+ script{
+ emit("close_btn_clicked", "edje");
+ }
+ }
+
+ program { name: "set_pause_icon";
+ signal: "set_pause";
+ source: "*";
+ script{
+ set_state(PART:"play_btn", "hide", 0.0);
+ set_state(PART:"pause_btn", "default",0.0);
+ set_state(PART:"play_btn_ef", "focus", 0.0);
+ }
+ }
+ program { name: "set_play_icon";
+ signal: "set_play";
+ source: "*";
+ script{
+ set_state(PART:"play_btn", "default", 0.0);
+ set_state(PART:"pause_btn", "hide",0.0);
+ set_state(PART:"play_btn_ef", "default", 0.0);
+ }
+ }
+
+ program { name: "set_ff_btn_uppressed";
+ signal: "ff_btn_unpressed";
+ source: "*";
+ script{
+ set_state(PART:"ff_btn_bg", "default", 0.0);
+ set_state(PART:"ff_btn_ef", "default", 0.0);
+ set_state(PART:"ff_btn", "default", 0.0);
+ }
+ }
+ program { name: "set_rew_btn_uppressed";
+ signal: "rew_btn_unpressed";
+ source: "*";
+ script{
+ set_state(PART:"rew_btn_bg", "default", 0.0);
+ set_state(PART:"rew_btn_ef", "default", 0.0);
+ set_state(PART:"rew_btn", "default", 0.0);
+ }
+ }
+ /*
+ program { name: "touch_snd_rew";
+ signal: "mouse,down,1";
+ source: "rew_btn_touch_area";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+
+ program { name: "touch_snd_ff";
+ signal: "mouse,down,1";
+ source: "ff_btn_touch_area";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ program { name: "touch_snd_play_pause";
+ signal: "mouse,down,1";
+ source: "play_btn_touch_area";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ program { name: "touch_snd_shuffle";
+ signal: "mouse,down,1";
+ source: "shuffle_btn_touch_area";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ program { name: "touch_snd_close";
+ signal: "mouse,down,1";
+ source: "close_btn_touch_area";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ program { name: "touch_snd_repeat";
+ signal: "mouse,down,1";
+ source: "repeat_btn_touch_area";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+*/
+ }
+}
+
+group {
+ name: "video-minicontroller-live-streaming-ld";
+ images {
+ image: MC_MUSIC_LAGRE_BTN_EF COMP;
+ image: MC_MUSIC_LAGRE_BTN_BG COMP;
+ image: MC_MUSIC_PLAY_BTN COMP;
+ image: MC_MUSIC_STOP_BTN COMP;
+ image: MC_MUSIC_SMALL_BTN_EF COMP;
+ image: MC_MUSIC_SMALL_BTN_BG COMP;
+ image: MC_MUSIC_CLOSE_BTN COMP;
+ }
+ parts {
+ part{ name: "bg";
+ type : RECT;
+ scale : 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ min : 0 MINI_H;
+ fixed: 1 1;
+ rel1{ relative : 0 0;}
+ rel2{ relative : 1 1;}
+ color: MC_BG;
+ }
+ }
+
+ part { name: "padding.top";
+ type: SPACER;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 0; to: "bg"; }
+ rel2 { relative: 1 0; to: "bg"; }
+ min: 0 TOP_PADDING;
+ fixed: 0 1;
+ align: 0 0;
+ }
+ }
+
+ part { name: "padding.left";
+ type: SPACER;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 0; to: "bg"; }
+ rel2 { relative: 0 1; to: "bg"; }
+ min: LEFT_PADDING 0;
+ fixed: 1 0;
+ align: 0 0;
+ }
+ }
+
+ part { name: "padding.right";
+ type: SPACER;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 1 0; to: "bg"; }
+ rel2 { relative: 1 1; to: "bg"; }
+ min: RIGHT_PADDING 0;
+ fixed: 1 0;
+ align: 1 0;
+ }
+ }
+
+ part { name: "padding.bottom";
+ type: SPACER;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 1; to: "bg"; }
+ rel2 { relative: 1 1; to: "bg"; }
+ min: 0 BOTTOM_PADDING;
+ fixed: 0 1;
+ align: 0 1;
+ }
+ }
+
+ part { name: "padding_for_albumart.top";
+ type: SPACER;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel2 { relative: 1.0 0.0; }
+ min: 0 7;
+ fixed: 0 1;
+ align: 0.0 0.0;
+ }
+ }
+
+ part { name: "padding_for_albumart.bottom";
+ type: SPACER;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 1; to: "bg"; }
+ rel2 { relative: 1 1; to: "bg"; }
+ min: 0 7;
+ fixed: 0 1;
+ align: 0 1;
+ }
+ }
+
+ part { name: "albumarmt_bg";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 1.0 1.0; to_x: "padding.left"; to_y: "padding_for_albumart.top"; }
+ rel2 { relative: 1.0 0.0; to_x: "padding.left"; to_y: "padding_for_albumart.bottom"; }
+ min: ALBUM_ART_SIZE;
+ max: ALBUM_ART_SIZE;
+ fixed: 1 1;
+ align: 0.0 0.5;
+ }
+ }
+ part { name: "albumart_image";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 1;
+ clip_to: "albumarmt_bg";
+ description { state: "default" 0.0;
+ rel1 { relative: 0.5 0.5; to: "albumarmt_bg"; }
+ rel2 { relative: 0.5 0.5; to: "albumarmt_bg"; }
+ min: ALBUM_ART_SIZE;
+ max: ALBUM_ART_SIZE;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ }
+ }
+ part { name: "albumarmt_frame";
+ type: IMAGE;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 0.0 0.0; to: "albumarmt_bg";}
+ rel2 { relative: 1.0 1.0; to: "albumarmt_bg";}
+ min: ALBUM_ART_SIZE;
+ image.normal: MC_MUSIC_ALBUM_FRAME;
+ color_class:"AO009";
+ }
+ }
+
+ part { name: "right_area";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 1.0 1.0; to_x: "albumarmt_bg"; to_y: "padding.top"; }
+ rel2 { relative: 0.0 0.0; to_x: "padding.right"; to_y: "padding.bottom"; }
+ align: 0.0 0.0;
+ color:0 255 0 0;
+ }
+ }
+ part { name: "elm.text"; // title
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0.1 1.0; to_x: "right_area"; to_y: "padding.top";}
+ rel2 { relative: 290/329 1.0; to_x: "right_area"; to_y: "padding.top";}
+ fixed: 1 1;
+ align: 0.5 0.0;
+ }
+ }
+
+ part { name: "mid_padding";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description
+ {
+ state: "default" 0.0;
+ fixed: 1 1;
+ rel1 { relative: 0.0 1.0; to_x: "right_area"; to_y: "elm.text"; offset: 40 0; }
+ rel2 { relative: 1.0 1.0; to_x: "right_area"; to_y: "elm.text"; }
+ fixed: 1 1;
+ align: 0.0 0.0;
+ color: 255 0 0 0;
+ }
+ }
+
+ part { name: "close_btn_area";
+ type: SPACER;
+ scale: 1;
+ mouse_events: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0.0 0.0; to_x: "padding.right"; to_y: "elm.text";offset: -30 15;}
+ rel2 { relative: 0.0 0.0; to: "padding.right";to_y: "elm.text"; offset: -30 15;}
+ min: BUTTON_CLOSE_SIZE_MAX;
+ max: BUTTON_CLOSE_SIZE_MAX;
+ fixed: 1 1;
+ }
+ }
+ MC_IMAGE_PART("close_btn","close_btn_area",MC_MUSIC_CLOSE_BTN,61,185,204,255,61,185,204,255,BUTTON_CLOSE_SIZE_MAX)
+ part { name: "close_btn_touch_area";
+ type: RECT;
+ scale: 1;
+ mouse_events: 1;
+ repeat_events: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { to: "close_btn_area"; offset: -7 -7;}
+ rel2 { to: "close_btn_area"; offset: 7 7;}
+ color: 0 0 0 0;
+ }
+ }
+
+ part { name: "button_area";
+ type: RECT;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 1; to_x:"elm.text"; to_y: "mid_padding";}
+ rel2 { relative: 1 0; to_x: "elm.text"; to_y: "padding.bottom"; }
+ visible: 1;
+ color: 0 255 0 0;
+ }
+ }
+
+ part { name: "play_pause_btn_area";
+ type: SPACER;
+ scale: 1;
+ mouse_events: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0.5 0.5; to: "button_area";offset: 0 0;}
+ rel2 { relative: 0.5 0.5; to: "button_area";offset: 0 -16;}
+ min: PLAY_BTN_SIZE_MIN_MAX;
+ max: PLAY_BTN_SIZE_MIN_MAX;
+ fixed: 1 1;
+ }
+ }
+
+
+ MC_IMAGE_PART("play_btn_bg","play_pause_btn_area",MC_MUSIC_LAGRE_BTN_BG,61,185,204,255,34,104,115,255,BIG_BTN_SIZE_MIN_MAX)
+ MC_IMAGE_PART_FOCUS("play_btn_ef","play_pause_btn_area",MC_MUSIC_LAGRE_BTN_EF,BIG_BTN_SIZE_MIN_MAX)
+ MC_IMAGE_PART("play_btn","play_pause_btn_area",MC_MUSIC_PLAY_BTN,255,255,255,255,255,255,255,255,PLAY_BTN_SIZE_MIN_MAX)
+ MC_IMAGE_PART("pause_btn","play_pause_btn_area",MC_MUSIC_STOP_BTN,255,255,255,255,255,255,255,255,PLAY_BTN_SIZE_MIN_MAX)
+ part { name: "play_btn_touch_area";
+ type: RECT;
+ scale: 1;
+ mouse_events: 1;
+ repeat_events: 1;
+ description { state: "default" 0.0;
+ rel1 { to: "play_pause_btn_area"; }
+ rel2 { to: "play_pause_btn_area";}
+ color: 0 0 0 0;
+ fixed: 1 1;
+ }
+ }
+ MC_FOCUSED_COVER("play_pause", "play_pause_btn_area");
+ }
+
+ programs {
+
+ MC_PROGRAM_IMAGE_VISIBLE("play_btn", "show_play_btn", "hide_play_btn")
+ MC_PROGRAM_IMAGE_VISIBLE("pause_btn", "show_pause_btn", "hide_pause_btn")
+
+ program { name: "play_pause_btn_area_press";
+ signal: "mouse,down,1";
+ source: "play_btn_touch_area";
+ script{
+ set_state(PART:"play_btn_bg", "pressed", 0.0);
+ set_state(PART:"play_btn_ef", "pressed", 0.0);
+ }
+ }
+
+ program { name: "play_pause_btn_area_up";
+ signal: "mouse,up,1";
+ source: "play_btn_touch_area";
+ script{
+ set_state(PART:"play_btn_bg", "default", 0.0);
+ set_state(PART:"play_btn_ef", "default", 0.0);
+ }
+ }
+
+ program { name: "albumart_cb";
+ signal: "mouse,down,1";
+ source: "albumart_image";
+ script{
+ emit("albumart_clicked", "edje");
+ }
+ }
+
+ program { name: "close_area_btn_down";
+ signal: "mouse,down,1";
+ source: "close_btn_touch_area";
+ script{
+ set_state(PART:"close_btn", "pressed", 0.0);
+ emit("close_btn_down", "edje");
+ }
+ }
+
+ program { name: "close_area_btn_up";
+ signal: "mouse,up,1";
+ source: "close_btn_touch_area";
+ script{
+ set_state(PART:"close_btn", "default", 0.0);
+ emit("close_btn_up", "edje");
+ }
+ }
+
+ program { name: "close_area_btn_clicked";
+ signal: "mouse,up,1";
+ source: "close_btn_touch_area";
+ script{
+ emit("close_btn_clicked", "edje");
+ }
+ }
+
+ program { name: "set_pause_icon";
+ signal: "set_pause";
+ source: "*";
+ script{
+ set_state(PART:"play_btn", "hide", 0.0);
+ set_state(PART:"pause_btn", "default",0.0);
+ set_state(PART:"play_btn_ef", "focus", 0.0);
+ }
+ }
+ program { name: "set_play_icon";
+ signal: "set_play";
+ source: "*";
+ script{
+ set_state(PART:"play_btn", "default", 0.0);
+ set_state(PART:"pause_btn", "hide",0.0);
+ set_state(PART:"play_btn_ef", "default", 0.0);
+ }
+ }
+ }
+}
+
+} // collection
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES 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 */
+
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "pv-image.edc"
+
+#define PV_NORMAL_CONTROL_BG "control/T01-2_control_bg.png"
+#define PV_NORMAL_CONTROL_LANDSCAPE_BG "control/T01-2_control_bg_h.png"
+
+externals {
+ external: "elm";
+ external: "feedback";
+ }
+
+collections {
+
+#define PV_PART_DESCRIPTION_HIDE \
+ description { \
+ state: "hide" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 0; \
+ } \
+
+#define PV_PART_DESCRIPTION_SHOW \
+ description { \
+ state: "show" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 1; \
+ } \
+
+ plugins {
+ plugin {
+ name: "touch_sound_plugin";
+ source: "feedback";
+ param: "FEEDBACK_TYPE_SOUND FEEDBACK_PATTERN_TAP";
+ }
+ }
+
+ group {
+ name: "pv.normal.control";
+ images {
+ image: PV_NORMAL_CONTROL_BG COMP;
+ image: PV_NORMAL_CONTROL_LANDSCAPE_BG COMP;
+ }
+
+ parts {
+ part {
+ name: "pv.normal.control.bg";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 1.0 1.0;}
+ color: 255 0 0 255;
+ }
+ }
+
+ part {
+ name: "pv.normal.control.bottom.padding";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 0 12;
+ fixed: 0 1;
+ align: 0.0 1.0;
+ rel1 { relative: 0.0 1.0; to_y : "pv.normal.control.bg"; }
+ rel2 { relative: 1.0 1.0; to_y : "pv.normal.control.bg"; }
+ color: 0 255 0 50;
+ }
+ description {
+ state: "landscape" 0.0;
+ inherit: "default" 0.0;
+ min: 0 6;
+ }
+ }
+ part {
+ name: "pv.normal.control.bg.rect";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ rel1 { relative: 0.0 0.0; to: "pv.normal.control.bg";}
+ rel2 { relative: 1.0 1.0; to: "pv.normal.control.bg";}
+ color: 255 255 255 255;
+ }
+ }
+ part {
+ name: "pv.normal.control.function.top";
+ type: RECT;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 0 0;
+ max: -1 0;
+ fixed: 0 1;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 0.0; to_y: "pv.normal.control.bg";}
+ rel2 { relative: 1.0 0.0; to_y: "pv.normal.control.bg";}
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "pv.normal.control.function";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 0 14;
+ max: -1 14;
+ fixed: 0 1;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 1.0; to_y: "pv.normal.control.function.top"; }
+ rel2 { relative: 1.0 1.0; to_y: "pv.normal.control.function.top"; }
+ }
+ description {
+ state: "landscape" 0.0;
+ inherit: "default" 0.0;
+ min: 0 14;
+ max: -1 14;
+ align: 0.0 0.5;
+ rel1 { relative: 1.0 0.5; to_x: "pv.normal.control.toolbar.volume"; to_y: "pv.normal.control.toolbar.rect";}
+ rel2 { relative: 0.0 0.5; to_x: "pv.normal.control.toolbar.screensize"; to_y: "pv.normal.control.toolbar.rect";}
+ }
+ }
+
+ part {
+ name: "pv.normal.control.progress";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 0 46;//(26+11+12+34);
+ max: -1 46;//(26+11+12+34);
+ fixed: 0 1;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 1.0; to_y: "pv.normal.control.function";}
+ rel2 { relative: 1.0 1.0; to_y: "pv.normal.control.function";}
+ }
+
+ description {
+ state: "landscape" 0.0;
+ inherit: "default" 0.0;
+ min: 0 46;
+ rel1 { relative: 0.0 0.0; to_y: "pv.normal.control.bg.rect";}
+ rel2 { relative: 1.0 0.0; to_y: "pv.normal.control.bg.rect";}
+ }
+ }
+
+ part {
+ name: "pv.normal.control.toolbar.top";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 0 70;//(12+70+26+11+12+(34/2));
+ max: -1 70;//(12+70+26+11+12+(34/2));
+ fixed: 0 1;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 0.0; to_y: "pv.normal.control.bg";}
+ rel2 { relative: 1.0 0.0; to_y: "pv.normal.control.bg";}
+ color: 255 0 0 125;
+ }
+ }
+ part {
+ name: "pv.normal.control.toolbar.rect";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 0 80;
+ max: -1 80;
+ fixed: 0 1;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 0.6; to_y: "pv.normal.control.toolbar.top";}
+ rel2 { relative: 1.0 0.6; to_y: "pv.normal.control.toolbar.top";}
+ color: 255 0 0 255;
+ }
+ description {
+ state: "landscape" 0.0;
+ visible: 0;
+ fixed: 0 1;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 1.0; to_y: "pv.normal.control.toolbar.top";}
+ rel2 { relative: 1.0 1.0; to_y: "pv.normal.control.toolbar.top";}
+ color: 255 0 0 255;
+ }
+ }
+
+ part {
+ name: "pv.normal.control.toolbar.left.padding";
+ type: RECT;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 30 0;
+ fixed: 1 0;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 0.0; to: "pv.normal.control.toolbar.rect";}
+ rel2 { relative: 0.0 1.0; to: "pv.normal.control.toolbar.rect";}
+ color: 0 0 0 0;
+ }
+ description {
+ state: "landscape" 0.0;
+ inherit: "default" 0.0;
+ min: 30 0;
+ }
+ }
+ part {
+ name: "pv.normal.control.toolbar.right.padding";
+ type: RECT;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 30 0;
+ fixed: 1 0;
+ align: 1.0 0.0;
+ rel1 { relative: 1.0 0.0; to: "pv.normal.control.toolbar.rect";}
+ rel2 { relative: 1.0 1.0; to: "pv.normal.control.toolbar.rect";}
+ color: 0 0 0 0;
+ }
+ description {
+ state: "landscape" 0.0;
+ inherit: "default" 0.0;
+ min: 30 0;
+ }
+ }
+ part {
+ name: "pv.normal.control.toolbar.volume";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 46 46;
+ fixed: 1 1;
+ align: 0.0 0.5;
+ rel1 { relative: 1.0 0.5; to_x: "pv.normal.control.toolbar.left.padding"; to_y: "pv.normal.control.toolbar.rect"; }
+ rel2 { relative: 1.0 0.5; to_x: "pv.normal.control.toolbar.left.padding"; to_y: "pv.normal.control.toolbar.rect"; }
+ color: 255 255 255 255;
+ }
+ PV_PART_DESCRIPTION_HIDE
+ PV_PART_DESCRIPTION_SHOW
+ }
+
+ part {
+ name: "pv.normal.control.toolbar.screensize";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 60 60;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ rel1 { relative: 0.05 0.45; to_x: "pv.normal.control.bg"; to_y: "pv.normal.control.toolbar.rect"; offset: +18 0;}
+ rel2 { relative: 0.05 0.45; to_x: "pv.normal.control.bg"; to_y: "pv.normal.control.toolbar.rect"; offset: +78 0;}
+ color: 255 255 255 255;
+ }
+ PV_PART_DESCRIPTION_HIDE
+ PV_PART_DESCRIPTION_SHOW
+ }
+
+ part {
+ name: "pv.normal.control.toolbar.popupPlayer";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 60 60;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ rel1 { relative: 0.95 0.55; to_x: "pv.normal.control.bg"; to_y: "pv.normal.control.toolbar.rect"; offset: -18 0;}
+ rel2 { relative: 0.95 0.55; to_x: "pv.normal.control.bg"; to_y: "pv.normal.control.toolbar.rect"; offset: -78 0;}
+ color: 255 255 255 255;
+ }
+ PV_PART_DESCRIPTION_HIDE
+ PV_PART_DESCRIPTION_SHOW
+ }
+
+ part {
+ name: "pv.normal.control.play";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 80 80;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ rel1 { relative: 0.5 0.0; to_y: "pv.normal.control.toolbar.rect";}
+ rel2 { relative: 0.5 1.0; to_y: "pv.normal.control.toolbar.rect";}
+ color: 255 255 255 255;
+ }
+ PV_PART_DESCRIPTION_HIDE
+ PV_PART_DESCRIPTION_SHOW
+ }
+
+ part {
+ name: "pv.normal.control.play.focus";
+ type: SWALLOW;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ rel1 { relative: 0.0 0.0; to : "pv.normal.control.play";}
+ rel2 { relative: 1.0 1.0; to : "pv.normal.control.play";}
+ color: 255 255 255 255;
+ }
+ PV_PART_DESCRIPTION_HIDE
+ PV_PART_DESCRIPTION_SHOW
+ }
+
+ part {
+ name: "pv.normal.control.play.left.padding";
+ type: RECT;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 16 0;
+ fixed: 1 0;
+ align: 1.0 0.5;
+ rel1 { relative: 0.0 0.0; to_x: "pv.normal.control.play"; to_y: "pv.normal.control.toolbar.rect";}
+ rel2 { relative: 0.0 1.0; to_x: "pv.normal.control.play"; to_y: "pv.normal.control.toolbar.rect";}
+ color: 255 255 0 255;
+ }
+ }
+
+ part {
+ name: "pv.normal.control.play.right.padding";
+ type: RECT;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 16 0;
+ fixed: 1 0;
+ align: 0.0 0.5;
+ rel1 { relative: 1.0 0.0; to_x: "pv.normal.control.play"; to_y: "pv.normal.control.toolbar.rect";}
+ rel2 { relative: 1.0 1.0; to_x: "pv.normal.control.play"; to_y: "pv.normal.control.toolbar.rect";}
+ color: 255 255 0 255;
+ }
+ }
+
+ part {
+ name: "pv.normal.control.rew";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 110 110;
+ fixed: 1 1;
+ align: 1.0 0.5;
+ rel1 { relative: 0.0 0.5; to_x: "pv.normal.control.play.left.padding"; to_y: "pv.normal.control.toolbar.rect";}
+ rel2 { relative: 0.0 0.5; to_x: "pv.normal.control.play.left.padding"; to_y: "pv.normal.control.toolbar.rect";}
+ color: 255 255 255 255;
+ }
+ PV_PART_DESCRIPTION_HIDE
+ PV_PART_DESCRIPTION_SHOW
+ }
+
+ part {
+ name: "pv.normal.control.ff";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 110 110;
+ fixed: 1 1;
+ align: 0.0 0.5;
+ rel1 { relative: 1.0 0.5; to_x: "pv.normal.control.play.right.padding"; to_y: "pv.normal.control.toolbar.rect";}
+ rel2 { relative: 1.0 0.5; to_x: "pv.normal.control.play.right.padding"; to_y: "pv.normal.control.toolbar.rect";}
+ color: 255 255 255 255;
+ }
+ PV_PART_DESCRIPTION_HIDE
+ PV_PART_DESCRIPTION_SHOW
+ }
+
+ part {
+ name: "pv.normal.control.bookmark";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 0 (10+88+32+18);
+ fixed: 0 1;
+ align: 0.0 1.0;
+ rel1 { relative: 0.0 0.0; to_y: "pv.normal.control.bg";}
+ rel2 { relative: 1.0 0.0; to_y: "pv.normal.control.bg";}
+ }
+ }
+
+ } /* parts */
+
+ programs {
+ program {
+ name: "portrait_mode";
+ signal: "signal.pv.normal.control.portrait.mode";
+ source: "*";
+ action: STATE_SET "default" 0.0;
+ target: "pv.normal.control.toolbar.left.padding";
+ target: "pv.normal.control.toolbar.right.padding";
+ target: "pv.normal.control.bottom.padding";
+ target: "pv.normal.control.progress";
+ target: "pv.normal.control.function.top";
+ target: "pv.normal.control.function";
+ target: "pv.normal.control.toolbar.rect";
+ }
+
+ program {
+ name: "landscape_mode";
+ signal: "signal.pv.normal.control.landscape.mode";
+ source: "*";
+ action: STATE_SET "landscape" 0.0;
+ target: "pv.normal.control.toolbar.left.padding";
+ target: "pv.normal.control.toolbar.right.padding";
+ target: "pv.normal.control.bottom.padding";
+ target: "pv.normal.control.progress";
+ target: "pv.normal.control.function.top";
+ target: "pv.normal.control.function";
+ target: "pv.normal.control.toolbar.rect";
+ }
+
+ program {
+ name: "hide_volume_screensize";
+ signal: "signal.pv.normal.control.hide.v.s";
+ source: "*";
+ action: STATE_SET "hide" 0.0;
+ target: "pv.normal.control.toolbar.volume";
+ target: "pv.normal.control.toolbar.screensize";
+ }
+
+ program {
+ name: "hide_volume_screensize_ff_rev";
+ signal: "signal.pv.normal.control.hide.v.s.f.r";
+ source: "*";
+ action: STATE_SET "hide" 0.0;
+ target: "pv.normal.control.toolbar.volume";
+ target: "pv.normal.control.toolbar.screensize";
+ target: "pv.normal.control.rew";
+ target: "pv.normal.control.ff";
+ }
+
+ program {
+ name: "hide_all_button";
+ signal: "signal.pv.normal.control.hide.v.s.f.r.p";
+ source: "*";
+ action: STATE_SET "hide" 0.0;
+ target: "pv.normal.control.toolbar.volume";
+ target: "pv.normal.control.toolbar.screensize";
+ target: "pv.normal.control.rew";
+ target: "pv.normal.control.ff";
+ target: "pv.normal.control.play";
+ }
+
+ program {
+ name: "show_play_button";
+ signal: "signal.pv.normal.control.show.p";
+ source: "*";
+ action: STATE_SET "show" 0.0;
+ target: "pv.normal.control.play";
+ }
+
+ program {
+ name: "show_volume_screensize_ff_rev";
+ signal: "signal.pv.normal.control.show.r.f.p";
+ source: "*";
+ action: STATE_SET "show" 0.0;
+ target: "pv.normal.control.rew";
+ target: "pv.normal.control.ff";
+ target: "pv.normal.control.play";
+ }
+
+ program {
+ name: "show_all_button";
+ signal: "signal.pv.normal.control.show.v.s.f.r.p";
+ source: "*";
+ action: STATE_SET "show" 0.0;
+ target: "pv.normal.control.toolbar.volume";
+ target: "pv.normal.control.toolbar.screensize";
+ target: "pv.normal.control.rew";
+ target: "pv.normal.control.ff";
+ target: "pv.normal.control.play";
+ }
+ program{
+ name: "touch_snd";
+ signal: "mouse,clicked,1";
+ source: "pv.normal.control.ff";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ program{
+ name: "touch_snd1";
+ signal: "mouse,clicked,1";
+ source: "pv.normal.control.rew";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ program{
+ name: "touch_snd2";
+ signal: "mouse,clicked,1";
+ source: "pv.normal.control.toolbar.screensize";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ program{
+ name: "touch_snd3";
+ signal: "mouse,clicked,1";
+ source: "pv.normal.control.play";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ } /* programs */
+ } /* group */
+} /* collections */
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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 */
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "pv-image.edc"
+
+#define FONT_BOLD_TYPE "Tizen:style=Bold"
+#define FONT_COLOR 255 255 255 255
+
+#define MICRO_CONTROL_IMG_UP_1 "micro_control/T01_2_micro_control_up_01.png"
+#define MICRO_CONTROL_IMG_UP_2 "micro_control/T01_2_micro_control_up_02.png"
+#define MICRO_CONTROL_IMG_UP_3 "micro_control/T01_2_micro_control_up_03.png"
+#define MICRO_CONTROL_IMG_BG "micro_control/T01-2_Control_detail_text_bg.png"
+#define JUMP_IMG_L_1 "jump/T01_2_jump_L_01.png"
+#define JUMP_IMG_L_2 "jump/T01_2_jump_L_02.png"
+#define JUMP_IMG_L_3 "jump/T01_2_jump_L_03.png"
+#define JUMP_IMG_R_1 "jump/T01_2_jump_R_01.png"
+#define JUMP_IMG_R_2 "jump/T01_2_jump_R_02.png"
+#define JUMP_IMG_R_3 "jump/T01_2_jump_R_03.png"
+#define LOCK_SCREEN_ICON_SIZE 46
+
+#define SUBTITLE_K_FEATURE
+
+externals {
+ external: "elm";
+ external: "feedback";
+ }
+
+collections {
+ plugins {
+ plugin {
+ name: "touch_sound_plugin";
+ source: "feedback";
+ param: "FEEDBACK_TYPE_SOUND FEEDBACK_PATTERN_TAP";
+ }
+ }
+ group {
+ name: "pv.normal.main";
+
+ parts {
+ part {
+ name: "pv.normal.main.bg";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 1.0 1.0;}
+ color: 8 8 8 255;
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+
+ part {
+ name: "pv.normal.main.no.contents.rect";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 1.0 1.0;}
+ color: 8 8 8 255;
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+
+ part {
+ name: "pv.normal.main.lockscreen.padding";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 20 14 ;
+ fixed: 1 1;
+ align: 0.0 0.0;
+ rel1 { relative: 1.0 0.0; offset: -24 -10;}
+ rel2 { relative: 1.0 0.0; offset: -24 -10;}
+ color: 255 255 255 255;
+ }
+ }
+
+ part {
+ name: "pv.normal.main.image.buffer.bg";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ fixed: 0 1;
+ align: 0.5 0.5;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 1.0 1.0;}
+ color: 0 0 0 0;
+ }
+ description {
+ state: "portrait.show" 0.0;
+ inherit: "default" 0.0;
+ fixed: 0 1;
+ //min: 0 800;
+ align: 0.5 0.5;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 1.0 1.0;}
+ }
+ description {
+ state: "landscape.show" 0.0;
+ inherit: "default" 0.0;
+ fixed: 0 1;
+ //min: 0 480;
+ align: 0.5 0.5;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 1.0 1.0;}
+ }
+ }
+ // _NATIVE_BUFFER_SYNC
+ part {
+ name: "pv.normal.videosink";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 1;
+ repeat_events: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ align: 0.5 0.5;
+ rel1 { relative: 0.0 0.0; to: "pv.normal.main.image.buffer.bg";}
+ rel2 { relative: 1.0 1.0; to: "pv.normal.main.image.buffer.bg";}
+ }
+ }
+
+ part {
+ name: "pv.normal.main.image.buffer";
+ type: SWALLOW;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ align: 0.5 0.5;
+ rel1 { relative: 0.0 0.0; to: "pv.normal.main.image.buffer.bg";}
+ rel2 { relative: 1.0 1.0; to: "pv.normal.main.image.buffer.bg";}
+ }
+ }
+ part {
+ name: "pv.normal.main.no.contents";
+ type: IMAGE;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 270 214;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ rel1 { relative: 0.5 0.0; to_y: "pv.normal.main.no.contents.bottom";}
+ rel2 { relative: 0.5 0.0; to_y: "pv.normal.main.no.contents.bottom";}
+ image { normal: "dmc/T02_player_all_share.png"; }
+ color: 255 255 255 255;
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+
+ part {
+ name: "pv.normal.main.no.contents.bottom";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ align: 0.5 0.5;
+ fixed: 1 1;
+ rel1 { relative: 0.0 0.5; }
+ rel2 { relative: 1.0 0.5; }
+ }
+ description {
+ state: "portrait.show" 0.0;
+ inherit: "default" 0.0;
+ min: 0 640;
+ align: 0.5 1.0;
+ fixed: 1 1;
+ rel1 { relative: 0.0 1.0; }
+ rel2 { relative: 1.0 1.0; }
+ }
+ description {
+ state: "landscape.show" 0.0;
+ inherit: "default" 0.0;
+ min: 0 360;
+ align: 0.5 1.0;
+ fixed: 1 1;
+ rel1 { relative: 0.0 1.0; }
+ rel2 { relative: 1.0 1.0; }
+ }
+ }
+
+ part {
+ name: "pv.normal.main.lockscreen.text.rect";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 16 56 ;
+ fixed: 1 1;
+ align: 0.0 0.0;
+ rel1 { relative: 1.0 0.0; to_x: "pv.normal.main.lockscreen";}
+ rel2 { relative: 0.0 0.0;}
+ color: 255 0 0 255;
+ }
+ }
+
+ part {
+ name: "pv.normal.main.lockscreen.text";
+ type: TEXT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 0 56;
+ fixed: 1 1;
+ align: 0.0 0.0;
+ rel1 { relative: 1.0 1.0; to_x: "pv.normal.main.lockscreen.text.rect"; to_y: "pv.normal.main.lockscreen.padding"; }
+ rel2 { relative: 1.0 0.0; }
+ color: 255 255 255 255;
+ text {
+ font: FONT_BOLD_TYPE;
+ size: 32;
+ text: "Press hold key to unlock";
+ align: 0.0 0.5;
+ }
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+
+ part {
+ name: "pv.normal.allshare.dmc";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 0 414;
+ fixed: 0 1;
+ align: 0.0 0.5;
+ rel1 { relative: 0.0 0.4; }
+ rel2 { relative: 1.0 0.4; }
+ color: 255 255 255 255;
+ }
+ }
+
+
+ part {
+ name: "pv.normal.top.control";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 0 0;
+ fixed: 0 1;
+ align: 0.5 0.0;
+ rel1 { relative: 0.0 0.0; }
+ rel2 { relative: 1.0 0.0; }
+ color: 0 0 0 0;
+ }
+ description {
+ state: "portrait.show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ min: 0 113;
+ }
+ description {
+ state: "landscape.show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ min: 0 113;
+ }
+ }
+
+ part {
+ name: "pv.allshare.voice.control";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 0 0;
+ fixed: 0 1;
+ align: 0.5 0.0;
+ rel1 {
+ relative: 0.0 0.0;
+ }
+ rel2 {
+ relative: 1.0 0.0;
+ }
+ }
+
+ description {
+ state: "show" 0.0;
+ visible: 1;
+ min: 0 63;
+ fixed: 0 1;
+ align: 0.5 0.0;
+ rel1 {
+ relative: 0.0 0.0;
+ }
+ rel2 {
+ relative: 1.0 0.0;
+ }
+ }
+ }
+
+ part {
+ name: "pv.normal.main.zoom.guide.top";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 0 1280-144-210; // total height - zoom guide height - top margin height(portrait)
+ fixed: 0 1;
+ align: 0.0 1.0;
+ rel1 { relative: 0.0 1.0; }
+ rel2 { relative: 1.0 1.0; }
+ color: 0 255 0 255;
+ }
+ description {
+ state: "portrait.show" 0.0;
+ inherit: "default" 0.0;
+ min: 0 1280-144-210; // total height - zoom guide height - top margin height(portrait)
+ fixed: 0 1;
+ align: 0.0 1.0;
+ rel1 { relative: 0.0 1.0; }
+ rel2 { relative: 1.0 1.0; }
+ }
+ description {
+ state: "landscape.show" 0.0;
+ inherit: "default" 0.0;
+ min: 0 720-144-104; // total height - zoom guide height - top margin height(landscape)
+ fixed: 0 1;
+ align: 0.0 1.0;
+ rel1 { relative: 0.0 1.0; }
+ rel2 { relative: 1.0 1.0; }
+ }
+ }
+
+ part {
+ name: "pv.normal.main.zoom.guide.left";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 16 0;
+ fixed: 1 0;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 0.0; }
+ rel2 { relative: 0.0 1.0; }
+ color: 0 0 255 255;
+ }
+ }
+
+ part {
+ name: "pv.normal.main.zoom.guide.rect";
+ type: SWALLOW;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 256 144;
+ fixed: 1 1;
+ align: 0.0 1.0;
+ rel1 { relative: 1.0 0.0; to_x: "pv.normal.main.zoom.guide.left"; to_y: "pv.normal.main.zoom.guide.top"; }
+ rel2 { relative: 1.0 0.0; to_x: "pv.normal.main.zoom.guide.left"; to_y: "pv.normal.main.zoom.guide.top"; }
+ }
+ }
+
+#ifndef SUBTITLE_K_FEATURE
+ part {
+ name: "pv.normal.main.subtitle.top";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 0 0;
+ fixed: 0 1;
+ align: 0.5 1.0;
+ rel1 { relative: 0.0 1.0; }
+ rel2 { relative: 1.0 1.0; }
+ }
+ description {
+ state: "portrait.show" 0.0;
+ inherit: "default" 0.0;
+ min: 0 290;
+ }
+ description {
+ state: "landscape.show" 0.0;
+ inherit: "default" 0.0;
+ min: 0 190;
+ }
+ }
+
+ part {
+ name: "pv.normal.main.subtitle.bottom";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 0.0; to_y : "pv.normal.main.subtitle.top"; }
+ rel2 { relative: 1.0 0.0; to_y : "pv.normal.main.subtitle.top"; }
+ color: 0 255 0 128;
+ }
+ description {
+ state: "bookmark.on" 0.0;
+ inherit: "default" 0.0;
+ align: 0.0 1.0;
+ fixed: 0 1;
+ min: 0 146;
+ }
+ }
+
+ part {
+ name: "pv.normal.main.subtitle";
+ type: SWALLOW;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 0.0; }
+ rel2 { relative: 1.0 0.0; to_y : "pv.normal.main.subtitle.bottom"; }
+ }
+ }
+#endif
+ part {
+ name: "pv.normal.main.control";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 0 0;
+ fixed: 0 1;
+ align: 0.5 1.0;
+ rel1 { relative: 0.0 1.0; }
+ rel2 { relative: 1.0 1.0; }
+ }
+ description {
+ state: "portrait.show" 0.0;
+ inherit: "default" 0.0;
+ min: 0 110;
+ }
+ description {
+ state: "landscape.show" 0.0;
+ inherit: "default" 0.0;
+ min: 0 100;
+ }
+ }
+
+ part {
+ name: "pv.normal.main.lockscreen";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: LOCK_SCREEN_ICON_SIZE LOCK_SCREEN_ICON_SIZE;
+ fixed: 1 1;
+ align: 1.0 0.0;
+ rel1 { relative: 0.0 1.0; to: "pv.normal.main.lockscreen.padding"; }
+ rel2 { relative: 0.0 1.0; to: "pv.normal.main.lockscreen.padding"; }
+ color: 255 0 0 255;
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+
+ part {
+ name: "pv.normal.main.rotate.icon";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 60 60;
+ fixed: 1 1;
+ align: 0.0 1.0;
+ visible: 0;
+ rel1 { relative: 0.0 -0.02; to_y : "pv.normal.main.control";}
+ rel2 { relative: 0.1 -0.02; to_y : "pv.normal.main.control";}
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+
+ part {
+ name: "pv.normal.main.volume.icon";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 60 60;
+ fixed: 1 1;
+ align: 0.0 1.0;
+ visible: 0;
+ rel1 { relative: 1.0 -0.02; to_y : "pv.normal.main.control"; offset: -134 0;}
+ rel2 { relative: 1.0 -0.02; to_y : "pv.normal.main.control"; offset: -194 0;}
+ }
+ description {
+ state: "portrait.show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ description {
+ state: "landscape.show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+
+ part {
+ name: "pv.normal.main.speed.rect";
+ type: RECT;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 0 80;
+ fixed: 1 1;
+ align: 0.0 1.0;
+ rel1 { relative: 0.0 0.0; to_y : "pv.normal.main.control"; }
+ rel2 { relative: 1.0 0.0; to_y : "pv.normal.main.control"; }
+ color: 0 0 0 102;
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+
+ part {
+ name: "pv.normal.main.speed.txt";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 0.0; to : "pv.normal.main.speed.rect";}
+ rel2 { relative: 1.0 1.0; to : "pv.normal.main.speed.rect";}
+ color: FONT_COLOR;
+ text {
+ font: FONT_BOLD_TYPE;
+ size: 48;
+ text: "";
+ align: 0.5 0.5;
+ }
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+
+ part {
+ name: "pv.normal.main.playingspeed.rect";
+ type: RECT;
+ mouse_events: 1;
+ repeat_events : 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 100 25;
+ fixed: 1 1;
+ align: 0.5 1.0;
+ rel1 { relative: 0.4 0.0; to_y : "pv.normal.main.control"; offset : 0 -20; }
+ rel2 { relative: 0.6 0.0; to_y : "pv.normal.main.control"; offset : 0 -20; }
+ color: 0 0 0 102;
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+
+ part {
+ name: "pv.normal.main.playingspeed.txt";
+ type: TEXT;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 0.0; to : "pv.normal.main.playingspeed.rect";}
+ rel2 { relative: 1.0 1.0; to : "pv.normal.main.playingspeed.rect";}
+ color: FONT_COLOR;
+ text {
+ font: FONT_BOLD_TYPE;
+ size: 24;
+ text: "";
+ align: 0.5 0.5;
+ }
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+
+ part {
+ name: "pv.normal.main.screenshot.portrait.bottom";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 0 200;
+ fixed: 0 1;
+ align: 0.0 1.0;
+ rel1 { relative: 0.0 1.0; }
+ rel2 { relative: 1.0 1.0; }
+ }
+ }
+
+ part {
+ name: "pv.normal.main.screenshot.landscape.bottom";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 0 100;
+ fixed: 0 1;
+ align: 0.0 1.0;
+ rel1 { relative: 0.0 1.0; }
+ rel2 { relative: 1.0 1.0; }
+ }
+ }
+
+ part {
+ name: "pv.normal.main.screenshot.portrait.line";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 0 0;
+ fixed: 1 1;
+ align: 0.5 1.0;
+ rel1 { relative: 0.5 0.0; to_y: "pv.normal.main.screenshot.portrait.bottom";}
+ rel2 { relative: 0.5 0.0; to_y: "pv.normal.main.screenshot.portrait.bottom";}
+ color: 255 255 255 255;
+
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ min: 324 244;
+ }
+ }
+
+ part {
+ name: "pv.normal.main.screenshot.portrait.rect";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 0 0;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ rel1 { relative: 0.5 0.5; to: "pv.normal.main.screenshot.portrait.line";}
+ rel2 { relative: 0.5 0.5; to: "pv.normal.main.screenshot.portrait.line";}
+ color: 0 0 0 255;
+
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ min: 320 240;
+ }
+ }
+
+ part {
+ name: "pv.normal.main.screenshot.landscape.line";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 0 0;
+ fixed: 1 1;
+ align: 0.5 1.0;
+ rel1 { relative: 0.7 0.0; to_y: "pv.normal.main.screenshot.landscape.bottom";}
+ rel2 { relative: 0.7 0.0; to_y: "pv.normal.main.screenshot.landscape.bottom";}
+ color: 255 255 255 255;
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ min: 324 244;
+ }
+ }
+
+ part {
+ name: "pv.normal.main.screenshot.landscape.rect";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 0 0;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ rel1 { relative: 0.5 0.5; to: "pv.normal.main.screenshot.landscape.line";}
+ rel2 { relative: 0.5 0.5; to: "pv.normal.main.screenshot.landscape.line";}
+ color: 0 0 0 255;
+ }
+
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ min: 320 240;
+ }
+ }
+
+ part {
+ name: "pv.normal.main.screenshot.portrait";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 320 240;
+ fixed: 1 1;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 0.0; to: "pv.normal.main.screenshot.portrait.rect";}
+ rel2 { relative: 1.0 1.0; to: "pv.normal.main.screenshot.portrait.rect";}
+
+ }
+ }
+
+ part {
+ name: "pv.normal.main.screenshot.landscape";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 320 240;
+ fixed: 1 1;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 0.0; to: "pv.normal.main.screenshot.landscape.rect";}
+ rel2 { relative: 1.0 1.0; to: "pv.normal.main.screenshot.landscape.rect";}
+ }
+ }
+
+ part {
+ name: "pv.normal.main.error.image";
+ type: SWALLOW;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 130 130;
+ max: 130 130;
+ visible: 1;
+ fixed: 1 1;
+ color: 255 255 255 255;
+ align: 0.5 0.5;
+ rel1 { relative: 0.0 0.0; to_y: "pv.normal.main.bg"; }
+ rel2 { relative: 1.0 0.0; to_y: "pv.normal.main.control"; }
+ }
+ }
+
+ part {
+ name: "pv.normal.main.loading.top";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 0 0;
+ fixed: 0 1;
+ align: 0.5 0.5;
+ rel1 { relative: 0.0 0.5; }
+ rel2 { relative: 1.0 0.5; }
+ }
+ description {
+ state: "portrait.show" 0.0;
+ inherit: "default" 0.0;
+ min: 0 400;
+ fixed: 0 1;
+ align: 0.5 1.0;
+ rel1 { relative: 0.0 1.0; }
+ rel2 { relative: 1.0 1.0; }
+
+ }
+ description {
+ state: "landscape.show" 0.0;
+ inherit: "default" 0.0;
+ min: 0 240;
+ fixed: 0 1;
+ align: 0.5 0.5;
+ rel1 { relative: 0.0 1.0; }
+ rel2 { relative: 1.0 1.0; }
+ }
+ }
+
+ part {
+ name: "pv.normal.main.loading.bottom";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 0.0; to_y : "pv.normal.main.loading.top"; }
+ rel2 { relative: 1.0 0.0; to_y : "pv.normal.main.loading.top"; }
+ color: 0 255 0 128;
+ }
+ }
+
+ part {
+ name: "pv.normal.main.loading";
+ type: SWALLOW;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ fixed: 1 1;
+ rel1 { relative: 0.0 0.0; to_y : "pv.normal.main.loading.bottom"; }
+ rel2 { relative: 1.0 0.0; to_y : "pv.normal.main.loading.bottom"; }
+ }
+ }
+
+ /*subtitle area*/
+ part {
+ name: "pv.normal.main.subtitle";
+ type: SWALLOW;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ align: 0.5 1.0;
+ fixed: 1 1;
+ rel1 { relative: 0.1 0.0; }
+ rel2 { relative: 0.9 0.0; to_y: "pv.normal.main.control";}
+ }
+ description {
+ state: "portrait.show" 0.0;
+ inherit: "default" 0.0;
+ rel1 { relative: 0.1 0.0; }
+ rel2 { relative: 0.9 0.0; to_y: "pv.normal.main.volume.icon";}
+ visible: 1;
+ }
+ description {
+ state: "landscape.show" 0.0;
+ inherit: "default" 0.0;
+ rel1 { relative: 0.1 0.0; }
+ rel2 { relative: 0.9 0.0; to_y: "pv.normal.main.volume.icon";}
+ visible: 1;
+ }
+ }
+ } /* parts */
+
+ programs {
+ program {
+ name: "video_off";
+ signal: "signal.pv.normal.main.video.off";
+ source: "*";
+ action: STATE_SET "show" 0.0;
+ target: "pv.normal.main.bg";
+ }
+ program {
+ name: "video_on";
+ signal: "signal.pv.normal.main.video.on";
+ source: "*";
+ action: STATE_SET "default" 0.0;
+ target: "pv.normal.main.bg";
+ }
+
+ program {
+ name: "control_portait_show";
+ signal: "signal.pv.normal.main.portrait.show";
+ source: "*";
+ action: STATE_SET "portrait.show" 0.0;
+ target: "pv.normal.main.control";
+ target: "pv.normal.top.control";
+#ifndef SUBTITLE_K_FEATURE
+ target: "pv.normal.main.subtitle.top";
+#endif
+ transition: LINEAR 0.2;
+ after: "control_show_finished";
+ }
+
+ program {
+ name: "control_landscape_show";
+ signal: "signal.pv.normal.main.landscape.show";
+ source: "*";
+ action: STATE_SET "landscape.show" 0.0;
+ target: "pv.normal.main.control";
+ target: "pv.normal.top.control";
+#ifdef SUBTITLE_K_FEATURE
+ target: "pv.normal.main.subtitle";
+#endif
+ transition: LINEAR 0.2;
+ after: "control_show_finished";
+ }
+
+ program {
+ name: "no_effect_portait_show";
+ signal: "signal.pv.normal.main.no.effect.portrait.show";
+ source: "*";
+ action: STATE_SET "portrait.show" 0.0;
+ target: "pv.normal.main.loading.top";
+ target: "pv.normal.main.zoom.guide.top";
+ target: "pv.normal.main.no.contents.bottom";
+ target: "pv.normal.main.image.buffer.bg";
+ }
+
+ program {
+ name: "no_effect_landscape_show";
+ signal: "signal.pv.normal.main.no.effect.landscape.show";
+ source: "*";
+ action: STATE_SET "landscape.show" 0.0;
+ target: "pv.normal.main.loading.top";
+ target: "pv.normal.main.zoom.guide.top";
+ target: "pv.normal.main.no.contents.bottom";
+ target: "pv.normal.main.image.buffer.bg";
+ }
+
+ program {
+ name: "no_effect_control_hide";
+ signal : "signal.pv.normal.main.no.effect.hide";
+ source: "*";
+ action: STATE_SET "default" 0.0;
+ target: "pv.normal.main.control";
+ target: "pv.normal.top.control";
+ target: "pv.normal.main.image.buffer";
+ transition: LINEAR 0.0;
+ after: "control_hide_finished";
+ }
+
+ program {
+ name: "control_hide";
+ signal: "signal.pv.normal.main.control.hide";
+ source: "*";
+ action: STATE_SET "default" 0.0;
+ target: "pv.normal.main.control";
+ target: "pv.normal.top.control";
+ transition: LINEAR 0.2;
+ after: "control_hide_finished";
+ }
+#ifdef SUBTITLE_K_FEATURE
+ program {
+ name: "subtitle_portrait_show";
+ signal: "signal.pv.normal.main.portrait.subtitle";
+ source: "*";
+ action: STATE_SET "portrait.show" 0.0;
+ target: "pv.normal.main.subtitle";
+ }
+ program {
+ name: "subtitle_landscape_show";
+ signal: "signal.pv.subtitle.main.landscape.show";
+ source: "*";
+ action: STATE_SET "landscape.show" 0.0;
+ target: "pv.normal.main.subtitle";
+ }
+ program {
+ name: "subtitle_normal_hide";
+ signal: "signal.pv.normal.main.subtitle.hide";
+ source: "*";
+ action: STATE_SET "default" 0.0;
+ target: "pv.normal.main.subtitle";
+ }
+#endif
+ program {
+ name: "voice_control_show";
+ signal: "signal.pv.allshare.voice.control.show";
+ source: "pv.allshare.voice.control";
+ action: STATE_SET "show" 0.0;
+ target: "pv.allshare.voice.control";
+ transition: LINEAR 0.6;
+ }
+
+ program {
+ name: "voice_control_hide";
+ signal: "signal.pv.allshare.voice.control.hide";
+ source: "pv.allshare.voice.control";
+ action: STATE_SET "default" 0.0;
+ target: "pv.allshare.voice.control";
+ transition: LINEAR 0.6;
+ }
+
+ program {
+ name: "no_effect_voice_control_hide";
+ signal: "signal.pv.allshare.noeffect.voice.control.hide";
+ source: "pv.allshare.voice.control";
+ action: STATE_SET "default" 0.0;
+ target: "pv.allshare.voice.control";
+ transition: LINEAR 0.0;
+ }
+ program {
+ name: "rotate_icon_show";
+ signal: "signal.pv.normal.main.rotate.icon.show";
+ source: "*";
+ action: STATE_SET "show" 0.0;
+ target: "pv.normal.main.rotate.icon";
+ }
+ program {
+ name: "volume_icon_show";
+ signal: "signal.pv.normal.main.volume.icon.portrait.show";
+ source: "*";
+ action: STATE_SET "portrait.show" 0.0;
+ target: "pv.normal.main.volume.icon";
+ //target: "pv.normal.main.subtitle";
+ }
+ program {
+ name: "volume_icon_show_landscape";
+ signal: "signal.pv.normal.main.volume.icon.landscape.show";
+ source: "*";
+ action: STATE_SET "landscape.show" 0.0;
+ target: "pv.normal.main.volume.icon";
+ //target: "pv.normal.main.subtitle";
+ }
+ program {
+ name: "rotate_icon_hide";
+ signal: "signal.pv.normal.main.rotate.icon.hide";
+ source: "*";
+ action: STATE_SET "default" 0.0;
+ target: "pv.normal.main.rotate.icon";
+ }
+ program {
+ name: "volume_icon_hide";
+ signal: "signal.pv.normal.main.volume.icon.hide";
+ source: "*";
+ action: STATE_SET "default" 0.0;
+ target: "pv.normal.main.volume.icon";
+ //target: "pv.normal.main.subtitle";
+ }
+ program{
+ name: "touch_snd";
+ signal: "mouse,clicked,1";
+ source: "pv.normal.main.rotate.icon";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ program{
+ name: "touch_snd1";
+ signal: "mouse,clicked,1";
+ source: "pv.normal.main.volume.icon";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ program{
+ name: "touch_snd2";
+ signal: "mouse,clicked,1";
+ source: "pv.normal.main.lockscreen";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ program {
+ name: "speed_on";
+ signal: "signal.pv.normal.main.speed.show";
+ source: "*";
+ action: STATE_SET "show" 0.0;
+ target: "pv.normal.main.speed.rect";
+ target: "pv.normal.main.speed.txt";
+ }
+
+ program {
+ name: "speed_off";
+ signal: "signal.pv.normal.main.speed.hide";
+ source: "*";
+ action: STATE_SET "default" 0.0;
+ target: "pv.normal.main.speed.rect";
+ target: "pv.normal.main.speed.txt";
+ }
+
+ program {
+ name: "speed_changed";
+ signal: "signal.pv.normal.main.playingspeed.show";
+ source: "*";
+ action: STATE_SET "show" 0.0;
+ target: "pv.normal.main.playingspeed.rect";
+ target: "pv.normal.main.playingspeed.txt";
+ }
+
+ program {
+ name: "speed_normal";
+ signal: "signal.pv.normal.main.playingspeed.hide";
+ source: "*";
+ action: STATE_SET "default" 0.0;
+ target: "pv.normal.main.playingspeed.rect";
+ target: "pv.normal.main.playingspeed.txt";
+ }
+ program {
+ name: "clicked_event";
+ signal: "mouse,clicked,1";
+ source: "pv.normal.main.playingspeed.rect";
+ source: "pv.normal.main.playingspeed.txt";
+ action: SIGNAL_EMIT "elm,action,click" "";
+ }
+
+ program {
+ name: "screen_portrait_on";
+ signal: "signal.pv.normal.main.screenshot.portrait.show";
+ source: "*";
+ action: STATE_SET "show" 0.0;
+ target: "pv.normal.main.screenshot.portrait.line";
+ target: "pv.normal.main.screenshot.portrait.rect";
+ }
+
+ program {
+ name: "screen_landscape_on";
+ signal: "signal.pv.normal.main.screenshot.landscape.show";
+ source: "*";
+ action: STATE_SET "show" 0.0;
+ target: "pv.normal.main.screenshot.landscape.line";
+ target: "pv.normal.main.screenshot.landscape.rect";
+ }
+
+ program {
+ name: "screen_mode_off";
+ signal: "signal.pv.normal.main.screenshot.hide";
+ source: "*";
+ action: STATE_SET "default" 0.0;
+ target: "pv.normal.main.screenshot.landscape.line";
+ target: "pv.normal.main.screenshot.landscape.rect";
+ target: "pv.normal.main.screenshot.portrait.line";
+ target: "pv.normal.main.screenshot.portrait.rect";
+ }
+#ifndef SUBTITLE_K_FEATURE
+ program {
+ name: "bookmark_on";
+ signal: "signal.pv.normal.main.bookmark.on";
+ source: "*";
+ action: STATE_SET "bookmark.on" 0.0;
+ target: "pv.normal.main.subtitle.bottom";
+ }
+
+ program {
+ name: "bookmark_off";
+ signal: "signal.pv.normal.main.bookmark.off";
+ source: "*";
+ action: STATE_SET "default" 0.0;
+ target: "pv.normal.main.subtitle.bottom";
+ }
+#endif
+ program {
+ name: "control_show_finished";
+ action: SIGNAL_EMIT "signal.pv.normal.main.control.show.finish" "*";
+ }
+
+ program {
+ name: "control_hide_finished";
+ action: SIGNAL_EMIT "signal.pv.normal.main.control.hide.finish" "*";
+ }
+
+ program {
+ signal: "signal.pv.normal.lockscreen.show";
+ source: "*";
+ script {
+ set_state(PART:"pv.normal.main.lockscreen", "show", 0.0);
+ set_state(PART:"pv.normal.main.lockscreen.text", "show", 0.0);
+
+ }
+ }
+ program {
+ signal: "signal.pv.normal.lockscreen.hide";
+ source: "*";
+ script {
+ set_state(PART:"pv.normal.main.lockscreen", "default", 0.0);
+ set_state(PART:"pv.normal.main.lockscreen.text", "default", 0.0);
+ }
+ }
+
+ program {
+ signal: "signal.pv.normal.no.contents.show";
+ source: "*";
+ script {
+ set_state(PART:"pv.normal.main.no.contents", "show", 0.0);
+ set_state(PART:"pv.normal.main.no.contents.rect", "show", 0.0);
+ }
+ }
+ program {
+ signal: "signal.pv.normal.no.contents.hide";
+ source: "*";
+ script {
+ set_state(PART:"pv.normal.main.no.contents", "default", 0.0);
+ set_state(PART:"pv.normal.main.no.contents.rect", "default", 0.0);
+ }
+ }
+ } /* programs */
+
+ } /* group */
+
+ group {
+ name: "pv.normal.main.microseek.text";
+ images {
+ image: MICRO_CONTROL_IMG_BG COMP;
+ }
+ parts {
+ part {
+ name: "pv.normal.main.microseek.text.bg";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 1 46;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 1.0 1.0;}
+ color: 255 0 0 0;
+ }
+ }
+
+ part {
+ name: "pv.normal.main.microseek.speed.text.bg";
+ type: IMAGE;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ align: 0.5 0.5;
+ rel1 { relative: 0.0 0.0; to_x: "pv.normal.main.microseek.text.bg"; to_y: "pv.normal.main.microseek.speed.text.left.padding";}
+ rel2 { relative: 1.0 1.0; to_x: "pv.normal.main.microseek.text.bg"; to_y: "pv.normal.main.microseek.speed.text.left.padding";}
+ image { normal: MICRO_CONTROL_IMG_BG; border: 9 9 0 0; }
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+
+ part {
+ name: "pv.normal.main.microseek.speed.text.left.padding";
+ type: SPACER;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 16 46;
+ align: 0.0 0.0;
+ fixed: 1 1;
+ rel1 { relative: 0.0 0.0; to : "pv.normal.main.microseek.text.bg";}
+ rel2 { relative: 0.0 46/(46+6+70); to : "pv.normal.main.microseek.text.bg";}
+ }
+ }
+
+ part {
+ name: "pv.normal.main.microseek.speed.text";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ rel1 { relative: 1.0 0.0; to : "pv.normal.main.microseek.speed.text.left.padding";}
+ rel2 { relative: 0.0 1.0; to : "pv.normal.main.microseek.speed.text.right.padding";}
+ color: 255 255 255 255;
+ text {
+ min: 1 0;
+ size: 32;
+ text: "";
+ }
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+
+
+ part {
+ name: "pv.normal.main.microseek.speed.text.right.padding";
+ type: SPACER;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 16 46;
+ align: 1.0 0.0;
+ fixed: 1 1;
+ rel1 { relative: 1.0 0.0; to : "pv.normal.main.microseek.text.bg";}
+ rel2 { relative: 1.0 46/(46+6+70); to : "pv.normal.main.microseek.text.bg";}
+ }
+ }
+ } /* parts */
+ programs {
+ program {
+ name: "microseek_text_show";
+ signal: "signal.pv.normal.main.microseek.text.show";
+ source: "*";
+ action: STATE_SET "show" 0.0;
+ target: "pv.normal.main.microseek.speed.text";
+ target: "pv.normal.main.microseek.speed.text.bg";
+ }
+ program {
+ name: "microseek_text_hide";
+ signal: "signal.pv.normal.main.microseek.text.hide";
+ source: "*";
+ action: STATE_SET "default" 0.0;
+ target: "pv.normal.main.microseek.speed.text";
+ target: "pv.normal.main.microseek.speed.text.bg";
+ }
+ } /* programs */
+ } /* group */
+
+ group {
+ name: "pv.normal.main.microseek.image";
+ images {
+ image: MICRO_CONTROL_IMG_UP_1 COMP;
+ image: MICRO_CONTROL_IMG_UP_2 COMP;
+ image: MICRO_CONTROL_IMG_UP_3 COMP;
+ }
+ parts {
+ part {
+ name: "pv.normal.main.microseek.image.bg";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 46 70;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 1.0 1.0;}
+ color: 255 0 0 0;
+ }
+ }
+
+ part {
+ name: "pv.normal.main.microseek.image.1";
+ type: IMAGE;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 46 24;
+ max: 46 24;
+ fixed: 1 1;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 0.0; to : "pv.normal.main.microseek.image.bg";}
+ rel2 { relative: 1.0 0.0; to : "pv.normal.main.microseek.image.bg";}
+ image.normal: MICRO_CONTROL_IMG_UP_1;
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+
+ part {
+ name: "pv.normal.main.microseek.image.2";
+ type: IMAGE;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 46 24;
+ max: 46 24;
+ fixed: 1 1;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 1.0; to_x : "pv.normal.main.microseek.image.bg"; to_y : "pv.normal.main.microseek.image.1"; offset: 0 -1;}
+ rel2 { relative: 1.0 1.0; to_x : "pv.normal.main.microseek.image.bg"; to_y : "pv.normal.main.microseek.image.1"; offset: 0 -1;}
+ image.normal: MICRO_CONTROL_IMG_UP_2;
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+
+ part {
+ name: "pv.normal.main.microseek.image.3";
+ type: IMAGE;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 46 24;
+ max: 46 24;
+ fixed: 1 1;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 1.0; to_x : "pv.normal.main.microseek.image.bg"; to_y : "pv.normal.main.microseek.image.2"; offset: 0 -1;}
+ rel2 { relative: 1.0 1.0; to_x : "pv.normal.main.microseek.image.bg"; to_y : "pv.normal.main.microseek.image.2"; offset: 0 -1;}
+ image.normal: MICRO_CONTROL_IMG_UP_3;
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ } /* parts */
+ programs {
+ program {
+ name: "microseek_image_show";
+ signal: "signal.pv.normal.main.microseek.image.show";
+ source: "*";
+ action: STATE_SET "show" 0.0;
+ target: "pv.normal.main.microseek.image.1";
+ target: "pv.normal.main.microseek.image.2";
+ target: "pv.normal.main.microseek.image.3";
+ }
+ program {
+ name: "microseek_image_hide";
+ signal: "signal.pv.normal.main.microseek.image.hide";
+ source: "*";
+ action: STATE_SET "default" 0.0;
+ target: "pv.normal.main.microseek.image.1";
+ target: "pv.normal.main.microseek.image.2";
+ target: "pv.normal.main.microseek.image.3";
+ }
+ } /* programs */
+ } /* group */
+
+#ifdef FLICK_JUMP
+ group {
+ name: "pv.normal.main.flickjump.seek";
+ images {
+ image: JUMP_IMG_L_1 COMP;
+ image: JUMP_IMG_L_2 COMP;
+ image: JUMP_IMG_L_3 COMP;
+ image: JUMP_IMG_R_1 COMP;
+ image: JUMP_IMG_R_2 COMP;
+ image: JUMP_IMG_R_3 COMP;
+ }
+ parts {
+ part {
+ name: "pv.normal.main.flickjump.seek.bg";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 80 60;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 1.0 1.0;}
+ color: 255 0 0 0;
+ }
+ }
+
+ part {
+ name: "pv.normal.main.flickjump.seek.img";
+ type: IMAGE;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ fixed: 1 1;
+ rel1 { relative: 0.0 0.0; to : "pv.normal.main.flickjump.seek.bg"; }
+ rel2 { relative: 1.0 1.0; to : "pv.normal.main.flickjump.seek.bg"; }
+ image.normal: JUMP_IMG_L_3;
+ }
+ description {
+ state: "ff_default" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ image.normal: JUMP_IMG_L_3;
+ }
+ description {
+ state: "rew_default" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ image.normal: JUMP_IMG_R_3;
+ }
+ description {
+ state: "ff.jump3" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ image.normal: JUMP_IMG_L_3;
+ }
+ description {
+ state: "ff.jump2" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ image.normal: JUMP_IMG_L_2;
+ }
+ description {
+ state: "ff.jump1" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ image.normal: JUMP_IMG_L_1;
+ }
+ description {
+ state: "rew.jump3" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ image.normal: JUMP_IMG_R_3;
+ }
+ description {
+ state: "rew.jump3" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ image.normal: JUMP_IMG_R_3;
+ }
+ description {
+ state: "rew.jump2" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ image.normal: JUMP_IMG_R_2;
+ }
+ description {
+ state: "rew.jump1" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ image.normal: JUMP_IMG_R_1;
+ }
+ }
+ part {
+ name: "pv.normal.main.flickjump.seek.rewtext";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 88 34;
+ fixed: 1 1;
+ align: 1.0 0.5;
+ rel1 { relative: 0.0 ((60-34)/2)/60; to_x : "pv.normal.main.flickjump.seek.img"; to_y : "pv.normal.main.flickjump.seek.bg";}
+ rel2 { relative: 0.0 (60-((60-34)/2))/60; to_x : "pv.normal.main.flickjump.seek.img"; to_y : "pv.normal.main.flickjump.seek.bg";}
+ color: 255 255 255 255;
+ text {
+ min: 1 0;
+ size: 32;
+ text: "";
+ }
+ }
+ description {
+ state: "rew_default" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ part {
+ name: "pv.normal.main.flickjump.seek.fftext";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 88 34;
+ fixed: 1 1;
+ align: 0.0 0.5;
+ rel1 { relative: 1.0 ((60-34)/2)/60; to_x : "pv.normal.main.flickjump.seek.img"; to_y : "pv.normal.main.flickjump.seek.bg";}
+ rel2 { relative: 1.0 (60-((60-34)/2))/60; to_x : "pv.normal.main.flickjump.seek.img"; to_y : "pv.normal.main.flickjump.seek.bg";}
+ color: 255 255 255 255;
+ text {
+ min: 1 0;
+ size: 32;
+ text: "5 sec";
+ }
+ }
+ description {
+ state: "ff_default" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ } /* parts */
+ programs {
+ program {
+ name: "jump.ff.step3";
+ signal: "signal.jump.ff.step3";
+ source: "*";
+ action: STATE_SET "ff.jump3" 0.0;
+ target: "pv.normal.main.flickjump.seek.img";
+ transition: LINEAR 0.2;
+ after: "jump.ff.step2";
+ }
+ program {
+ name: "jump.ff.step2";
+ signal: "signal.jump.ff.step2";
+ source: "*";
+ action: STATE_SET "ff.jump2" 0.0;
+ target: "pv.normal.main.flickjump.seek.img";
+ transition: LINEAR 0.2;
+ after: "jump.ff.step1";
+ }
+ program {
+ name: "jump.ff.step1";
+ signal: "signal.jump.ff.step1";
+ source: "*";
+ action: STATE_SET "ff.jump1" 0.0;
+ target: "pv.normal.main.flickjump.seek.img";
+ transition: LINEAR 0.2;
+ after: "jump.ff.end";
+ }
+ program {
+ name: "jump.ff.end";
+ signal: "signal.jump.ff.end";
+ source: "*";
+ action: STATE_SET "ff_default" 0.0;
+ target: "pv.normal.main.flickjump.seek.img";
+ script{
+ emit("ff_animation_done", "edje");
+ }
+ }
+ program {
+ name: "pv.normal.main.flickjump.ff";
+ signal: "signal.pv.normal.main.flickjump.ff";
+ source: "*";
+ action: STATE_SET "ff_default" 0.0;
+ target: "pv.normal.main.flickjump.seek.img";
+ target: "pv.normal.main.flickjump.seek.fftext";
+ after: "jump.ff.step3";
+ }
+
+ program {
+ name: "jump.rew.step3";
+ signal: "signal.jump.rew.step3";
+ source: "*";
+ action: STATE_SET "rew.jump3" 0.0;
+ target: "pv.normal.main.flickjump.seek.img";
+ transition: LINEAR 0.2;
+ after: "jump.rew.step2";
+ }
+ program {
+ name: "jump.rew.step2";
+ signal: "signal.jump.rew.step2";
+ source: "*";
+ action: STATE_SET "rew.jump2" 0.0;
+ target: "pv.normal.main.flickjump.seek.img";
+ transition: LINEAR 0.2;
+ after: "jump.rew.step1";
+ }
+ program {
+ name: "jump.rew.step1";
+ signal: "signal.jump.rew.step1";
+ source: "*";
+ action: STATE_SET "rew.jump1" 0.0;
+ target: "pv.normal.main.flickjump.seek.img";
+ transition: LINEAR 0.2;
+ after: "jump.rew.end";
+ }
+ program {
+ name: "jump.rew.end";
+ signal: "signal.jump.rew.end";
+ source: "*";
+ action: STATE_SET "rew_default" 0.0;
+ target: "pv.normal.main.flickjump.seek.img";
+ script{
+ emit("rew_animation_done", "edje");
+ }
+ }
+ program {
+ name: "pv.normal.main.flickjump.rew";
+ signal: "signal.pv.normal.main.flickjump.rew";
+ source: "*";
+ action: STATE_SET "rew_default" 0.0;
+ target: "pv.normal.main.flickjump.seek.img";
+ target: "pv.normal.main.flickjump.seek.rewtext";
+ after: "jump.rew.step3";
+ }
+ } /* programs */
+ } /* group */
+#endif
+
+} /* collections */
+
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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 */
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "pv-image.edc"
+
+#define PV_POPUP_PROGRESSVIEW_CONTENT_MIN 0 93
+#define PV_POPUP_PROGRESSVIEW_WIDTH_HEIGHT_MIN 0 163
+#define PV_POPUP_PROGRESSVIEW_TEXT_LEFT_RIGHT_MAX 120 60
+
+#define PV_POPUP_ENTRY_CONTENT_MIN 0 100
+
+#define PV_POPUP_CAPTION_WIDTH_HEIGHT_MIN 614 135
+#define PV_POPUP_CAPTION_WIN_WIDTH_HEIGHT_MIN 514 95
+#define PV_POPUP_BG_WIDTH_HEIGHT_MIN 270 60
+#define PV_POPUP_LANDSCAPE_BG_WIDTH_HEIGHT_MIN 760 60
+#define PV_POPUP_LINE_WIDTH_HEIGHT_MIN 0 1
+#define PV_POPUP_TITLE_WIDTH_HEIGHT_MIN 0 72
+#define PV_GENLIST_LIST_LINE1_POPUP_COLOR 211 209 203 255
+
+#define POPUP_BASE_DEFAULT_TEXT_FONT_SIZE_INC 20
+collections {
+ group {
+ name: "pv.popup.progress";
+ parts {
+ part {
+ name:"bg";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: PV_POPUP_PROGRESSVIEW_WIDTH_HEIGHT_MIN;
+ color: 0 0 0 0;
+ }
+ }
+
+ part {
+ name: "pad_l";
+ type: SPACER;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 20 0;
+ max: 20 0;
+ fixed: 1 0;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 0.0; to: "bg";}
+ rel2 { relative: 0.0 1.0; to: "bg";}
+ }
+ }
+
+ part {
+ name: "pad_r";
+ type: SPACER;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 20 0;
+ max: 20 0;
+ fixed: 1 0;
+ align: 1.0 1.0;
+ rel1 { relative: 1.0 0.0; to: "bg";}
+ rel2 { relative: 1.0 1.0; to: "bg";}
+ }
+ }
+
+ part {
+ name: "elm.swallow.content";
+ type: SWALLOW;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: PV_POPUP_PROGRESSVIEW_CONTENT_MIN;
+ fixed: 0 1;
+ align: 0.5 0.0;
+ rel1 { relative: 1.0 0.0; to_x: "pad_l"; to_y: "bg"; }
+ rel2 { relative: 0.0 0.0; to_x: "pad_r"; to_y: "bg"; }
+ }
+ }
+
+ part {
+ name: "elm.text.right";
+ type: TEXT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: PV_POPUP_PROGRESSVIEW_TEXT_LEFT_RIGHT_MAX;
+ fixed: 1 1;
+ color: 0 0 0 255;
+ align: 1.0 0.0;
+ rel1 { relative: 0.0 1.0; to_x: "pad_r"; to_y: "elm.swallow.content"; }
+ rel2 { relative: 0.0 1.0; to_x: "pad_r"; to_y: "elm.swallow.content"; }
+ text {
+ font: "Tizen:style=Medium";
+ size: 36;
+ min: 0 0;
+ align: 1.0 0.0;
+ }
+
+ }
+ }
+
+ }
+ } /* group */
+
+ group {
+ name: "pv.popup.entry";
+ parts {
+ part {
+ name:"bg";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: PV_POPUP_PROGRESSVIEW_WIDTH_HEIGHT_MIN;
+ color: 0 0 0 0;
+ }
+ }
+
+ part {
+ name: "pad_l";
+ type: SPACER;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 26 0;
+ max: 32 0;
+ fixed: 1 0;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 0.0; to: "bg";}
+ rel2 { relative: 0.0 1.0; to: "bg";}
+ }
+ }
+
+ part {
+ name: "pad_r";
+ type: SPACER;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 26 0;
+ max: 26 0;
+ fixed: 1 0;
+ align: 1.0 1.0;
+ rel1 { relative: 1.0 0.0; to: "bg";}
+ rel2 { relative: 1.0 1.0; to: "bg";}
+ }
+ }
+ part {
+ name: "elm.swallow.content";
+ type: SWALLOW;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: PV_POPUP_PROGRESSVIEW_CONTENT_MIN;
+ fixed: 0 1;
+ align: 0.0 0.5;
+ rel1 { relative: 1.0 0.5; to_x: "pad_l"; to_y: "bg"; }
+ rel2 { relative: 0.0 0.5; to_x: "pad_r"; to_y: "bg"; }
+ }
+ }
+
+ }
+ } /* group */
+
+ group {
+ name: "pv.popup.caption";
+ parts {
+ part {
+ name:"bg";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: PV_POPUP_BG_WIDTH_HEIGHT_MIN;
+ color: 0 0 0 0;
+ }
+ description {
+ state: "landscape" 0.0;
+ min: PV_POPUP_LANDSCAPE_BG_WIDTH_HEIGHT_MIN;
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "elm.caption.preview.bg";
+ type: IMAGE;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ align: 0.0 0.5;
+ //rel1 { relative: 1.0 0.0; to_x: "pad_l"; to_y: "bg"; }
+ //rel2 { relative: 0.0 1.0; to_x: "pad_r"; to_y: "bg"; }
+ rel1 { relative: 0.0 0.0; to: "bg";}
+ rel2 { relative: 0.85 1.0; to: "bg";}
+ image { normal: "genlist/preview_settings_bg.png";}
+ }
+ description {
+ state: "landscape" 0.0;
+ inherit: "default" 0.0;
+ }
+ }
+ part {
+ name: "elm.swallow.content";
+ type: SWALLOW;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ align: 0.5 0.5;
+ //rel1 { relative: 1.0 0.0; to_x: "pad_l"; to_y: "bg"; }
+ //rel2 { relative: 0.0 1.0; to_x: "pad_r"; to_y: "bg"; }
+ rel1 { relative: 0.0 0.0; to: "elm.caption.preview.bg";}
+ rel2 { relative: 1.0 1.0; to: "elm.caption.preview.bg";}
+ }
+ description {
+ state: "landscape" 0.0;
+ inherit: "default" 0.0;
+ }
+ }
+ } /* parts*/
+ }
+ group
+ {
+ name: "navi_texts";
+ styles {
+ style { name: "navi_title_style";
+ base: "font=Tizen:style=Regular font_size=15 align=center color=#FFFFFF wrap=mixed ellipsis=1.0";
+ tag: "br" "\n";
+ tag: "tab" "\t";
+ }
+ }
+ parts{
+ part{
+ name: "navi_bg";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ color: 115 167 191 255;
+ rel1 {
+ relative: 0.0 0.0;
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ }
+ }
+ }
+ part { name: "navi_text";
+ type: TEXTBLOCK;
+ mouse_events: 1;
+ scale:1;
+ description { state: "default" 0.0;
+ text {
+ style: "navi_title_style";
+ align: 0.5 0.5;
+ }
+ rel1 {
+ relative: 0.0 0.0;
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ }
+ align: 0.5 0.5;
+ }
+ }
+ } /* parts */
+ programs
+ {
+ program
+ {
+ name: "state_changer";
+ signal: "mouse,down,1";
+ source: "navi_text";
+ action: SIGNAL_EMIT "elm,action,click1" "navi_text";
+ }
+ } /* programs */
+ }
+ group {
+ name: "pv.popup.title";
+ styles {
+ style { name: "popup_title_style";
+ base: "font=Tizen:style=Regular align=center font_size="POPUP_BASE_DEFAULT_TEXT_FONT_SIZE_INC" color=#FFFFFF wrap=mixed ellipsis=1.0";
+ tag: "br" "\n";
+ tag: "tab" "\t";
+ }
+ }
+
+ parts {
+ part {
+ name:"elm.bg.title";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 50;
+ max:440 50;
+ color: 61 185 204 255;
+ }
+ }
+ part {
+ name: "pad_l";
+ type: SPACER;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 8 0;
+ max: 8 0;
+ fixed: 1 0;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 0.0; to: "elm.bg.title";}
+ rel2 { relative: 0.0 1.0; to: "elm.bg.title";}
+ }
+ }
+
+ part {
+ name: "pad_r";
+ type: SPACER;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 8 0;
+ max: 8 0;
+ fixed: 1 0;
+ align: 1.0 1.0;
+ rel1 { relative: 1.0 0.0; to: "elm.bg.title";}
+ rel2 { relative: 1.0 1.0; to: "elm.bg.title";}
+ }
+ }
+
+ part { name: "elm.swallow.title.left.icon";
+ type: SWALLOW;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 0; to: "elm.bg.title";}
+ rel2 { relative: 0.25 1; to: "elm.bg.title";}
+ min: 30 0;
+ fixed: 1 0;
+ align: 0.5 0.5;
+ }
+ }
+
+ part { name: "elm.swallow.title.right.icon";
+ type: SWALLOW;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0.75 0; to: "elm.bg.title";}
+ rel2 { relative: 1 1; to: "elm.bg.title";}
+ min: 30 0;
+ fixed: 1 0;
+ align: 1.0 0.5;
+ }
+ }
+
+ part { name: "elm.text.title";
+ type: TEXTBLOCK;
+ scale:1;
+ description { state: "default" 0.0;
+ fixed: 1 1;
+ text {
+ style: "popup_title_style";
+ size: POPUP_BASE_DEFAULT_TEXT_FONT_SIZE_INC;
+ align: 0.5 0.5;
+ }
+ rel1 {
+ relative: 1.0 0.0;
+ to_x: "elm.swallow.title.left.icon";
+ to_y: "elm.bg.title";
+ }
+ rel2 {
+ relative: 0.0 1.0;
+ to_x: "elm.swallow.title.right.icon";
+ to_y: "elm.bg.title";
+ }
+ align: 0.5 0.5;
+ }
+ }
+ } /* parts*/
+ }
+} /* collections */
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES 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 */
+
+
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES 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);
+}
+
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES 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 */
+
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "pv-image.edc"
+
+
+
+#define SPEED_POPUP_WIDTH_HEIGHT_MIN 0 100
+#define SPEED_POPUP_CONTENT_MIN 0 50
+#define SPEED_POPUP_BUTTON_MIN 40 40
+externals {
+ external: "elm";
+ external: "feedback";
+ }
+collections {
+ plugins {
+ plugin {
+ name: "touch_sound_plugin";
+ source: "feedback";
+ param: "FEEDBACK_TYPE_SOUND FEEDBACK_PATTERN_TAP";
+ }
+ }
+ group {
+ name: "pv.play.speed.popup";
+ parts {
+ part {
+ name:"bg";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: SPEED_POPUP_WIDTH_HEIGHT_MIN;
+ color: 0 0 0 0;
+ }
+ }
+
+ part {
+ name: "pad_l";
+ type: SPACER;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 10 0;
+ max: 10 0;
+ fixed: 1 0;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 0.0; to: "bg";}
+ rel2 { relative: 0.0 1.0; to: "bg";}
+ }
+ }
+
+ part {
+ name: "pad_r";
+ type: SPACER;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 10 0;
+ max: 10 0;
+ fixed: 1 0;
+ align: 1.0 1.0;
+ rel1 { relative: 1.0 0.0; to: "bg";}
+ rel2 { relative: 1.0 1.0; to: "bg";}
+ }
+ }
+
+ part {
+ name: "pad_t";
+ type: SPACER;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 10;
+ fixed: 0 1;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 0.0; to: "bg";}
+ rel2 { relative: 0.0 0.0; to: "bg";}
+ }
+ }
+
+ part {
+ name: "elm.text.title";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 0 54;
+ fixed: 0 1;
+ align: 0.5 0.0;
+ rel1 { relative: 0.0 1.0; to_y: "pad_t";}
+ rel2 { relative: 1.0 1.0; to_y: "pad_t";}
+ color: 0 0 0 255;
+ text {
+ font: "Tizen:style=Bold";
+ size: 25;
+ align: 0.5 0.5;
+ }
+ }
+ }
+
+ part {
+ name: "elm.swallow.icon.1";
+ type: SWALLOW;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: SPEED_POPUP_BUTTON_MIN;
+ fixed: 1 1;
+ align: 0.0 0.0;
+ rel1 { relative: 1.0 0.2; to_x: "pad_l"; to_y: "elm.text.title"; }
+ rel2 { relative: 1.0 0.2; to_x: "pad_l"; to_y: "elm.text.title"; }
+ }
+ }
+
+ part {
+ name: "elm.swallow.icon.left";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 6 0;
+ max: 6 0;
+ fixed: 1 0;
+ align: 0.0 0.5;
+ rel1 { relative: 1.0 1.0; to_x: "elm.swallow.icon.1"; to_y: "elm.text.title"; }
+ rel2 { relative: 1.0 1.0; to_x: "elm.swallow.icon.1"; to_y: "elm.text.title"; }
+ }
+ }
+ part {
+ name: "elm.swallow.icon.right";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 6 0;
+ max: 6 0;
+ fixed: 1 0;
+ align: 1.0 0.5;
+ rel1 { relative: 0.0 1.0; to_x: "elm.swallow.icon.2"; to_y: "elm.text.title"; }
+ rel2 { relative: 0.0 1.0; to_x: "elm.swallow.icon.2"; to_y: "elm.text.title"; }
+ }
+ }
+
+ part {
+ name: "elm.swallow.icon.2";
+ type: SWALLOW;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: SPEED_POPUP_BUTTON_MIN;
+ fixed: 1 1;
+ align: 1.0 0.0;
+ rel1 { relative: 0.0 0.2; to_x: "pad_r"; to_y: "elm.text.title"; }
+ rel2 { relative: 0.0 0.2; to_x: "pad_r"; to_y: "elm.text.title"; }
+ }
+ }
+
+ part {
+ name: "elm.swallow.content";
+ type: SWALLOW;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: SPEED_POPUP_CONTENT_MIN;
+ fixed: 0 1;
+ align: 0.5 0.0;
+ rel1 { relative: 1.0 1.0; to_x: "pad_l"; to_y: "elm.swallow.icon.1"; }
+ rel2 { relative: 0.0 1.0; to_x: "pad_r"; to_y: "elm.swallow.icon.1"; }
+ }
+ }
+ } /* parts */
+ programs {
+ program{
+ name: "touch_snd";
+ source: "elm.swallow.icon.1";
+ signal: "mouse,clicked,1";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ program{
+ name: "touch_snd2";
+ source: "elm.swallow.icon.2";
+ signal: "mouse,clicked,1";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ } /* programs*/
+ } /* group */
+} /* collections */
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+//#include "pv-image.edc"
+#define SUBTITLE_TEXT_OFFSET 20
+collections {
+ group {
+ name: "pv.subtitle-color-popup";
+ styles {
+ style { name: "caption_style";
+ base: "font=Tizen:style=Regular align=center font_size=16 color=#FFFFFF";
+ tag: "br" "\n";
+ tag: "tab" "\t";
+ }
+ }
+ parts{
+ part {
+ name: "pv.subtitle-color-popup.main.bg";
+ type: SPACER;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 160;
+ rel1 { relative: 0.0 0.0; }
+ rel2 { relative: 1.0 1.0; }
+ }
+ }
+ part {
+ name: "pv.subtitle-color-popup.title";
+ type: SPACER;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 10;
+ fixed: 0 1;
+ rel1 { relative: 0.0 0.0; to: "pv.subtitle-color-popup.main.bg"; }
+ rel2 { relative: 1.0 0.0; to: "pv.subtitle-color-popup.main.bg"; }
+ align: 0.0 0.0;
+ }
+ }
+ part { name: "pv.subtitle-color-group.text.bg";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 60;
+ fixed: 0 1;
+ rel1 { relative: 0.0 1.0; offset: 0 0; to: "pv.subtitle-color-popup.title"; }
+ rel2 { relative: 1.0 1.0; offset: 0 0; to: "pv.subtitle-color-popup.title"; }
+ align: 0.0 0.0;
+ color: 243 243 243 255;
+ }
+ }
+ part {
+ name: "pv.subtitle-color-popup.subject";
+ type: TEXTBLOCK;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 60;
+ fixed: 0 1;
+ rel1 { relative: 0.0 0.0; offset: SUBTITLE_TEXT_OFFSET 0; to: "pv.subtitle-color-group.text.bg";}
+ rel2 { relative: 1.0 1.0; offset: SUBTITLE_TEXT_OFFSET 0; to: "pv.subtitle-color-group.text.bg";}
+ align: 0.0 0.0;
+ text {
+ style: "caption_style";
+ align: 0.5 0.5;
+ min: 0 1;
+ size: 16;
+ }
+ color: 255 255 255 255;
+ }
+ }
+ /*part {
+ name: "pv.subtitle-color-popup.divideline";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 3;
+ fixed: 0 1;
+ rel1 { relative: 0.0 1.0; offset: -SUBTITLE_TEXT_OFFSET 0; to: "pv.subtitle-color-popup.subject";}
+ rel2 { relative: 1.0 1.0; offset: -SUBTITLE_TEXT_OFFSET 0; to: "pv.subtitle-color-popup.subject";}
+ align: 0.0 0.0;
+ color: 217 217 217 255;
+ }
+ }*/
+ part {
+ name: "pv.subtitle-color-popup.colorpalette.top";
+ type: SPACER;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 10;
+ fixed: 0 1;
+ rel1 { relative: 0.0 1.0; to: "pv.subtitle-color-popup.subject";}
+ rel2 { relative: 1.0 1.0; to: "pv.subtitle-color-popup.subject";}
+ align: 0.0 0.0;
+ }
+ }
+
+ part {
+ name: "pv.subtitle-color-popup.colorpalette.swallow";
+ type: SWALLOW;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: 0.0 1.0; to: "pv.subtitle-color-popup.colorpalette.top"; }
+ rel2 { relative: 1.0 1.0; to: "pv.subtitle-color-popup.colorpalette.top"; }
+ align: 0.0 0.0;
+ }
+ }
+ /*part {
+ name: "pv.subtitle-color-popup.opacity.text";
+ type: TEXT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 50;
+ fixed: 0 1;
+ rel1 { relative: 0.0 1.0; offset: SUBTITLE_TEXT_OFFSET 0; to: "pv.subtitle-color-popup.colorpalette.swallow";}
+ rel2 { relative: 1.0 1.0; offset: SUBTITLE_TEXT_OFFSET 0; to: "pv.subtitle-color-popup.colorpalette.swallow";}
+ align: 0.0 0.0;
+ text {
+ align: 0.0 1.0;
+ min: 0 1;
+ size: 27;
+ }
+ color: 21 108 148 255;
+ }
+ }
+ part {
+ name: "pv.subtitle-color-popup.opacity.divideline";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 3;
+ fixed: 0 1;
+ rel1 { relative: 0.0 1.0; offset: -SUBTITLE_TEXT_OFFSET 0; to: "pv.subtitle-color-popup.opacity.text";}
+ rel2 { relative: 1.0 1.0; offset: -SUBTITLE_TEXT_OFFSET 0; to: "pv.subtitle-color-popup.opacity.text";}
+ align: 0.0 0.0;
+ color: 217 217 217 255;
+ }
+ }
+ part {
+ name: "pv.subtitle-color-popup.opacity.percent";
+ type: TEXT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 100;
+ fixed: 0 1;
+ rel1 { relative: 0.0 1.0; to: "pv.subtitle-color-popup.opacity.divideline";}
+ rel2 { relative: 1.0 1.0; to: "pv.subtitle-color-popup.opacity.divideline";}
+ align: 0.0 0.0;
+ text {
+ align: 0.5 1.0;
+ min: 0 1;
+ size: 27;
+ }
+ color: 21 108 148 255;
+ }
+ }
+
+ part {
+ name: "pad_l";
+ type: SPACER;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 24 0;
+ max: 24 0;
+ fixed: 1 0;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 0.0; to: "pv.subtitle-color-popup.main.bg";}
+ rel2 { relative: 0.0 1.0; to: "pv.subtitle-color-popup.main.bg";}
+ }
+ }
+ part {
+ name: "pad_r";
+ type: SPACER;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 24 0;
+ max: 24 0;
+ fixed: 1 0;
+ align: 1.0 1.0;
+ rel1 { relative: 1.0 0.0; to: "pv.subtitle-color-popup.main.bg";}
+ rel2 { relative: 1.0 1.0; to: "pv.subtitle-color-popup.main.bg";}
+ }
+ }
+
+ part {
+ name: "elm.swallow.icon.1";
+ type: SWALLOW;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 63 78;
+ fixed: 1 1;
+ align: 0.0 0.0;
+ rel1 { relative: 1.0 1.0; to_x: "pad_l"; to_y: "pv.subtitle-color-popup.opacity.percent"; }
+ rel2 { relative: 1.0 1.0; to_x: "pad_l"; to_y: "pv.subtitle-color-popup.opacity.percent"; }
+ }
+ }
+ part {
+ name: "elm.swallow.icon.left";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 6 0;
+ max: 6 0;
+ fixed: 1 0;
+ align: 0.0 0.5;
+ rel1 { relative: 1.0 1.0; to_x: "elm.swallow.icon.1"; to_y: "pv.subtitle-color-popup.opacity.percent"; }
+ rel2 { relative: 1.0 1.0; to_x: "elm.swallow.icon.1"; to_y: "pv.subtitle-color-popup.opacity.percent"; }
+ }
+ }
+ part {
+ name: "elm.swallow.icon.right";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 6 0;
+ max: 6 0;
+ fixed: 1 0;
+ align: 1.0 0.5;
+ rel1 { relative: 0.0 1.0; to_x: "elm.swallow.icon.2"; to_y: "pv.subtitle-color-popup.opacity.percent"; }
+ rel2 { relative: 0.0 1.0; to_x: "elm.swallow.icon.2"; to_y: "pv.subtitle-color-popup.opacity.percent"; }
+ }
+ }
+ part {
+ name: "elm.swallow.icon.2";
+ type: SWALLOW;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 63 78;
+ fixed: 1 1;
+ align: 1.0 0.0;
+ rel1 { relative: 0.0 1.0; to_x: "pad_r"; to_y: "pv.subtitle-color-popup.opacity.percent"; }
+ rel2 { relative: 0.0 1.0; to_x: "pad_r"; to_y: "pv.subtitle-color-popup.opacity.percent"; }
+ }
+ }
+ part {
+ name: "elm.swallow.content";
+ type: SWALLOW;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 78;
+ fixed: 0 1;
+ align: 0.5 0.0;
+ rel1 { relative: 1.0 1.0; to_x: "elm.swallow.icon.left"; to_y: "pv.subtitle-color-popup.opacity.percent"; }
+ rel2 { relative: 0.0 1.0; to_x: "elm.swallow.icon.right"; to_y: "pv.subtitle-color-popup.opacity.percent"; }
+ }
+ }*/
+
+ /*part {
+ name: "colorpalette_bottom_padding";
+ type: SPACER;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 12;
+ fixed: 0 1;
+ rel1 {
+ relative: 0.0 1.0;
+ to_y: "colorpalette";
+ to_x: "bg";
+ }
+ rel2 {
+ to_x: "bg";
+ to_y: "colorpalette";
+ }
+ align: 0.0 0.0;
+ }
+ }*/
+
+ }//end parts
+ } //end group
+ group { name: "pv.subtitle.scroller.layout";
+ parts {
+ part { name: "elm.swallow.content";
+ type: SWALLOW;
+ scale: 1;
+ description { state: "default" 0.0;
+ fixed: 1 0;
+ min: 0 160;
+ }
+ }
+ }
+ }
+ group { name: "pv.subtitle.scroller.layout.landscape";
+ parts {
+ part { name: "elm.swallow.content";
+ type: SWALLOW;
+ scale: 1;
+ description { state: "default" 0.0;
+ fixed: 1 0;
+ min: 0 160;
+ }
+ }
+ }
+ }
+}
+
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES 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 */
+
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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;}
+ }
+ }
+ }
+ }
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES 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 */
+
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES 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 */
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES 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
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES 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 */
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "pv-image.edc"
+
+#define FONT_BOLD_TYPE "Tizen:style=Bold"
+
+#define FONT_VOLUME_COLOR 255 255 255 255
+#define VOLUME_POPUP_BUTTON_HEIGHT 24
+#define VOLUME_POPUP_BUTTON_WIDTH 24
+
+collections {
+ base_scale : 1.6;
+ group {
+ name: "pv.volume.popup";
+ parts {
+ part {
+ name: "pv.volume.popup.rect";
+ type: RECT;
+ mouse_events: 1;
+ repeat_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible : 1;
+ min: 58 286;
+ fixed: 1 1;
+ align: 0.0 0.0;
+ rel1 { relative: 0.5 0.5;}
+ rel2 { relative: 0.5 0.5;}
+ color: 0 0 0 0;
+ }
+ }
+
+ part {
+ name: "pv.volume.popup.bg";
+ type: IMAGE;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible : 1;
+ min: 58 286;
+ fixed: 1 1;
+ align: 0.0 0.0;
+ rel1 { relative: 0.5 0.5;}
+ rel2 { relative: 0.5 0.5;}
+ color: 255 255 255 255;
+ image { normal: "volume/T01_2_volume_popup_bg.png"; border: 0 0 15 15;}
+ }
+ }
+
+ part {
+ name: "pv.volume.popup.icon.padding";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible : 0;
+ min: 0 12;
+ fixed: 1 1;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 0.0; to: "pv.volume.popup.bg";}
+ rel2 { relative: 1.0 0.0; to: "pv.volume.popup.bg";}
+ color: 255 0 0 255;
+
+ }
+ }
+ part {
+ name: "pv.volume.popup.icon";
+ type: IMAGE;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible : 1;
+ min: 22 22;
+ fixed: 1 1;
+ align: 0.5 0.0;
+ rel1 { relative: 0.5 1.0; to_x: "pv.volume.popup.bg"; to_y: "pv.volume.popup.icon.padding";}
+ rel2 { relative: 0.5 1.0; to_x: "pv.volume.popup.bg"; to_y: "pv.volume.popup.icon.padding";}
+ color: 255 255 255 255;
+ image { normal: "popup/T01-2_volume_popup_icon_volume01.png"; }
+ }
+ description {
+ state: "mute" 0.0;
+ inherit: "default" 0.0;
+ image { normal: "popup/T01-2_volume_popup_icon_volume02.png"; }
+ }
+ }
+
+ part {
+ name: "pv.volume.popup.top.padding";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible : 0;
+ min: 0 11;
+ fixed: 1 1;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 1.0; to: "pv.volume.popup.icon";}
+ rel2 { relative: 1.0 1.0; to: "pv.volume.popup.icon";}
+ color: 255 0 0 255;
+
+ }
+ }
+
+ part {
+ name: "pv.volume.popup.bottom.padding";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible : 0;
+ min: 0 18;
+ fixed: 1 1;
+ align: 0.0 1.0;
+ rel1 { relative: 0.0 1.0; to: "pv.volume.popup.bg";}
+ rel2 { relative: 1.0 1.0; to: "pv.volume.popup.bg";}
+ color: 255 0 0 255;
+
+ }
+ }
+
+ part {
+ name: "pv.volume.popup.txt";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ effect: FAR_SHADOW BOTTOM;
+ description {
+ state: "default" 0.0;
+ visible : 1;
+ min: 0 23;
+ fixed: 1 1;
+ align: 0.5 1.0;
+ rel1 { relative: 0.0 0.0; to: "pv.volume.popup.bottom.padding";}
+ rel2 { relative: 1.0 0.0; to: "pv.volume.popup.bottom.padding";}
+ color: FONT_VOLUME_COLOR;
+ color3: 51 57 72 255;
+ text {
+ font: FONT_BOLD_TYPE;
+ size: 21;
+ text: "3";
+ align: 0.5 0.5;
+ }
+
+ }
+ }
+
+ part {
+ name: "pv.volume.popup.txt.padding";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible : 0;
+ min: 0 11;
+ fixed: 0 1;
+ align: 0.0 1.0;
+ rel1 { relative: 0.0 0.0; to: "pv.volume.popup.txt";}
+ rel2 { relative: 1.0 0.0; to: "pv.volume.popup.txt";}
+ color: 255 0 0 255;
+
+ }
+ }
+
+ part {
+ name: "pv.volume.popup.bar.bg";
+ type: IMAGE;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 6 0;
+ fixed: 1 0;
+ align: 0.5 0.0;
+ rel1 { relative: 0.5 1.0; to_x : "pv.volume.popup.bg"; to_y : "pv.volume.popup.top.padding";}
+ rel2 { relative: 0.5 0.0; to_x : "pv.volume.popup.bg"; to_y : "pv.volume.popup.txt.padding";}
+ image { normal: "volume/T01_2_volume_popup_progress_bg.png"; border: 0 0 10 10;}
+ color: 255 255 255 255;
+ }
+ }
+
+ part {
+ name: "pv.volume.popup.step";
+ type: IMAGE;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 6 0;
+ fixed: 1 0;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 0.5; to_x : "pv.volume.popup.bar.bg"; to_y: "pv.volume.popup.point";}
+ rel2 { relative: 1.0 1.0; to : "pv.volume.popup.bar.bg";offset: 0 2;}
+ color: 255 255 255 255;
+ image { normal: "volume/T01_2_volume_popup_progress_bar.png"; border: 0 0 10 10;}
+ }
+ }
+
+ part { name: "pv.volume.popup.dragable";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description{ state: "default" 0.0;
+ rel1 { relative: 0.5 0.0; to: "pv.volume.popup.bar.bg";offset: 0 -11; }
+ rel2 { relative: 0.5 1.0; to: "pv.volume.popup.bar.bg";offset: 0 11;}
+ min: VOLUME_POPUP_BUTTON_WIDTH 0;
+ fixed: 1 0;
+ align: 0.5 0.0;
+ visible: 0;
+ }
+ }
+
+ part { name: "pv.volume.popup.playing";
+ type: RECT;
+ scale: 1;
+ repeat_events: 0;
+ description {
+ state: "default" 0.0;
+ min: VOLUME_POPUP_BUTTON_WIDTH VOLUME_POPUP_BUTTON_HEIGHT;
+ max: VOLUME_POPUP_BUTTON_WIDTH VOLUME_POPUP_BUTTON_HEIGHT;
+ fixed: 1 1;
+ align: 0 0;
+ color: 0 0 0 0;
+ }
+
+ dragable {
+ x: 0 0 0;
+ y: -1 1 0;
+ confine: "pv.volume.popup.dragable";
+ }
+ }
+
+ part {
+ name: "pv.volume.popup.point";
+ type: IMAGE;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: VOLUME_POPUP_BUTTON_WIDTH VOLUME_POPUP_BUTTON_HEIGHT;
+ max: VOLUME_POPUP_BUTTON_WIDTH VOLUME_POPUP_BUTTON_HEIGHT;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ rel1 { relative: 0.5 0.5; to: "pv.volume.popup.playing";}
+ rel2 { relative: 0.5 0.5; to: "pv.volume.popup.playing";}
+ image { normal: "volume/T01_2_volume_popup_progress_handle.png";}
+ color: 255 255 255 255;
+ }
+ description {
+ state: "press" 0.0;
+ inherit: "default";
+ image { normal: "volume/T01_2_volume_popup_progress_handle_press.png";}
+ }
+ }
+ } /* parts */
+
+ programs {
+ program { name: "set_mute";
+ signal: "set,mute";
+ source: "volume.popup.icon";
+ action: STATE_SET "mute" 0.0;
+ target: "pv.volume.popup.icon";
+ }
+ program { name: "set_volume";
+ signal: "set,volume";
+ source: "volume.popup.icon";
+ action: STATE_SET "default" 0.0;
+ target: "pv.volume.popup.icon";
+ }
+ program {
+ name: "pv.volume.down";
+ source: "pv.volume.popup.point";
+ signal: "mouse,down,1";
+ action: STATE_SET "press" 0.0;
+ target: "pv.volume.popup.point";
+ }
+ program {
+ name: "pv.volume.up";
+ source: "pv.volume.popup.point";
+ signal: "mouse,up,1";
+ action: STATE_SET "default" 0.0;
+ target: "pv.volume.popup.point";
+ }
+ } /* programs */
+ } /* group */
+} /* collections */
+
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "pv-image.edc"
+
+#define FONT_BOLD_TYPE "Tizen:style=Bold"
+
+#define FONT_VOLUME_COLOR 255 255 255 255
+
+#define VOLUME_WIDGET_WIDTH 72
+#define VOLUME_WIDGET_PORTRAIT_HEIGHT 486
+#define VOLUME_WIDGET_LANDSCAPE_HEIGHT 264
+
+#define VOLUME_BUTTON_HEIGHT 40
+#define VOLUME_BUTTON_WIDTH 25
+#define VOLUME_PROGRESS_WIDTH 15
+
+externals {
+ external: "elm";
+ external: "feedback";
+ }
+
+collections {
+ base_scale : 2.6;
+ plugins {
+ plugin {
+ name: "touch_sound_plugin";
+ source: "feedback";
+ param: "FEEDBACK_TYPE_SOUND FEEDBACK_PATTERN_TAP";
+ }
+ }
+ group {
+ name: "pv.volume";
+ parts {
+ part {
+ name: "pv.volume.bg";
+ type: IMAGE;
+ mouse_events: 0;
+ repeat_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible : 1;
+ min: VOLUME_WIDGET_WIDTH VOLUME_WIDGET_PORTRAIT_HEIGHT;
+ max: VOLUME_WIDGET_WIDTH VOLUME_WIDGET_PORTRAIT_HEIGHT;
+ fixed: 1 1;
+ align: 0.2 0.0;
+ rel1 { relative: 0.5 0.5;}
+ rel2 { relative: 0.5 0.5;}
+ image { normal: "volume/T01_2_volume_popup_bg.png"; border: 0 0 15 15; }
+ }
+
+ description {
+ state: "landscape" 0.0;
+ inherit: "default" 0.0;
+ min: VOLUME_WIDGET_WIDTH VOLUME_WIDGET_LANDSCAPE_HEIGHT;
+ max: VOLUME_WIDGET_WIDTH VOLUME_WIDGET_LANDSCAPE_HEIGHT;
+ image { normal: "volume/T01_2_volume_popup_bg.png"; border: 0 0 15 15; }
+ }
+ }
+
+ part {
+ name: "pv.volume.top.padding";
+ type: SPACER;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 32;
+ fixed: 1 1;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 0.0; to: "pv.volume.bg";}
+ rel2 { relative: 1.0 0.0; to: "pv.volume.bg";}
+ }
+ description {
+ state: "landscape" 0.0;
+ inherit: "default" 0.0;
+ min: 0 16;
+ }
+ }
+
+ part {
+ name: "pv.volume.bottom.padding";
+ type: SPACER;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 21;
+ fixed: 1 1;
+ align: 0.0 1.0;
+ rel1 { relative: 0.0 1.0; to: "pv.volume.bg";}
+ rel2 { relative: 1.0 1.0; to: "pv.volume.bg";}
+ }
+ description {
+ state: "landscape" 0.0;
+ inherit: "default" 0.0;
+ min: 0 12;
+ }
+ }
+
+ part {
+ name: "pv.volume.txt";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ effect: FAR_SHADOW BOTTOM;
+ description {
+ state: "default" 0.0;
+ visible : 1;
+ min: 0 16;
+ fixed: 1 1;
+ align: 0.5 1.0;
+ rel1 { relative: 0.0 0.0; to: "pv.volume.bottom.padding";}
+ rel2 { relative: 1.0 0.0; to: "pv.volume.bottom.padding";}
+ text {
+ size: 38;
+ }
+
+ }
+ }
+
+ part {
+ name: "pv.volume.txt.padding";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible : 0;
+ min: 0 21;
+ fixed: 1 1;
+ align: 0.0 1.0;
+ rel1 { relative: 0.0 0.0; to: "pv.volume.txt";}
+ rel2 { relative: 1.0 0.0; to: "pv.volume.txt";}
+ }
+ description {
+ state: "landscape" 0.0;
+ inherit: "default" 0.0;
+ min: 0 20;
+ }
+ }
+
+ part {
+ name: "pv.volume.touch.area";
+ type: RECT;
+ scale: 1;
+ mouse_events: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: 0.0 0.0; to: "pv.volume.bar.bg"; offset: -10 0; }
+ rel2 { relative: 1.0 1.0; to: "pv.volume.bar.bg"; offset: 10 0; }
+ color: 0 0 0 0;
+ }
+ }
+
+ part {
+ name: "pv.volume.bar.bg";
+ type: IMAGE;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: VOLUME_PROGRESS_WIDTH 0;
+ fixed: 1 0;
+ align: 0.5 0.0;
+ rel1 { relative: 0.5 1.0; to_x : "pv.volume.bg"; to_y : "pv.volume.top.padding";}
+ rel2 { relative: 0.5 0.0; to_x : "pv.volume.bg"; to_y : "pv.volume.txt.padding";}
+ image { normal: "volume/T01_2_volume_popup_progress_bg.png"; border: 0 0 5 5;}
+ }
+ }
+
+ part {
+ name: "pv.volume.step";
+ type: IMAGE;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: VOLUME_PROGRESS_WIDTH 0;
+ fixed: 1 0;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 0.5; to_x : "pv.volume.bar.bg"; to_y: "pv.volume.point"; }
+ rel2 { relative: 1.0 1.0; to : "pv.volume.bar.bg"; offset: 0 1;}
+ image { normal: "volume/T01_2_volume_popup_progress_bar.png"; border: 0 0 5 5;}
+ }
+ }
+
+ part { name: "pv.volume.dragable";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description{ state: "default" 0.0;
+ rel1 { relative: 0.5 0.0; to: "pv.volume.bar.bg"; offset: 0 -7; }
+ rel2 { relative: 0.5 1.0; to: "pv.volume.bar.bg"; offset: 0 7;}
+ min: VOLUME_BUTTON_WIDTH 0;
+ fixed: 1 0;
+ align: 0.5 0.0;
+ visible: 0;
+ }
+ }
+
+ part { name: "pv.volume.playing";
+ type: RECT;
+ scale: 1;
+ repeat_events: 0;
+ description {
+ state: "default" 0.0;
+ min: VOLUME_BUTTON_WIDTH VOLUME_BUTTON_HEIGHT;
+ max: VOLUME_BUTTON_WIDTH VOLUME_BUTTON_HEIGHT;
+ fixed: 1 1;
+ align: 0 0;
+ color: 0 0 0 0;
+ }
+
+ dragable {
+ x: 0 0 0;
+ y: -1 1 0;
+ confine: "pv.volume.dragable";
+ }
+ }
+
+ part {
+ name: "pv.volume.point";
+ type: IMAGE;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: VOLUME_BUTTON_WIDTH VOLUME_BUTTON_HEIGHT;
+ max: VOLUME_BUTTON_WIDTH VOLUME_BUTTON_HEIGHT;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ rel1 { relative: 0.5 0.5; to: "pv.volume.playing";}
+ rel2 { relative: 0.5 0.5; to: "pv.volume.playing";}
+ image { normal: "volume/T01_2_volume_popup_progress_handle.png";}
+ color: 255 255 255 255;
+ }
+ description {
+ state: "press" 0.0;
+ inherit: "default";
+ image { normal: "volume/T01_2_volume_popup_progress_handle_press.png";}
+ }
+ }
+
+ part {
+ name: "pv.volume.point.focus";
+ type: SWALLOW;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: VOLUME_BUTTON_WIDTH VOLUME_BUTTON_HEIGHT;
+ fixed: 1 1;
+ rel1 { relative: 0.0 0.0; to: "pv.volume.point"; }
+ rel2 { relative: 1.0 1.0; to: "pv.volume.point"; }
+ color: 255 255 255 0;
+ }
+ }
+ } /* parts */
+
+ programs {
+ program {
+ name: "portrait_mode";
+ signal: "signal.pv.volume.portrait.mode";
+ source: "*";
+ action: STATE_SET "default" 0.0;
+ target: "pv.volume.bg";
+ target: "pv.volume.top.padding";
+ target: "pv.volume.bottom.padding";
+ target: "pv.volume.txt.padding";
+ }
+
+ program {
+ name: "landscape_mode";
+ signal: "signal.pv.volume.landscape.mode";
+ source: "*";
+ action: STATE_SET "landscape" 0.0;
+ target: "pv.volume.bg";
+ target: "pv.volume.top.padding";
+ target: "pv.volume.bottom.padding";
+ target: "pv.volume.txt.padding";
+ }
+ program {
+ name: "pv.volume.down";
+ source: "pv.volume.point";
+ signal: "mouse,down,1";
+ action: STATE_SET "press" 0.0;
+ target: "pv.volume.point";
+ }
+ program {
+ name: "pv.volume.up";
+ source: "pv.volume.point";
+ signal: "mouse,up,1";
+ action: STATE_SET "default" 0.0;
+ target: "pv.volume.point";
+ }
+ program{
+ name: "touch_snd";
+ signal: "mouse,clicked,1";
+ source: "pv.volume.touch.area";
+ action: RUN_PLUGIN "touch_sound_plugin";
+ }
+ } /* programs */
+ } /* group */
+} /* collections */
+
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES 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 */
+
--- /dev/null
+# 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})
--- /dev/null
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "السطوع"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "الموسيقى"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "الأصوات"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "ب."
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "ج.ب"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "ك.ب"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "الموقع"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "م.ب"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "غير معروف"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "موافق"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "آخر تعديل"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "مشاركة"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "لا يمكن تشغيل الفيديو"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "حدث خطأ في العناوين الفرعية."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "الملف تالف أو ربما تمت إزالة بطاقة SD."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "التفاصيل"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "العنوان"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "سيتم حذف هذا الفيديو."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "الضبط"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "يتعذر تشغيل الفيديو"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "محاذاة"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "حجم الخط"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "ضبط التكرار"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "العناوين الفرعية (CC)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "وسط"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "كبير"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "إلى اليسار"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "متوسطة"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "إلى اليمين"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "صغير"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "التالي"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "السابق"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "لا يمكن مشاركة ملفات DRM"
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "تنسيق"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "يتعذر تشغيل الصوت أثناء المكالمة."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "الرسالة"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "نقل الملفات"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "بريد إلكتروني"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "خط الطول"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "المدى"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "تفعيل الحركة"
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "البحث بسرعة %sx."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "التخزين الخارجي"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "درجة الصوت"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "تنسيق فيديو غير معتمد."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "نوع ملف غير مدعوم."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "تنسيق صوتي غير مدعم."
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "يتعذر استخدام وظيفتي التقديم السريع والإرجاع عندما تكون الأجهزة القريبة مفعلة."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "يتعذر الالتقاط."
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "تدوير"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "اضغط على المفتاح الخلفي مرة أخرى للعودة إلى الشاشة السابقة."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "لا يوجد ذاكرة كافية. امسح بعض العناصر."
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "قائمة الإشارات المرجعية ممتلئة. احذف بعض الإشارات المرجعية."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "أصفر"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "القناة الافتراضية ٧,۱"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "العناوين الفرعية (CC)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "نمط الإعادة"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "بدون تكرار"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "أحمر أرجواني"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "أخضر"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "لون الخط"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "أزرق سماوي"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "ضبط مخصص"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "الفيديو الحالي (مرة)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "معلومات الاتصال"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "تغيير المشغل"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "التقاط"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "تحديد الجهاز"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "الأجهزة المتاحة"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "السماعة"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "أبيض"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "أحمر"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s من الثواني"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "سرعة العرض"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d ثانية"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "غير مفعل"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "لا يوجد عنوان"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "جهازي"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "الخط الافتراضي"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "جاز هادئ"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "شوكو كوكي"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "أزرق"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "أسود"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "التفعيل"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "هل تريد إغلاق التطبيق؟"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "إلغاء"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "بعد إيقاف الكل"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "تكرار الحالية"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "تكرار الكل"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "الدقة"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "توجد %s مؤثرات صوتية غير مدعومة بواسطة مكبر الصوت."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "اقلب الهاتف لكتم المكالمات الواردة وتنبيهات الرسائل والتنبيهات."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "بطاقة SD"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "هذا الملف يعتمد بيانات الصوت فقط. تشغيل الصوت الآن."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "هذا الملف يعتمد بيانات الفيديو فقط. تشغيل الفيديو الآن."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "وحدة التخزين الخاصة"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "سماعات رأس"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "مكبر الصوت"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "إيقاف مؤقت"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "تنزيل"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "تحديد الترجمات (التسميات التوضيحية)"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "معاينة الترجمات (التسميات التوضيحية)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "فشل التوصيل."
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "وضع التكرار"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "نوع ملف غير مدعوم."
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "عادي"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "الصوت"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "الأفلام"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "المقطع الصوتي"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "تخزين مؤقت..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "تنسيق الملف"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "اللغة"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "لا توجد لقطات فيديو"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "الحجم"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "تم"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "تحديث"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "التاريخ"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "جار التحميل..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "العناوين الفرعية (CC)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "حذف"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "إضافة إلى الشاشة الرئيسية"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "الاسم"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "يتعذر عرض الفيديو."
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "ما من ترجمة متوفرة"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "تشغيل"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "إغلاق"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "الموقع الالكتروني غير صالح."
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "خطأ"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "وحدة تخزين الجهاز"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "مشغل فيديو"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "مشاركة عبر"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "حدث خطأ في الشبكة. حاول مرة أخرى."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "يدعم تنسيق الملف هذا بيانات الصوت فقط. جارٍ تشغيل الصوت."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "فقط بيانات الفيديو المدعومة من تنسيق الملف هذا. يتم الآن تشغيل الفيديو."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "وسط"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "مفعل"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "الضبط"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "مقاطع فيديو"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "مشاركة"
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "التفاصيل"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "مسح"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "يتمّ الآن تخزين مؤقت - %d%"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "ما من حد"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d من الثواني"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "تحديد جهاز صوت"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "حذف"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "إلغاء"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "حدث خطأ غير معروف أو قد يكون الملف تالفاً."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "إن نوع الملف هذا غير مدعوم."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "تم"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "ملء الشاشة"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "إبقاء النسبة"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "إلغاء"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "موقع التخزين"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "العناوين الفرعية (CC)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "مساحة التخزين الشخصية"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "ستكون التسميات التوضيحية على هذا الشكل"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "هذا الملف غير موجود."
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "إلغاء تفعيل تشغيل الصوت فقط"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "تفعيل تشغيل الصوت فقط"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "اضغط على مفتاح الشاشة الرئيسية أو مفتاح التشغيل أثناء التشغيل لتشغيل الصوت فقط."
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Parlaqlıq"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Musiqi"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Səslər"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "QB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Yeri"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Naməlum"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Son dəyişmə"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Paylaş"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Videonu göstərmək olmur"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "Altyazılarda xəta baş verdi."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "Fayl korlanmış və ya SD kart çıxarılmışdır."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Təfsilatlar"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Başlıq"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "Bu video silinəcək."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Parametrlər"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Videonu göstərmək mümkün deyil"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Nizamlama"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Şriftin ölçüsü"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Parametri təkrarla"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Yarım başlıqlar (bağlı)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Mərkəz"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Böyük"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Sol"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Orta"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Sağ"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Kiçik"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Növbəti"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Əvvəlki"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "DRM faylları paylaşıla bilmir."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Format"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Zəng zamanı videonu göstərmək mümkün deyildir."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Mesaj"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Faylın köçürülməsi"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Epoçt"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Uzunluq"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "En"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Hrkti aktv et"
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "%sx sürətdə təmizləmə."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Xarici yaddaş"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Həcm"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Video formatı dəstəklənmir."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Dəstəklənməyən fayl tipi."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Dəstəkləməyən audio format."
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Yaxınlıqdakı cihazlar aktiv olduqda geri və irəli sarma mümkün deyil."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Çəkmək mümkün deyil."
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Döndər"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Əvvəlki ekrana qayıtmaq üçün geri düyməsini yenidən basın."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Yaddaş kifayət etmir. Xahiş olunur bəzi elementləri silin"
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Əlfəcin siyahısı doludur. Əlfəcinlərdən bəzilərini sil."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Sarı"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "Virtual 7.1 kanal"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Yarım başlıqlar (bağlı)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Təkrarlama rejimi"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "Təkrarlamadan"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Al-qırmızı"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Yaşıl"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Şriftin rəngi"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Mavi"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Fərdi"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Cari video(bir dəfə)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Bağlantı məlumatı"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Pleyeri dəyiş"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Çək"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Cihazı seç"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Mümkün cihazlar"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Dinamik"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Ağ"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Qırmızı"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s saniyə"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Göstərilmə sürəti"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d saniyə"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Söndür"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Başlıq yoxdur"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "Mənim qurğum"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Susmaya görə şrift"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Mavi"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Qara"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Aktivləşdirmə"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Proqram bağlansın?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Ləğv et"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Bitəndə dayandır"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "İndikini təkrarla"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Hamısını təkrarla"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Rezolyusiya"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "%s səs effektləri səsucaldan ilə dəstəklənmir."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Daxil olan zəngləri, mesaj xəbərdarlıqlarını və zəngli saaxtı səssiz etmək üçün telefonu çevirin."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "SD kartı"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Bu fayl yalnız audio məlumatı dəstəkləyir. İndi səsləndirilən audio."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Bu fayl yalnız video məlumatı dəstəkləyir. İndi görüntülənən video."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Şəxsi yaddaş"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Qulaqlıqlar"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Dinamik"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Fasilə"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Yükləyin"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Altyazıları seç (CC)"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Altyazılara bax (CC)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Əlaqə mümkün olmadı."
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Təkrarlama rejimi"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Dəstəklənməyən fayl tipi."
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Normal"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Səs"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Filmlər"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Audio trek"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Buferləmə..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Faylın formatı"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Dil"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Video yoxdur"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Ölçü"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Tamam"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Yenilə"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Tarix"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Yüklənir..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Yarım başlıqlar(CC)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Sil"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Ana ekrana əlavə et"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Ad"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Videonu işlətmək mümkün deyil."
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "Alt-yazılar mümkündür"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Səsləndir"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Bağla"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "Yanlış URL."
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Səhv"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Cihazın yaddaşı"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Video pleyer"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Paylaş"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Şəbəkə xətası baş verdi. Yenidən cəhd edin."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Bu fayl formatı yalnız audio məlumatı dəstəkləyir. İndi səsləndirilən audio."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Bu fayl yalnız video məlumatını dəstəkləyir. İndi görüntülənən video."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Mərkəz"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "Qoş"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Parametrlər"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Videolar"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Paylaş"
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Təfsilatlar"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Sil"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Buferləmə - %d%"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Yoxdur"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d san"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Audio cihazı seç"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Sil"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Ləğv et"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "Naməlum xəta baş verdi və ya fayl korlanmış ola bilər."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "Bu fayl növü dəstəklənmir."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "HAZIR"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Dolu"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Nisb saxla"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "LƏĞV ET"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Yaddaş yeri"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Altyazılar (BB)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Şəxsi yaddaş"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "Böyük hərflərin təsvir olunma forması"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Bu fayl movcud deyil."
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Ylnz audio səs q-akt et"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Yalnız audio səs aktv"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Yalnız audio səslənməsi üçün Əsas ekran və ya Enerji düyməsinə vurun."
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Яркост"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Музика"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Гласове"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Позиция"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Няма информация"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Последна промяна"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Споделяне"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Не може да се изпълни видео"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "Възникна грешка със субтитрите."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "Файлът е повреден или SD картата е премахната."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Детайли"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Заглавие"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "Този видеоклип ще бъде изтрит."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Настройки"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Не може да се възпр. видео"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Подравняване"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Р-р шрифт"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Настройка за повторение"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Субтитри (CC)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Център"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Голям"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Отляво"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Средно"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Отдясно"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Малък"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Следващ"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Предиш."
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "DRM файловете не могат да се споделят."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Формат"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Не може да се възпроизвежда видео по време на разговор."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Съобщ-ие"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Прехвърляне на файл"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Имейл"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Геогр. дължина"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Геогр. ширина"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Актив. движ."
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "Търкане със скорост %sx."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Външна памет за съхр."
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Сила звук"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Неподдържан формат на видео."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Неподдържан тип файл."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Неподдържан аудио формат."
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Не може да се използва бързо превъртане напред и назад, когато близките устройства са активирани."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Невъзможно заснемане."
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Завъртане"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Натиснете отново клавиша Назад, за да се върнете към предишния екран."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Няма достатъчно памет. Изтрийте някои елементи"
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Списък маркери пълен. Изтрий някои маркери."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Жълто"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "Виртуален 7.1 кан"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Субтитри (CC)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Режим на повтаряне"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "Без повтаряне"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Магента"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Зелено"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Цвят на шрифта"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Циан"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "По избор"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Текущ клип (веднъж)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Инфо за връзка"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Смяна на плейъра"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Снимка"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Избор на устройство"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Достъпни устройства"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Високог."
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Бял"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Червено"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s секунди"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Скорост на възпроизвеждане"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d сек."
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Изключено"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Няма заглавие"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "Моето устройство"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Шрифт по подразбиране"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Син"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Черно"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Активиране"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Затваряне на приложението?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Отказ"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Спри след всички"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Повтаряне на текущо"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Повторение на всички"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Разделителна способност"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "%s звукови ефекта не се поддържат от високоговорителя."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Завъртете телефона, за да заглушите входящите повиквания, предупрежденията за съобщения и алармите."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "SD карта"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Само аудио данни, поддържани от този файл. В момента се възпроизвежда аудио."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Само видео данни, поддържани от този файл. В момента се възпроизвежда видео."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Лично място за съхранение"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Слушалки"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Високогов."
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Пауза"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Изтегли"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Избор на субтитри (CC)"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Преглед на субтитрите (CC)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Неуспешно свързване."
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Режим на повтаряне"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Неподдържан тип файл."
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Нормален"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Глас"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Филми"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Аудио запис"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Буфериране..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Формат на файла"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Език"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Няма видео"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Размер"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Готово"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Обновяване"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Дата"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Зареждане..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Субтитри (CC)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Изтриване"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Добавяне към началния екран"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Име"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Невъзможно възпроизвеждане на видеоклип."
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "Няма налични субтитри"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Изпълняване"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Затвори"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "Невалиден URL."
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Грешка"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Памет на устройството"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Видео плейър"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Споделяне с"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Възникна мрежова грешка. Опитайте отново."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Само аудиоданни, поддържани от този файлов формат. В момента се възпроизвежда аудио."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Само видео данни, поддържани от този файлов формат. В момента се възпроизвежда видео."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Център"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "Включено"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Настройки"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Видео клипове"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Сподели"
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Детайли"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Изтриване"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Буфериране - %d %"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Няма"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d сек"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Избор на аудиоустройство"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Изтриване"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Отказ"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "Възникна непозната грешка или файлът може да е повреден."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "Файловият тип не се поддържа."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "ГОТОВО"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Пълен"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Зап.съотн."
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ОТКАЗ"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Място за съхранение"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Субтитри (CC)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Лично място за съхранение"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "Надписите ще изглеждат така"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Файлът не съществува."
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Изкл. Възпр. само аудио"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Вкл. Възпр. само аудио"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Натиснете клавиша за начало или клавиша за захранване по време на възпроизвеждане, за да пуснете само аудио."
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Brillantor"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Música"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Veus"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Ubicació"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Desconegut"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "Acceptar"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Última modificació"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Compartir"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "No es pot reproduir vídeo"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "S'ha produït un error amb els subtítols."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "El fitxer està malmès o s'ha tret la targeta SD."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Detalls"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Títol"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "S'esborrarà aquest vídeo"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Ajustaments"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "No es pot reproduir el vídeo"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Alineació"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Mida font"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Repetir ajustament"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Subtítols"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Centre"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Gran"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Esquerra"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Mitjana"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Dreta"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Petita"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Següent"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Anterior"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "Els fitxers DRM no es poden compartir."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Format"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "No es pot reproduir un vídeo durant una trucada"
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Missatge"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Transfer fitxers"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Correu elec"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Longitud"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Latitud"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Habilitar mov"
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "Desplaçament a una velocitat de %sx."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Emmagatzematge extern"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Volum"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Format de vídeo no compatible"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "No s'admet el tipus de fitxer"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Format d'àudio no compatible"
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "No es pot utilitzar avançament ràpid i rebobinar quan s'han habilitat dispositius propers"
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "No es pot capturar"
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Girar"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Torni a prémer la tecla de retorn per a tornar a la pàgina anterior"
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "No hi ha prou memòria. Esborrar-ne alguns elements."
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Llista de preferits plena. Esborrar alguns preferits."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Groc"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "7.1 canals virtuals"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Subtítols"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Mode repetició"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "No repetir"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Magenta"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Verd"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Color de font"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Cian"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Personalitzar"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Víd actual (un cop)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Info de connexió"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Canviar reprod"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Captura"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Seleccionar dispositiu"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Dispositius dispon"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Altaveu"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Blanc"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Vermell"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s segons"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Velocitat de reproducció"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d s"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Desactivat"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Sense títol"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "El meu dispositiu"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Font predeterminada"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Blau"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Negre"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Activació"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Tancar aplicació?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Cancel·lar"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Aturar després tot"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Repetir actual"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Repetir tot"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Resolució"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "Els efectes de so de %s no són compatibles amb l'altaveu"
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Giri el telèfon per silenciar trucades d'entrada, avisos de missatges i alarmes"
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "Targ SD"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Aquest fitxer només admet dades d'àudio. Ara està reproduint àudio."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Aquest fitxer només admet dades de vídeo. Ara està reproduint vídeo."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Emmagatzematge privat"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Auriculars"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Altaveu"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Pausa"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Descarregar"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Selec subtítols (CC)"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Previsualitzar subtítols (CC)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Error de connexió"
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Mode Repetició"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "No s'admet el tipus de fitxer"
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Normal"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Veu"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Pel·lícules"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Pista d'àudio"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Em mem int..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Format del fitxer"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Idioma"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Cap vídeo"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Mida"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Fet"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Actualitzar"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Data"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Carregant..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Subtítols (CC)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Esborrar"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Afegir a pantalla d'inici"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Nom"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "No es pot reproduir el vídeo"
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "No hi ha subtítols disponibles"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Reproduir"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Tancar"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "URL no vàlida"
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Error"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Emmagatzematge de dispositiu"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Reproductor de vídeo"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Compartir mitjançant"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "S'ha produït un error de xarxa. Torni a intentar-ho."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Aquest format de fitxer només admet dades d'àudio. Ara està reproduint àudio."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Aquest format de fitxer només admet dades de vídeo. Ara està reproduint vídeo."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Centre"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "Activat"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Ajustaments"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Vídeos"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Compart"
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Detalls"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Esborrar"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Emmagatzemant a memòria interna: %d%"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Cap"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d s"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Seleccionar dispositiu d'àudio"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Esborrar"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Cancel"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "S'ha produït un error desconegut o el fitxer pot estar malmès."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "El tipus de fitxer no és compatible."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "REALITZAT"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Ple"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Manten rel"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "CANCEL·LAR"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Ubicació d'emmagatzematge"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Subtítols (CC)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Emmagatzematge personal"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "Les anotacions es veuran així"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Aquest fitxer no existeix"
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Deshab Repr només àudio"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Habil Repr només àudio"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Premi la tecla Inici o la tecla Alimentació durant la reproducció per reproduir només àudio."
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Jas"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Hudba"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Hlasy"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "kB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Místo"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Neznámé"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Naposledy změněno"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Sdílet"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Video nelze přehrát"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "V titulcích došlo k chybě."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "Soubor je poškozený nebo byla odebrána SD karta."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Podrobnosti"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Název"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "Videoklip bude odstraněn."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Nastavení"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Video nelze přehrát"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Zarovnání"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Velikost písma"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Nastavení opakování"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Titulky (skryté)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Na střed"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Velké"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Doleva"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Střední"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Doprava"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Malé"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Další"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Předchozí"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "Soubory chráněné DRM nelze sdílet."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Formát"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Během hovoru nelze přehrát videoklip."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Zpráva"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Přenos souborů"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "E-mail"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Zeměpisná délka"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Zeměpisná šířka"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Zapnout pohyb"
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "Tažení %snásobnou rychlostí."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Externí úložiště"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Hlasitost"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Nepodporovaný formát videa."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Nepodporovaný typ souboru."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Nepodporovaný zvukový formát."
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Když jsou zapnutá nedaleká zařízení, není možné použít rychlý posun dopředu a dozadu."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Vyfotografování se nezdařilo."
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Otočit"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Dalším stisknutím tlačítka Zpět se vrátíte na předchozí obrazovku."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Nedostatek paměti. Odstraňte některé položky"
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Seznam záložek je plný Odstraňte některé záložky."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Žlutá"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "Virtuální 7.1 kan."
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Titulky (skryté)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Režim opakování"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "Neopakovat"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Purpurová"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Zelená"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Barva písma"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Azurová"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Vlastní"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Akt. video (jednou)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Info o připojení"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Změnit přehrávač"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Zachytit"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Vybrat zařízení"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Dostupná zařízení"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Reprod."
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Bílá"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Červená"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s s"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Rychlost přehrávání"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d s"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Vypnuto"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Žádný název"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "Toto zařízení"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Výchozí písmo"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Modrá"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Černá"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Aktivace"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Ukončit aplikaci?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Zruš."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Zast. po přeh. všech"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Opakovat aktuální"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Opakovat vše"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Rozlišení"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "Reproduktor nepodporuje zvukové efekty %s."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Obrácením telefonu ztlumíte příchozí hovory, upozornění na zprávy a upozornění."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "SD karta"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Tento soubor podporuje pouze zvuková data. Nyní se přehrává zvuk."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Tento soubor podporuje pouze obrazová data. Nyní se přehrává video."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Soukromé úložiště"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Sluchátka"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Reproduktor"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Pauza"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Stáhnout"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Vyberte titulky (skryté)"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Náhled titulků (skryté)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Připojení se nezdařilo."
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Režim opakování"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Nepodporovaný typ souboru."
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Normální"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Mluvené slovo"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Filmy"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Zvuková stopa"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Uk. do pam..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Formát souboru"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Jazyk"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Žádné videoklipy"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Velikost"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Hot."
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Aktualizovat"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Datum"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Načítání..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Titulky (skryté)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Odstranit"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Přidat na dom. obrazovku"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Jméno"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Nelze přehrát video."
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "Žádné titulky nejsou k dispozici"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Přehrát"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Zavřít"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "Neplatná adresa URL."
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Chyba"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Paměť zařízení"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Videopřehrávač"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Sdílet přes"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Došlo k chybě sítě. Opakujte akci."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Tento formát souboru podporuje pouze zvuková data. Nyní se přehrává zvuk."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Tento formát souborů podporuje pouze video data. Nyní se přehrává video."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Střed"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "Zapnuto"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Nastavení"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Videoklipy"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Sdílet"
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Podrobnosti"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Odstranit"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Ukládání do paměti – %d %"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Žádné"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d s"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Vyberte zvukové zařízení"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Odstranit"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Storno"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "Došlo k neznámé chybě nebo je soubor poškozený."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "Typ souboru není podporován."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "HOTOVO"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Celá ob."
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Zach. pom."
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ZRUŠIT"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Místo uložení"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Titulky (skryté)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Osobní úložiště"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "Titulky budou vypadat takto."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Soubor neexistuje."
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Vyp. Přehrát pouze zvuk"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Zap. Přehr. pouze zvuk"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Stisknutím tlačítka Domů nebo vypínače během přehrávání přehrajete pouze zvuk."
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Lysstyrke"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Musik"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Stemmer"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Placering"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Ukendt"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Sidst ændret"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Del"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Kan ikke afspille video"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "Der opstod en fejl med underteksterne."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "Filen er ødelagt, eller SD-kortet er blevet fjernet."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Detaljer"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Titel"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "Denne video vil blive slettet."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Indstillinger"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Kan ej afspille video"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Justering"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Skriftstørrelse"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Gentag indstilling"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Undertekster (CC)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Centrer"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Stor"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Venstre"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Mellem"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Højre"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Lille"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Næste"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Forrige"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "DRM-filer kan ikke deles."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Format"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Kan ikke afspille videoen under samtale."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Besked"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Filoverførsel"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "E-mail"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Længdegrad"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Breddegrad"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Akt. bevæg."
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "Annullerer med en hastighed på %sx."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Eksternt lager"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Lydstyrke"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Ikke-understøttet videoformat."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Filtype understøttes ikke."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Ikke-understøttet lydformat."
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Kan ikke bruge hurtig spoling frem og tilbage, når enheder i nærheden er aktiveret."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Kan ikke optage."
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Rotér"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Tryk på tilbagetasten igen for at vende tilbage til den forrige skærm."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Der er ikke tilstrækkelig hukommelse. Slet nogle elementer."
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Bogmærkelisten er fuld. Slet nogle bogmærker."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Gul"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "Virtuel 7.1-kan."
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Undertekster (CC)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Gentagelsestilstand"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "Gentag ikke"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Pink"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Grøn"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Skriftfarve"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Cyan"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Brugerdefineret"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Akt. video (én gang)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Forbindelsesopl."
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Skift afspiller"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Tag billede"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Vælg enhed"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Tilgængelige enheder"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Højttaler"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Hvid"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Rød"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s sekunder"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Afspilningshastighed"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d sek."
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Fra"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Ingen titel"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "Min enhed"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Standardskrifttype"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Blå"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Sort"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Aktivering"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Luk program?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Afbr."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Stop efter alle"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Gentag aktuel"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Gentag alle"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Opløsning"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "%s lydeffekter understøttes ikke af højttaler."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Sæt telefonens indgående opkald, beskedvarsler og alarmer på lydløs."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "SD-kort"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Kun lyddata understøttes af denne fil. Spiller lyd nu."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Kun videodata understøttes af denne fil. Spiller video nu."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Privat lager"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Høretelefoner"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Højttaler"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Pause"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Download"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Vælg undertekster (CC)"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Vis eks. på undertekster (CC)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Forbindelsen\nmislykkedes."
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Gentagelsestilstand"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Filtype understøttes ikke."
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Normal"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Stemme"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Film"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Lydspor"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Gemmer..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Filformat"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Sprog"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Ingen videoer"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Størrelse"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Udført"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Opdatér"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Dato"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Indlæser..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Undertekster (CC)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Slet"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Føj til startskærm"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Navn"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Kan ikke afspille videoklip."
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "Der findes ingen undertekster"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Afspil"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Luk"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "Ugyldig URL."
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Fejl"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Enhedslager"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Video"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Del via"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Der opstod en netværksfejl. Prøv igen."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Dette filformat understøtter kun lyddata. Spiller lyd nu."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Kun videodata understøttes af dette filformat. Afspiller video nu."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Midt"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "Til"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Indstillinger"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Video"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Del"
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Detaljer"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Slet"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Gemmer - %d %"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Ingen"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d sek."
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Vælg lydenhed"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Slet"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Annullér"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "Der opstod en ukendt fejl, eller filen kan være beskadiget."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "Denne filtype understøttes ikke."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "UDFØRT"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Fuld"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Bev. forh."
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ANNULLER"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Lagerplacering"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Undertekster (CC)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Personligt lager"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "Undertekster kommer til at se sådan ud."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Fil findes ikke."
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Deak. Afspil kun lyd"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Akt. Afspil kun lyd"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Tryk på starttasten eller tænd/sluk-tasten for kun at afspille lyd."
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Helligkeit"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Musik"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Stimmen"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Standort"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Unbekannt"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Letzte Änderung"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Senden"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Keine Video-Wiedergabe möglich"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "Bei den Untertiteln ist ein Fehler aufgetreten."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "Die Datei ist beschädigt, oder die SD-Karte wurde entfernt."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Details"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Titel"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "Dieses Video wird gelöscht."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Einstellungen"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Videowiedergabe nicht möglich."
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Ausrichtung"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Schriftgröße"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Einstellung wiederholen"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Untertitel (CC)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Mitte"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Groß"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Links"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Mittel"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Rechts"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Klein"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Weiter"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Zurück"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "DRM-Dateien können nicht freigegeben werden."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Format"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Video kann während eines Anrufs nicht wiedergegeben werden"
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Nachr."
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Dateiübertragung"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "E-Mail"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Länge"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Breite"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Aktivieren"
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "Scrubbing mit %s-facher Geschwindigkeit."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Externer Speicher"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Lautstärke"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Nicht unterstütztes Videoformat"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Nicht unterstützter Dateityp"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Nicht unterstütztes Audioformat"
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Der Vor- und Rücklauf kann nicht verwendet werden, wenn „Geräte in der Nähe“ (DLNA) eingeschaltet ist."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Aufnahme nicht möglich."
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Ausrichten"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Drücken Sie die Zurück-Taste erneut, um zum vorherigen Bildschirm zurückzukehren."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Nicht genügend Speicher. Löschen Sie einige Elemente"
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Favoritenliste voll. Löschen Sie einige Favoriten"
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Gelb"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "7.1 Kanäle virtuell"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Untertitel (CC)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Wiederholungsmodus"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "Keine Wiederholung"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Magenta"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Grün"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Schriftfarbe"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Zyan"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Benutzerdefiniert"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Akt. Video (einmal)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Verbindungs-Info"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Player wechseln"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Aufnahme"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Gerät auswählen"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Verfügbare Geräte"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Lautspr."
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Weiß"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Rot"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s Sekunden"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Wiedergabegeschwindigkeit"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d Sek."
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Aus"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Kein Titel"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "Mein Gerät"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Standardschriftart"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool Jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Schoko-Cookie"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Blau"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Schwarz"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Aktivierung"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Anwendung schließen?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Abbr."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Nach allen anh."
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Aktuelles wiederh."
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Alle wiederholen"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Auflösung"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "%s Soundeffekte werden vom Lautsprecher nicht unterstützt."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Telefon zum Stummschalten von eingehenden Anrufen, Nachrichtensignalen und Alarmen umdrehen."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "SD-Karte"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Für diese Datei werden nur Audiodaten unterstützt. Audio wird jetzt wiedergegeben."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Für diese Datei werden nur Videodaten unterstützt. Video wird jetzt wiedergegeben."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Privater Speicher"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Kopfhörer"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Lautspr."
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Pause"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Herunterladen"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Untertitel auswählen (CC)"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Untertitel-Vorschau (CC)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Verbindung fehlgeschlagen"
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Wiederholungsmodus"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Nicht unterstützter Dateityp"
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Normal"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Sprache"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Filme"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Audiotitel"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Puffern..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Dateiformat"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Sprache"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Keine Videos"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Größe"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Fertig"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Aktu."
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Datum"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Lädt..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Untertitel (CC)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Löschen"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Zum Startbildschirm hzfg."
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Name"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Video kann nicht wiedergegeben werden"
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "Keine Untertitel verfügbar"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Starten"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Schließen"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "Ungültige URL"
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Fehler"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Gerätespeicher"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Video-Player"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Senden via"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Ein Netzwerkfehler ist aufgetreten. Versuchen Sie es erneut."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Von diesem Dateiformat werden nur Audiodaten unterstützt. Audio wird jetzt wiedergegeben."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Dieses Dateiformat unterstützt nur Videodaten. Video wird jetzt abgespielt."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Mitte"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "Ein"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Einstellungen"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Videos"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Senden"
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Details"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Löschen"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Puffern – %d %"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Keine"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d s"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Audiogeräteauswahl"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Löschen"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Abbruch"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "Unbekannter Fehler aufgetreten oder Datei beschädigt."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "Dieser Dateityp wird nicht unterstützt."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "FERTIG"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Voll"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Form. behalt."
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ABBRECHEN"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Speicherort"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Untertitel (CC)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Persönlicher Speicher"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "So sehen Untertitel aus."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Datei nicht vorhanden"
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Nur Audiowdg. deaktivieren"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Nur Audiowdg. aktivieren"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Während der Wiedergabe die Home- oder die Ein-/Aus-Taste drücken, um nur Audio wiederzugeben."
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Φωτεινότητα"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Μουσική"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Φωνές"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Τοποθεσία"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Άγνωστο"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Τελευταία τροποποίηση"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Κοινή χρήση"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Αδύνατη η αναπαραγωγή βίντεο"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "Παρουσιάστηκε σφάλμα με τους υπότιτλους."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "Το αρχείο είναι κατεστραμμένο ή έχει αφαιρεθεί η κάρτα SD."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Λεπτομέρειες"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Τίτλος"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "Το βίντεο θα διαγραφεί."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Ρυθμίσεις"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Αδύν. η αναπαρ. του βίντεο"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Στοίχιση"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Μέγ. γραμματοσειράς"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Επανάληψη ρύθμισης"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Υπότιτλοι (CC)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Σεντρ"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Μεγάλο"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Αριστερό"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Μεσαίο"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Δεξιά"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Μικρό"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Επόμενο"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Προηγούμενο"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "Δεν είναι δυνατή η κοινή χρήση αρχείων DRM."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Μορφή"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Δεν είναι δυνατή η αναπαραγωγή βίντεο κατά την κλήση."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Μήνυμα"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Μεταφορά αρχείου"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Email"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Γεωγραφικό μήκος"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Γεωγραφικό πλάτος"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Ενερ. κίνησης"
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "Ταχύτητα ρυθμού ολίσθησης %sx."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Εξωτ. χώρος αποθήκ."
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Ένταση"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Μη υποστηριζόμενη μορφή βίντεο."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Μη υποστηριζόμενος τύπος αρχείου."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Μη υποστηριζόμενη μορφή ήχου."
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Δεν είναι δυνατή η χρήση της γρήγορης προώθησης και επαναφοράς, όταν είναι ενεργοποιημένες κοντινές συσκευές."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Δεν είναι δυνατή η λήψη."
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Περιστροφή"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Πατήστε το πλήκτρο επιστροφής ξανά για να επιστρέψετε στην προηγούμενη οθόνη."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Δεν υπάρχει αρκετή μνήμη. Διαγράψτε ορισμένα στοιχεία"
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Η λίστα σελιδοδεικτών είναι πλήρης. Θέλετε να διαγράψετε μερικούς σελιδοδείκτες."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Κίτρινο"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "Εικονικό κανάλι 7.1"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Υπότιτλοι (CC)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Λειτουργία επανάληψης"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "Χωρίς επανάληψη"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Ματζέντα"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Πράσινο"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Χρώμα γραμματοσειράς"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Γαλάζιο"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Προσαρ."
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Τρεχ.βίντ.(μία φορά)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Πληροφορίες σύνδεσης"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Αλλαγή player"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Λήψη"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Επιλογή συσκευής"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Διαθέσιμες συσκευές"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Ηχείο"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Λευκό"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Κόκκινο"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s δευτερόλεπτα"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Ταχύτητα αναπαραγωγής"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d δευτ."
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Ανενεργό"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Χωρίς τίτλο"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "Η συσκευή μου"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Προεπιλεγμένη γραμματοσειρά"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Μπλε"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Mαύρο"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Ενεργοποίηση"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Τερματισμός εφαρμογής;"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Άκυρο"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Όλα και μετά διακοπή"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Επανάληψη τρέχοντος"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Επανάληψη όλων"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Ανάλυση"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "Τα εφέ ήχου %s δεν υποστηρίζονται από το ηχείο."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Για την πραγματοποίηση σίγασης των εισερχόμενων κλήσεων, των ειδοποιήσεων μηνυμάτων και των αφυπνίσεων, γυρίστε ανάποδα το τηλέφωνο."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "Κάρτα SD"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Υποστηρίζονται μόνο δεδομένα ήχου από αυτό το αρχείο. Γίνεται αναπαραγωγή του ήχου."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Υποστηρίζονται μόνο δεδομένα βίντεο από αυτό το αρχείο. Γίνεται αναπαραγωγή του βίντεο."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Απόρρητος χώρος αποθήκευσης"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Ακουστικά"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Ηχείο"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Παύση"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Λήψη"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Επιλογή υπότιτλων (CC)"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Προεπισκόπηση υποτίτλων (CC)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Αποτυχία σύνδεσης. Επανάληψη;"
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Λειτ. επανάληψης"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Μη υποστηριζόμενος τύπος αρχείου."
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Κανονικό"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Φωνή"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Ταινίες"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Ηχητικό κομμάτι"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Buffering..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Μορφή αρχείου"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Γλώσσα"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Δεν βρέθηκαν βίντεο"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Μέγεθος"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Τέλος"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Ανανέωση"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Ημερομηνία"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Φόρτωση..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Υπότιτλοι (CC)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Διαγραφή"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Προσθήκη στην αρχική οθόνη"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Όνομα"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Δεν είναι δυνατή η αναπαραγωγή βίντεο."
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "Δεν υπάρχουν διαθέσιμοι υπότιτλοι"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Αναπαραγωγή"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Κλείσιμο"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "Άκυρο URL."
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Σφάλμα"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Χώρος αποθήκευσης συσκευής"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Αναπαραγ. Βίντεο"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Κοινή χρήση μέσω"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Προέκυψε σφάλμα δικτύου. Δοκιμάστε ξανά."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Υποστηρίζονται μόνο δεδομένα ήχου από αυτήν τη μορφή αρχείου. Γίνεται αναπαραγωγή του ήχου."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Υποστηρίζονται μόνο δεδομένα βίντεο από αυτήν τη μορφή αρχείου. Γίνεται αναπαραγωγή του βίντεο."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Κέντρο"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "Ενεργό"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Ρυθμίσεις"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Βίντεο"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Κοιν.χρ"
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Λεπτομέρειες"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Διαγραφή"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Προσωρινή αποθήκευση - %d%"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Κανένα"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d δευτ."
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Επιλογή συσκευής ήχου"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Διαγραφή"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Ακύρωση"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "Προέκυψε άγνωστο σφάλμα ή το αρχείο μπορεί να είναι κατεστραμμένο."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "Αυτός ο τύπος αρχείου δεν υποστηρίζεται."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "ΤΕΛΟΣ"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Πλήρες"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Διατ.αναλ."
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ΑΚΥΡΟ"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Θέση αποθήκευσης"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Υπότιτλοι (CC)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Προσωπικός χώρος αποθήκευσης"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "Οι λεζάντες θα έχουν την εξής μορφή"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Δεν υπάρχει αρχείο."
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Απεν.«Μόνο αναπ. ήχου»"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Ενερ.«Μόνο αναπ. ήχου»"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Πιέστε το κεντρικό πλήκτρο ή το πλήκτρο ενεργοποίησης κατά τη διάρκεια της αναπαραγωγής για να ακούτε μόνο τον ήχο."
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Brightness"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Music"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Voices"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Location"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Unknown"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Last modified"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Share"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Cannot play video"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "An error occurred with the subtitles."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "The file is corrupted or the SD card has been removed."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Details"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Title"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "This video will be deleted."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Settings"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Unable to play video"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Alignment"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Font size"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Repeat setting"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Subtitles (CC)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Centre"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Large"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Left"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Medium"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Right"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Small"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Next"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Previous"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "DRM files cannot be shared."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Format"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Unable to play video during call."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Message"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "File transfer"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Email"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Longitude"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Latitude"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Enable motion"
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "Scrubbing at %sx speed."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "External storage"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Volume"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Unsupported video format."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Unsupported file type."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Unsupported audio format."
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Unable to use fast forward and rewind when nearby devices are enabled."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Unable to capture."
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Rotate"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Press the back key again to return to previous screen."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Not enough memory. Delete some items."
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Bookmark list full. Delete some bookmarks."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Yellow"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "Virtual 7.1 ch"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Subtitles (CC)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Repeat mode"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "No repeat"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Magenta"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Green"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Font colour"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Cyan"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Custom"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Current video (once)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Connection info"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Change player"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Capture"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Select device"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Available devices"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Speaker"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "White"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Red"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s seconds"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "Pop"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Play speed"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d secs"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Off"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "No title"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "My device"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Default font"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool Jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco Cooky"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Blue"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Black"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Activation"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Close application?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Cancel"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Stop after all"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Repeat current"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Repeat all"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Resolution"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "%s sound effects not supported by speaker."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Turn phone over to mute incoming calls, message alerts, and alarms."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "SD card"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Only audio data supported by this file. Now playing audio."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Only video data supported by this file. Now playing video."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Private storage"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Headphones"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Speaker"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Pause"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Download"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Select subtitles (CC)"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Preview subtitles (CC)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Connection failed."
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Repeat mode"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Unsupported file type."
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Normal"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Voice"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Movies"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Audio track"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Buffering..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "File format"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Language"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "No videos"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Size"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Done"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Refresh"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Date"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Loading..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Subtitles (CC)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Delete"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Add to home screen"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Name"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Unable to play video."
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "No subtitles available"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Play"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Close"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "Invalid URL."
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Error"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Device storage"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Video Player"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Share via"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "A network error has occurred. Try again."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Only audio data supported by this file format. Now playing audio."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Only video data supported by this file format. Now playing video."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Centre"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "On"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Settings"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Videos"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Share"
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Details"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Delete"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Buffering - %d%"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "None"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d secs"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Select audio device"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Delete"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Cancel"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "An unknown error has occurred or the file may be corrupt."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "This file type is not supported."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "DONE"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Full"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Keep ratio"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "CANCEL"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Storage location"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Subtitles (CC)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Personal storage"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "Captions will look like this."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "This file does not exist."
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Disable Play audio only"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Enable Play audio only"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Press the Home key or the Power key during playback to play audio only."
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Brightness"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Music"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Voices"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Location"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Unknown"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Last modified"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Share"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Cannot play video"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "An error occurred with the subtitles."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "The file is corrupted or the SD card has been removed."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Details"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Title"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "This video will be deleted."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Settings"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Unable to play video"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Alignment"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Font size"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Repeat setting"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Subtitles (CC)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Center"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Large"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Left"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Medium"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Right"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Small"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Next"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Previous"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "DRM files cannot be shared."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Format"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Unable to play video during call."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Message"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "File transfer"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Email"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Longitude"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Latitude"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Enable motion"
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "Scrubbing at %sx speed."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "External storage"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Volume"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Unsupported video format."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Unsupported file type."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Unsupported audio format."
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Unable to use fast forward and rewind when nearby devices are enabled."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Unable to capture."
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Rotate"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Press the back key again to return to previous screen."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Not enough memory. Delete some items"
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Bookmark list full. Delete some bookmarks"
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Yellow"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "Virtual 7.1 ch"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Subtitles (CC)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Repeat mode"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "No repeat"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Magenta"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Green"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Font color"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Cyan"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Custom"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Current video (once)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Connection info"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Change player"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Capture"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Select device"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Available devices"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Speaker"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "White"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Red"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s seconds"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Play speed"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d secs"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Off"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "No title"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "My device"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Default font"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool Jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Blue"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Black"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Activation"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Close application?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Cancel"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Stop after all"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Repeat current"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Repeat all"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Resolution"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "%s sound effects not supported by speaker."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Turn phone over to mute incoming calls, message alerts, and alarms."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "SD card"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Only audio data supported by this file. Now playing audio."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Only video data supported by this file. Now playing video."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Private storage"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Headphones"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Speaker"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Pause"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Download"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Select subtitles (CC)"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Preview subtitles (CC)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Connection failed."
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Repeat mode"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Unsupported file type."
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Normal"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Voice"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Movies"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Audio track"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Buffering..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "File format"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Language"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "No videos"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Size"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Done"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Refresh"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Date"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Loading..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Subtitles (CC)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Delete"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Add to home screen"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Name"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Unable to play video."
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "No subtitles available"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Play"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Close"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "Invalid URL."
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Error"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Device storage"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Video Player"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Share via"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "A network error has occurred. Try again."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Only audio data supported by this file format. Now playing audio."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Only video data supported by this file format. Now playing video."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Center"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "On"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Settings"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Videos"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Share"
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Details"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Delete"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Buffering - %d%"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "None"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d secs"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Select audio device"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Delete"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Cancel"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "An unknown error has occurred or the file may be corrupt."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "This file type is not supported."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "DONE"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Full"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Keep ratio"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "CANCEL"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Storage location"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Subtitles (CC)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Personal storage"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "Captions will look like this"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "This file does not exist."
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Disable Play audio only"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Enable Play audio only"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Press the Home key or the Power key during playback to play audio only."
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Brightness"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Music"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Voices"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Location"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Unknown"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Last modified"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Share"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Cannot play video"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "An error occurred with the subtitles."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "The file is corrupted or the SD card has been removed."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Details"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Title"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "This video will be deleted."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Settings"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Unable to play video"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Alignment"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Font size"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Repeat setting"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Subtitles (CC)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Center"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Large"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Left"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Medium"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Right"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Small"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Next"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Previous"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "DRM files cannot be shared."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Format"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Unable to play video during call."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Message"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "File transfer"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Email"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Longitude"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Latitude"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Turn on motion"
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "Scrubbing at %sx speed."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "External storage"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Volume"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Unsupported video format."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Unsupported file type."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Unsupported audio format."
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Unable to use fast forward and rewind when nearby devices are turned on."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Unable to capture."
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Rotate"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Press the back key again to return to previous screen."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Not enough memory. Delete some items."
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Bookmark list full. Delete some bookmarks."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Yellow"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "Virtual 7.1 ch"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Subtitles (CC)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Repeat mode"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "No repeat"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Magenta"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Green"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Font color"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Cyan"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Custom"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Current video (once)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Connection info"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Change player"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Capture"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Select device"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Available devices"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Speaker"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "White"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Red"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s seconds"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Play speed"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d sec"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Off"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "No title"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "My device"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Default font"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool Jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Blue"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Black"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Activation"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Close application?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Cancel"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Stop after all"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Repeat current"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Repeat all"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Resolution"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "%s sound effects not supported by speaker."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Turn phone over to mute incoming calls, message alerts, and alarms."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "SD card"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Only audio data supported by this file. Now playing audio."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Only video data supported by this file. Now playing video."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Private storage"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Headphones"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Speaker"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Pause"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Download"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Select subtitles (CC)"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Preview subtitles (CC)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Connection failed."
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Repeat mode"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Unsupported file type."
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Normal"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Voice"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Movies"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Audio track"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Buffering..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "File format"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Language"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "No videos"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Size"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Done"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Refresh"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Date"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Loading..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Subtitles (CC)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Delete"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Add to Home screen"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Name"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Unable to play video."
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "No subtitles available"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Play"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Close"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "Invalid Web address."
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Error"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Device storage"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Video Player"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Share via"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "A network error has occurred. Try again."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Only audio data supported by this file format. Now playing audio."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Only video data supported by this file format. Now playing video."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Center"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "On"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Settings"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Videos"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Share"
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Details"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Delete"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Buffering - %d%"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "None"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d sec"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Select audio device"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Delete"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Cancel"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "An unknown error has occurred or the file may be corrupt."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "This file type is not supported."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "DONE"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "CANCEL"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Full"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Keep ratio"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Storage location"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Subtitles (CC)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Personal storage"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "Captions will look like this."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "This file does not exist."
+
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Turn off Play audio only"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Turn on Play audio only"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Press the Home key or the Power key during playback to play audio only."
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Brillo"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Música"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Voces"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Ubicación"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Desconocido"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "Aceptar"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Modificado por última vez"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Compartir"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "No es posible reproducir vídeo"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "Se ha producido un error con los subtítulos."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "El archivo está dañado o se ha retirado la tarjeta SD."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Detalles"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Título"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "Se eliminará este vídeo"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Ajustes"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "No se puede reproducir vídeo"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Alineación"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Tamaño de fuente"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Repetir ajuste"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Subtítulos (CC)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Centro"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Grande"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Izquierda"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Medio"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Derecha"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Pequeño"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Siguiente"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Anterior"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "Los archivos DRM no se pueden compartir."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Formato"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "No se puede reproducir vídeo durante la llamada"
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Mensaje"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Transfer archivos"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Correo elect"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Longitud"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Latitud"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Activar mov"
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "Depurando a velocidad %sx."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Almacenamiento externo"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Volumen"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Formato de vídeo no admitido"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Tipo de archivo no admitido"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Formato de audio no compatible"
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "No se puede usar rebobinado y avance rápido cuando se han habilitado los dispositivos cercanos"
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "No se puede capturar"
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Rotar"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Vuelva a pulsar la tecla Atrás para volver a la pantalla anterior"
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "No hay memoria suficiente. Elimine algunos elementos."
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Lista de favoritos llena. Elimine algunos favoritos."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Amarillo"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "7.1 canales virtuales"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Subtítulos (CC)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Modo Repetición"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "No repetir"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Magenta"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Verde"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Color de fuente"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Cian"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Personalizar"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Víd actual (una vez)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Info de conexión"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Cambiar reproductor"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Capturar"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Seleccione dispositivo"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Disposit dispon"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Altavoz"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Blanco"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Romero"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Rojo"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s segundos"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Velocidad de reproducción"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d seg"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Desactivado"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Sin título"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "Mi dispositivo"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Fuente predeterminada"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Azul"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Negro"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Activación"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "¿Cerrar aplicación?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Canc."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Detener después todo"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Repetir actual"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Repetir todo"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Resolución"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "Efectos de sonido de %s no admitidos por el altavoz"
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Dé la vuelta al teléfono para silenciar las llamadas entrantes, las alertas de mensajes y las alarmas"
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "Tarjeta SD"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Este archivo solo admite datos de audio. Ahora se reproduce audio."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Este archivo solo admite datos de vídeo. Ahora se reproduce vídeo."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Almacenamiento privado"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Auriculares"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Altavoz"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Pausa"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Descargar"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Selecc subtítulos (CC)"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Previsualizar subtítulos (CC)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Error de conexión"
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Modo Repetición"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Tipo de archivo no admitido"
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Normal"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Voz"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Películas"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Pista de audio"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Alm. búfer..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Formato de archivo"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Idioma"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Sin vídeos"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Tamaño"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Hecho"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Actualizar"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Fecha"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Cargando..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Subtítulos (CC)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Eliminar"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Añadir a pantalla de inicio"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Nombre"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "No se puede reproducir vídeo"
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "No hay subtítulos disponibles"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Reproducir"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Cerrar"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "URL no válida"
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Error"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Almacenamiento del dispositivo"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Video"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Compartir"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Se ha producido un error de red. Vuelva a intentarlo."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Este formato de archivo solo admite datos de audio. Ahora se reproduce audio."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Este formato de archivo solo admite datos de vídeo. Se está reproduciendo vídeo."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Centro"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "Activado"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Ajustes"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Vídeos"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Compartir"
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Detalles"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Eliminar"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Almacenando en búfer: %d%"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Ninguna"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d s"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Seleccionar dispositivo de audio"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Eliminar"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Cancelar"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "Se ha producido un error desconocido o es posible que el archivo esté dañado."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "Este tipo de archivo no es compatible."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "HECHO"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Completa"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Proporción"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "CANCELAR"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Ubicación almacenamiento"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Subtítulos (CC)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Almacenamiento personal"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "Los subtítulos se verán así"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "El archivo no existe"
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Desact Repr solo audio"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Activ Repr solo audio"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Pulse el botón Inicio o el botón Encendido durante la reproducción para reproducir solo audio."
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Brillo"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Música"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Voz"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Ubicación"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Desconocido"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "Aceptar"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Modificado por última vez"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Compartir"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "No es posible reproducir video"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "Ocurrió un error con los subtítulos."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "El archivo está dañado o se retiró la tarjeta de memoria."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Detalles"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Título"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "Este video se eliminará."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Ajustes"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "No se puede reproducir video"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Alineación"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Tamaño de fuente"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Repetir configuración"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Subtítulos (CC)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Central"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Grande"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Izquierda"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Medio"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Derecha"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Pequeño"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Siguiente"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Anterior"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "No es posible compartir archivos DRM."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Formato"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "No es posible reproducir video durante la llamada."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Mensaje"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Transfer. de archivo"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Correo"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Longitud"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Latitud"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Activar mov."
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "Depurando a %sx."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Almacenamiento externo"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Volumen"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Formato de video no admitido."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Tipo de archivo no admitido."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Formato de audio no compatible."
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "No es posible usar avanzar rápido y retroceder cuando dispositivos cercanos está activado."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "No es posible capturar."
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Rotar"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Presione la tecla Atrás nuevamente para regresar a la pantalla anterior."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Memoria insuficiente. Elimine algunos elementos"
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Lista de Favoritos llena. Elimine algunos."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Amarillo"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "Virtual 7.1 ch"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Subtítulos (CC)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Modo de repetición"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "No repetir"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Magenta"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Verde"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Color de fuente"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Cian"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Personalizado"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Video act. (una vez)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Inform. de conexión"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Cambiar reproductor"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Capturar"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Seleccionar dispositivo"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Dispositivos disponibles"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Altavoz"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Blanco"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Romero"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Rojo"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s segundos"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Velocidad de reproducción"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d seg."
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Desactivado"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Sin título"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "Mi dispositivo"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Fuente predeterminada"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool Jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Galleta de chocolate"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Azul"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Negro"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Activación"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "¿Cerrar aplicación?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Canc."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Detener desp. todo"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Repetir actual"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Repetir todo"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Resolución"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "Los efectos de sonido %s no son admitidos por el altavoz."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Gire el dispositivo para desactivar el sonido de las llamadas entrantes y las alarmas."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "Tarjeta de memoria"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Este archivo sólo admite datos de audio. Ahora se reproduce audio."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Este archivo sólo admite datos de video. Ahora se reproduce video."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Almacenamiento privado"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Auricular"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Altavoz"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Pausar"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Descargar"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Selecc. subtítulos (CC)"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Vista prev. de subtítulos (CC)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Error de conexión."
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Modo repetir"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Tipo de archivo no admitido."
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Normal"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Voz"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Películas"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Pista de audio"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Guardando..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Formato del archivo"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Idioma"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Sin videos"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Tamaño"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Aceptar"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Actualizar"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Fecha"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Cargando..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Subtítulos (CC)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Eliminar"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Añadir a pantalla de inicio"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Nombre"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "No es posible reproducir el video."
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "No hay subtítulos disponibles"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Reproducir"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Cerrar"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "URL no válida."
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Error"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Almacenamiento del dispositivo"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Video"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Compartir vía"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Se produjo un error de red. Inténtelo de nuevo."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Este formato de archivo sólo admite datos de audio. Ahora se reproduce audio."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Este formato de archivo solo admite datos de video. Ahora se reproduce video."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Centro"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "Activado"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Ajustes"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Videos"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Compartir"
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Detalles"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Eliminar"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Guardando: %d %"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Ninguno"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d s"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Seleccionar dispositivo de audio"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Eliminar"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Cancelar"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "Se produjo un error desconocido o el archivo puede estar dañado."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "Este tipo de archivo no es compatible."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "REALIZADO"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Completa"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Proporción"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "CANCELAR"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Ubicación de almacenam."
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Subtítulos (CC)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Almacenamiento personal"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "Los subtítulos se verán así"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "El archivo no existe."
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Desactivar solo audio"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Activar solo audio"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Presione la tecla Inicio o la tecla Encendido durante la reproducción para reproducir solo el audio."
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Heledus"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Muusika"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Hääled"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "kB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Asukoht"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Tundmatu"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Viimati muudetud"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Jaga"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Videot ei saa esitada"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "Subtiitritega ilmnes tõrge."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "Fail on rikutud või SD-kaart on eemaldatud."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Üksikasjad"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Pealkiri"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "See video kustutatakse."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Seaded"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Videot ei saa esitada"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Joondamine"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Fondi suurus"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Korduse seadistus"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Subtiitrid (peittiitrid)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Keskel"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Suur"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Vasakul"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Keskmine"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Paremal"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Väike"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Järgmine"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Eelmine"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "DRM-faile ei saa jagada."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Vorminda"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Kõne ajal ei saa videot esitada."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Sõnum"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Failiedastus"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "E-kiri"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Pikkuskraad"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Laiuskraad"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Luba liik."
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "Kaapimine %sx kiirusel."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Välismälu"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Helitugevus"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Mittetoetatud videovorming."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Toetuseta failitüüp."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Mittetoetatud helivorming."
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Kui lähedalolevad seadmed aktiveeritakse, ei saa te kasutada edasi- ja tagasikerimist."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Jäädvustamine nurjus."
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Pööra"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Eelmisele kuvale naasmiseks vajutage uuesti tagasiliikumise klahvi."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Mälu pole piisavalt. Kustutage mõned üksused"
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Järjehoidjate loend on täis.\nKustutage mõned järjehoidjad."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Kollane"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "Virtuaal. kanal 7.1"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Subtiitrid (peittiitrid)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Kordusrežiim"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "Ei korda"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Magenta"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Roheline"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Fondi värv"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Tsüaan"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Kohandatud"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Praegune video (1x)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Ühenduse teave"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Vaheta mängijat"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Jäädvusta"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Vali seade"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Saadaolevad seadmed"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Val.hääl."
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Valge"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Punane"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s sekundit"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Esituskiirus"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d sek"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Väljas"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Pealkirjata"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "Minu seade"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Vaikefont"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Sinine"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Must"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Aktiveerimine"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Kas sulgeda rakendus?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Tühis."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Lõpeta pärast kõiki"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Korda praegust"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Korda kõik"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Eraldusvõime"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "Valjuhääldi ei toeta rakenduse %s heliefekte."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Saabuvate konede, sonumi marguannete ja teiste marguannete vaigistamiseks keerake telefon umber."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "SD-kaart"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "See fail toetab ainult heliandmeid. Nüüd esitatakse heli."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "See fail toetab ainult videoandmeid. Nüüd esitatakse videot."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Privaatne mälu"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Kõrvaklapid"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Kõlar"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Paus"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Laadi alla"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Vali subt. (peittiitrid)"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Eelvaate subt. (peittiitrid)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Ühendamine nurjus."
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Kordusrežiim"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Toetuseta failitüüp."
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Tavaline"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Hääl"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Filmid"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Helipala"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Puhverdamine"
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Failivorming"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Keel"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Videoid pole"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Suurus"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Valmis"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Värskenda"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Kuupäev"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Laadimine..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Subt. (peittiitrid)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Kustuta"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Lisa avaekraanile"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Nimi"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Videot ei saa esitada."
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "Subtiitrid pole saadaval"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Esita"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Sulge"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "Vigane URL."
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Tõrge"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Seadme mälu"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Videomängija"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Jaga:"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Ilmnes võrgutõrge. Proovige uuesti."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "See failvorming toetab ainult heliandmeid. Nüüd esitatakse heli."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "See failvorming toetab ainult videoandmeid. Nüüd esitatakse videot."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Keskele"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "Sees"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Seaded"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Videod"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Jaga"
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Üksikasjad"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Kustuta"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Puhverdamine – %d%"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Puudub"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d sek"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Heliseadme valimine"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Kustuta"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Tühista"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "Ilmnes tundmatu tõrge või fail on rikutud."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "Seda failitüüpi ei toetata."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "VALMIS"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Täisekr."
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Hoia kuva."
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "TÜHISTA"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Salvestamise asukoht"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Subtiitrid (peittiitrid)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Isiklik mälu"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "Pealdised näevad välja nii"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Seda faili pole olemas."
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Desakt. Esita ain. heli"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Akt. Esita ainult heli"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Vajutage taasesituse ajal avaekraani klahvi või toitenuppu, et esitada ainult heli."
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Argitasuna"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Musika"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Ahotsak"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Kokalekua"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Ezezaguna"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "Ados"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Azken aldaketa"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Partekatu"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Ezin da bideoa erreproduzitu"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "Errore bat gertatu da azpitituluekin."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "Fitxategia hondatuta dago edo SD txartela kendu egin da."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Xehetasunak"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Izenburua"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "Bideo hau ezabatuko da"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Ezarpenak"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Ezin da bideoa erreproduzitu"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Lerrokatzea"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Letraren neurria"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Errepikatu ezarpena"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Azpitituluak (CC)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Erdikoa"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Handia"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Ezkerra"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Ertaina"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Eskuinekoa"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Txikia"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Hurrengoa"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Aurrekoa"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "Ezin dira DRM fitxategiak partekatu"
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Formateatu"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Ezin da bideoa erreproduzitu deia egiten ari den bitartean"
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Mezua"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Fitx. transferentzia"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Helb. elek."
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Longitudea"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Latitudea"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Gaitu mugim."
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "%sx-ko abiaduran aurreratzea"
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Kanpo memoria"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Bolumena"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Bideoaren formatua ez dago onartuta"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Fitxategi mota ez bateragarria"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Audioaren formatua ez dago onartuta"
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Ezin dira aurreratzeko eta atzeratzeko aukerak erabili gertuko gailuak gaitzen direnean"
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Ezin da irudia hartu"
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Biratu"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Aurreko pantailara itzultzeko, sakatu berriro atzera-tekla"
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Ez dago memoria nahikoa. Elementu batzuk ezabatu."
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Laster-marka zerrenda beteta dago.Laster-marka batzuk ezabatu."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Horia"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "7.1 kate birtuala"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Azpitituluak (CC)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Errepikapen modua"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "Ez errepikatu"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Magenta"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Berdea"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Letra kolorea"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Zian"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Pertsonalizatua"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Bideo hau (behin)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Konexio informazioa"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Aldatu erreproduktorea"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Kapturatu"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Aukeratu gailua"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Gailu eskuragarriak"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Bozgor."
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Zuria"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Gorria"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s segundo"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Erreprodukzioaren abiadura"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d seg"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Desaktibatuta"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Izenbururik ez"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "Nire gailua"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Lehenetsitako letra mota"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Urdina"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Beltza"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Aktibazioa"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Aplikazioa itxi?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Ezez."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Eten denen ondoren"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Errepikatu hau"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Errepikatu dena"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Bereizmena"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "Bozgorailuak ez ditu %s soinu efektu onartzen"
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Itzuli telefonoa sarrera deiak, mezu alertak eta alarmak isilarazteko"
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "SD txar."
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Fitxategi honek audio datuak baino ez ditu onartzen. Audioa erreproduzitzen."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Fitxategi honek bideo datuak baino ez ditu onartzen. Bideoa erreproduzitzen."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Biltegi pribatua"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Aurikularrak"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Bozgorailua"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Eten"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Deskargatu"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Hautatu azpitituluak (CC)"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Aurreikusi azpitituluak (CC)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Konektatzerakoan errorea"
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Errepikatze modua"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Fitxategi mota ez bateragarria"
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Arrunta"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Ahotsa"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Filmak"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Audio pista"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Bufferreratzen..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Fitxategiaren formatua"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Hizkuntza"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Bideorik ez"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Tamaina"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Egina"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Eguneratu"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Data"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Kargatzen..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Azpidatziak (CC)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Ezabatu"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Gehitu hasierako pantailara"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Izena"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Ezin da bideoa erreproduzitu"
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "Ez dago azpidatzirik erabilgarri"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Erreproduzitu"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Itxi"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "URL baliogabea"
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Errorea"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Gailu biltegia"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Bideo Jogailua"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Partekatu honen bidez"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Sare errorea gertatu da. Saiatu berriz."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Fitxategi formatu honek onartzen dituen audio datuak soilik. Orain audioa erreproduzitzen."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Fitxategi formatu honek bideo datuak baino ez ditu onartzen. Bideoa erreproduzitzen."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Erdia"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "Aktibatuta"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Ezarpenak"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Bideoak"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Partek."
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Xehetasunak"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Ezabatu"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Bufferreratzen - %%d"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Batere ez"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d s"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Hautatu audio gailua"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Ezabatu"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Ezeztatu"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "Errore ezezaguna gertatu da edo baliteke fitxategia hondatuta egotea."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "Fitxategi mota hau ez da onartzen."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "EGINA"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Osoa"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Mantendu ratioa"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "UTZI"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Biltegiratze kokapena"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Azpitituluak (CC)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Biltegi pertsonala"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "Kapturak itxura hau izango du"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Fitxategia ez dago"
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Desgaitu Errepr. audioa soilik"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Gaitu Errepr. audioa soilik"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Erreproduzitu bitartean, sakatu Tekla nagusia edo Pizteko tekla audioa soilik erreproduzitzeko."
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Kirkkaus"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Musiikki"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Äänet"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "t"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "Gt"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "kt"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Sijainti"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "Mt"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Tuntematon"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Muutettu viimeksi"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Jaa"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Videota ei voi toistaa"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "Tekstityksessä tapahtui virhe."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "Tiedosto on vioittunut tai SD-kortti on poistettu."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Lisätiedot"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Otsikko"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "Tämä video poistetaan."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Asetukset"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Videota ei voi toistaa"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Kohdistus"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Fonttikoko"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Toistoasetus"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Tekstitys (CC)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Keskelle"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Suuri"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Vasemmalle"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Keskisuuri"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Oikealle"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Pieni"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Seuraava"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Edellinen"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "DRM-tiedostoja ei voi jakaa."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Muoto"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Puhelun aikana ei voi toistaa videota."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Viesti"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Tiedostonsiirto"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Sähköposti"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Pituusaste"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Leveysaste"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Käytä liikettä"
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "Hangataan %s-kertaisella nopeudella."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Ulk. tallennuslaite"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Äänenvoimakkuus"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Videomuotoa ei tueta."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Tiedostotyyppiä ei tueta."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Äänimuotoa ei tueta."
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Pikakelausta eteen- ja taaksepäin ei voi käyttää, kun lähellä olevat laitteet ovat käytössä."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Ei voi tehdä ruudunkaappausta."
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Kierrä"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Palaa edelliseen näyttöön painamalla paluunäppäintä uudelleen."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Muisti ei riitä. Poista joitain kohteita."
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Kirjanmerkkiluettelo täynnä. Poista kirjanmerkkejä."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Keltainen"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "Virtuaalinen 7.1-kanava"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Tekstitys (CC)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Toistotila"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "Ei toistoa"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Magenta"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Vihreä"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Kirjasimen väri"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Syaani"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Mukautettu"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Nyk. video (kerran)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Yhteystiedot"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Vaihda soitinta"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Tallenna"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Valitse laite"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Käyt. olevat laitt."
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Kaiutin"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Valkoinen"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Punainen"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s sekuntia"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Toistonopeus"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d s"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Pois"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Otsikko puuttuu"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "Oma laite"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Oletusfontti"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Sininen"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Musta"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Aktivointi"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Suljetaanko sovellus?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Per."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Pysäytä kaikk. jälk."
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Toista nykyinen"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Toista kaikki"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Tarkkuus"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "Kaiutin ei tue äänitehosteita %s."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Mykistä saapuvat puhelut, viestihälytykset ja herätykset kääntämällä puhelin ylösalaisin."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "SD-kort."
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Tiedosto tukee vain äänitietoja. Toistetaan ääntä."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Tiedosto tukee vain videotietoja. Toistetaan videota."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Yksityinen tallennustila"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Kuulokkeet"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Kaiutin"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Tauko"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Lataa"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Valitse tekstitys (CC)"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Esikatsele tekstitys (CC)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Yhdistäminen epäonnistui."
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Toistotila"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Tiedostotyyppiä ei tueta."
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Normaali"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Ääni"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Elokuvat"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Ääniraita"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Puskuroi..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Tiedostomuoto"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Kieli"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Ei videoita"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Koko"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Valmis"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Päivitä"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Päivämäärä"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Ladataan..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Tekstitys (CC)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Poista"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Lisää alkunäyttöön"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Nimi"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Videota ei voi toistaa."
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "Tekstityksiä ei ole käytettävissä"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Toista"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Sulje"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "Virheellinen URL-osoite"
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Virhe"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Laitteen muisti"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Videosoitin"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Jakotapa"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Verkkovirhe. Yritä uudelleen."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Tämä tiedostomuoto tukee vain äänitietoja. Toistetaan ääntä."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Tämä tiedostomuoto tukee vain videotietoja. Toistetaan videota."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Keskelle"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "Päälle"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Asetukset"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Videot"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Jaa"
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Lisätiedot"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Poista"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Puskuroidaan - %d %"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Ei mitään"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d s"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Valitse äänilaite"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Poista"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Peruuta"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "Tuntematon virhe tai tiedosto on ehkä vioittunut."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "Tätä tiedostotyyppiä ei tueta."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "VALMIS"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Koko n."
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Säilytä suhde"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "PERUUTA"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Tallennuspaikka"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Tekstitys (CC)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Henkilökohtainen tallennustila"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "Kuvatekstit näyttävät tältä."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Tiedostoa ei ole."
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Poista Toista vain ääntä k."
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Ota Toista vain ääntä k."
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Toista vain ääntä painamalla koti- tai virtanäppäintä toiston aikana."
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Luminosité"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Musique"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Voix"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "o"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "Go"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "Ko"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Localisation"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "Mo"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Inconnu"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Dernière modification"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Partager"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Lecture vidéo impossible"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "Une erreur s'est produite avec les sous-titres."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "Le fichier est corrompu ou la carte SD a été retirée."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Détails"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Titre"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "Cette vidéo va être supprimée."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Paramètres"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Impossible de lire la vidéo"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Alignement"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Taille de police"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Répéter le paramètre"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Sous-titres (codés)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Centre"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Grand"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Gauche"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Moyen"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Droit"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Petit"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Suivant"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Précédent"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "Impossible de partager les fichiers DRM."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Format"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Impossible de lire la vidéo pendant un appel."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Message"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Transfert fichiers"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "E-mail"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Longitude"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Latitude"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Act. mouvement"
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "Recherche à la vitesse %sx."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Stockage externe"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Volume"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Format vidéo non pris en charge"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Type de fichier non pris en charge"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Format audio non pris en charge"
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Impossible d'utiliser les fonctions d'avance et de retour rapides lorsque la fonction AllShare est activée."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Capture impossible"
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Pivoter"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Appuyez de nouveau sur la touche Retour pour revenir à l'écran précédent."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Mémoire insuffisante. Supprimez certains éléments."
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Liste de favoris saturée. Supprimer des favoris."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Jaune"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "Canal 7.1 virtuel"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Sous-titres (codés)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Mode répétition"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "Mode répétition désactivé"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Magenta"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Vert"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Couleur de la police"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Cyan"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Personnalisé"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Vidéo act. (1 fois)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Infos connexion"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Modifier le lecteur"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Capturer"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Sélectionner appareil"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Périph. disponibles"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "HP"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Blanc"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Rouge"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s secondes"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Vitesse de lecture"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d sec"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Désactivé"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Sans titre"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "Mon appareil"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Police par défaut"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Bleu"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Noir"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Activation"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Fermer l'application ?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Annul."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Arrêter après tout"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Répéter élém. actuel"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Tout répéter"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Résolution"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "Les effets sonores %s ne sont pas pris en charge par le haut-parleur."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Retournez le téléphone pour couper la sonnerie des appels entrants, des alertes de message et des alarmes."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "Carte SD"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Seules les données audio sont prises en charge par ce fichier. Audio en cours de lecture."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Seules les données vidéo sont prises en charge par ce fichier. Vidéo en cours de lecture."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Stockage privé"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Écouteurs"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Haut-parleur"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Pause"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Télécharger"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Sélectionner sous-titres"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Aperçu des sous-titres"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Échec de connexion au réseau."
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Mode répéter"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Type de fichier non pris en charge"
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Standard"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Voix"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Vidéos"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Piste audio"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Tampon..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Format de fichier"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Langue"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Aucune vidéo"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Taille"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "OK"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Rafraîchir"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Date"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Chargement..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Sous-titres (codés)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Supprimer"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Ajouter à l'écran d'accueil"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Nom"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Impossible de lire la vidéo."
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "Aucun sous-titre disponible"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Lire"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Fermer"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "URL non valide"
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Erreur"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Espace sur l'appareil"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Lecteur vidéo"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Partager via"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Une erreur réseau s'est produite. Réessayez."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Seules les données audio sont prises en charge par ce format de fichier. Audio en cours de lecture."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Seules les données vidéo sont prises en charge par ce format de fichier. Vidéo en cours de lecture."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Centrer"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "Activé"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Paramètres"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Vidéos"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Partage"
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Détails"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Supprimer"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Mise en mémoire tampon - %d %"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Aucune"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d s"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Sélectionner un appareil audio"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Supprimer"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Annuler"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "Une erreur inconnue est survenue ou le fichier est peut-être corrompu."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "Ce type de fichier n'est pas pris en charge."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "OK"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Pl. écr."
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Conserver"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ANNULER"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Emplacement de stockage"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Sous-titres (codés)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Stockage personnel"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "Aspect des sous-titres"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Fichier inexistant"
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Désactiver Mode Audio"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Activer Mode Audio"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Appuyez sur la touche Accueil ou la touche Marche pendant la lecture pour lire les données audio uniquement."
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Luminosité"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Musique"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Voix"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "O"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "Go"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "Ko"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Localisation"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "Mo"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Inconnu"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Dernière modification"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Partager"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Lecture vidéo impossible"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "Une erreur s'est produite avec les sous-titres."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "Le fichier est corrompu ou la carte SD a été retirée."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Détails"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Titre"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "Cette vidéo va être supprimée."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Réglages"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Impossible de lire la vidéo"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Alignement"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Taille de police"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Répéter le paramètre"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Sous-titres"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Centre"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Grand"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Gauche"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Moyen"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Droit"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Petit"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Suivant"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Précédent"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "Impossible de partager les fichiers GDN."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Format"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Impossible de jouer la vidéo pendant un appel."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Message"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Transfert fichiers"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Courriel"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Longitude"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Latitude"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Act mouvement"
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "Recherche à la vitesse %sx."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Stockage externe"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Volume"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Format vidéo non pris en charge."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Type de fichier non pris en charge."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Format audio non pris en charge."
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Impossible d'utiliser les fonctions d'avance et de retour rapides lorsque des appareils à proximité sont activés."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Capture impossible."
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Pivoter"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Appuyez de nouveau sur la touche retour pour revenir à l'écran précédent."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Mémoire insuffisante. Supprimez certains éléments"
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Liste de signets saturée. Supprimer des signets."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Jaune"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "Chaine 7.1 virtuelle"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Sous-titres"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Mode répétition"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "Mode répétition désactivé"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Magenta"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Vert"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Couleur de la police"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Cyan"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Personnalisé"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Vidéo act. (1 fois)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Infos connexion"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Modifier le lecteur"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Capturer"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Sélectionner périph."
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Appareils disponibles"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "HP"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Blanc"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Rouge"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s secondes"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Vitesse de lecture"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d s"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Désactivé"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Sans titre"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "Mon appareil"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Police par défaut"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Bleu"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Noir"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Activation"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Fermer l'application?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Annuler"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Arrêter après tout"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Répéter élém. actuel"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Tout répéter"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Résolution"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "Les effets sonores %s ne sont pas pris en charge par le hautparleur."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Retournez le téléphone pour couper la sonnerie des appels entrants, des alertes de message et des alarmes."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "Carte SD"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Seules les données audios sont prises en charge par ce fichier. Audio en cours de lecture."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Seules les données vidéos sont prises en charge par ce fichier. Vidéo en cours de lecture."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Stockage privé"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Écouteurs"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "HP"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Pause"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Télécharger"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Sélectionner sous-titres"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Aperçu des sous-titres"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Échec de connexion réseau."
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Mode répéter"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Type de fichier non pris en charge."
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Standard"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Voix"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Films"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Piste audio"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Tampon..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Format de fichier"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Langue"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Aucune vidéo"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Taille"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "OK"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Actualiser"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Date"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Chargement..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Sous-titres (codés)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Supprimer"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Ajouter à l'écran d'accueil"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Nom"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Impossible de lire la vidéo."
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "Aucun sous-titre disponible"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Lire"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Fermer"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "URL non valide."
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Erreur"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Espace sur l'appareil"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Lecteur vidéo"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Partager via"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Une erreur réseau s'est produite. Réessayez."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Seules les données audios sont prises en charge par ce format de fichier. Audio en cours de lecture."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Seules les données vidéos sont prises en charge par ce format de fichier. Vidéo en cours de lecture."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Centré"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "Activé"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Réglages"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Vidéos"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Partag."
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Détails"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Supprimer"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Mise en mémoire tampon - %d %"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Aucune"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d s"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Sélectionner un appareil audio"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Supprimer"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Annuler"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "Une erreur inconnue est survenue ou le fichier est peut-être corrompu."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "Ce type de fichier n'est pas pris en charge."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "OK"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Pl. écr."
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Conserver"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ANNULER"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Emplacement de stockage"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Sous-titres (codés)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Stockage personnel"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "Aspect des sous-titres"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Fichier inexistant"
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Désact. Lec. aud. uniq."
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Act. Lec. aud. uniq."
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Touchez la touche Accueil ou la touche Marche pendant la lecture pour lire les données audio uniquement."
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Gile"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Ceol"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Guthanna"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Suíomh"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Anaithnid"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Mionathrú is déanaí"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Comhroinn"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Ní féidir físeán a sheinm"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "Tharla earráid leis na fotheidil."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "Tá an comhad truaillithe nó baineadh an cárta SD as."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Sonraí"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Teideal"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "Scriosfar an físeán seo"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Socruithe"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Ní féidir físeán a sheinm"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Ailíniú"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Méid cló"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Socrú athsheanma"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Fotheidil (CC)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Lárnach"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Mór"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Clé"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Meánach"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Deas"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Beag"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Ar aghaidh"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Roimhe"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "Ní féidir comhaid DRM a chomhroinnt."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Formáid"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Ní féidir físeán a sheinm le linn glao."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Teachtai"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Aistriú comhad"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "R-phost"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Domhanfad"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Leithead"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Cumas. gluaisne"
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "Sciúradh ar %sx luas."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Stóras seachtrach"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Airde"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Formáid físeáin gan tacú."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Cineál comhaid gan tacú."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Formáid fuaime gan tacú."
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Ní féidir mearchasadh agus cúlchasadh a úsáid nuair atá gléasanna in aice láimhe cumasaithe."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Ní féidir é a ghabháil."
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Rothlaigh"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Brúigh an eochair siar arís le filleadh ar an scáileán roimhe"
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Easpa cuimhne. Scrios roinnt míreanna."
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Liosta leabharmharcanna lán. Scrios roinnt leabharmharcanna."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Buí"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "Cainéal fíorúil 7.1"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Fotheidil (CC)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Mód athsheinnte"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "Ná hathdhéan"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Maigeanta"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Glas"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Dath cló"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Cian"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Saincheaptha"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Físeán seo (1 uair)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Fais. faoi nascadh"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Athraigh seinnteoir"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Gabh"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Roghnaigh gléas"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Gléasanna atá ar fáil"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Callaire"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Bán"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Dearg"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s soicind"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Luas seanma"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d soic"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "As"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Níl teideal ann"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "Mo ghléas"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Cló réamhshocraithe"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Snagcheol breá"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Gorm"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Dubh"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Gníomhachtú"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Dún ríomhchlár?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Cealú"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Stop tar eis gach"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Athdhean cuid reatha"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Athdhéan gach"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Taifeach"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "Níl tacú sa challaire do mhaisíochtaí fuaime %s."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Cas an fón bunoscionn le glaonna isteach, foláirimh maidir le teachtaireachtaí agus aláraim a bhalbhú"
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "Cárta SD"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Níl tacú sa chomhad seo ach do shonraí fuaime. Fuaim á seinm anois."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Níl tacú sa chomhad seo ach do shonraí físe. Físeán á sheinm anois."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Stóras príobháideach"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Cluasáin"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Callaire"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Cuir ar sos"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Íoslódáil"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Roghnaigh fotheidil (CC)"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Réamhamharc ar fhotheidil (CC)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Theip ar nascadh."
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Modh athdhéanta"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Cineál comhaid gan tacú."
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Normálta"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Guth"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Scannáin"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Fuaimrian"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Ag maolánú..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Formáid an chomhaid"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Teanga"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Níl físeáin ann"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Méid"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Déanta"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Athnuaigh"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Dáta"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Ag lódáil..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Fotheidil (CC)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Scrios"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Cuir leis an scáileán baile"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Ainm"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Ní féidir físeán a sheinm."
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "Níl aon fhotheidil ar fáil"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Seinn"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Dún"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "URL neamhbhailí."
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Earráid"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Stóras gléis"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Seinnteoir Físeán"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Comhroinn le"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Tharla earráid líonra. Triail arís."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Níl tacú ann san fhormáid chomhaid seo ach do shonraí fuaime. Fuaim á seinm anois."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Níl tacú sa formáid comhaid seo ach do shonraí físeáin. Físeán á sheinm anois."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Ionad"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "Air"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Socruithe"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Físeáin"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "C.roinn"
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Sonraí"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Scrios"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Maolánú - %d%"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Dada"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d soic"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Roghnaigh gléas fuaime"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Scrios"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Cealaigh"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "Tharla earráid neamhaithnid nó is féidir go bhfuil an comhad truaillithe."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "Níl tacú ann don chineál comhaid seo."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "DÉANTA"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Lán"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Coinn. cóimheas"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "CUIR AR CEAL"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Suíomh stórais"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Fotheidil (CC)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Stóras pearsanta"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "Beidh an chuma seo ar fhoscríbhinní"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Níl an comhad seo ann"
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Díchum. Seinn fuaim amháin"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Cum. Seinn fuaim amháin"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Brúigh an eochair Baile nó an Chumhachteochair le linn athsheinm le fuaim amháin a sheinm."
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Brillo"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Música"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Voces"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Localización"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Descoñecido"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "Aceptar"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Modificado por última vez"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Compartir"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Non se pode reproducir vídeo"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "Produciuse un erro cos subtítulos."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "O arquivo está danado ou retirouse a tarxeta SD."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Detalles"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Título"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "Eliminarase este vídeo"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Axustes"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Imposible reproducir vídeo"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Aliñamento"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Tamaño da fonte"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Axustes de repetición"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Subtítulos"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Centro"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Grande"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Esquerda"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Media"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Dereita"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Pequeno"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Seguinte"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Anterior"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "Non se poden compartir arquivos DRM."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Formatar"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Non se pode reproducir vídeo durante a chamada"
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Mensaxe"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Transferenc. arquivo"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Correo e."
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Lonxitude"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Latitude"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Act. movemen."
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "Avanzando a velocidade %sx."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Almacenamento externo"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Volume"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Non se admite este formato de vídeo"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Tipo de arquivo non admitido"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Non admite o formato de audio"
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Non se pode usar o avance e rebobinado rápido cando hai dispositivos próximos activados"
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Non se pode capturar"
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Xirar"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Pulsa a tecla de retroceso de novo para volver á pantalla anterior"
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Non hai suficiente memoria. Elimine algúns elementos."
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Lista de favoritos chea. Elimine algúns favoritos."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Amarelo"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "Virtual de 7.1 canles"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Subtítulos"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Modo repetición"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "Sen repetición"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Maxenta"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Verde"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Cor da fonte"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Azul escuro"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Personalizado"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Vídeo actual (1 vez)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Información conexión"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Cambiar reprodutor"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Captura"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Seleccionar dispositivo"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Dispositivos dispoñ."
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Altofal."
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Branco"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Vermello"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s segundos"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Velocidade de reprodución"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d segundos"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Desactivado"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Sen título"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "O meu dispositivo"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Fonte predeterminada"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Azul"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Negro"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Activación"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Pechar aplicación?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Canc."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Deter despo. de todo"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Repetir actual"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Repetir todos"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Resolución"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "O altofalante non admite efectos de son %s"
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Dá a volta ao teléfono para silenciar as chamadas entrantes, as alertas das mensaxes e as alarmas"
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "Tarx. SD"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Este arquivo só admite datos de audio. Reprodución de audio en curso."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Este arquivo só admite datos de vídeo. Reprodución de vídeo en curso."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Almacenamento privado"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Auriculares"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Altofal."
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Pausa"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Descargar"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Selec. subtítulos (CC)"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Previsualizar subtítulos (CC)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Erro na conexión"
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Modo de repetición"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Tipo de arquivo non admitido"
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Normal"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Voz"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Películas"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Pista de son"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Alm. búfer..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Formato de arquivo"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Idioma"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Non hai vídeos"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Tamaño"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Feito"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Actualizar"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Data"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Cargando..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Subtítulos (CC)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Eliminar"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Engadir á pant. de inicio"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Nome"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Non se pode reproducir o vídeo"
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "Ningún subtítulo dispoñible"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Reproducir"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Pechar"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "URL non válida"
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Erro"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Almacenamento do dispositivo"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Reprodutor de Vídeo"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Compartir mediante"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Produciuse un erro de rede. Téntao de novo."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Este formato de arquivo só admite datos de audio. Reprodución de audio en curso."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Este formato de arquivo só admite datos de vídeo. Reprodución de vídeo en curso."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Centro"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "Activado"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Axustes"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Vídeos"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Compart"
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Detalles"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Eliminar"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Almacenando en búfer - %d%"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Ningún"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d seg."
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Seleccionar dispositivo de audio"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Eliminar"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Cancelar"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "Produciuse un erro descoñecido ou pode que o arquivo estea danado."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "Este tipo de arquivo non é compatible."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "FEITO"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Cheo"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Mant.rela."
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "CANCELAR"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Localización almacenam."
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Subtítulos"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Almacenamento persoal"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "As lendas aparecerán así"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "O arquivo non existe"
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Desact. Repr. son soam."
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Activ. Repr. son soam."
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Pulsa o botón Inicio ou botón Acendido durante a reprodución para reproducir só audio."
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "चमक"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "संगीत"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "वॉइस"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "स्थान"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "अज्ञात"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "ओके"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "अंतिम बार संशोधित"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "साझा करें"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "वीडियो नहीं चला सकता"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "उपशीर्षक में कोई त्रुटि उत्पन्न हुई।"
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "फ़ाइल दूषित है या SD कार्ड निकाल दिया गया है।"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "विवरण"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "शीर्षक"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "यह वीडियो हटाया जाएगा"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "सेटिंग्स"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "वीडियो चलाने में असमर्थ"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "संरेखण"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "फॉन्ट आकार"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "दोहराव सेटिंग"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "उपशीर्षक (CC)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "केंद्र"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "बड़ा"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "बाएँ"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "मध्यम"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "दाएँ"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "छोटा"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "अगला"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "पिछला"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "DRM फ़ाइलें साझा नहीं की जा सकतीं।"
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "फॉर्मेट"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "कॉल के दौरान वीडियो चलाने में असमर्थ।"
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "सन्देश"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "फ़ाइल स्थानांतरण"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "ईमेल"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "देशांतर"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "अक्षांश"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "गति सक्षम करे"
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "%sx गति पर स्क्रबिंग।"
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "बाह्य स्टोरेज"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "वॉल्यूम"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "असमर्थित वीडियो फ़ॉर्मेट।"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "असमर्थित फाइल प्रकार।"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "असमर्थित ऑडियो फ़ॉर्मेट।"
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "निकटवर्ती डिवाइसेस सक्षम होने पर आगे करने और पीछे करने का उपयोग करने में असमर्थ।"
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "कैप्चर करने में असमर्थ।"
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "घुमाएँ"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "पिछली स्क्रीन पर लौटने के लिए फिर से पीछे कुंजी दबाएँ।"
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "पर्याप्त मेमोरी नहीं। कुछ मदें हटाएँ।"
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "बुकमार्क सूची पूर्ण। कुछ बुकमार्क हटाएँ।"
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "पीला"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "वर्चुअल 7.1 ch"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "उपशीर्षक (CC)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "दोहराव मोड"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "कोई दोहराव नहीं"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "मैजंटा"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "हरा"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "फॉन्ट रंग"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "सियान"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "कस्टम"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "वर्तमान वीडियो (एक बार)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "कनेक्शन जानकारी"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "प्लेयर बदलें"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "कैप्चर करें"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "ऑलशेयर"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "डिवाइस चुनें"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "उपलब्ध डिवाइसेस"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "स्पीकर"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "सफेद"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "रोजमेरी"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "लाल"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s सेकंड"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "पॉप"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "चलाने की गति"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d सेकंड"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "बंद"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "कोई शीर्षक नहीं"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "मेरा डिवाइस"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "डिफॉल्ट फॉन्ट"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "कूल जैज"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "चोको कुकी"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "नीला"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "काला"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "सक्रियण"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "एप्लीकेशन बंद करें?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "रद्द"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "सब के बाद रोकें"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "वर्तमान को दोहराएँ"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "सभी दोहराएँ"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "रिजॉल्यूशन"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "%s ध्वनि प्रभाव स्पीकर द्वारा समर्थित नहीं है"
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "आने वाली कॉल्स, संदेश सतर्क, और अलार्म्स मूक करने के लिए फ़ोन घुमाएँ"
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "SD कार्ड"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "इस फाइल के द्वारा केवल ऑडियो डाटा समर्थित है। अब ऑडियो चलाया जा रहा है।"
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "इस फ़ाइल के द्वारा केवल वीडियो डाटा समर्थित है। अब वीडियो चलाया जा रहा है।"
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "निजी स्टोरेज"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "हेडफोन्स"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "स्पीकर"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "विराम"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "डाउनलोड करें"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "उपशीर्षक (CC) चुनें"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "पूर्वावलोकन उपशीर्षक (CC)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "कनेक्शन विफल।"
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "दोहराव मोड"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "असमर्थित फाइल प्रकार।"
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "सामान्य"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "आवाज"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "मूवीज"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "ऑडियो ट्रैक"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "बफरिंग..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "फ़ाइल फॉर्मेट"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "भाषा"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "कोई वीडियो नहीं"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "आकार"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "पूर्ण"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "रीफ्रेश"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "तिथि"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "लोड हो रहा है..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "उपशीर्षक (CC)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "हटाएँ"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "होम स्क्रीन पर जोड़े"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "फेसबुक"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "नाम"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "यूट्यूब"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "वीडियो चलाने में अक्षम।"
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "कोई उपशीर्षक उपलब्ध नहीं"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "चलाएँ"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "बंद"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "अमान्य वेब पता।"
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "त्रुटि"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "डिवाइस स्टोरेज"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "वीडियो प्लेयर"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "इसके द्वारा साझा करें"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "नेटवर्क त्रुटि उत्पन्न हुई है। फिर से प्रयास करें।"
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "इस फाइल फॉर्मेट द्वारा केवल ऑडियो डाटा समर्थित है। अब ऑडियो चला रहा है।"
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "इस फ़ाइल स्वरूप द्वारा केवल वीडियो डाटा समर्थित है। वीडियो अभी चलाया जा रहा है।"
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "केन्द्र"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "चालू"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "सेटिंग्स"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "वीडियोज़"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "साझा"
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "विवरण"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "हटाएँ"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "बफ़र हो रहा है - %d%"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "कोई नहीं"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d सेकंड"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "ऑडियो डिवाइस चुनें"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "हटाएँ"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "रद्द"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "एक अज्ञात त्रुटि उत्पन्न हुई है या फाइल दूषित हो सकती है।"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "यह फाइल प्रकार समर्थित नहीं है।"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "पूर्ण"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "पूरा"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "अनुपात रखे"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "रद्द करें"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "संग्रहण स्थान"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "उपशीर्षक (CC)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "व्यक्तिगत स्टोरेज"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "शीर्षक इस तरह दिखाई देंगे।"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "यह फाइल मौजूद नहीं है।"
\ No newline at end of file
--- /dev/null
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Svjetlina"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Glazba"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Glasovi"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Lokacija"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Nepoznato"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "U redu"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Zadnja promjena"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Dijeli"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Nemoguće reproduc. videozapis"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "Došlo je do greške s titlovima."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "Datoteka je oštećena ili je SD-kartica uklonjena."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Detalji"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Naslov"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "Video će biti obrisan."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Postavke"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Nemoguće reproduc. videozapis"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Poravnanje"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Veličina slova"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Postavka ponavljanja"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Titlovi (CC)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Centralno"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Velika"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Lijevo"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Srednja"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Desno"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Mala"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Dalje"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Nazad"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "DRM datoteke se ne mogu dijeliti."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Format"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Tijekom razgovora nemoguća video reprodukcija."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Poruka"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Prijenos datoteka"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Email"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Geo. duljina"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Geo. širina"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Uklj. pokret"
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "Pretraživanje na %sx brzine."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Vanjska memorija"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Glasnoća"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Nepodržan videoformat."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Nepodržana datoteka."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Nepodržan format zvuka."
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Nemoguće koristiti premotavanje unaprijed i unatrag kada su uključeni uređaji u blizini."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Greška snimanja."
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Rotiraj"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Pritisnite tipku Natrag za ponovno vraćanje na prethodni zaslon."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Nedovoljno memorije. Obrišite neke datoteke"
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Favoriti puni. Obrišite neke."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Žuta"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "Virtualni 7.1 kanal"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Titlovi (CC)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Ponavljanje"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "Bez ponavljanja"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Magenta"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Zelena"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Boja slova"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Zelenoplava"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Prilagođeno"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Tren. video (jednom)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Informacije o vezi"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Promijeni player"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Snimi"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Odaberite uređaj"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Dostupni uređaji"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Zvučnik"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Bijela"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Crvena"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s sekundi"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Brzina reprodukcije"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d sek"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Isključeno"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Nema naslova"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "Moj uređaj"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Zadana slova"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Plava"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Crna"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Uključivanje"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Zatvoriti program?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Prekid"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Stati nakon svega"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Ponovi trenutno"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Ponovi sve"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Rezolucija"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "Zvučnik ne podržava zvučne efekte %s."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Preokrenite telefon za utišavanje dolaznih poziva, obavijesti i alarma."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "SD kartica"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Datoteka podržava samo audio podatke. Sada reproducira zvuk."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Datoteka podržava samo video podatke. Sada reproducira video."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Privatna memorija"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Slušalice"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Zvučnik"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Pauza"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Skidanje"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Odabir titlova (CC)"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Pregled titlova (CC)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Spajanje neuspješno."
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Ponavljanje"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Nepodržana datoteka."
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Normalna"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Glas"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Filmovi"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Zvučni zapis"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Učitava se..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Format datoteke"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Jezik"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Nema videa"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Veličina"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "OK"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Aktualiziraj"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Datum"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Učitavanje..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Titlovi (CC)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Obriši"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Dodaj na početni zaslon"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Ime"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Nemoguće reproducirati video."
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "Nema dostupnih podnaslova"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Pokreni"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Zatvori"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "Neispravna adresa."
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Greška"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Memorija uređaja"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Video Player"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Dijeli preko"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Došlo je do mrežne pogreške. Pokušajte ponovno."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Ovaj format datoteke podržava samo audiopodatke. Sada reproducira zvuk."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Format datoteke podržava samo video podatke. Sada reproducira videozapis."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Centar"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "Uključeno"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Postavke"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Video"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Dijeli"
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Detalji"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Obriši"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Učitava se - %d %"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Nema"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d s"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Odabir audiouređaja"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Obriši"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Prekid"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "Došlo je do nepoznate pogreške ili je datoteka možda oštećena."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "Ova vrsta datoteke nije podržana."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "GOTOVO"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Pun"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Zad. omjer"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ODUSTANI"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Mjesto spremanja"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Titlovi (CC)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Osobna memorija"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "Naslov će ovako izgledati."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Datoteka ne postoji."
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Isklj. Repr. samo zvuk"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Uklj. Repr. samo zvuk"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Pritisnite početnu tipku ili tipku za uključivanje tijekom reprodukcije da biste reproducirali samo zvuk."
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Fényerő"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Zene"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Beszéd"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Hely"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Ismeretlen"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Legutóbbi módosítás"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Megosztás"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Nem játszható le a videó"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "Hiba történt a feliratokkal."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "A fájl sérült, vagy eltávolították az SD-kártyát."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Részletek"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Cím"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "Törölni fogja ezt a videót."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Beállítások"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Nem lehet lejátszani a videót"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Igazítás"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Betűméret"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Ismétlési beállítás"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Feliratok (hangfelirat)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Középső"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Nagy"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Balra"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Közepes"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Jobbra"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Kicsi"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Tovább"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Előző"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "DRM-fájlt nem lehet megosztani."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Formátum"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Hívás közben nem lehet videót lejátszani."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Üzenet"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Fájlátvitel"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "E-mail"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Hosszúság"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Szélesség"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Mozgás eng."
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "Tisztítás %sx sebességgel."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Külső tároló"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Hangerő"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Nem támogatott videoformátum."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "A fájltípus\nnem támogatott."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Nem támogatott hangformátum."
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Ha engedélyezve van a Közeli eszközök funkció, nem használható a gyors előretekerés és a visszatekerés."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Nem sikerült felvételt készíteni."
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Elforgatás"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "A Vissza gomb újbóli megnyomásával visszatérhet az előző képernyőre."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Kevés a memória. Töröljön néhány tételt"
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "A könyvjelzők listája megtelt. Töröljön néhányat."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Sárga"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "Virtuális 7.1 csatorna"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Feliratok (hangfelirat)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Ismétlés módja"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "Nincs ismétlés"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Magenta"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Zöld"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Betűszín"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Ciánkék"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Egyedi"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Jelenlegi videó (1x)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Kapcsolatadatok"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Lejátszóváltás"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Rögzítés"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Eszköz kiválasztása"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Elérhető eszközök"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Hangszóró"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Fehér"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Piros"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s másodperc"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Lejátszás sebessége"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d mp"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Ki"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Nincs cím"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "Saját eszköz"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Alapértelmezett betűtípus"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Kék"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Fekete"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Aktivál"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Bezárja az alkalmazást?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Mégse"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Mégis leállítja"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Aktuális ismétlése"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Összes ismétlése"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Felbontás"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "A hangszóró nem támogatja a(z) %s hangeffektusokat."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "A bejövő hívások, üzenetek és egyebek jelzésének elnémításához fordítsa meg a telefont."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "SD-kártya"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "A fájl csak hangadatokat támogat. Jelenleg hanglejátszás zajlik."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "A fájl csak videóadatokat támogat. Jelenleg videólejátszás zajlik."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Privát tárhely"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Fejhallgató"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Hangszóró"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Szünet"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Letöltés"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Feliratok kiválasztása"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Feliratok megj. (hangfelirat)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Kapcsolódás sikertelen."
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Ismétlési mód"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "A fájltípus\nnem támogatott."
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Normál"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Voice"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Filmek"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Hangsáv"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Pufferelés..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Fájlformátum"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Nyelv"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Nincs videó"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Méret"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Kész"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Frissítés"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Dátum"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Betöltés..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Feliratok (CC)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Törlés"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Kezdőképernyőhöz adás"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Név"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Nem játszható le a videó."
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "Nem áll rendelkezésre felirat"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Lejátszás"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Bezár"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "Érvénytelen URL"
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Hiba"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Eszköz tárhelye"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Video-lejátszó"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Megosztás"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Hálózati hiba történt. Próbálja újra."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "A fájlformátum csak hangadatokat támogat. Jelenleg hanglejátszás zajlik."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Ez a fájlformátum csak videóadatokat támogat. Jelenleg videólejátszás zajlik."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Középre zárt"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "Be"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Beállítások"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Videók"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Megoszt"
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Részletek"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Töröl"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Pufferelés – %d%"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Nincs"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d mp"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Hangeszköz kiválasztása"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Törlés"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Mégse"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "Ismeretlen eredetű hiba történt, vagy sérült a fájl."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "Ez a fájltípus nincs támogatva."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "KÉSZ"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Teljes"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Arány marad"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "MÉGSE"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Mentési hely"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Feliratok (hangfelirat)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Személyes tárhely"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "Ilyenek lesznek a feliratok"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "A fájl nem létezik."
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Csak hang lejátszása KI"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Csak hang lejátszása BE"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Ha csak a hangot szeretné lejátszani, nyomja meg a Kezdőlap vagy a Bekapcsolás gombot a lejátszás közben."
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Պայծառություն"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Երաժշտություն"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Ձայներ"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "Բ"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "ԳԲ"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "ԿԲ"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Գտնվելու վայր"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "ՄԲ"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Անհայտ"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Վերջին փոփոխումը"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Համօգտագործել"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Անհնար է նվագարկել տեսանյութը"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "Ենթագրերի հետ կապված սխալ առաջացավ:"
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "Ֆայլը վնասված է, կամ SD քարտը հեռացվել է:"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Մանրամասներ"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Վերնագիր"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "Այս տեսանյութը կվերացվի:"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Պարամետրեր"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Անհնար է նվագարկել տեսանյութը"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Հավասարեցում"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Տառաչափ"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Կրկնման դրվածք"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Ենթավերնագրեր (ԹԵ)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Կենտրոն"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Մեծ"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Ձախ"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Միջին"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Աջ"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Փոքր"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Հաջորդ"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Նախորդ"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "DRM նիշքերն անհնար է համօգտագործել:"
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Ձևաչափ"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Հնարավոր չէ վիդեո նվագարկել կանչի ընթացքում:"
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Հղգրթյն"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Ֆայլի փոխանցում"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Էլփոստ"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Երկայնք"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Լայնք"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Ընձռլ շարժում"
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "Մաքրում %sx արագությամբ:"
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Արտաքին պահոց"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Բարձրություն"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Տեսանյութի չապահովված ձևաչափ:"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Ֆայլի չսատարվող տեսակ:"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Ձայնի չապահովված ձևաչափ:"
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Անհնար է օգտագործել արագ առաջ փաթաթումը և հետ փաթաթումը, երբ մոտակա սարքերն ընձեռված են:"
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Անհնար է սևեռել:"
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Պտտեցնել"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Նորից սեղմեք վերադարձի ստեղնը՝ նախորդ էկրանին վերադառնալու համար:"
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Հիշողությունը չի բավարարում: Ջնջեք որոշ տարրեր"
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Էջանիշերի ցանկը լիքն է: Ջնջեք մի քանիսը:"
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Դեղին"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "Վիրտուալ 7.1 կապուղի"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Ենթավերնագրեր (ԹԵ)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Կրկնության ռեժիմ"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "Ոչ մի կրկնում"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Մանուշակագույն"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Կանախ"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Տառատեսակի գույն"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Փիրուզ"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Ընտրովի"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Ընթ. տսնթ (մեկ անգ.)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Միացման տվյալներ"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Փոխել նվագարկիչը"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Սևեռել"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Ընտրել սարք"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Մատչելի սարքեր"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Բարձրախոս"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Սպիտակ"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Կարմիր"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s վայրկյան"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Նվագարկման արագություն"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d վրկ"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Անջատված է"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Վերնագիր չկա"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "Իմ սարքը"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Կանխադրված տառատեսակ"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Կապույտ"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Սև"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Ակտիվացում"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Փակե՞լ ծրագիրը"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Չեղկլ"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Կանգ բոլորից հետո"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Կրկնել ընթացիկը"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Կրկնել բոլորը"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Լուծաչափ"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "%s հնչյունային էֆեկտները չեն ապահովվում բարձրախոսի կողմից:"
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Շրջեք հեռախոսը՝ մտից կանչերը, հաղորդագրության զգուշացումները և տագնապները խլացնելու համար:"
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "SD քարտ"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Այս ֆայլը միայն ձայնատվյալներ է ապահովում: Այժմ ձայնանյութ է նվագարկվում:"
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Այս ֆայլը միայն տեսատվյալներ է ապահովում: Այժմ տեսանյութ է նվագարկվում:"
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Անձնական պահոց"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Գլխ. հեռախոսներ"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Բարձրախոս"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Դադար"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Ներլցնել"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Ընտրել ենթագրեր (ԹԵ)"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Նախադիտել ենթագրեր (ԹԵ)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Միացումը ձախողվեց:"
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Կրկնման ռեժիմ"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Ֆայլի չսատարվող տեսակ:"
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Սովորական"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Ձայն"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Ֆիլմեր"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Ձայնային շավիղ"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Բուֆերացում"
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Նիշքի ձեւաչափը"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Լեզու"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Տեսանյութ չկա"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Չափս"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Արված է"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Նորացնել"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Ամսաթիվ"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Բեռնվում է..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Ենթագրեր (Թքն)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Վերացնել"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Ավելացնել հիմնական էկրանին"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Անուն"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Անհնար է վերարտադրել վիդեոն:"
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "Ենթագրեր չկան"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Նվագել"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Փակել"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "Անվավեր URL:"
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Սխալ"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Սարքի պահոց"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Տեսանվագարկիչ"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Համօգտ. հետևյալով՝"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Ցանցի սխալ է տեղի ունեցել: Նորից փորձեք:"
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Ֆայլի այս ձևաչափը միայն ձայնատվյալներ է ապահովում: Այժմ ձայնանյութ է նվագարկվում:"
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Այս նիշքի ձևաչափն աջակցում է միայն վիդեո տվյալներ: Այժմ տեսանյութ է նվագարկվում:"
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Կենտրոն"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "Միացված է"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Պարամետրեր"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Տեսանյութեր"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Համօգտ."
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Մանրամասներ"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Ջնջել"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Բուֆերացում - %d%"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Ոչ մեկը"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d վրկ"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Ընտրել ձայնասարք"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Վերացնել"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Չեղարկել"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "Անհայտ սխալ է տեղի ունեցել, կամ հնարավոր է՝ ֆայլը վնասված է:"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "Այս ֆայլի տիպն ապահովված չէ:"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "ԱՐՎԱԾ"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Լրիվ"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Պահել հրբ."
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ԴԱԴԱՐԵՑՆԵԼ"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Պահման տեղը"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Ենթագրեր (թաքնված ենթագրեր)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Անհատական պահոց"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "Մակագրերն այսպիսի տեսք կունենան"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Այս ֆայլը գոյություն չունի:"
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Կասեցնել Նվ. միայն ձայն"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Ընձեռել Նվ. միայն ձայն"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Վերարտադրման ընթացքում սեղմեք Սկզբի ստեղնը կամ Սնուցման ստեղնը՝ միայն ձայնանյութ նվագարկելու համար:"
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Birtustig"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Tónlist"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Raddir"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Staðsetning"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Óþekkt"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "Í lagi"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Síðast breytt"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Deila"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Ekki hægt að spila myndskeið"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "Villa kom upp í skjátextum."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "Skráin er skemmd eða SD-kortið hefur verið fjarlægt."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Upplýsingar"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Titill"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "Myndskeiðinu verður eytt."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Stillingar"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Ekki hægt að spila myndskeið"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Jöfnun"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Leturstærð"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Endurtekningarstilling"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Skjátextar"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Miðja"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Stórt"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Vinstri"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Miðlungs"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Hægri"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Lítið"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Næsta"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Fyrri"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "Ekki er hægt að deila DRM-höfundarréttarvörðum skrám."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Snið"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Ekki er hægt að spila vídeó á meðan símtal stendur yfir."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Skilaboð"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Skráarflutningur"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Netfang"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Lengdargráða"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Breiddargráða"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Hreyfing á"
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "Flett á hraðanum %sx."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Ytri geymsla"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Hljóðstyrkur"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Óstutt myndsnið."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Óstutt skrársnið."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Óstutt hljóðsnið."
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Ekki er hægt að spóla áfram eða til baka þegar kveikt er á nálægum tækjum."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Mistókst að taka mynd."
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Snúa"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Ýttu aftur á endatakkann til að snúa aftur að síðasta skjá."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Ekki er nægt minni. Eyðið nokkrum atriðum."
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Bókamerkjalisti er fullur.Eyða þarf nokkrum bókamerkjum."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Gulur"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "Sýndar 7.1 ch"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Skjátextar"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Endurtekning"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "Ekki endurtekið"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Blárauður"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Grænn"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Leturlitur"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Sægrænn"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Sérsniðið"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Þetta myndskeið (1)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Uppl. um tengingu"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Skipta um spilara"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Taka mynd"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Velja tæki"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Tiltæk tæki"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Hátalari"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Hvítt"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rósmarín"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Rauður"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s sekúndur"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Spilunarhraði"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d sek."
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Slökkt"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Titil vantar"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "Tækið mitt"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Sjálfgefin leturgerð"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Djassað"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Sætabrauð"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Blátt"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Svart"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Virkjun"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Viltu loka forritinu?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Hætta við"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Stöðva eftir allt"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Endurtaka þetta"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Endurtaka öll"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Upplausn"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "Hátalarinn styður ekki hljóðbrellur %s."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Snúðu símanum við til að slökkva á hringingum, skilaboðatónum og áminningum."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "SD-kort"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Þessi skrá styður aðeins hljóðgögn. Hljóð er nú í spilun."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Þessi skrá styður aðeins myndgögn. Myndskeið er nú í spilun."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Einkageymsla"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Höfuðtól"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Hátalari"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Hlé"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Sækja"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Velja skjátexta"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Forskoðun skjátexta"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Tenging brást."
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Endurtekning"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Óstutt skrársnið."
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Venjulegt"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Talhólf"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Kvikmyndir"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Hljóðrás"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Hleð inn..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Skráarsnið"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Tungumál"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Engin myndskeið"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Stærð"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Lokið"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Uppfæra"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Dagsetning"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Hleð..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Skjátextar"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Eyða"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Setja á heimaskjá"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Heiti"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Mistókst að spila myndskeið."
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "Engir skjátextar í boði"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Spila"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Loka"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "Ógild slóð."
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Villa"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Geymsla tækis"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Myndspilari"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Deila um"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Netvilla kom upp. Reyndu aftur."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Þetta skráarsnið styður aðeins hljóðgögn. Hljóð er nú í spilun."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Þetta skráarsnið styður aðeins myndgögn. Myndskeið er nú í spilun."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Miðja"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "Kveikt"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Stillingar"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Myndskeið"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Samnýta"
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Upplýsingar"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Eyða"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Hleð í biðminni – %d%"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Engin"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d sek."
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Velja hljóðtæki"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Eyða"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Hætta v."
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "Óþekkt villa kom upp eða skráin kann að vera skemmd."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "Þessi skráargerð er ekki studd."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "LOKIÐ"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Fylla"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Sama hlf."
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "HÆTTA VIÐ"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Geymslustaður"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Skjátextar"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Einkageymsla"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "Skjátextar munu líta svona út"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Skráin er ekki til."
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "„Spila aðeins hljóð“ af"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "„Spila aðeins hljóð“ á"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Ýttu á heimatakkann eða aflrofann við spilun til að spila aðeins hljóð."
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Luminosità"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Musica"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Voci"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Posizione"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Sconosciuto"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Ultima modifica"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Condividi"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Impossibile riprodurre video"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "Si è verificato un errore con i sottotitoli."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "Il file è danneggiato o la scheda SD è stata rimossa."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Dettagli"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Titolo"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "Il video sarà eliminato."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Impostaz."
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Impossibile riprodurre video"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Allineamento"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Dimensione carattere"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Ripeti impostazione"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Sottotitoli (CC)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Centrale"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Grande"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Sinistra"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Medio"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Destra"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Piccolo"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Avanti"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Precedente"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "Impossibile condividere i file DRM."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Formato"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Impossibile riprodurre durante chiamata."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Mess."
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Trasferimento file"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "E-mail"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Longitudine"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Latitudine"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Attiva movim."
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "Velocità di avanzamento %sx."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Memoria esterna"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Volume"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Formato video non supportato."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Tipo file non supportato."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Formato audio non supportato."
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Impossibile utilizzare le funzioni di avanzamento rapido e riavvolgimento se i dispositivi vicini sono attivati."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Impossibile acquisire."
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Ruota"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Premete nuovamente il tasto Indietro per tornare alla schermata precedente."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Memoria insufficiente. Eliminare alcuni elementi."
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Elenco preferiti pieno. Eliminare alcuni preferiti."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Giallo"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "Canale virtuale 7.1"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Sottotitoli (CC)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Modalità ripetizione"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "Nessuna ripetizione"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Magenta"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Verde"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Colore carattere"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Ciano"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Personalizzato"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Video corr. (1 vol.)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Info connessione"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Cambia lettore"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Cattura"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Seleziona dispositivo"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Dispositivi disponibili"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Altoparl."
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Bianco"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Rosso"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s secondi"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Velocità di riproduzione"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d sec"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Non attivo"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Nessun titolo"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "Dispositivo personale"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Carattere predefinito"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Blu"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Nero"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Attivazione"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Chiudere applicazione?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Ann."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Interrom. dopo tutto"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Ripeti corrente"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Ripeti tutto"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Risoluzione"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "Effetti audio %s non supportati dall'altoparlante."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Capovolgi il dispositivo per disattivare il suono durante una chiamata in arrivo, gli avvisi messaggi e le sveglie."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "Scheda SD"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Questo file è in grado di supportare soltanto i dati audio. Audio attualmente in riproduzione."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Questo file è in grado di supportare soltanto i dati video. Video attualmente in riproduzione."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Archivio privato"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Cuffie"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Altoparlante"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Pausa"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Scarica"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Selez. sottotitoli (CC)"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Sottotitoli anteprima (CC)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Errore connessione."
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Modo ripetizione"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Tipo file non supportato."
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Normale"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Voce"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Film"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Brano audio"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Buffer..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Formato file"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Lingua"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Nessun video"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Dimensioni"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Fatto"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Aggiorna"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Data"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Caricamento..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Sottotitoli (CC)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Elimina"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Aggiungi a schermata Home"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Nome"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Impossibile riprodurre video."
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "Nessun sottotitolo disponibile"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Riproduci"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Chiudi"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "URL non valida."
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Errore"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Memoria dispositivo"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Lettore video"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Condividi con"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Si è verificato un errore di rete. Riprovate."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Questo formato file è in grado di supportare soltanto i dati audio. Audio attualmente in riproduzione."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Il formato file supporta solo i dati video. Video in riproduzione."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Centro"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "Attivo"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Impostaz."
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Video"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Condividi"
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Dettagli"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Elimina"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Buffering: %d%"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Nessuno"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d sec"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Selezionate un dispositivo audio"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Elimina"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Annulla"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "Si è verificato un errore sconosciuto o il file è danneggiato."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "Questo tipo di file non è supportato."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "FATTO"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Intero"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Mant. form."
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ANNULLA"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Posizione di memoria"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Sottotitoli (codificati)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Memoria personale"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "Aspetto dei sottotitoli"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "File inesistente."
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Disatt. Ripr. solo audio"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Attiva Ripr. solo audio"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Premete il tasto Home o il tasto di accensione durante la riproduzione per riprodurre soltanto l'audio."
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "明るさ"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "音楽"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "音声"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "場所"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "不明"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "最終更新日"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "共有"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "動画の再生不可"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "字幕にエラーが発生しました。"
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "ファイルが破損しているか、外部SDカードが取り外されています。"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "詳細"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "タイトル"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "この動画を削除します。"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "設定"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "動画再生不可"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "配置"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "文字サイズ"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "リピート設定"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "字幕(CC)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "中央"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "大"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "左"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "中"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "右"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "小"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "次へ"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "前へ"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "DRMファイルは共有できません。"
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "ファイル形式"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "通話中はビデオ再生できません"
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "メッセージ"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "ファイル転送"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Eメール"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "経度"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "緯度"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "モーションを使用"
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "%sxの速度でスクラブ再生中です。"
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "外部ストレージ"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "音量"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "未対応ビデオ形式"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "未対応のファイルです。"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "サポートされていないオーディオ形式"
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "周辺のデバイスが有効な場合、早送りや早戻しは使用できません。"
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "キャプチャできません。"
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "回転"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "前画面に戻るには、戻るキーをもう一度押してください。"
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "メモリが不足しています。不要なアイテムを削除してください。"
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "ブックマークリストがいっぱいです。いくつか削除してください。"
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "黄"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "バーチャル7.1ch"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "字幕(CC)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "再生パターン"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "1回再生"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "マゼンダ"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "緑"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "文字色"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "シアン"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "カスタム"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "現在の動画(1回)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "接続情報"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "プレーヤーを変更"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "キャプチャ"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "デバイス選択"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "接続可能デバイス"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "スピーカー"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "白"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UD丸ゴシック"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UD明朝"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "ローズマリー"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "レッド"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s秒"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "ポップ"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "再生スピード"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d秒"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "OFF"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "件名なし"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "マイデバイス"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "標準フォント"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "クールジャズ"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "チョコクッキー"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "青"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "黒"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "アクティベーション"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "アプリケーションを終了しますか?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "キャンセル"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "終了後に停止"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "現在の動画をリピート"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "全てリピート"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "解像度"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "%sサウンドエフェクトは、スピーカーに対応していません。"
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "端末を伏せると、着信音やメッセージの通知音、アラーム音を消音します。"
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "外部SDカード"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "このファイルはオーディオデータのみ再生することができます。音声のみ再生します。"
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "このファイルは動画データのみ再生することができます。動画のみ再生します。"
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "プライベートストレージ"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "ヘッドホン"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "スピーカー"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "一時停止"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "ダウンロード"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "字幕(CC)を選択"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "字幕(CC)をプレビュー"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "接続に失敗しました。"
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "リピートモード"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "未対応のファイルです。"
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "標準"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "音声"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "動画"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "オーディオトラック"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "バッファ中..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "ファイル形式"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "言語"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "動画がありません。"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "サイズ"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "完了"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "更新"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "日付"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "ロード中..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "字幕(CC)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "削除"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "ホーム画面に追加"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "名前"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "動画を再生できません。"
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "利用可能な字幕がありません。"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "再生"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "閉じる"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "無効なURLです。"
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "エラー"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "システムメモリ(本体)"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "動画"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "共有"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "ネットワークエラーが発生しました。再度お試しください。"
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "このファイル形式はオーディオデータのみ再生することができます。音声のみ再生します。"
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "このファイルフォーマットは、動画データのみ対応してします。現在、動画を再生しています。"
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "中央"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "ON"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "設定"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "動画"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "共有"
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "詳細"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "削除"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "バッファ中...- %d%"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "点灯状態を保つ"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d秒"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "オーディオデバイスを選択"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "削除"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "キャンセル"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "不明なエラーが発生しているか、ファイルが破損しています。"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "このファイルタイプには対応していません。"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "完了"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "全画面"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "縦横比維持"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "キャンセル"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "保存場所"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "字幕(CC)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "パーソナルストレージ"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "字幕はこのように表示されます。"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "このファイルは存在しません。"
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "オーディオのみの再生を解除"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "オーディオのみで再生を継続"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "再生中にホームキーまたは電源キーを押して、オーディオのみを再生します。"
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "სიკაშკაშე"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "მუსიკა"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "ხმები"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "ადგილმდებ."
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "უცნობი"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "კი"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "ბოლოს შესწორდა"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "გაზიარება"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "ვიდეოს ვერ გაუშვებთ"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "მოხდა სუბტიტრების შეცდომა."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "ფაილი დაზიანებულია, ან SD ბარათი ამოღებულია."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "დეტალები"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "სათაური"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "ეს ვიდეო წაიშლება."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "პარამეტრები"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "ვიდეოს დაკვრა შეუძლებელია"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "განაწილება"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "შრიფტის ზომა"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "გამეორების პარამეტრი"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "ტიტრები (სუბტიტრები)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "ცენტრი"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "დიდი"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "მარცხნივ"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "საშუალო"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "მარჯვნივ"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "მცირე"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "შემდეგი"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "წინა"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "DRM ფაილებს ვერ გააზიარებთ."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "დაფორმატება"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "ვიდეოს ვერ გაუშვებთ ზარის დროს."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "წერილი"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "ფაილის გადაგზავნა"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "ელ.ფოსტა"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "გრძედი"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "განედი"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "მოძრაობის ჩრ."
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "გასმა ხდება %sx სიჩქარით."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "გარე მეხსიერება"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "ხმის სიმაღლე"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "ვიდეო ფორმატი არაა გათვალისწინებული."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "ფაილის ტიპი გაუთვალისწინებელია."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "აუდიო ფორმატი არაა გათვალისწინებული."
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "წინ და უკან გადახვევის ფუნქციების გამოყენება შეუძლებელია, როდესაც აქტიურია ახლომდებარე მოწყობილობები."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "გადაღება შეუძლებელია."
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "ბრუნვა"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "წინა ეკრანზე დასაბრუნებლად, ისევ დააჭირეთ უკანსვლის ღილაკს."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "მეხსიერება საკმარისი არაა. წაშალეთ ზოგიერთი ელემენტი"
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "სანიშნეები გაივსო. წაშალეთ ზოგიერთი სანიშნე."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "ყვითელი"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "ვირტუალური 7.1 არხი"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "ტიტრები (სუბტიტრები)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "გამეორების რეჟიმი"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "გამეორების გარეშე"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "მეწამული"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "მწვანე"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "შრიფტის ფერი"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "ცისფერი"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "პერსონალური"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "ეს ვიდეო (ერთხელ)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "კავშირის ინფორმაცია"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "პლეერის შეცვლა"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "გადაღება"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "აირჩიეთ მოწყობილობა"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "ხელმისაწვდომები"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "დინამიკი"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "თეთრი"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "წითელი"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s წამი"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "დაკვრის სიჩქარე"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d წამი"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "გამორთ."
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "თემა არ არის"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "ჩემი მოწყობილობა"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "საწყისი ფონტი"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "ცისფერი"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "შავი"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "გააქტიურება"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "დახურავთ პროგრამას?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "გაუქმ."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "გაჩერდეს ბოლოში"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "მიმდინარეს გამეორება"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "გაიმეორე ყველა"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "გარჩევადობა"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "%s ხმოვანი ეფექტი არ მუშაობს მიკროფონით."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "გადააბრუნეთ ტელეფონი, რომ გამოირთოს შემომავალი ზარების, წერილის შეტყობინებებისა და სიგნალების ხმა."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "SDბარათი"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "ამ ფაილს აქვს მხოლოდ აუდიო მონაცემთა მხარდაჭერა. ახლა ჩართულია აუდიო."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "ამ ფაილს აქვს მხოლოდ ვიდეო მონაცემთა მხარდაჭერა. ახლა ჩართულია ვიდეო."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "პირადი საცავი"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "გარნიტურები"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "დინამიკი"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "პაუზა"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "ჩამოტვირთვა"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "აირჩიეთ სუბტიტრები"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "იხილეთ ტიტრები (სუბტიტრები)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "ვერ დაუკავშირდა."
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "გამეორების რეჟიმი"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "ფაილის ტიპი გაუთვალისწინებელია."
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "ნორმალური"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "ხმა"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "კინოები"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "აუდიო ბილიკი"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "ბუფერირება..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "ფაილის ფორმატი"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "ენა"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "ვიდეო არ არის"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "ზომა"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "შესრულდა"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "განახლება"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "თარიღი"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "იტვირთება…"
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "ტიტრები(სუბტიტრები)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "წაშლა"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "საწყის ეკრანზე დამატება"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "სახელი"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "ვიდეოს დაკვრა შეუძლებელია."
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "სუბტიტრები არ არის"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "დაკვრა"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "დახურვა"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "URL არასწორია."
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "შეცდომა"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "აპარატის მეხსიერება"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "ვიდეო პლეერი"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "გაზიარება მეთოდით"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "მოხდა ქსელის შეცდომა. ისევ სცადეთ."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "ფაილის ამ ფორმატს აქვს მხოლოდ აუდიო მონაცემთა მხარდაჭერა. ახლა ჩართულია აუდიო."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "ფაილის ამ ფორმატს აქვს მხოლოდ ვიდეო მონაცემთა მხარდაჭერა. ახლა ჩართულია ვიდეო."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "ცენტრი"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "ჩართვა"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "პარამეტრები"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "ვიდეოები"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "გაზიარ."
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "დეტალები"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "წაშლა"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "ბუფერირება - %d%"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "არცერთი"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d წმ"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "აირჩიეთ აუდიო მოწყობილობა"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "წაშლა"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "გაუქმება"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "მოხდა უცნობი შეცდომა, ან, შესაძლოა, დაზიანდა ფაილი."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "ფაილის ამ ტიპს არა აქვს მხარდაჭერა."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "მზადაა"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "შევსება"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "იგივე ზომა"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "გაუქმება"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "შენახვის ადგილი"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "ტიტრები (სუბტიტრები)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "პერსონალური მეხსიერება"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "წარწერები გამოჩნდება ასე"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "ფაილი არ არსებობს."
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "მხ. აუდიოს დაკვრის გმრ."
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "მხ.აუდიოს დაკვრის ჩრთ."
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "მხოლოდ აუდიოს დასაკრავად, დაკვრის დროს შეეხეთ „საწყის გვერდზე გადასვლის ღილაკს“ ან „ჩართვა-გამორთვის ღილაკს“."
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Ашықтығы"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Музыка"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Дауыстар"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "Б"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "Гбайт"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KБ"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Орналасу орны"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "МБ"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Белгісіз"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Соңғы өзгертілген"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Бөлісу"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Бейнені ойнату мүмкін емес"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "Субтитрлерде қате пайда болды."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "Файл бүлінген немесе SD картасы алып тасталған."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Өзгешеліктері"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Тақырыбы"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "Бұл бейне жойылады."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Қондырғылар"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Бейнені ойнату мүмкін емес"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Туралау"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Қаріп өлшемі"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Қайталау параметрі"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Субтитрлер (ЖТ)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Орталық"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Үлкен"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Сол жақ"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Орташа"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Оң жақ"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Кіші"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Сосын"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Алдыңғы"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "DRM файлдарын бөлісу мүмкін емес."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Пішімдеу"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Қоңырау кезінде бейне ойнатылмайды."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Хабар"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Файл жіберу"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Элек. пошта"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Ұзақтық"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Кеңділік"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Қозғалыс қосу"
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "%sx жылдамдығында тазалау."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Сыртқы жад"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Дауыстың күші"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Қолданылмайтын бейне пішім."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Қолдаусыз файл түрі."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Қолданылмайтын аудио пішім."
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Жақын құрылғылар қосулы болғанда жылдам және кері айналдыруды пайдалану мүмкін емес."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Түсіру мүмкін емес."
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Бұру"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Алдыңғы экранға оралу үшін “Артқа” түймесін басыңыз."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Жад жетыспейт.Көп арналы жою."
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Кітапша тізімі толған / кейбір қосымшаларды жойыңыз."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Сары"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "Виртуалды 7.1 арна"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Субтитрлер (ЖТ)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Қайталау режимі"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "Қайталамау"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Магента"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Жасыл"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Шрифт түсі"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Көгілдір"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Таңдамалы"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Ағым. бейне (1 рет)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Қосылым ақпараты"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Ойнатқышты өзгерту"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Түсіру"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Құрылғыны таңдау"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Қол жетімді құр-лар"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Динамик"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Ақ"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Қызыл"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s секунд"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Ойнату жылдамдығы"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d сек"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Өшірілген"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Тақырып жоқ"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "Құрылғым"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Әдепкі қаріп"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Көк"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Қара"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Активтеу"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Бағдарламаны жабу керек пе?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Тоқт"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Тоқтату"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Ағымдағыны қайталау"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Барлығын қайталау"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Шешім"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "%s дыбыстық әсерлері динамик арқылы қолданылмайды."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Келген қоңыраулардың, хабар сигналдарының және дабылдардың дыбысын өшіру үшін телефонды аударыңыз."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "SD карта"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Бұл файл арқылы тек аудио деректер берілген. Қазір ойнатылып жатқап аудио."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Бұл файл арқылы тек бейне деректер берілген. Қазір ойнатылып жатқап бейне."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Жеке сақтау орны"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Құлаққаптар"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Дауыс зорайтқыш"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Үзіліс"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Жүктеу"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Субтитрлерді таңдау (ЖТ)"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Алд.ала қарап шығу субт-і (ЖТ)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Қосылу үзіліп кетті"
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Қайталау режимі"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Қолдаусыз файл түрі."
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Қалыпты"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Дауыс"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Фильм"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Аудио трек"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Буферлеуде..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Файл пішімі"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Тіл"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Бейнелер жоқ"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Өлшемі"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Дайын"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Жаңарту"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Күні"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Жүктелуде..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Субтитрлер (ЖТ)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Жою"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Бастапқы экранға қосу"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Аты"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Бейне көруге болмайды."
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "Субтитрлер қолжетімді емес"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Ойнату"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Жабу"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "Жарамсыз URL."
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Қате"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Құрылғы қоймасы"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Бейне ойнатқыш"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Бөлісу құралы"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Желі қатесі пайда болды. Әрекетті қайталаңыз."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Осы файл пішімі арқылы тек аудио деректерге қолдау көрсетіледі. Қазір ойнатылып жатқан аудио."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Осы файл пішімі арқылы тек бейне деректеріне қолдау көрсетіледі. Қазір ойнатылып жатқап бейне."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Орталық"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "Қосылған"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Қондырғылар"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Бейнежазбалар"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Бөлісу"
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Өзгешеліктері"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Жою"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "%d% буферлеу"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Жоқ"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d сек"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Аудио құрылғыны таңдаңыз"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Жою"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Тоқтату"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "Белгісіз қате пайда болды немесе файл бүлінген болуы мүмкін."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "Файл түріне қолдау көрсетілмейді."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "ДАЙЫН"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Толық"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Арақ. ұс-у"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "БАС ТАРТУ"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Сақтау орны"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Субтитрлер (ЖТ)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Жеке қойма"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "Тақырыптар осы сияқты көрінеді"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Файл жоқ."
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Тек аудио ойнат. өшіру"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Тек аудио ойнат. қосу"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Тек аудионы ғана ойнату үшін, ойнату кезінде “Бастапқы” пернесін немесе “Қуат” пернесін басыңыз."
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "밝기"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "음악"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "목소리"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "위치"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "알 수 없음"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "확인"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "마지막 수정"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "공유"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "동영상을 재생할 수 없음"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "자막에 오류가 발생하였습니다."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "파일이 손상되었거나 SD 카드를 제거하였습니다."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "상세정보"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "제목"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "이 동영상을 삭제합니다."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "설정"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "동영상을 재생할 수 없음"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "정렬"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "글자 크기"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "반복 설정"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "자막(CC)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "가운데"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "크게"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "왼쪽"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "중간"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "오른쪽"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "작게"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "다음"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "이전"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "DRM 파일은 공유할 수 없습니다."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "형식"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "통화 중에는 동영상을 재생할 수 없습니다."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "메시지"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "파일 전송"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "이메일"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "경도"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "위도"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "모션 실행"
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "%sx 속도로 탐색 중입니다."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "외장 저장공간"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "음량"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "지원되지 않는 동영상 포맷입니다."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "지원되지 않는 파일 형식입니다."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "지원되지 않는 오디오 포맷입니다."
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "주변 디바이스를 실행하는 중에는 빨리감기 및 되감기 기능을 사용할 수 없습니다."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "캡처할 수 없습니다."
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "회전"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "이전 화면으로 돌아가려면 뒤로가기 버튼을 다시 누르세요."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "저장공간이 부족합니다. 일부 항목을 삭제하세요."
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "북마크 목록이 가득 찼습니다. 북마크 일부를 삭제하세요."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "노란색"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "가상 7.1채널"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "자막(CC)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "반복 모드"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "반복 안 함"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "자홍색"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "녹색"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "글자 색상"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "청록색"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "직접 설정"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "현재 동영상(한 번)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "연결정보"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "플레이어 변경"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "캡처"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "디바이스 선택"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "사용 가능한 디바이스"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "스피커"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "흰색"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UD마루고딕"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UD명조"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "로즈마리"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "빨간색"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s초"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "팝"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "재생\n속도"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d초"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "해제"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "제목이 없습니다"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "내 디바이스"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "기본 서체"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "쿨재즈"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "초코쿠키"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "파란색"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "검은색"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "실행"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "애플리케이션을 종료할까요?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "취소"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "모두 재생 후 중지"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "현재 동영상 반복"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "모두 반복"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "해상도"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "스피커에서 %s 음향 효과가 지원되지 않습니다."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "디바이스를 뒤집어 벨소리, 메시지 알림음, 알람을 끕니다."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "SD 카드"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "이 파일은 오디오 데이터만 지원합니다. 오디오를 재생합니다."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "이 파일은 동영상 데이터만 지원합니다. 동영상을 재생합니다."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "개인 저장공간"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "헤드폰"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "스피커"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "일시정지"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "다운로드"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "자막(CC) 선택"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "자막(CC) 미리보기"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "연결하지 못하였습니다."
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "반복 모드"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "지원되지 않는 파일 형식입니다."
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "일반"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "음성"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "영화"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "오디오 트랙"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "버퍼링 중..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "파일 형식"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "언어"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "동영상 없음"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "크기"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "완료"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "새로고침"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "날짜"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "불러오는 중..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "자막(CC)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "삭제"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "홈 화면에 추가"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "이름"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "동영상을 재생할 수 없습니다."
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "표시 가능한 자막이 없습니다"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "재생"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "닫기"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "URL이 바르지 않습니다."
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "오류"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "디바이스 저장공간"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "비디오 플레이어"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "공유"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "네트워크 오류가 발생하였습니다. 다시 시도하세요."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "이 파일은 오디오 데이터만 지원합니다. 오디오를 재생합니다."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "이 파일은 동영상 데이터만 지원합니다. 동영상을 재생합니다."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "가운데"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "사용"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "설정"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "비디오"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "공유"
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "상세정보"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "삭제"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "버퍼링- %d%"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "설정 안 함"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d초"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "오디오 디바이스 선택"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "삭제"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "취소"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "알 수 없는 오류가 발생하였거나 손상된 파일입니다."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "지원되지 않는 파일 형식입니다."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "완료"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "전체"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "비율 유지"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "취소"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "저장 위치"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "자막(CC)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "퍼스널 저장공간"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "자막은 지금 보이는 것처럼 표시됩니다."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "파일이 존재하지 않습니다."
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "[오디오만 재생] 해제"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "[오디오만 재생] 실행"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "동영상 재생 중에 홈 버튼 또는 전원 버튼을 눌러 오디오만 재생됩니다."
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Ryškumas"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Muzika"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Balsai"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Vieta"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Nežinomas"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "Gerai"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Paskutinį kartą keista"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Dalytis"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Neįmanoma leisti vaizdo įrašo"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "Įvyko subtitrų klaida."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "Sugadintas failas arba išimta SD kortelė."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Išsami informacija"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Pavadinimas"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "Šis vaizdo įrašas bus ištrintas."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Nustatymai"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Negalima paleisti vaizdo įrašo"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Lygiavimas"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Šrifto dydis"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Kartoti nustatymą"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Subtitrai (pasirenkami)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Centruoti"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Didelis"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Kairė"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Vidutinis"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Dešinė"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Mažas"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Kitas"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Ankst."
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "DRM failų negalima bendrinti."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Formatas"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Pokalbio metu negalima paleisti vaizdo įrašo."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Žinutė"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Failų perkėlimas"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "El. paštas"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Ilguma"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Platuma"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Įjungt judes."
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "Prasukti %sx greičiu."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Išorinė laikmena"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Garsumas"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Nepalaikomas vaizdo įrašo formatas."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Nepalaikomas failo tipas."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Nepalaikomas garso formatas."
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Neįmanoma naudoti greito persukimo pirmyn ir atsukimo atgal funkcijos, kai išjungti netoliese esantys įrenginiai."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Neįmanoma užfiksuoti."
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Sukti"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Norėdami grįžti į ankstesnį ekraną, spauskite mygtuką „Atgal“."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Nepakanka atminties. Ištrinkite kai kuriuos elementus"
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Pilnas žymeklių sąrašas.\nIštrinti žymeklius."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Geltona"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "Virtualus 7.1 kan."
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Subtitrai (pasirenkami)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "„SoundAlive“"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Kartojimo režimas"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "Jokio pakartojimo"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Rausva"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Žalia"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Šrifto spalva"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Žydra"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Pasirinktinis"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Esam.vaiz.įr.(kartą)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Ryšio informacija"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Keisti leistuvą"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Užfiksuoti"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "„AllShare“"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Pasirinkite įrenginį"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Galimi įrenginiai"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Garsiak."
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Balta"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Raudona"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s sek."
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Leidimo greitis"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d sek."
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Išjungta"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Nėra pavadinimo"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "Mano įrenginys"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Numatytasis šriftas"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Mėlyna"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Juoda"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Aktyvinimas"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Uždaryti programą?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Atš."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Stabdyti po visų"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Kartoti dabartinį"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Kartoti viską"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Raiška"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "Garsiakalbis nepalaiko %s garso efektų."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Nutildykite gaunamus skambučius, naujos žinutės signalą ir žadintuvą apversdami telefoną."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "SD kortelė"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Šis failas palaiko tik garso duomenis. Dabar atkuriamas garsas."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Šis failas palaiko tik vaizdo duomenis. Dabar atkuriamas vaizdas."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Privati saugykla"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Ausinės"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Garsiakalbis"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Pauzė"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Atsisiųsti"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Rinktis subt. (užd.antr.)"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Žr. subtitrus (užd. antraštė)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Prisijungti nepavyko."
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Kartojimo režimas"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Nepalaikomas failo tipas."
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Įprastas"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Balsas"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Filmai"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Garso takelis"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Derinama..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Failo formatas"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Kalba"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Nėra vaizdo įrašų"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Dydis"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Atlikta"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Atnaujinti"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Data"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Įkeliama..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Subtit. (užd.antr.)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Trinti"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Pridėt prie pradžios ekrano"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Vardas"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "„YouTube“"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Paleisti vaizd. įr. nepavyko."
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "Subtitrų nėra"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Paleisti"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Uždaryti"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "Netinkamas URL."
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Klaida"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Įrenginio atmintis"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Vaizdo leistuvas"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Bendrinti per"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Įvyko tinklo klaida. Bandykite dar kartą."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Šis failo formatas palaiko tik garso įrašo duomenis. Dabar atkuriamas garsas."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Šis failo formatas palaiko tik vaizdo duomenis. Dabar atkuriamas vaizdas."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Centre"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "Įjungta"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Nustatymai"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Vaizdo įrašas"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Bendr."
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Išsami informacija"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Trinti"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Derinama – %d%"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Nėra"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d sek."
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Rinktis garso įrenginį"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Trinti"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Atšaukti"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "Įvyko nežinoma klaida arba failas gali būti sugadintas."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "Šis failo tipas nepalaikomas."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "ATLIKTA"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Visas"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Išl.formt."
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ATŠAUKTI"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Saugojimo vieta"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Subtitrai (uždaryta antraštė)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Asmeninė saugykla"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "Antraštės atrodys taip"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Tokio failo nėra."
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Išj. Leisti tik garsą"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Įj. Leisti tik garsą"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Atkūrimo metu paspauskite pradžios arba maitinimo mygtuką, kad paleistumėte tik garsą."
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Spilgtums"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Mūzika"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Balsis"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Atrašanās vieta"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Nezināms"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "Labi"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Pēdējo reizi mainīts"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Kopīgot"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Nevar demonstrēt videoklipu"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "Radās subtitru kļūda."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "Fails ir bojāts vai arī ir izņemta SD karte."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Dati"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Nosaukums"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "Šis videoklips tiks izdzēsts."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Iestatījumi"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Nevar demonstrēt video"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Līdzinājums"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Fonta lielums"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Atkārtošanas iestatījums"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Subtitri (slēptie titri)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Centrā"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Liels"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Pa kreisi"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Vidējs"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Pa labi"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Mazs"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Nāk."
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Iepriekš."
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "DRM failus nevar kopīgot."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Formāts"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Sarunas laikā nevar demonstrēt video."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Ziņa"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Failu pārsūtīšana"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "E-pasts"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Garums"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Platums"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Akt. kustību"
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "Pārtīšanas ātrums: %sx."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Ārējā krātuve"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Skaļums"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Neatbalstīts videoklipa formāts."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Neatbalstīts faila veids."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Neatbalstīts audio formāts."
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Nevar izmantot tīšanu uz priekšu un atpakaļ, ja ir aktivizētas tuvumā esošās ierīces."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Nevar uzņemt."
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Pagriezt"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Nospiediet vēlreiz taustiņu Atpakaļ, lai atgrieztos iepriekšējā ekrānā."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Nepietiek atmiņas. Izdzēsiet dažus vienumus"
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Grāmatzīmju saraksts ir pilns.\nIzdzēsiet daļu grāmatzīmju."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Dzeltens"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "Virtuālais 7.1 kan."
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Subtitri (slēptie titri)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Atkārtošanas režīms"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "Neatkārtot"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Fuksīna krāsā"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Zaļš"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Fonta krāsa"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Zilganzaļš"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Pielāgota"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Pašr. video (vienr.)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Savienojuma dati"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Mainīt spēlētāju"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Tvert"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Izvēlieties ierīci"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Pieejamās ierīces"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Skaļrunis"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Balts"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Sarkani"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s sekundes"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Demonstrēšanas ātrums"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d sek."
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Izslēgts"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Nav nosaukuma"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "Mana ierīce"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Noklusējuma fonts"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Zils"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Melni"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Aktivizēšana"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Vai aizvērt programmu?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Atcelt"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Pārtraukt"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Atkārtot pašreizējo"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Atkārtot visu"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Izšķirtspēja"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "Skaļrunis nenodrošina %s skaņas efektus."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Apvērsiet tālruni, lai izslēgtu ienākošos zvanus, ziņu signālu un modinātāja skaņu."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "SD karte"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Šis fails atbalsta tikai audio datus. Tagad atskaņo audio."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Šis fails atbalsta tikai video datus. Tagad demonstrē video."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Privātā krātuve"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Austiņas"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Skaļrunis"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Pauze"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Lejupielādēt"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Izvēlēties subtitrus (CC)"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Priekšskatīt subtitrus (CC)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Savienojums neizdevās."
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Atkārtošanas režīms"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Neatbalstīts faila veids."
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Parasta"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Balss"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Filmas"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Audio ieraksts"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Buferizācija"
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Faila formāts"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Valoda"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Nav videoklipu"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Lielums"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Gatavs"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Atsvaidzināt"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Datums"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Ielādē..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Subtitri (CC)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Dzēst"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Pievienot sākuma ekrānam"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Vārds"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Nevar demonstrēt video."
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "Subtitri nav pieejami"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Atskaņot"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Aizvērt"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "Nederīgs URL."
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Kļūda"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Ierīces krātuve"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Video Atskaņotājs"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Kopīgot, izmantojot"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Radās tīkla kļūda. Mēģiniet vēlreiz."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Šis faila formāts atbalsta tikai audio datus. Tagad atskaņo audio."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Šis faila formāts atbalsta tikai video datus. Šobrīd tiek demonstrēts videoklips."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Centrā"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "Ieslēgts"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Iestatījumi"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Videoklipi"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Kopl."
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Dati"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Dzēst"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Buferizācija - %d%"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Nav"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d sek."
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Izvēlēties audio ierīci"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Dzēst"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Atcelt"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "Radās nezināma kļūda vai fails, iespējams, ir bojāts."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "Šis faila veids netiek atbalstīts."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "GATAVS"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Pilns"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Pašr.att."
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ATCELT"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Krātuves atrašanās vieta"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Subtitri (pēc pieprasījuma)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Personiskā krātuve"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "Titri izskatīsies šādi"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Šāda faila nav."
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Deakt.Atsk. tikai audio"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Akt. Atsk. tikai audio"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Atskaņošanas laikā nospiediet sākuma vai ieslēgšanas/izslēgšanas taustiņu, lai atskaņotu tikai audio."
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Светлина"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Музика"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Гласови"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Локација"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Непознато"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Последно менување"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Сподели"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Не може да се пушти видеото"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "Дојде до грешка со титлите."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "Фајлот е неисправен или SD-картичката е извадена."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Детали"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Наслов"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "Видеото ќе се избрише."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Опции"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Не може да се емитува видеото"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Порамнување"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Големина на букви"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Поставка за повторување"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Титли (CC)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Центар"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Големи"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Лево"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Средни"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Десно"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Мали"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Следно"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Претход."
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "Фајловите со DRM не можат да се делат."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Формат"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Не може да се пушти видео за време на разговор."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Порака"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Пренесување фајлови"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Е-пошта"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Географска должина"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Географска широчина"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Вкл. движење"
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "Гребење со брзина од %sx."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Надворешен мем. уред"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Јачина на тон"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Неподдржан видео формат."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Неподдржан тип на фајл."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Неподдржан аудио формат."
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Не може да се користи брзо напред и брзо назад кога се вклучени уреди во близина."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Не може да се долови."
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Заврти"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Притиснете го копчето за назад повторно за да се вратите на претходниот екран."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Нема доволно меморија. Избришете некој запис"
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Листата омилени страници е полна. Избришете некоја омилена страница."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Жолта"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "Виртуелен 7.1 канал"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Титли (CC)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Начин на повторување"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "Нема повторување"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Магента"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Зелена"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Боја на знаци"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Модро зелена"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Прилагодено"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Момент.видео (еднаш)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Информ. за врската"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Смени плеер"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Снимање"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Избери уред"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Достапни уреди"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Звучник"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Бела"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Црвена"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s секунди"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Брзина на емитување"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d секунди"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Исклучено"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Нема наслов"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "Мој уред"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Основен фонт"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Сино"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Црна"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Активирање"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Затвори апликација?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Откажи"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Сопри после сѐ"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Повт. моментална"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Повторувај сè"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Резолуција"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "Звучните ефекти %s не се поддржани од звучникот."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Превртете го телефонот за да го исклучите звукот за дојдовните повици, известувањата за пораки и алармите."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "SD-карт."
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Овој фајл поддржува само аудио податоци. Се емитува звук."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Овој фајл поддржува само видео податоци. Се емитува видео."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Приватна меморија"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Слушалки"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Звучник"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Пауза"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Преземи"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Избери титли (CC)"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Прегледај титли (CC)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Неуспешно поврзување."
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Режим на повторување"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Неподдржан тип на фајл."
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Нормално"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Гласовна снимка"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Филмови"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Аудио запис"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Се полни..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Формат на фајлот"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Јазик"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Нема видеа"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Големина"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Готово"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Обнови"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Датум"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Се вчитува..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Титли (CC)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Бриши"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Додај на почетниот екран"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Име"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Видео-записот не може да се емитува."
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "Не се достапни титли"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Емитувај"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Затвори"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "Неправилен URL."
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Грешка"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Меморија на уредот"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Видео-плеер"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Сподели преку"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Дојде до мрежна грешка. Обидете се повторно."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Овој формат на фајл поддржува само аудио податоци. Се емитува звук."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Овој формат на фајлови поддржува само видео податоци. Се емитува видео."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "На средина"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "Вклучено"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Опции"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Видеа"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Сподели"
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Детали"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Избриши"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Се полни - %d%"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Ништо"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d сек."
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Изберете аудио уред"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Избриши"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Откажи"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "Дојде до непозната грешка или фајлот е неисправен."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "Овој вид фајл не е поддржан."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "ГОТОВО"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Полно"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Соч.размер"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ОТКАЖИ"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Место за меморирање"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Титли (CC)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Лична меморија"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "Натписите ќе изгледаат вака"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Фајлот не постои."
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Искл.Емитувај само звук"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Вкл.Емитувај само звук"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Притиснете го копчето Дома или Копчето за вклучување при емитувањето за да емитувате само звук."
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Lysstyrke"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Musikk"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Stemmer"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Posisjon"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Ukjent"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Sist endret"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Del"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Kan ikke spille av video"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "Det oppstod en feil med undertekstene."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "Filen er ødelagt eller SD-kortet er fjernet."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Detaljer"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Tittel"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "Denne videoen vil bli slettet."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Innstillinger"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Kan ikke spille av video"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Justering"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Skriftstørrelse"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Gjentakelsesinnstilling"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Undertekster (CC)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Midtstill"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Stor"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Venstre"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Middels"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Høyre"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Liten"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Neste"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Forrige"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "DRM-filer kan ikke deles."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Format"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Kan ikke spille av video under samtale."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Melding"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Filoverføring"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "E-post"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Lengdegrad"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Breddegrad"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Aktiv. beveg."
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "Skrubber med %sx hastighet."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Ekstern lagring"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Volum"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Videoformatet støttes ikke."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Filtypen støttes ikke."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Ikke støttet lydformat."
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Kan ikke bruke spoling fremover og bakover når Enheter i nærheten er aktivert."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Kan ikke ta bilde."
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Roter"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Trykk på Tilbake-tasten på nytt for å gå tilbake til det forrige skjermbildet."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Ikke nok minne. Slett noen elementer."
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Bokmerkeliste full. Slett noen bokmerker."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Gul"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "Virtuell 7.1 kanal"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Undertekster (CC)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Gjentakelsesmodus"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "Ingen gjentakelse"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Magenta"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Grønn"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Skriftfarge"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Cyan"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Tilpasset"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Gj. video (én gang)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Tilkoblingsinfo."
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Endre avspiller"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Ta opp"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Velg enhet"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Tilgjeng. enheter"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Høyttaler"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Hvit"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosmarin"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Rød"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s sekunder"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Avspillingshastighet"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d sek"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Av"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Ingen tittel"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "Min enhet"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Standardskrift"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Blå"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Svart"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Aktivering"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Lukke app?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Avbryt"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Stopp etter alle"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Gjenta gjeldende"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Gjenta alle"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Oppløsning"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "%s lydeffekter støttes ikke av høyttaler."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Vend telefonen for å dempe innkommende samtaler, meldingsvarsler og alarmer."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "SD-kort"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Bare lyddata støttes av denne filen. Spiller nå av lyd."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Bare videodata støttes av denne filen. Spiller nå av video."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Privat lagring"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Hodetelefoner"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Høyttaler"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Pause"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Last ned"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Velg undertekster (CC)"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Forhåndsvis undertekster (CC)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Kunne ikke koble til."
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Gjentakelsesmodus"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Filtypen støttes ikke."
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Normal"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Tale"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Filmer"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Lydspor"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Bufrer..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Filformat"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Språk"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Ingen videoer"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Størrelse"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "OK"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Oppdater"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Dato"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Laster ..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Undertekster (CC)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Slett"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Legg til på startskjerm"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Navn"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Kan ikke spille av video."
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "Ingen undertekster er tilgjengelig"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Spill"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Lukk"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "Ugyldig URL."
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Feil"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Enhetsminne"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Videospiller"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Del via"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Det har oppstått en nettverksfeil. Prøv på nytt."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Bare lyddata støttes av dette filformatet. Spiller nå av lyd."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Bare videodata støttes av dette filformatet. Spiller nå av video."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Midten"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "På"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Innstillinger"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Videoer"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Del"
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Detaljer"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Slett"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Bufrer – %d %"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Ingen"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d sek"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Velg lydenhet"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Slett"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Avbryt"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "Det har oppstått en ukjent feil, eller filen kan være ødelagt."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "Denne filtypen støttes ikke."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "FULLFØRT"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Full"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Hold forh."
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "AVBRYT"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Lagringssted"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Undertekster (CC)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Personlig lagring"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "Teksten vil se slik ut."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Filen eksisterer ikke."
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Deak. Spill bare av lyd"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Akt. Spill bare av lyd"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Trykk på Hjem-tasten eller strømtasten under avspilling for å spille av bare lyd."
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Helderheid"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Muziek"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Stemmen"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Locatie"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Onbekend"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Laatst gewijzigd op"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Delen"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Kan video niet afspelen"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "Er is een fout opgetreden met de ondertiteling."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "Het bestand is beschadigd of de SD-kaart is verwijderd."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Gegevens"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Titel"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "Deze video wordt verwijderd."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Instellingen"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Kan deze video niet afspelen"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Uitlijning"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Tekstgrootte"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Instelling herhalen"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Ondertiteling"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Midden"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Groot"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Links"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Gemiddeld"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Rechts"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Klein"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Volgende"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Vorige"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "DRM-bestanden kunnen niet worden gedeeld."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Indeling"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Kan video niet afspelen tijdens gesprek."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Bericht"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Bestandsoverdracht"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "E-mail"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Lengtegraad"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Breedtegraad"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Beweging aan"
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "Scrubbing op snelheid %sx."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Externe opslag"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Volume"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Niet-ondersteunde video-indeling."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Niet-ondersteund bestandstype."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Niet-ondersteunde audio-indeling."
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Kan niet snel vooruit of terug spoelen wanneer apparaten in de buurt zijn ingeschakeld."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Kan niet vastleggen."
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Draaien"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Druk nogmaals op de toets Terug om terug te gaan naar het vorige scherm."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Onvoldoende geheugen. Wis een aantal items."
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Favorieten vol. Verwijder een aantal favorieten."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Geel"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "Virtueel 7.1-kanaals"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Ondertiteling"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Herhaalstand"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "Geen herhaling"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Magenta"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Groen"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Letterkleur"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Cyaanblauw"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Aangepast"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Deze video (eenmaal)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Verbindingsgegevens"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Wijzig speler"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Opname"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Apparaat selecteren"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Beschikb. apparaten"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Speaker"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Wit"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Rood"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s seconden"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Afspeelsnelheid"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d sec"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Uit"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Geen titel"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "Mijn apparaat"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Standaardlettertype"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Blauw"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Zwart"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Inschakelen"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Applicatie sluiten?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Annul."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Stop na alles"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Huidige herhalen"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Alles herhalen"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Resolutie"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "%s geluidseffecten worden niet ondersteund door luidspreker."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Keer telefoon om voor dempen van inkomende oproepen, berichtwaarschuwingen en alarmen."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "SD-kaart"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Alleen audiogegevens ondersteund door dit bestand. Speelt nu audio af."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Alleen videogegevens ondersteund door dit bestand. Speelt nu video af."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Privé-opslag"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Koptelefoons"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Luidspreker"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Pauze"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Downloaden"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Ondertiteling selecteren"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Ondertiteling weergeven"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Verbinding mislukt."
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Herhaalstand"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Niet-ondersteund bestandstype."
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Normaal"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Spraak"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Films"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Audiotrack"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "In buffer..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Bestandsindeling"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Taal"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Geen video's"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Grootte"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Gereed"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Vernieuwen"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Datum"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Laden..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Ondertiteling"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Wissen"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Toevoegen aan startscherm"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Naam"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Kan video niet afspelen."
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "Geen ondertiteling beschikbaar"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Afspelen"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Sluiten"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "Adres is onjuist."
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Fout"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Apparaatopslag"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Videospeler"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Delen via"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Er is een netwerkfout opgetreden. Probeer het opnieuw."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Deze bestandsindeling ondersteunt alleen audiogegevens. Speelt nu audio af."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Alleen videogegevens die worden ondersteund door deze bestandsindeling. Speelt nu video af."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Centreren"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "Aan"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Instellingen"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Video's"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Delen"
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Gegevens"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Verwijderen"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "In buffer opslaan - %d%"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Geen"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d sec"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Audioapparaat selecteren"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Wissen"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Annuleer"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "Er is een onbekende fout opgetreden of het bestand is mogelijk beschadigd."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "Dit bestandstype wordt niet ondersteund."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "GEREED"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Vol"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Houd verh."
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ANNULEREN"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Opslaglocatie"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Ondertiteling"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Persoonlijke opslag"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "Ondertiteling ziet er zo uit."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Dit bestand bestaat niet."
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Alleen geluid afsp. uit"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Alleen geluid afsp. aan"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Druk op de Starttoets of de Aan/uit-toets tijdens afspelen om alleen audio af te spelen."
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Jasność"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Muzyka"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Głosowy"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "kB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Lokalizacja"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Nieznane"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Ostatnia modyfikacja"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Udostępniaj"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Nie można odtworzyć filmu"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "Wystąpił błąd związany z napisami."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "Plik jest uszkodzony lub wyjęto kartę pamięci."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Szczegóły"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Tytuł"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "Ten film wideo zostanie usunięty."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Ustawienia"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Nie można odtworzyć filmu"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Wyrównanie"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Rozmiar tekstu"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Ustawienie powtarzania"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Napisy (kodowane)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Pośrodku"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Duży"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Do lewej"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Średnia"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Do prawej"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Mały"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Dalej"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Wstecz"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "Nie można udostępnić plików DRM."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Format"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Nie można odtwarzać wideo podczas połączenia."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Wiadom."
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Przesyłanie plików"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Email"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Długość geogr."
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Szerokość geogr."
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Wł. f. ruchu"
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "Przewijanie z szybkością %s."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Pamięć zewnętrzna"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Głośność"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Nieobsługiwany format wideo."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Nieobsługiwany typ pliku."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Nieobsługiwany format dźwięku."
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Nie można używać przewijania do przodu ani do tyłu, gdy włączone są urządzenia w pobliżu."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Nie można przechwycić."
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Obróć"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Naciśnij ponownie klawisz wstecz, aby wrócić do poprzedniego ekranu."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Brak pamięci. Usuń niektóre elementy"
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Lista zakładek pełna. Usuń niektóre zakładki."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Żółty"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "Wirtualne 7.1"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Napisy (kodowane)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Tryb powtarzania"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "Bez powtarzania"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Amarantowy"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Zielony"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Kolor czcionki"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Cyjan"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Niestandardowa"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Bieżący film (raz)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Inform. o połączeniu"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Zmień odtwarzacz"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Przechwyć"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Wybierz urządzenie"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Dostępne urządzenia"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Głośnik"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Biały"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Czerwony"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s s"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Szybkość odtwarzania"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d sek."
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Wyłącz"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Brak tytułu"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "Moje urządzenie"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Czcionka domyślna"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Niebieski"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Czarny"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Aktywacja"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Zamknąć aplikację?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Anul."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Zatrzymaj po wszyst."
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Powtórz bieżący"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Powtórz wszystkie"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Rozdzielczość"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "Efekty dźwiękowe %s nie są obsługiwane przez głośnik."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Odwróć telefon, aby wyciszyć połączenia przychodzące, dźwięki wiad. i alarmy."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "Karta pamięci"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Ten plik obsługuje tylko dane audio. Trwa odtwarzanie dźwięku."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Ten plik obsługuje tylko dane wideo. Trwa odtwarzanie wideo."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Pamięć prywatna"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Słuchawki"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Głośnik"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Pauza"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Pobierz"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Wybierz napisy (kodowane)"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Podgląd napisów (kodowane)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Błąd łączenia"
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Tryb powtarzania"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Nieobsługiwany typ pliku."
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Normalna"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Głosowy"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Filmy"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Ścieżka dźwiękowa"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Buforowan..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Format pliku"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Język"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Brak filmów wideo"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Rozmiar"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Gotowe"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Odśwież"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Data"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Ładowanie..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Napisy (kodowane)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Usuń"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Dodaj do ekranu startowego"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Nazwa"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Nie można odtworzyć filmu."
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "Brak dostępnych napisów"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Odtwórz"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Zamknij"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "Nieprawidłowy adres URL"
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Błąd"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Pamięć urządzenia"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Odtwarzacz wideo"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Udostępnij przez"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Wystąpił błąd sieci. Spróbuj później."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Ten format plików obsługuje tylko dane audio. Trwa odtwarzanie dźwięku."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Ten format pliku obsługuje tylko dane wideo. Trwa odtwarzanie wideo."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Centrum"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "Włącz"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Ustawienia"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Filmy"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Udost."
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Szczegóły"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Usuń"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Buforowanie — %d%"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Brak"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d s"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Wybór urządzenia audio"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Usuń"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Anuluj"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "Wystąpił nieznany błąd lub plik może być uszkodzony."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "Ten typ plików nie jest obsługiwany."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "GOTOWE"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Pełny"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Zach.prop."
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ANULUJ"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Położenie pamięci"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Napisy (kodowane)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Pamięć osobista"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "Tak będą wyglądać napisy"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Plik nie istnieje."
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Wyłącz Odtw. tylko dźw."
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Odtwarzaj tylko dźwięk"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Podczas odtwarzania naciśnij klawisz ekranu startowego lub klawisz zasilania, aby odtworzyć tylko dźwięk."
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Brilho"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Música"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Voz"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Local"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Desconhecido"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Última modificação"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Compartilhar"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Impossível reproduzir o vídeo"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "Houve um erro com as legendas."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "O arquivo está corrompido ou o cartão SD foi removido."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Detalhes"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Título"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "Este vídeo será excluído."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Configurações"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Não é possível reprod. vídeo"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Alinhamento"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Tamanho da fonte"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Repetir configuração"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Legendas"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Centralizar"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Grande"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Esquerdo"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Média"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Direito"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Pequena"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Próximo"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Anterior"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "Não é possível compartilhar os arquivos DRM."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Formato"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Impossível reproduzir vídeo durante chamada."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Mensagem"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Transferir arquivo"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "E-mail"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Longitude"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Latitude"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Ativar mov."
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "Depurar a %sx veloc."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Armazenamento externo"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Volume"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Formato de vídeo não suportado."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Tipo de arquivo não suportado."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Formato de áudio não suportado."
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Impossível usar o avanço rápido ou retrocesso quando dispositivos próximos estão ativados."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Impossível capturar."
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Girar"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Pressione a tecla voltar novamente para retornar à tela anterior."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Memória insuficiente. Apague alguns itens"
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Favoritos cheio. Apague alguns favoritos."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Amarelo"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "7.1 ch Virtual"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Legendas"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Modo de repetição"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "Sem repetição"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Púrpura"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Verde"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Cor da fonte"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Ciano"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Personalizar"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Vídeo atual (1 vez)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Informações conexão"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Alterar player"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Capturar"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Selecionar dispositivo"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Dispositivos dispon."
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Viva-voz"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Branco"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Vermelho"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s segundos"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Velocidade de reprodução"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d s"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Desativado"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Sem título"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "Meu dispositivo"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Fonte padrão"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Azul"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Preto"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Ativação"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Fechar aplicação?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Canc."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Parar após todos"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Repetir atual"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Repetir todos"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Resolução"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "Efeitos sonoros %s não suportados pelo alto-falante."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Vire o telefone ao contrário para silenciar chamadas recebidas, alertas de mensagens e alarmes."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "Cartão SD"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Somente dados de áudio são suportados por este arquivo. Agora reproduzindo áudio."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Somente dados de vídeo são suportados por este arquivo. Agora reproduzindo vídeo."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Armazenamento privado"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Fones de ouvido"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Viva-voz"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Pausar"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Baixar"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Selecionar legendas (CC)"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Visualização de legendas (CC)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Falha de conexão."
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Modo de repetição"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Tipo de arquivo não suportado."
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Normal"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Voz"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Filmes"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Faixa de áudio"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Mov. p/buffer"
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Formato de arquivo"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Idioma"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Nenhum vídeo"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Tamanho"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "OK"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Atualizar"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Data"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Carregando..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Legendas (CC)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Excluir"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Adicionar à tela inicial"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Nome"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Você não pode reproduzir vídeo."
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "Nenhuma legenda disponível"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Reproduzir"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Fechar"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "URL inválida."
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Erro"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Armazenamento do dispositivo"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Video player"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Compartilhar via"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Ocorreu um erro de rede. Tente novamente."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Somente dados de áudio são suportados por este formato de arquivo. Reproduzindo áudio agora."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Somente dados de vídeo são suportados por este formato de arquivo. Agora reproduzindo vídeo."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Centro"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "Ativado"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Configurações"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Vídeos"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Compart."
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Detalhes"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Excluir"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Armazenando temporariamente - %d%"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Nenhum"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d seg"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Selecionar dispositivo de áudio"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Excluir"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Cancelar"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "Ocorreu um erro desconhecido ou o arquivo pode estar corrompido."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "Este tipo de arquivo não é suportado."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "CONCLUÍDO"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Cheia"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Mant. prop"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "CANCELAR"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Local de armazenamento"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Legendas (CC)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Armazenamento pessoal"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "As legendas aparecerão desta forma"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Este arquivo não existe."
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Desat. reprod. só áudio"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Ativar reprod. só áudio"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Pressione a Tecla Início ou a Tecla Ligar/Desligar durante a reprodução para reproduzir apenas áudio."
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Brilho"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Música"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Vozes"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Localização"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Desconhecido"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Última modificação"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Enviar"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Impossível reproduzir vídeo"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "Ocorreu um erro com as legendas."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "O ficheiro está corrompido ou o cartão SD foi retirado."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Detalhes"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Título"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "Este vídeo será eliminado."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Definições"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Impossível reproduzir vídeo"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Alinhamento"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Tamanho de fonte"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Repetir definição"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Legendas (CC)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Centro"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Grande"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Esquerda"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Média"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Direita"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Pequeno"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Seguinte"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Anterior"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "Impossível partilhar ficheiros DRM."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Formato"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Impossível reproduzir vídeo durante chamada."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Mensagem"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Transfer. ficheiro"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "E-mail"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Longitude"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Latitude"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Activar mov."
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "Leitura a %sx da velocidade."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Armazenamento externo"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Volume"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Formato de vídeo não suportado."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Tipo de ficheiro não suportado."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Formato de áudio não suportado."
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Impossível utilizar o avanço rápido e o retrocesso quando existem dispositivos próximos activados."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Impossível capturar."
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Rodar"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Prima novamente a tecla voltar para regressar ao ecrã anterior."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Memória insuficiente. Apague alguns itens."
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Lista de marcadores cheia. Apague alguns marcadores."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Yellow"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "Canal virtual 7.1"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Legendas (CC)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Modo de repetição"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "Não repetir"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Magenta"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Verde"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Cor do tipo de letra"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Cião"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Personalizar"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Vídeo actual (1 vez)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Info de ligação"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Mudar leitor"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Capturar"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Seleccionar dispositivo"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Disposit disponíveis"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Altifal."
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Branco"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Vermelho"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s segundos"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Velocidade de reprodução"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d s"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Desligado"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Sem título"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "O meu dispositivo"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Fonte padrão"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Azul"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Preto"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Activação"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Fechar aplicação?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Canc."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Parar depois de tudo"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Repetir actual"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Repetir tudo"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Resolução"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "%s efeitos de som não são suportados pelo altifalante."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Mude o telefone para silenciar chamadas recebidas, alertas de mensagem e alarmes."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "Cartão SD"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Só são suportados por este ficheiro dados de áudio. A reproduzir áudio."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Só são suportados por este ficheiro dados de vídeo. A reproduzir vídeo."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Armazenamento privado"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Auscultadores"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Alta-voz"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Pausa"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Transferir"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Seleccionar legendas (CC)"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Pré-visualizar legendas (CC)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Falha na ligação."
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Modo de repetição"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Tipo de ficheiro não suportado."
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Normal"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Voz"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Filmes"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Faixa de áudio"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Mem. tempor."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Formato de ficheiro"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Idioma"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Nenhuns vídeos"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Tamanho"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Concluir"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Actualizar"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Data"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "A carregar..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Legendas (CC)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Eliminar"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Adicionar ao ecrã principal"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Nome"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Impossível reproduzir vídeo."
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "Não estão disponíveis legendas"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Reproduzir"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Fechar"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "URL inválido."
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Erro"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Armazenamento do dispositivo"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Leitor de Vídeo"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Partilhar via"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Ocorreu um erro de rede. Tente novamente."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Este formato de ficheiro suporta apenas dados de áudio. A reproduzir áudio agora."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Só são suportados dados de vídeo por este formato de ficheiro. A reproduzir vídeo."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Centro"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "Ligado"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Definições"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Vídeos"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Enviar"
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Detalhes"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Eliminar"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Colocar na memória temporária - %d %"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Nenhum"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d s"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Seleccionar dispositivo de áudio"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Eliminar"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Cancelar"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "Ocorreu um erro desconhecido ou o ficheiro pode estar corrupto."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "Este tipo de ficheiro não é suportado."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "CONCLUÍDO"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Cheio"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Original"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "CANCELAR"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Localização armazenamento"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Legendas (CC)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Armazenamento pessoal"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "As legendas terão este aspecto"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Ficheiro inexistente."
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Desactivar Só áudio"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Activar Só áudio"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Prima a Tecla principal ou a Tecla de alimentação durante a reprodução, para reproduzir apenas áudio."
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Luminozitate"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Muzică"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Voci"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KO"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Locaţie"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MO"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Necunoscut"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Ultima modificare"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Partajaţi"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Videoclipul nu poate fi redat"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "A apărut o eroare legată de subtitrări."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "Fişierul este deteriorat sau cardul SD a fost îndepărtat."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Detalii"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Titlu"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "Acest videoclip va fi şters."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Setări"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Videoclipul nu poate fi redat"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Aliniere"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Dimensiune font"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Setare repetare"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Subtitrări (complexe)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Centru"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Mare"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Stânga"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Mediu"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Dreapta"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Mic"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Următor"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Anterior"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "Fişierele DRM nu pot fi partajate."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Formatare"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Imposibil de redat videoclipul în timpul apelului"
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Mesaj"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Transfer fişier"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Email"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Longitudine"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Latitudine"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Activ. mişc."
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "Se derulează la o viteză de %sx."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Stocare externă"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Volum"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Format video neacceptat"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Tip fişier neacceptat"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Format audio neacceptat"
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Nu se poate utiliza derularea rapidă înainte sau derularea înapoi când dispozitivele din apropiere sunt activate."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Imposibil de capturat"
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Rotire"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Apăsaţi din nou pe tasta Înapoi pentru a reveni la ecranul anterior."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Memorie insuficientă. Ştergeţi câteva elemente"
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Listă marcaje plină. Ştergeţi din marcaje."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Galben"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "7.1 canale virtuale"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Subtitrări (complexe)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Mod repetare"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "Nicio repetiţie"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Magenta"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Verde"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Culoare font"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Azuriu"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Personalizat"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Video act. (o dată)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Info. conexiune"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Schimbare player"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Captură"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Selectare dispozitiv"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Dispozitive dispon."
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Difuzor"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Alb"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rozmarin"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Roşu"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s secunde"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Viteză de redare"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d sec."
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Oprit"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Nici un titlu"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "Dispozitivul meu"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Font prestabilit"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Jazz liniştit"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Biscuite de ciocolată"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Albastru"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Negru"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Activare"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Închideţi aplicaţia?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Anul."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Oprire după toate"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Repetare actual"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Repetare globală"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Rezoluţie"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "Efectele sonore %s nu sunt acceptate de difuzor."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Întoarceţi telefonul pentru a opri sunetul pentru apeluri primite, alerte de mesaje şi alarme."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "Cartelă SD"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Doar datele audio sunt acceptate de acest fişier. Se redă conţinut audio."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Doar datele video sunt acceptate de acest fişier. Se redă conţinut video."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Spaţiu de stocare privat"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Căşti"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Difuzor"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Pauză"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Descărcare"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Sel. subtitr. (complexe)"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Examin. subtitrări (complexe)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Conexiune nereuşită"
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Mod repetare"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Tip fişier neacceptat"
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Normal"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Voce"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Filme"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Piesă audio"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Se încarcă..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Format fişier"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Limbă"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Niciun videoclip"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Dimensiune"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Efectuat"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Reîmprosp."
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Dată"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Se încarcă..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Subtitr. (complexe)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Ştergere"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Adăug. la ecran. de pornire"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Nume"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Imposibil de redat videoclipul"
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "Nu sunt disponibile subtitrări"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Redare"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Închidere"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "URL invalid"
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Eroare"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Spaţiu stocare dispozitiv"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Player video"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Partajare prin"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "A apărut o eroare de reţea. Încercaţi din nou."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Doar datele audio sunt acceptate de acest format de fişier. Se redă conţinut audio."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Acest format de fişier acceptă doar datele video. Se redă conţinut video."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Centru"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "Pornit"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Setări"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Videoclip."
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Partaj."
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Detalii"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Ştergere"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Încărcare în zona tampon - %d%"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Fără"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d sec."
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Selectare dispozitiv audio"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Ştergere"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Anulare"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "A apărut o eroare necunoscută sau este posibil ca fişierul să fie deteriorat."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "Acest tip de fişier nu este acceptat."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "EFECTUAT"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Complet"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Menț. rap."
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ANULARE"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Locaţie stocare"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Subtitrări (complexe)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Spaţiu de stocare personal"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "Subtitrările vor arăta astfel"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Acest fişier nu există."
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Dez. Red. numai audio"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Activ. Red. doar audio"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Apăsați tasta Acasă sau Pornire în timpul redării pentru a reda numai conținutul audio."
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Яркость"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Музыка"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Голоса"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "б"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "Гб"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "КБ"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Местоположение"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "МБ"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Неизвестно"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "ОК"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Последнее изменение"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Отправить"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Невозможно воспроизвести видео"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "Возникла ошибка с субтитрами."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "Файл поврежден или карта памяти SD извлечена."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Свойства"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Название"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "Это видео будет удалено."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Настройки"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Невозможно воспроизвести видео"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Выравнивание"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Размер шрифта"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Параметры повторения"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Субтитры"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "По центру"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Крупный"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Слева"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Средний"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Справа"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Мелкий"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Далее"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Назад"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "Невозможно поделиться DRM-файлами."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Формат"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Воспроизведение видео во время вызова невозможно."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Сообщение"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Передача файлов"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Эл. почта"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Долгота"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Широта"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Вкл. движение"
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "Перемотка на скорости %sx."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Внешний носитель"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Громкость"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Неподдерживаемый формат видео"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Неподдерживаемый тип файла"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Неподдерживаемый формат аудио"
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Если включена функция устройств поблизости, использовать перемотку вперед и назад невозможно."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Не удалось сохранить."
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Повернуть"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Чтобы вернуться на предыдущий экран, нажмите клавишу возврата еще раз."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Недостаточно памяти. Удалите некоторые элементы"
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Список закладок заполнен.\nУдалите некоторые закладки."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Желтый"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "Эмуляция 7.1"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Субтитры"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Режим повтора"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "Повтор выключен"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Пурпурный"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Зеленый"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Цвет шрифта"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Голубой"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Пользовательский"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Данное видео (1 раз)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Сведения о подключ."
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Изменить проигрыватель"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Съемка"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Выбрать устройство"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Доступные устройства"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Динамик"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Белый"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Красный"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s сек."
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Скорость воспроизведения"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d сек"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Выключено"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Нет названия"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "Мое устройство"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Шрифт по умолчанию"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Синий"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Черный"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Активация"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Закрыть приложение?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Отмена"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Останов. после всех"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Повторить текущее"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Повторять все"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Разрешение"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "Звуковые эффекты %s не поддерживаются динамиком."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Чтобы отключить сигнал входящего вызова, сообщения или будильника, переверните телефон."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "Карта памяти"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Только звук, поддерживаемый этим файлом. Текущий воспроизводимый аудиофайл."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Только видео, поддерживаемое этим файлом. Текущий воспроизводимый видеофайл."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Приватное хранилище"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Наушники"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Громкая связь"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Пауза"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Загрузить"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Выбор субтитров"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Просмотреть субтитры"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Сбой при подключении."
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Режим повтора"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Неподдерживаемый тип файла"
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Обычный"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Голос"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Фильмы"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Звуковая дорожка"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Буферизация"
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Формат файла"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Язык"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Нет видео"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Размер"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Готово"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Обновить"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Дата"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Загрузка..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Субтитры"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Удалить"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Добавить на главный экран"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Имя"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Невозможно воспроизвести видео."
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "Нет доступных субтитров"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Воспроизвести"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Закрыть"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "Неправильный URL"
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Ошибка"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Память устройства"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Видео"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Отправить через"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Произошла ошибка сети. Повторите попытку."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Этот формат файла поддерживает только звуковые данные. Воспроизводится звук."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Этот формат файла поддерживает только видеоданные. Будет выполнено воспроизведение видео."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "По центру"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "Включено"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Настройки"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Видео"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Отправ."
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Свойства"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Удалить"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Буферизация: %d%"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Нет"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d сек."
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Выберите аудиоустройство"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Удалить"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Отмена"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "Произошла неизвестная ошибка, или файл поврежден."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "Этот тип файла не поддерживается."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "ГОТОВО"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Разверн."
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Сох.соотн."
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ОТМЕНА"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Место хранения"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Субтитры (копия)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Личное хранилище"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "Подписи будут выглядеть так."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Файл не существует."
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Откл. только восп.аудио"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Вкл. только восп.аудио"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Чтобы воспроизводилось только аудио, нажмите клавишу “Домой” или клавишу питания во время воспроизведения."
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Jas"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Hudba"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Hlasy"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "kB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "GPS"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Neznáme"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Naposledy upravené"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Zdieľať"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Video sa nedá prehrať"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "Vyskytla sa chyba titulkov."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "Súbor je poškodený alebo karta SD bola odstránená."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Podrobnosti"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Názov"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "Toto video sa odstráni."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Nastavenia"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Nedá sa prehrať video"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Zarovnanie"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Veľkosť písma"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Nastavenie opakovania"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Titulky (skryté)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Stred"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Veľké"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Vľavo"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Stredné"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Vpravo"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Malé"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Ďalej"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Predch."
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "Súbory DRM nemožno zdieľať."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Formát"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Počas hovoru sa nedá prehrávať video."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Správa"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Prenos súborov"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "E-mail"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Zemepisná dĺžka"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Zemepisná šírka"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Povoliť pohyb"
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "Posúvanie rýchlosťou %sx."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Exter. úložný priestor"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Hlasitosť"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Nepodporovaný formát videa."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Nepodporovaný typ súboru."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Nepodporovaný formát zvuku."
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Keď sú povolené blízke zariadenia, nemožno použiť prevíjanie dopredu a dozadu."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Nedá sa snímať."
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Otočiť"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Opätovným stlačením tlačidla návratu sa vrátite na predchádzajúcu obrazovku."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Nedostatok pamäte. Vymažte niektoré položky"
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Zoznam záložiek je plný. Vymažte niektoré záložky."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Žltá"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "Virtuálny 7.1-kanálový zvuk"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Titulky (skryté)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Režim opakovania"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "Bez opakovania"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Purpurová"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Zelená"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Farba písma"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Azúrová"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Vlastné"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Aktuálne video (raz)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Inform. o pripojení"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Zmeniť prehrávač"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Nasnímať"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Vybrať zariadenie"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Dostupné zariadenia"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Reproduk."
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Biela"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rozmarín"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Červená"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s s"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Rýchlosť prehrávania"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d s"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Vyp."
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Žiadny názov"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "Moje zariadenie"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Predvolené písmo"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Modrá"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Čierna"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Aktivácia"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Zavrieť aplikáciu?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Zruš."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Zastaviť po všetkých"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Opakovať aktuálne"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Opakovať všetko"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Rozlíšenie"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "Reproduktor nepodporuje zvukové efekty %s."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Prevrátením telefónu stlmíte prichádzajúce hovory, upozornenia na správy a budíky."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "Karta SD"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Tento súbor podporuje iba zvukové údaje. Teraz sa prehráva zvuk."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Tento súbor podporuje iba obrazové údaje. Teraz sa prehráva video."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Súkromné úložisko"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Slúchadlá"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Reproduktor"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Pauza"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Stiahnuť"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Vybrať titulky (skryté)"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Ukážka titulkov (skryté tit.)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Pripojenie sa nepodarilo."
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Režim opakovania"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Nepodporovaný typ súboru."
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Normálny"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Hlas"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Filmy"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Zvuková stopa"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Do medzip..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Formát súboru"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Jazyk"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Žiadne videá"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Veľkosť"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Hotovo"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Obnoviť"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Dátum"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Načítava sa..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Titulky (skryté)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Odstrániť"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Pridať na úvodnú obrazovku"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Meno"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Nedá sa prehrať video."
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "Žiadne dostupné titulky"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Prehrať"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Zavrieť"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "Neplatná adresa URL."
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Chyba"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Úložisko zariadenia"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Prehrávač videí"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Zdieľať cez"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Vyskytla sa chyba siete. Skúste to znova."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Tento formát súboru podporuje iba zvukové údaje. Teraz sa prehráva zvuk."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Tento formát súboru podporuje iba obrazové údaje. Teraz sa prehráva video."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Stred"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "Zap."
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Nastavenia"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Videá"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Zdieľať"
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Podrobnosti"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Odstrániť"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Ukladá sa do medzipamäte – %d %"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Žiadne"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d s"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Vybrať zvukové zariadenie"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Odstrániť"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Zrušiť"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "Vyskytla sa neznáma chyba alebo súbor je možno poškodený."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "Tento typ súboru nie je podporovaný."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "HOTOVO"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Na celý"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Pôvodný"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ZRUŠIŤ"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Umiest. úlož. priestoru"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Titulky (skryté)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Osobný úložný priestor"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "Titulky budú vyzerať takto"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Súbor neexistuje."
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Vypnúť Prehrať iba zvuk"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Zap. Prehrať iba zvuk"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Stlačením tlačidla Domov alebo tlačidla Napájanie počas prehrávania môžete prehrať samotný zvuk."
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Svetlost"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Glasba"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Glasovi"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Lokacija"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Neznano"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "V redu"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Zadnjič spremenjeno"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Skupna raba"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Videa ni mogoče predvajati"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "Prišlo je do napake s podnapisi."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "Datoteka je poškodovana ali pa je kartica SD odstranjena."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Podrobnosti"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Naslov"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "Ta videoposnetek bo izbrisan."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Nastavitve"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Videa ni mogoče predvajati"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Poravnava"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Velikost pisave"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Nastavitev ponavljanja"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Podnapisi (CC)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Sredina"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Velika"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Levo"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Srednja"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Desno"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Majhna"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Naprej"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Nazaj"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "Datotek DRM ni mogoče deliti z drugimi."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Format"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Ni mogoče predvajati videa med klicem."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Sporoč."
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Prenos datotek"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "E-pošta"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Zemljepisna dolžina"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Zemljepisna širina"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Omog. gibanje"
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "Čiščenje pri hitrosti %sx."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Zunanji pomnilnik"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Glasnost"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Nepodprt video zapis."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Nepodprta vrsta datoteke."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Nepodprt zvočni zapis."
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Funkcij za hitro previjanje naprej in nazaj ni mogoče uporabljati, ko so omogočene naprave v bližini."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Ni mogoče zajeti."
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Obrni"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Znova pritisnite tipko za vrnitev, da se vrnete na prejšnji zaslon."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Ni dovolj pomnilnika. Izbrišite nekaj predmetov"
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Seznam zaznamkov je poln. Izbrišite nekaj zaznamkov."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Rumena"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "Zvočna kartica Virtual 7.1 ch"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Podnapisi (CC)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Način ponavljanja"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "Brez ponavljanja"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Magenta"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Zelena"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Barva pisave"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Cijan"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Po meri"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Tren. video (enkrat)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Podatki o povezavi"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Spremeni predvajalnik"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Zajemi"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Izberite napravo"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Razpoložlj. naprave"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Zvočnik"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Bela"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Rdeča"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s s"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Hitrost predvajanja"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d s"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Izključeno"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Ni naslova"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "Moja naprava"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Privzeta pisava"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Modro"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Črna"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Vklop"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Zaprem aplikacijo?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Prekliči"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Ustavi po vseh"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Ponovi trenutno"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Ponovi vse"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Ločljivost"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "Zvočnik ne podpira zvočnih učinkov %s."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Obrnite telefon, da utišate dohodne klice, opozorila o sporočilih in alarme."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "Kartica SD"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Ta datoteka podpira samo zvočne podatke. Zvok se predvaja."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Ta datoteka podpira samo video podatke. Video se predvaja."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Zasebna shramba"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Slušalke"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Zvočnik"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Premor"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Prenos"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Izberite podnapise (CC)"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Predogled podnapisov (CC)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Povezava ni uspela."
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Način ponavljanja"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Nepodprta vrsta datoteke."
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Normalna"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Glasovno"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Filmi"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Zvočni posnetek"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Medpomnjenje"
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Zapis datoteke"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Jezik"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Ni videoposnetkov"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Velikost"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Končano"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Osveži"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Datum"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Nalaganje ..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Podnapisi (CC)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Izbriši"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Dodaj na domači zaslon"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Ime"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Video posnetka ni mogoče predvajati."
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "Nobeni podnapisi niso na voljo"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Predvajaj"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Zapri"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "Nepravilen URL."
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Napaka"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Shramba naprave"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Video predvajal."
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Deli z drugimi prek"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Prišlo je do napake omrežja. Poskusite znova."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Ta oblika zapisa datoteke podpira samo zvočne podatke. Zvok se predvaja."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Ta oblika zapisa datoteke podpira samo video podatke. Video se predvaja."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Na sredino"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "Vključeno"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Nastavitve"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Videi"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Soupor."
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Podrobnosti"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Izbriši"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Medpomnjenje – %d %"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Brez"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d s"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Izberite zvočno napravo"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Izbriši"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Prekliči"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "Prišlo je do neznane napake ali pa je datoteka poškodovana."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "Ta vrsta datoteke ni podprta."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "KONČANO"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Cel zas."
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Ohr. razm."
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "PREKLIČI"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Mesto shranjevanja"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Podnapisi (CC)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Osebna shramba"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "Napisi bodo videti tako"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Ta datoteka ne obstaja."
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Onem. Predv. samo zvok"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Omog. Predv. samo zvok"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Če želite predvajati samo zvok, med predvajanjem pritisnite tipko za domov ali za vklop."
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Osvetljenje"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Muzika"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Glasovi"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Lokacija"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Nepoznato"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Poslednja izmena"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Podeli"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Nemoguće reprodukovati video"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "Došlo je do greške sa titlovima."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "Fajl je oštećen ili je uklonjena SD kartica."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Detalji"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Naslov"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "Ovaj video će biti izbrisan."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Podešavanja"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Nemoguća reprodukcija videa"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Poravnanje"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Veličina slova"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Podešavanje ponavljanja"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Titlovi"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Središnje"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Velika"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Levo"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Srednji"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Desno"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Mala"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Naredna"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Prethodna"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "DRM fajlovi ne mogu da se dele."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Format"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Nemoguće reprodukovati video tokom poziva."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Poruka"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Prenos fajlova"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "E-pošta"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Geografska dužina"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Geografska širina"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Omog. pokret"
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "Pročešljavanje na %s x brzina."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Spoljna memorija"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Glasnoća"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Nepodržan video format."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Nepodržani tip fajla."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Nepodržan audio format."
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Nije moguće koristiti funkciju premotavanja unapred i unazad kada su omogućeni uređaji u blizini."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Nije moguće snimiti."
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Rotiraj"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Ponovo pritisni taster Nazad za povratak na prethodni ekran."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Nedovoljno memorije. Obriši neke od stavki"
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Lista obeleživača je puna. Obrišite neke."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Žuta"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "Virtuelni 7.1 kanal"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Titlovi"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Režim ponavljanja"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "Bez ponavljanja"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Magenta"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Zelena"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Boja fonta"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Cijan"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Prilagođeno"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Tren. video (jednom)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Informacije o vezi"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Promeni plejer"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Snimanje"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Izaberi uređaj"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Dostupni uređaji"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Zvučnik"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Bela"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Ruzmarin"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Crvena"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s sekundi"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Brzina reprodukcije"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d s"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Isključeno"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Nema naslova"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "Moj uređaj"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Podrazumevani font"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Plava"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Crna"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Aktivacija"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Zatvori aplikaciju?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Otkaži"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Zaustavi nakon svega"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Ponovi aktuelno"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Ponovi sve"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Rezolucija"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "Zvučnik ne podržava %s zvučne efekte."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Okreni telefon naopako da bi utišao dolazne pozive, upozorenja o porukama i alarme."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "SD kartica"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Ovaj fajl podržava samo zvučne podatke. Sada se reprodukuje zvuk."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Ovaj fajl podržava samo video podatke. Sada se reprodukuje video zapis."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Privatna memorija"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Slušalice"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Zvučnik"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Pauza"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Preuzmi"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Odredi titlove"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Pregled titlova"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Neuspešno povezivanje."
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Režim ponavljanja"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Nepodržani tip fajla."
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Normalna"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Glas"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Filmovi"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Audio numera"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Baferisanje..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Format fajla"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Jezik"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Nema video zapisa"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Veličina"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Gotovo"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Osveži"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Datum"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Učitavanje..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Titlovi (CC)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Izbriši"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Dodaj na početni ekran"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Ime"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Nemoguće reprodukovati video zapis."
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "Titlovi nisu dostupni"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Reprodukcija"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Zatvori"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "Neispravan URL."
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Greška"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Skladišna lokacija uređaja"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Video plejer"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Podeli putem"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Došlo je do greške na mreži. Pokušaj ponovo."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Ovaj format fajla podržava samo zvučne podatke. Sada se reprodukuje zvuk."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Ovaj format fajlova podržava samo video podatke. Sada se reprodukuje video zapis."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Srednje"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "Uključeno"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Podešavanja"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Video zapisi"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Podeli"
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Detalji"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Izbriši"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Baferisanje – %d%"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Nema"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d sekundi"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Izaberi audio uređaj"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Izbriši"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Otkaži"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "Došlo je do nepoznate greške ili je fajl je možda oštećen."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "Ovaj tip fajla nije podržan."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "GOTOVO"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Puno"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Isti odnos"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "OTKAŽI"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Skladišna lokacija"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Titlovi"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Lična memorija"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "Titlovi će izgledati ovako"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Fajl ne postoji."
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Onem. Pusti samo zvuk"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Omog. Pusti samo zvuk"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Pritisnite taster Početak ili Taster za uključivanje tokom reprodukcije da biste reprodukovali samo zvuk."
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Ljusstyrka"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Musik"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Röster"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "kB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Plats"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Okänd"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Senast ändrad"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Dela"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Kan inte spela upp video"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "Ett fel inträffade i undertexterna."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "Filen är skadad eller så har SD-kortet tagits bort."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Detaljer"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Rubrik"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "Det här videoklippet kommer att raderas."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Inställningar"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Kan inte spela upp video"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Justering"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Teckenstorlek"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Upprepa inställning"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Textning (CC)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Centrerat"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Stor"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Vänster"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Medium"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Höger"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Liten"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Nästa"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Åter"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "DRM-filer går inte att dela."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Format"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Kan inte spela upp videoklipp medan samtal pågår."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Medd."
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Filöverföring"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "E-post"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Longitud"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Latitud"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Akt. rörelse"
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "Skrubbar med %sx hastighet."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Externt minne"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Volym"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Videoformatet stöds inte."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Filtypen stöds inte."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Ljudformatet stöds inte."
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Det går inte att använda snabbspolning framåt och bakåt när enheter i närheten är aktiverade."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Det går inte att registrera."
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Rotera"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Tryck på tillbakaknappen igen om du vill återgå till föregående skärmbild."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Minnet räcker inte. Radera några objekt."
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Bokmärken fullt. Radera några bokmärken."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Gul"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "Virtuellt 7.1-kanalljud"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Textning (CC)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Upprepning"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "Ingen upprepning"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Magenta"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Grön"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Teckenfärg"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Cyan"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Egen"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Akt. video (1 gång)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Anslutningsinfo"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Byt spelare"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Ta bild"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Välj enhet"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Tillängliga enheter"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Högtalare"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Vit"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Röd"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s sekunder"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Uppspelningshastighet"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d s"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Av"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Ingen rubrik"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "Min enhet"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Standardteckensnitt"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Blå"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Svart"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Aktivera"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Stäng programmet?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Avbryt"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Stoppa efter alla"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Upprepa nuvarande"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Upprepa alla"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Upplösning"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "%s ljudeffekter stöds inte av högtalare."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Vänd på telefonen för att tysta inkommande samtal, meddelandesignaler och larm."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "SD-kort"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Endast ljuddata stöds av den här filen. Spelar nu upp ljudet."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Endast videodata stöds av den här filen. Spelar nu upp videon."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Privat lagring"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Hörlurar"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Högtalare"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Paus"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Hämta"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Välj textning (CC)"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Förhandsgranska textning (CC)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Anslutningsfel."
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Upprepning"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Filtypen stöds inte."
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Normal"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Röst"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Filmer"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Ljudspår"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Buffrar..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Filformat"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Språk"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Ingen video"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Storlek"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Klar"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Uppdatera"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Datum"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Laddar..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Textning (CC)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Ta bort"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Lägg till på hemskärmen"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Namn"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Det går inte att spela upp video."
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "Ingen undertext tillgänglig"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Starta"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Stäng"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "Ogiltig URL."
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Fel"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Enhetslagring"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Videospelare"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Dela via"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Ett nätverksfel har inträffat. Försök igen."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Endast ljuddata stöds i det här filformatet. Spelar nu upp ljudet."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Endast videodata stöds av detta filformat. Spelar nu upp videon."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Centrerad"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "På"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Inställningar"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Video"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Dela"
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Detaljer"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Ta bort"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Buffrar – %d %"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Ingen"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d sek"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Välj ljudenhet"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Ta bort"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Avbryt"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "Ett okänt fel har inträffat eller så kan filen vara skadad."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "Den här filtypen stöds inte."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "KLAR"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Helskärm"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Beh. förh."
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "AVBRYT"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Lagringsplats"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Textning (CC)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Privat lagringsutrymme"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "Undertexter kommer att se ut så här."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Filen finns inte."
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Inaktiv. Spela en. ljud"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Aktiv. Spela en. ljud"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Tryck på hemknappen eller strömknappen under uppspelningen om du bara vill spela upp ljud."
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Parlaklık"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Müzik"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Sesler"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Konum"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Bilinmeyen"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "Tamam"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Son değiştirilme"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Paylaş"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Video oynatılamıyor"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "Altyazılarla ilgili bir hata oluştu."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "Dosya bozuk veya SD kartı çıkarılmış."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Ayrıntılar"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Başlık"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "Bu video silinecek."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Ayarlar"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Video oynatılamıyor"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Hizalama"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Yazı boyutu"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Ayarı tekrarla"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Altyazılar (CC)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Merkez"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Büyük"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Sol"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Orta"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Sağ"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Küçük"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "İleri"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Önceki"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "DRM dosyaları paylaşılamaz"
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Biçim"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Görüşme sırasında video oynatılamıyor."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Mesaj"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Dosya transferi"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "E-posta"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Boylam"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Enlem"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Hareket etkinleştir"
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "%sx hızda sarma."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Harici bellek"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Ses seviyesi"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Video biçimi desteklenmiyor."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Dosya türü desteklenmiyor."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Ses biçimi desteklenmiyor."
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Civardaki cihazlar etkinken ileri veya geri sarma kullanılamaz."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Yakalanamıyor."
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Döndür"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Önceki ekrana tekrar dönmek için geri tuşuna basın."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Yeterli hafıza yok. Bazı öğeleri silin."
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Yer işaretleri listesi dolu. Bazılarını silin."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Sarı"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "Virtual 7.1 ch"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Altyazılar (CC)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Tekrarlama modu"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "Tekrarlama yok"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Macenta"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Yeşil"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Yazı tipi rengi"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Cam göbeği"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Özel"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Gçrl video (bir kez)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Bağlantı bilgisi"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Oynatıcı değiştir"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Yakala"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Cihaz seçin"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Kllanılablr cihazlar"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Hoparlör"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Beyaz"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Kırmızı"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s saniye"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Oynatma hızı"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d sn"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Kapalı"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Başlık yok"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "Cihazım"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Varsayılan yazı tipi"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Çikolatalı kurabiye"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Mavi"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Siyah"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Etkinleştirme"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Uygulama kapatılsın mı ?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "İptal"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Tümünden sonra drdr"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Geçerli ortm tkrarla"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Tümünü tekrarla"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Çözünürlük"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "Hoparlor %s ses efektlerini desteklemiyor."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Telefonunuzu döndürerek gelen aramaları, mesaj uyarılarını ve alarmları susturun."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "SD kart"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Bu dosya sadece ses verilerini destekliyor. Şu anda ses oynatılıyor."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Bu dosya sadece video verilerini destekliyor. Şu anda video oynatılıyor."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Özel depolama"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Kulaklıklar"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Hoparlör"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Duraklat"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "İndir"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Altyazı (CC) seçme"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Altyazıları (CC) önizleme"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Bağlantı başarısız."
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Tekrar modu"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Dosya türü desteklenmiyor."
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Normal"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Ses"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Filmler"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Ses parçası"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Arabellğe al."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Dosya biçimi"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Dil"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Video yok"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Boyut"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Tamam"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Yenile"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Tarih"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Yükleniyor..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Altyazılar (CC)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Sil"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Ana ekrana ekle"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "İsim"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Video oynatılamıyor."
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "Altyazı mevcut değil"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Çal"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Kapat"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "URL geçersiz."
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Hata"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Cihaz hafızası"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Video Oynatıcı"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Paylaşma şekli"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Bir ağ hatası oluştu. Tekrar deneyin."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Bu dosya biçimi yalnızca ses verilerini destekler. Şimdi ses oynatılıyor."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Bu dosya formatı yalnızca video verilerini destekler. Şu anda video oynatılıyor."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Orta"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "Açık"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Ayarlar"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Videolar"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Paylaş"
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Ayrıntılar"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Sil"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Ara belleğe alınıyor - %d%"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Hiçbiri"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d sn"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Ses cihazı seç"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Sil"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "İptal"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "Bilinmeyen bir hata oluştu veya dosya bozuk olabilir."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "Bu dosya türü desteklenmiyor."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "BİTTİ"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Tam"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Oranı koru"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "İPTAL"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Saklama yeri"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Altyazılar (CC)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Kişisel bellek"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "Altyazılar bu şekilde görünecek."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Dosya yok."
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Yalnzca ses oynat’ı kpt"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Yalnzca ses oynat’ı aç"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Sadece ses oynatmak için oynatma sırasında Ana ekran tuşuna veya Güç tuşuna basın."
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Яскравість"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Музика"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Голоси"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "Б"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "ГБ"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "КБ"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Розташування"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "МБ"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Невідомо"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Дата останнього змінення"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Поділитися"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Неможливо відтворити відео"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "Сталася помилка з субтитрами."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "Файл пошкоджено або карту пам’яті видалено."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Деталі"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Назва"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "Це відео буде видалено."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Налаштування"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Неможливо відтворити відео"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Вирівнювання"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Розмір шрифту"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Установка повторення"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Субтитри (приховані)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Центр"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Великий"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Вліво"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Середній"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Вправо"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Маленький"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Далі"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Назад"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "Неможливо надати спільний доступ до файлів DRM."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Формат"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Неможливо відтворити відео під час виклику."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Повідом."
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Передача файла"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Email"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Довгота"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Широта"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Увімк. рухи"
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "Швидкість стирання: %sx."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Зовн. місце збереження"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Гучність"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Непідтримуваний відеоформат."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Формат не підтримується."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Непідтримуваний аудіоформат."
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Неможливо використовувати перемотування та швидке перемотування у разі ввімкнення наявних поблизу пристроїв."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Неможливо зробити знімок."
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Обернути"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Натисніть клавішу «Назад» знову, щоб повернутися до попереднього екрана."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Недостатньо пам’яті. Видаліть деякі об’єкти"
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Список закладок заповнено. Видаліть деякі закладки."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Жовтий"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "Віртуальний 7.1"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Субтитри (приховані)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Режим повтору"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "Без повторювання"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Пурпурний"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Зелений"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Колір шрифту"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Синьо-зелений"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Персоналізований"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Поточ. відео (1 раз)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Відомості про підкл."
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Змінити плеєр"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Зйомка"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "Спільний вміст"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Вибрати пристрій"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Доступні пристрої"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Динамік"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Білий"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Червоний"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s секунд"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Швидкість відтворення"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d сек."
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Вимкнено"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Немає назви"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "Мій пристрій"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Стандартний шрифт"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Синій"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Чорний"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Активація"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Закрити програму?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Скасувати"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Зупинити після усіх"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Повт. поточний запис"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Повторити всі"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Роздільна здатність"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "Деякі звукові ефекти (%s) не підтримуються для динаміка."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Переверніть телефон для вимкнення звуку під час вхідних викликів, сигналів повідомлень і будильників."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "SD-карта"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Цей файл підтримує лише аудіодані. Наразі відтворюється аудіо."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Цей файл підтримує лише відеодані. Наразі відтворюється відео."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Місце збереження особистих даних"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Навушники"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Динамік"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Пауза"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Завантаження"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Вибрати субтитри (копія)"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Поп. перегл. субтитрів (копія)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Збій з'єднання."
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Режим повторювання"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Формат не підтримується."
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Стандартний"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Голос"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Фільми"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Аудіозапис"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Буфериз..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Формат файла"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Мова"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Немає відео"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Розмір"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Готово"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Оновити"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Дата"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Завантаження..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Субтитри (копія)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Видалити"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Додати на головний екран"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Iм'я"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Неможливо відтворити відео."
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "Субтитри відсутні"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Відтворити"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Закрити"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "Невірний URL."
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Помилка"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Місце збереження на пристрої"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Відеоплеєр"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Надіслати через"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Сталася помилка мережі. Спробуйте ще раз."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Лише аудіодані підтримуються цим форматом файла. Наразі відтворюється аудіо."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Лише відеодані підтримуються цим форматом файла. Наразі відтворюється відео."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "По центру"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "Увімкнено"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Налаштування"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Відео"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Надісл."
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Деталі"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Видалити"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Буферизація: %d%"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Немає"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d сек."
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Вибір аудіопристрою"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Видалити"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Скасувати"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "Сталася невідома помилка або файл може бути пошкоджено."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "Цей тип файла не підтримується."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "ГОТОВО"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Розгорн."
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Збер.спів."
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "СКАСУВАТИ"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Місце збереження"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Субтитри (копія)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Особисте місце збереження"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "Субтитри матимуть такий вигляд"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Файл не існує."
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Вимк. Відтв. лише звук"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Увімк. Відт. лише звук"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Під час відтворення натисніть клавішу «Домашній» або клавішу живлення, щоб відтворювати лише звук."
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Yorqinlik"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Musiqa"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Ovozlar"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "Gb"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Joylashuv"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "Mb"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Noma’lum"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Oxirgi o‘zgartirilgan"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Ulashish"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Videoni o‘ynatib bo‘lmaydi"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "Subtitrlar bilan bog‘liq xato yuz berdi."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "Fayl shikastlangan yoki SD-karta olib tashlangan."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Tafsilotlar"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Sarlavha"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "Ushbu video o'chiriladi."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Parametrlar"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Videoni o‘ynatib bo‘lmaydi"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Tenglashtirish"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Shrift o‘lchami"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Takrorlash parametri"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Subtitrlar (CC)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Markaz"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Katta"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Chap"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "O‘rta"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "O‘ng"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Kichik"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Keyingi"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Avvalgi"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "DRM fayllarini ulashib bo‘lmaydi."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Format"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Qo‘ng‘iroq mobaynida video o‘ynatib bo‘lmaydi."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Xabar"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Faylni uzatish"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "E-pochta"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Uzunlik"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Kenglik"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Harakatni yoq"
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "%sx tezlikda tozalash."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Tashqi xotira"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Ovoz Balandliigi"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Qo‘llab-quvvatlanmaydigan video format."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Qo‘llab-quvvatlanmaydigan fayl turi."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Qo‘llab-quvvatlanmaydigan audio format."
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Yaqin-atrofdagi qurilmalar yoqilgan vaqtda tez oldinga o‘tkazish yoki orqaga qaytarishdan foydalanib bo‘lmaydi."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Suratga olib bo‘lmaydi."
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Aylantirish"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Avvalgi ekranga qaytish uchun “orqaga” tugmasini bosing."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Xotira yetarli emas. Ba’zi elementlarni o'chiring"
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Saqlangan veb-hujjat ro‘yxati to‘la. Ba’zi veb-hujjatlarni o'chirib tashlash."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Sariq"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "Virtual 7.1 k"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Subtitrlar (CC)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Takrorlash rejimi"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "Takrorlanish yo‘q"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Qirmizi"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Yashil"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Shrift rangi"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Moviy"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Sozlanadigan"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Video (bir marta)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Ulanish ma’lumoti"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Pleyerni o‘zgartirish"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Rasmga olish"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Qurilma tanlash"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Mavjud qurilmalar"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Dinamik"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Oq"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Qizil"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s soniya"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Ijro tezligi"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d soniya"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "O‘ch."
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Sarlavha yo‘q"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "Qurilma"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Birlamchi o'rnatilgan shrift"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Ko‘k"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Qora"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Faollashtirish"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Ilova yopilsinmi?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Bek/q."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Baridan keyin to‘xta"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Joriyni takrorlash"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Barini takrorlash"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Rezolyutsiya"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "%s ovoz effektlari dinamik tomonidan qo‘llab-quvvatlanmaydi."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Kiruvchi qo‘ng‘iroqlar, xabar signallari va budilniklar ovozini o‘chirish uchun telefonni teskari o‘giring."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "SD-karta"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Faqat audio ma’lumot ushbu fayl tomonidan qo‘llab-quvvatlanadi. Hozirda o‘ynayotgan audio."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Faqat video ma’lumot ushbu fayl tomonidan qo‘llab-quvvatlanadi. Hozirda o‘ynayotgan video."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Maxfiy xotira"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Quloqliklar"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Dinamik"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "To‘xtatib turish"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Yuklab olish"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Subtitrni tanlash (CC)"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Subtitr dast/ko‘rish (CC)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Ulanib bo‘lmadi."
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Takrorlash rejimi"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Qo‘llab-quvvatlanmaydigan fayl turi."
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Normal"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Ovoz"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Filmlar"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Audio trek"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Buferlash..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Fayl formati"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Til"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Videolar yo‘q"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "O‘lcham"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "OK"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Yangilash"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Sana"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Yuklanmoqda..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Subtitrlar (CC)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "O'chirish"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Asosiy ekranga qo‘shish"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Ism"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Videoni o‘ynatib bo‘lmaydi."
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "Subtitrlar yo‘q"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "O‘ynatish"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Yopish"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "Noto‘g‘ri URL."
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Xato"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Qurilma xotirasi"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Video pleyer"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Quyidagi orqali ulashish"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Tarmoq xatosi yuz berdi. Qayta urinib ko‘ring."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Faqat audio ma’lumot ushbu fayl formati tomonidan qo‘llab-quvvatlanadi. Hozirda o‘ynayotgan audio."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Faqat video ma’lumot ushbu fayl formati tomonidan qo‘llab-quvvatlanadi. Hozirda o‘ynayotgan video."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Markaz"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "Yoq."
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Parametrlar"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Videolar"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Ulash."
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Tafsilotlar"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "O'chirish"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Buferlash - %d%"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Yo‘q"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d soniya"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Audio qurilmani tanlash"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Yo‘q qilish"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Bekor qilish"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "Noma’lum xato yuz berdi yoki zararlangan bo‘lishi mumkin."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "Bu fayl turi qo‘llab-quvvatlanmaydi."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "BAJARILDI"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "To‘la"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Nsbt saqla"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "BEKOR QILISH"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Xotira joylashuvi"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Subtitrlar (CC)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Shaxsiy ombor"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "Sarlavhalar quyidagi ko‘rinishda bo‘ladi"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Ushbu fayl mavjud emas."
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Faqat audio ijrosini o‘ch"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Faqat audio o‘y-ni yoq"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Faqat audio ijro etilishi uchun ijro vaqtida Asosiy tugmani yoki Quvvat tugmasini bosing."
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "亮度"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "音乐"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "语音"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "位置"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "未知"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "确定"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "上次修改"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "共享"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "无法播放视频"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "字幕发生错误。"
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "文件已损坏或 SD 卡已移除。"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "详情"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "标题"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "将删除此视频。"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "设定"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "无法播放视频"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "校准"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "字体大小"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "重复设定"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "字幕(CC)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "居中"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "大"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "左"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "中等"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "右"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "小"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "下一步"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "上一步"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "DRM 文件无法共享。"
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "格式"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "通话中无法播放视频。"
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "信息"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "文件传输"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "电子邮件"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "经度"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "纬度"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "启用动作"
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "以 %sx 倍速度变动。"
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "外部存储器"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "音量"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "不支持的视频格式。"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "不支持的文件类型。"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "不支持的音频格式。"
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "当附近设备已启用时无法使用快进和后退。"
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "无法拍摄。"
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "旋转"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "再次按下返回键以返回到前一个画面"
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "存储空间不足。请删除部分项目。"
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "书签列表满。删除部分书签。"
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "黄"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "虚拟 7.1 声道"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "字幕(CC)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "重复模式"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "不重复"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "洋红"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "绿"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "字体颜色"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "青绿"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "自定义"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "当前视频(一次)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "连接信息"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "更改播放器"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "截图"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "娱乐共享"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "选择设备"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "可用设备"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "扬声器"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "白色"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary 字体"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "红色"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s秒"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "播放速度"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d 秒"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "关"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "无标题"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "我的设备"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "默认字体"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "爵士酷"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky 字体"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "蓝色"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "黑色"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "激活"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "关闭应用程序?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "取消"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "播放全部后停止"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "重复当前"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "重复全部"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "分辨率"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "扬声器不支持的 %s 音效。"
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "将手机正面朝下以将来电铃声、信息提示音和闹钟铃声静音。"
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "SD 卡"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "该文件仅支持音频数据。正在播放音频。"
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "该文件仅支持视频数据。正在播放视频。"
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "私人存储空间"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "耳机"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "扬声器"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "暂停"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "下载"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "选择字幕 (CC)"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "预览字幕 (CC)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "连接失败"
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "重复模式"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "不支持的文件类型。"
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "正常"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "语音"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "电影"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "音轨"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "正在缓冲..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "文件格式"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "语言"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "无视频"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "大小"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "完成"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "刷新"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "日期"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "载入中…"
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "字幕 (CC)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "删除"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "添加到主屏幕"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "名称"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "无法播放录像。"
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "无字幕可用"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "播放"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "关闭"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "网址无效"
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "错误"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "设备存储"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "视频播放器"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "共享通过"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "网络出错。请重试。"
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "该文件格式仅支持音频数据。正在播放音频。"
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "该文件格式仅支持视频数据。正在播放视频。"
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "中"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "开"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "设定"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "视频"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "共享"
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "详情"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "删除"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "正在缓存 - %d%"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "无"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d 秒"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "选择音频设备"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "删除"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "取消"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "发生未知错误或文件可能损坏。"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "不支持该文件类型。"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "完成"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "全屏"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "保持比例"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "取消"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "存储位置"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "字幕 (CC)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "个人存储空间"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "字幕效果"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "此文件不存在"
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "禁用仅播放音频"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "启用仅播放音频"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "在播放期间按下主屏幕键或电源键可仅播放音频"
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "亮度"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "音樂"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "語音"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "位置"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "未知"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "確定"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "上次修改"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "分享"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "無法播放影片"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "字幕發生錯誤。"
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "檔案已損壞或 SD 卡已移除。"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "詳細資料"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "標題"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "此影片將被刪除。"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "設定"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "無法播放影片"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "校準"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "字體大小"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "重複設定"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "字幕 (CC)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "置中"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "大"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "靠左"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "中"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "靠右"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "小"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "下一步"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "上一步"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "DRM 檔案無法共享。"
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "格式"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "通話期間無法播放影片。"
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "訊息"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "檔案傳輸"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "電子郵件"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "經度"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "緯度"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "啟用動作"
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "以 %sx 倍速度刮擦。"
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "外置儲存裝置"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "音量"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "不支援的影片格式。"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "不支援的檔案類型。"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "不支援的音效格式。"
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "當附近裝置啟用時無法使用快進或快退。"
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "無法擷取。"
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "旋轉"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "再次按下返回鍵以返回先前的螢幕。"
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "記憶體不足。請刪除一些項目。"
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "書籤清單已滿。請刪除一些書籤。"
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "黃色"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "虛擬數位 7.1 聲道"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "字幕 (CC)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "重複模式"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "不重複播放"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "洋紅色"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "綠色"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "字體顏色"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "青綠色"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "自訂"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "目前影片(一次)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "連接資訊"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "更改播放器"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "截圖"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "選擇裝置"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "可用裝置"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "揚聲器"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "白色"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary 字體"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "紅色"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s 秒"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "播放速度"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d 秒"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "關"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "無標題"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "我的裝置"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "預設字體"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool jazz 字體"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky 字體"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "藍色"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "黑色"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "啟動"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "要關閉應用程式嗎?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "取消"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "全部播放後停止"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "重複目前的"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "重複全部"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "解像度"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "揚聲器不支援 %s 音效。"
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "反轉手機以將來電、訊息提示及鬧鈴設為靜音。"
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "SD 卡"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "此檔案僅支援音訊數據。現正播放音訊。"
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "此檔案僅支援影片數據。現正播放影片。"
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "私人儲存空間"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "耳機"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "揚聲器"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "暫停"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "下載"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "選擇字幕 (CC)"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "預覽字幕 (CC)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "連接失敗"
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "重複模式"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "不支援的檔案類型。"
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "標準"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "語音"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "電影"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "音軌"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "緩衝中..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "檔案格式"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "語言"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "無影片"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "大小"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "完成"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "重新整理"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "日期"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "正在載入..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "字幕 (CC)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "刪除"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "加入至主螢幕"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "名稱"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "無法播放影片。"
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "無字幕可用"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "播放"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "關閉"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "網址無效"
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "錯誤"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "裝置記憶體"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "影片播放器"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "分享透過"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "發生網絡錯誤。請重試。"
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "此檔案格式僅支援音訊數據。正在播放音訊。"
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "此檔案格式僅支援影片數據。現正播放影片。"
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "中"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "開"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "設定"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "影片"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "共享"
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "詳細資料"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "刪除"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "緩衝中 - %d%"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "無"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d 秒"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "選擇音訊裝置"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "刪除"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "取消"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "發生了未知錯誤或檔案可能損壞。"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "不支援此檔案類型。"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "完成"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "全螢幕"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "保持比例"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "取消"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "儲存裝置位置"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "字幕 (CC)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "個人儲存空間"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "字幕將依此顯示。"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "此檔案不存在。"
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "停用僅限播放音訊"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "啟用僅限播放音訊"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "在播放期間按下首頁鍵或電源鍵以僅播放音訊。"
+
--- /dev/null
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "亮度"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "音樂"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "語音"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "位置"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "未知"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "確認"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "最後一次修改"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "分享"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "無法播放影片"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "發生字幕錯誤。"
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "檔案已損毀或者 SD 卡已移除。"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "詳細資料"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "標題"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "此影片將被刪除。"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "設定"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "無法播放影片"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "校準"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "字型大小"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "重複設定"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "字幕 (CC)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "置中"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "大"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "靠左對齊"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "中等"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "靠右對齊"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "小"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "下一步"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "上一步"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "DRM 檔案無法共享。"
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "格式"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "無法在通話期間播放影片。"
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "訊息"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "檔案傳輸"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "電子郵件"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "經度"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "緯度"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "啟用動作"
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "以 %sx 速率刮擦。"
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "外部儲存裝置"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "音量"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "不支援的視訊格式。"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "不支援的檔案類型。"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "不支援的音訊格式。"
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "在附近裝置啟用時無法使用快轉或倒帶。"
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "無法擷取。"
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "旋轉"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "再次按下返回鍵以返回上一個畫面。"
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "記憶體不足。請刪除部分項目。"
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "書籤清單已滿。請刪除部分書籤。"
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "黃"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "虛擬數位 7.1 聲道"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "字幕 (CC)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "重複模式"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "不重覆播放"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "洋紅"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "綠"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "字型顏色"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "青綠"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "自訂"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "目前影片(一次)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "連接資訊"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "變更播放器"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "截圖"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "數位連結中心"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "選擇裝置"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "可用裝置"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "揚聲器"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "白色"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary 字體"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "紅"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s 秒"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "播放速度"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d 秒"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "關"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "無標題"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "我的裝置"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "預設字體"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool jazz 字體"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky 字體"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "藍色"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "黑色"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "啟動"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "要關閉應用程式嗎?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "取消"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "全部播放後停止"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "重複目前影片"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "重複全部"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "解析度"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "揚聲器不支援 %s 音效。"
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "翻轉手機以將來電、訊息提醒及鬧鈴設為靜音。"
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "記憶卡"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "此檔案僅支援音訊資料。現正播放音訊。"
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "此檔案僅支援影片資料。現正播放影片。"
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "私密儲存空間"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "耳機"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "揚聲器"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "暫停"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "下載"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "選擇字幕 (CC)"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "預覽字幕 (CC)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "連線失敗"
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "重複模式"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "不支援的檔案類型。"
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "標準"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "語音"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "電影"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "音軌"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "緩衝中..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "檔案格式"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "語言"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "無影片"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "大小"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "完成"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "重新整理"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "日期"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "正在載入..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "字幕 (CC)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "刪除"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "新增至主畫面"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "名稱"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "無法播放影片。"
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "無可用字幕"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "播放"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "關閉"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "URL 無效"
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "錯誤"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "裝置儲存空間"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "影片播放器"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "分享方式"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "發生網路錯誤。請重試。"
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "此檔案格式僅支援音訊資料。現正播放音訊。"
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "此檔案格式僅支援影片資料。現正播放影片。"
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "中心"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "開"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "設定"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "影片播放器"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "分享"
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "詳細資料"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "刪除"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "緩衝中 - %d%"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "無"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d 秒"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "選擇音訊裝置"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "刪除"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "取消"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "發生未知的錯誤或者檔案已損毀。"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "不支援該檔案類別。"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "完成"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "全螢幕"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "保持長寬比"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "取消"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "儲存裝置位置"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "字幕 (CC)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "個人儲存空間"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "字幕將依此顯示"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "此檔案不存在。"
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "停用僅播放音訊"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "啟用僅播放音訊"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "播放期間按下首頁鍵或電源鍵即可僅播放音訊。"
+
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#include <string.h>
+#include <app_preference.h>
+#include <Ecore_File.h>
+
+#include "vp-media-content-util.h"
+
+#include "vp-service-parser.h"
+#include "vp-play-log.h"
+#include "vp-file-util.h"
+
+
+#define VP_VIDEO_MULTI_WIN_TYPE_KEY "http://tizen.org/appcontrol/data/miniapp"
+#define VP_VIDEO_MULTI_WIN_ON_VALUE "on"
+#define VP_VIDEO_EDIT_MODE_KEY "edit_mode"
+#define VP_VIDEO_LAUNCHED_BY_APP_KEY "launching_application"
+#define VP_VIDEO_SORT_TYPE_KEY "order_type"
+#define VP_VIDEO_LIST_TYPE_KEY "video_list_type"
+#define VP_VIDEO_DEVICE_ID_KEY "Device id"
+#define VP_VIDEO_DMR_ID_KEY "DMR_ID"
+
+#define VP_VIDEO_COOKIE_KEY "cookie"
+#define VP_VIDEO_PROXY_KEY "proxy"
+
+#define VP_VIDEO_URI_PATH_KEY "path"
+#define VP_VIDEO_EXIT_ON_BACK "ExitOnBack"
+
+#define VP_VIDEO_STORE_DOWNLOAD "StoreDownload"
+#define VP_VIDEO_STORE_DOWNLOAD_ON_VALUE "on"
+#define VP_VIDEO_STORE_DOWNLOAD_PLAYED_TIME "StoreItemLastPlayPosition"
+#define VP_VIDEO_STORE_DOWNLOAD_FILE_SIZE "StoreDL_filesize"
+
+#define VP_VIDEO_APP_CONTROL_REPEAT_MODE "repeat_mode"
+#define VP_VIDEO_APP_CONTROL_REPEAT_VALUE_STOP_AFTER_ALL "stop_after_all"
+
+#define VP_VIDEO_STORE_ORDER_ID "store_order_id"
+#define VP_VIDEO_STORE_APP_ID "store_app_id"
+#define VP_VIDEO_STORE_MV_ID "store_mv_id"
+#define VP_VIDEO_STORE_SERVER_ID "store_server_id"
+
+
+#define VP_VIDEO_TITLE_KEY "title"
+
+#define VP_VIDEO_DATA_SUBTITLE "slink/subtitle"
+#define VP_VIDEO_DATA_POSITION "slink/position"
+#define VP_VIDEO_DATA_TITLE "slink/title"
+#define VP_VIDEO_DATA_DURATION "slink/duration"
+
+#define VP_DEFAULT_VIDEO_ITEM_URL_STR "/opt/usr/media/Videos/Color.mp4"
+
+#define VP_VIDEO_FILE_PREFIX "file://"
+
+#define PREF_VP_PREVIEW_URL_VIDEOS "preference/org.tizen.videos/preview_url_videos"
+#define PREF_VP_PREVIEW_URL_RECORDS "preferencepreference/org.tizen.videos/preview_url_records"
+
+
+//////////////////////////////////////////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////////////////////////////
+static char *__VpServiceParserGetMediaUri(app_control_h pAppSvcHandle);
+
+static bool __VpServiceParserGetMultiAppControl(app_control_h
+ pAppSvcHandle,
+ const char *key,
+ char ***szArrayVal,
+ int *nLength);
+
+static VpLaunchType __VpServiceParserGetLaunchType(app_control_h
+ pAppSvcHandle);
+static Eina_Bool __VpServiceParserGetLaunchMultiWindow(app_control_h
+ pAppSvcHandle);
+static Eina_Bool __VpServiceParserGetStoreDownloadMode(app_control_h
+ pAppSvcHandle);
+static double __VpServiceParserGetStoreDownloadFileSize(app_control_h
+ pAppSvcHandle);
+static int __VpServiceParserGetStoreDownloadPlayedTime(app_control_h
+ pAppSvcHandle);
+static Eina_Bool __VpServiceParserGetRepeatMode(app_control_h
+ pAppSvcHandle);
+static void __VpServiceParserGetStoreOrderInfo(app_control_h pAppSvcHandle,
+ VpServiceData *
+ pReceiveData);
+
+static Eina_Bool __VpServiceParserGetStreamingLaunch(char *pUri);
+static char *__VpServiceParserGetDeviceID(app_control_h pAppSvcHandle);
+static char *__VpServiceParserGetAutoPlaySetting(app_control_h
+ pAppSvcHandle);
+static char *__VpServiceParserGetDMRID(app_control_h pAppSvcHandle);
+
+static char *__VpServiceParserGetCookie(app_control_h pAppSvcHandle);
+static char *__VpServiceParserGetProxy(app_control_h pAppSvcHandle);
+static char *__VpServiceParserGetMediaTitle(app_control_h pAppSvcHandle);
+static Eina_Bool __VpServiceParserGetAUL(app_control_h pAppSvcHandle,
+ char **dpUri);
+static Eina_Bool __VpServiceParserGetAppControl(app_control_h
+ pAppSvcHandle,
+ char **dpUri);
+static Eina_Bool __VpServiceParserGetWindowID(app_control_h pAppSvcHandle,
+ unsigned int *nXID);
+static VpVideoSortType __VpServiceParserGetSortType(app_control_h
+ pAppSvcHandle);
+static VpVideoPlayListType __VpServiceParserGetListType(app_control_h
+ pAppSvcHandle);
+static Eina_Bool __VpServiceParserCheckURL(char *szURL);
+static Eina_Bool __VpServiceParserCheckFileIsExist(char *szFilePath);
+
+//////////////////////////////////////////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////////////////////////////
+
+/**
+ *
+ * @param pAppSvcHandle
+ * @param pReceiveData
+ * @return
+ */
+Eina_Bool VpServiceParserGetServiceData(app_control_h pAppSvcHandle,
+ VpServiceData * pReceiveData)
+{
+ if (pAppSvcHandle == NULL) {
+ VideoLogError("pAppSvcHandle == NULL!!!");
+ return EINA_FALSE;
+ }
+
+ if (pReceiveData == NULL) {
+ VideoLogError("pReceiveData == NULL!!!");
+ return EINA_FALSE;
+ }
+
+ pReceiveData->pMediaUri = __VpServiceParserGetMediaUri(pAppSvcHandle);
+ pReceiveData->szMediaTitle =
+ __VpServiceParserGetMediaTitle(pAppSvcHandle);
+ pReceiveData->eLaunchType =
+ __VpServiceParserGetLaunchType(pAppSvcHandle);
+ pReceiveData->bStoreDownload =
+ __VpServiceParserGetStoreDownloadMode(pAppSvcHandle);
+ pReceiveData->dStoreDL_FileSize =
+ __VpServiceParserGetStoreDownloadFileSize(pAppSvcHandle);
+ pReceiveData->nStorePlayedTime = 0;
+ pReceiveData->bStopAfterRepeat =
+ __VpServiceParserGetRepeatMode(pAppSvcHandle);
+
+ if (pReceiveData->bStoreDownload) {
+ pReceiveData->nStorePlayedTime =
+ __VpServiceParserGetStoreDownloadPlayedTime(pAppSvcHandle);
+ __VpServiceParserGetStoreOrderInfo(pAppSvcHandle, pReceiveData);
+ }
+
+ if (__VpServiceParserCheckURL(pReceiveData->pMediaUri) == EINA_FALSE) {
+ if (__VpServiceParserGetMultiAppControl
+ (pAppSvcHandle, APP_CONTROL_DATA_PATH,
+ &pReceiveData->szMultiPath, &(pReceiveData->nMultiPath))) {
+ pReceiveData->eLaunchType = VP_LAUNCH_TYPE_MULTI_PATH;
+ __VpServiceParserGetMultiAppControl(pAppSvcHandle,
+ VP_VIDEO_DATA_TITLE,
+ &pReceiveData->
+ szMultiTitle,
+ &(pReceiveData->
+ nMultiTitle));
+ __VpServiceParserGetMultiAppControl(pAppSvcHandle,
+ VP_VIDEO_DATA_SUBTITLE,
+ &pReceiveData->
+ szMultiSubTitle,
+ &(pReceiveData->
+ nMultiSubTitle));
+ __VpServiceParserGetMultiAppControl(pAppSvcHandle,
+ VP_VIDEO_DATA_POSITION,
+ &pReceiveData->
+ szMultiPosition,
+ &(pReceiveData->
+ nMultiPosition));
+ __VpServiceParserGetMultiAppControl(pAppSvcHandle,
+ VP_VIDEO_DATA_DURATION,
+ &pReceiveData->
+ szMultiDuration,
+ &(pReceiveData->
+ nMultiDuration));
+ } else {
+ preference_get_string(PREF_VP_PREVIEW_URL_VIDEOS,
+ &(pReceiveData->pMediaUri));
+ if (__VpServiceParserCheckFileIsExist(pReceiveData->pMediaUri)
+ == EINA_FALSE) {
+ preference_set_string(PREF_VP_PREVIEW_URL_VIDEOS, "");
+ VideoSecureLogError(" == %s ==", pReceiveData->pMediaUri);
+ if (pReceiveData->pMediaUri) {
+ free(pReceiveData->pMediaUri);
+ pReceiveData->pMediaUri = NULL;
+ }
+ preference_get_string(PREF_VP_PREVIEW_URL_RECORDS,
+ &(pReceiveData->pMediaUri));
+ if (__VpServiceParserCheckFileIsExist
+ (pReceiveData->pMediaUri) == EINA_FALSE) {
+ preference_set_string(PREF_VP_PREVIEW_URL_RECORDS, "");
+ VideoSecureLogError(" == %s ==",
+ pReceiveData->pMediaUri);
+ if (pReceiveData->pMediaUri) {
+ free(pReceiveData->pMediaUri);
+ pReceiveData->pMediaUri = NULL;
+ }
+ vp_media_content_util_get_first_video(&pReceiveData->
+ pMediaUri);
+ VideoSecureLogError(" == %s ==",
+ pReceiveData->pMediaUri);
+ if (__VpServiceParserCheckFileIsExist
+ (pReceiveData->pMediaUri) == EINA_FALSE) {
+ pReceiveData->pMediaUri =
+ strdup(VP_DEFAULT_VIDEO_ITEM_URL_STR);
+ VideoSecureLogError(" == %s ==",
+ pReceiveData->pMediaUri);
+ }
+ }
+ }
+ }
+ }
+ pReceiveData->nParentXID = 0;
+
+ __VpServiceParserGetWindowID(pAppSvcHandle,
+ &(pReceiveData->nParentXID));
+
+ pReceiveData->bLaunchMultiWindow =
+ __VpServiceParserGetLaunchMultiWindow(pAppSvcHandle);
+
+ if (pReceiveData->pMediaUri != NULL) {
+ pReceiveData->bStreaming =
+ __VpServiceParserGetStreamingLaunch(pReceiveData->pMediaUri);
+ }
+
+ if (pReceiveData->bStreaming) {
+ pReceiveData->szDeviceID =
+ __VpServiceParserGetDeviceID(pAppSvcHandle);
+ pReceiveData->szCookie = __VpServiceParserGetCookie(pAppSvcHandle);
+ pReceiveData->szProxy = __VpServiceParserGetProxy(pAppSvcHandle);
+ }
+
+ pReceiveData->szDMRID = __VpServiceParserGetDMRID(pAppSvcHandle);
+
+ if (pReceiveData->eLaunchType >= VP_LAUNCH_TYPE_GALLERY) {
+ pReceiveData->eSortType =
+ __VpServiceParserGetSortType(pAppSvcHandle);
+ pReceiveData->eListType =
+ __VpServiceParserGetListType(pAppSvcHandle);
+ } else if (pReceiveData->eLaunchType == VP_LAUNCH_TYPE_LIST) {
+ pReceiveData->eListType =
+ __VpServiceParserGetListType(pAppSvcHandle);
+ } else {
+ pReceiveData->eSortType = VP_VIDEO_SORT_TYPE_BY_NONE;
+ pReceiveData->eListType = VP_VIDEO_PLAY_LIST_TYPE_NONE;
+ }
+ pReceiveData->szAutoPlay =
+ __VpServiceParserGetAutoPlaySetting(pAppSvcHandle);
+ return EINA_TRUE;
+}
+
+/**
+ *
+ * @param pServiceData
+ */
+void VpServiceParserDestroyServiceData(VpServiceData * pServiceData)
+{
+ if (pServiceData == NULL) {
+ VideoLogError("pServiceData == NULL!!!");
+ return;
+ }
+
+ if (pServiceData->pMediaUri != NULL) {
+ free(pServiceData->pMediaUri);
+ pServiceData->pMediaUri = NULL;
+ }
+
+ if (pServiceData->szMediaTitle != NULL) {
+ free(pServiceData->szMediaTitle);
+ pServiceData->szMediaTitle = NULL;
+ }
+
+ if (pServiceData->szDeviceID != NULL) {
+ free(pServiceData->szDeviceID);
+ pServiceData->szDeviceID = NULL;
+ }
+
+ if (pServiceData->szDMRID != NULL) {
+ free(pServiceData->szDMRID);
+ pServiceData->szDMRID = NULL;
+ }
+
+ if (pServiceData->pStoreOrderId != NULL) {
+ free(pServiceData->pStoreOrderId);
+ pServiceData->pStoreOrderId = NULL;
+ }
+
+ if (pServiceData->pStoreServerId != NULL) {
+ free(pServiceData->pStoreServerId);
+ pServiceData->pStoreServerId = NULL;
+ }
+
+ if (pServiceData->pStoreAppId != NULL) {
+ free(pServiceData->pStoreAppId);
+ pServiceData->pStoreAppId = NULL;
+ }
+
+ if (pServiceData->pStoreMvId != NULL) {
+ free(pServiceData->pStoreMvId);
+ pServiceData->pStoreMvId = NULL;
+ }
+
+ int idx = 0;
+ if (pServiceData->szMultiPath) {
+ for (idx = 0; idx < pServiceData->nMultiPath; idx++) {
+ if (pServiceData->szMultiPath[idx]) {
+ free(pServiceData->szMultiPath[idx]);
+ pServiceData->szMultiPath[idx] = NULL;
+ }
+ }
+ free(pServiceData->szMultiPath);
+ pServiceData->szMultiPath = NULL;
+ }
+
+ if (pServiceData->szIsSameAP) {
+ for (idx = 0; idx < pServiceData->nSameAP; idx++) {
+ if (pServiceData->szIsSameAP[idx]) {
+ free(pServiceData->szIsSameAP[idx]);
+ pServiceData->szIsSameAP[idx] = NULL;
+ }
+ }
+ free(pServiceData->szIsSameAP);
+ pServiceData->szIsSameAP = NULL;
+ }
+
+ if (pServiceData->szMultiSubTitle) {
+ for (idx = 0; idx < pServiceData->nMultiSubTitle; idx++) {
+ if (pServiceData->szMultiSubTitle[idx]) {
+ free(pServiceData->szMultiSubTitle[idx]);
+ pServiceData->szMultiSubTitle[idx] = NULL;
+ }
+ }
+ free(pServiceData->szMultiSubTitle);
+ pServiceData->szMultiSubTitle = NULL;
+ }
+
+
+ if (pServiceData->szMultiTitle) {
+ for (idx = 0; idx < pServiceData->nMultiTitle; idx++) {
+ if (pServiceData->szMultiTitle[idx]) {
+ free(pServiceData->szMultiTitle[idx]);
+ pServiceData->szMultiTitle[idx] = NULL;
+ }
+ }
+ free(pServiceData->szMultiTitle);
+ pServiceData->szMultiTitle = NULL;
+ }
+
+ if (pServiceData->szMultiPosition) {
+ for (idx = 0; idx < pServiceData->nMultiPosition; idx++) {
+ if (pServiceData->szMultiPosition[idx]) {
+ free(pServiceData->szMultiPosition[idx]);
+ pServiceData->szMultiPosition[idx] = NULL;
+ }
+ }
+ free(pServiceData->szMultiPosition);
+ pServiceData->szMultiPosition = NULL;
+ }
+
+ if (pServiceData->szMultiDuration) {
+ for (idx = 0; idx < pServiceData->nMultiDuration; idx++) {
+ if (pServiceData->szMultiDuration[idx]) {
+ free(pServiceData->szMultiDuration[idx]);
+ pServiceData->szMultiDuration[idx] = NULL;
+ }
+ }
+ free(pServiceData->szMultiDuration);
+ pServiceData->szMultiDuration = NULL;
+ }
+
+ free(pServiceData);
+ pServiceData = NULL;
+}
+
+
+//////////////////////////////////////////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////////////////////////////
+/**
+ *
+ * @param pAppSvcHandle
+ * @return
+ */
+static char *__VpServiceParserGetMediaUri(app_control_h pAppSvcHandle)
+{
+ if (pAppSvcHandle == NULL) {
+ VideoLogError("pAppSvcHandle == NULL!!!");
+ return NULL;
+ }
+
+ char *pUri = NULL;
+
+ if (__VpServiceParserGetAUL(pAppSvcHandle, &pUri) == EINA_FALSE) {
+ if (__VpServiceParserGetAppControl(pAppSvcHandle, &pUri) ==
+ EINA_FALSE) {
+ VideoLogInfo("No exist URI path.");
+ return NULL;
+ }
+ }
+
+ VideoSecureLogInfo("pUri : %s", pUri);
+
+ if (pUri == NULL) {
+ VideoLogError("pUri == NULL!!!");
+ return NULL;
+ }
+
+ if (strstr(pUri, VP_VIDEO_FILE_PREFIX)) {
+ char *szURL =
+ calloc(1, strlen(pUri) - strlen(VP_VIDEO_FILE_PREFIX) + 1);
+ if (szURL == NULL) {
+ VideoLogError("szURL == NULL!!!");
+ return NULL;
+ }
+
+ snprintf(szURL, strlen(pUri) - strlen(VP_VIDEO_FILE_PREFIX) + 1,
+ "%s", pUri + strlen(VP_VIDEO_FILE_PREFIX));
+ if (pUri) {
+ free(pUri);
+ pUri = NULL;
+ }
+ return szURL;
+ } else {
+ return pUri;
+ }
+
+}
+
+/**
+ *
+ * @param pAppSvcHandle
+ * @param key
+ * @param szArrayVal
+ * @param nLength
+ * @return
+ */
+static bool __VpServiceParserGetMultiAppControl(app_control_h
+ pAppSvcHandle,
+ const char *key,
+ char ***szArrayVal,
+ int *nLength)
+{
+ if (pAppSvcHandle == NULL) {
+ VideoLogError("pAppSvcHandle == NULL!!!");
+ return FALSE;
+ }
+ int nRet = APP_CONTROL_ERROR_NONE;
+ int nLen = 0;
+
+ nRet =
+ app_control_get_extra_data_array(pAppSvcHandle, key, szArrayVal,
+ &nLen);
+ if (nRet != APP_CONTROL_ERROR_NONE) {
+ VideoLogError("app_control_get_extra_data_array is fail [0x%x]",
+ nRet);
+ return FALSE;
+ }
+
+ if (nLen < 1) {
+ if (*szArrayVal == NULL) {
+ // No sub items,
+ free(*szArrayVal);
+ *szArrayVal = NULL;
+ }
+
+ return FALSE;
+ }
+
+ *nLength = nLen;
+ VideoLogInfo("Length %d", nLen);
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param pAppSvcHandle
+ * @return
+ */
+static VpLaunchType __VpServiceParserGetLaunchType(app_control_h
+ pAppSvcHandle)
+{
+ if (pAppSvcHandle == NULL) {
+ VideoLogError("pAppSvcHandle == NULL!!!");
+ return VP_LAUNCH_TYPE_NONE;
+ }
+
+ char *pLaunchingByOtherApp = NULL;
+ char *pLaunchMode = NULL;
+ VpLaunchType eLaunchType = VP_LAUNCH_TYPE_NONE;
+
+ if (app_control_get_extra_data
+ (pAppSvcHandle, "View Mode",
+ &pLaunchMode) == APP_CONTROL_ERROR_NONE) {
+ if (pLaunchMode != NULL) {
+ if (strncmp(pLaunchMode, "EMAIL", strlen(pLaunchMode)) == 0) {
+ eLaunchType = VP_LAUNCH_TYPE_EMAIL;
+ goto RESULT_RETURN;
+ }
+ }
+ }
+
+ if (app_control_get_extra_data
+ (pAppSvcHandle, VP_VIDEO_LAUNCHED_BY_APP_KEY,
+ &pLaunchingByOtherApp) != APP_CONTROL_ERROR_NONE) {
+ VideoLogWarning
+ ("No exist Service handle key of MP_VIDEO_LAUNCHED_BY_APP_KEY");
+ eLaunchType = VP_LAUNCH_TYPE_NONE;
+ goto RESULT_RETURN;
+ }
+
+ if (pLaunchingByOtherApp == NULL) {
+ VideoLogWarning("pLaunchingByOtherApp is NULL");
+ goto RESULT_RETURN;
+ }
+
+ if (strcmp(pLaunchingByOtherApp, "gallery") == 0) {
+ eLaunchType = VP_LAUNCH_TYPE_GALLERY;
+ } else if (strcmp(pLaunchingByOtherApp, "myfile") == 0) {
+ eLaunchType = VP_LAUNCH_TYPE_MYFILE;
+ } else if (strcmp(pLaunchingByOtherApp, "store") == 0) {
+ eLaunchType = VP_LAUNCH_TYPE_STORE;
+ } else if (strcmp(pLaunchingByOtherApp, "list") == 0) {
+ eLaunchType = VP_LAUNCH_TYPE_LIST;
+ } else if (strcmp(pLaunchingByOtherApp, "image_viewer") == 0) {
+ char *pEditMode = NULL;
+
+ if (app_control_get_extra_data
+ (pAppSvcHandle, VP_VIDEO_EDIT_MODE_KEY,
+ &pEditMode) != APP_CONTROL_ERROR_NONE) {
+ eLaunchType = VP_LAUNCH_TYPE_IMAGE_VIEWER;
+
+ if (pEditMode != NULL) {
+ free(pEditMode);
+ pEditMode = NULL;
+ }
+ } else {
+ if (pEditMode != NULL) {
+ if (strcmp(pEditMode, "trim") == 0) {
+ eLaunchType = VP_LAUNCH_TYPE_IMAGE_VIEWER_TRIM;
+ } else {
+ eLaunchType = VP_LAUNCH_TYPE_IMAGE_VIEWER;
+ }
+
+ free(pEditMode);
+ pEditMode = NULL;
+ } else {
+ eLaunchType = VP_LAUNCH_TYPE_IMAGE_VIEWER;
+ }
+ }
+ } else if (strcmp(pLaunchingByOtherApp, "email") == 0) {
+ eLaunchType = VP_LAUNCH_TYPE_EMAIL;
+ } else if (strcmp(pLaunchingByOtherApp, "message") == 0) {
+ eLaunchType = VP_LAUNCH_TYPE_MMS;
+ } else if (strcmp(pLaunchingByOtherApp, "light_play_view") == 0) {
+ eLaunchType = VP_LAUNCH_TYPE_SIMPLE;
+ } else {
+ eLaunchType = VP_LAUNCH_TYPE_NONE;
+ }
+
+
+ RESULT_RETURN:
+ if (pLaunchingByOtherApp != NULL) {
+ free(pLaunchingByOtherApp);
+ pLaunchingByOtherApp = NULL;
+ }
+ VideoLogError("LaunchType = %d", eLaunchType);
+
+ return eLaunchType;
+}
+
+/**
+ *
+ * @param pAppSvcHandle
+ * @return
+ */
+static Eina_Bool __VpServiceParserGetLaunchMultiWindow(app_control_h
+ pAppSvcHandle)
+{
+ if (pAppSvcHandle == NULL) {
+ VideoLogError("pAppSvcHandle == NULL!!!");
+ return EINA_FALSE;
+ }
+
+ Eina_Bool bMultiWindow = EINA_FALSE;
+ char *pMultiWindowType = NULL;
+
+ if (app_control_get_extra_data
+ (pAppSvcHandle, VP_VIDEO_MULTI_WIN_TYPE_KEY,
+ &pMultiWindowType) != APP_CONTROL_ERROR_NONE) {
+ VideoLogInfo("No exist multi window type token.");
+ bMultiWindow = EINA_FALSE;
+ }
+
+ if (pMultiWindowType != NULL) {
+ if (strcmp(pMultiWindowType, VP_VIDEO_MULTI_WIN_ON_VALUE) == 0) {
+ bMultiWindow = EINA_TRUE;
+ }
+
+ free(pMultiWindowType);
+ pMultiWindowType = NULL;
+ }
+
+ return bMultiWindow;
+}
+
+
+/**
+ *
+ * @param pAppSvcHandle
+ * @return
+ */
+static Eina_Bool __VpServiceParserGetStoreDownloadMode(app_control_h
+ pAppSvcHandle)
+{
+ if (pAppSvcHandle == NULL) {
+ VideoLogError("pAppSvcHandle == NULL!!!");
+ return EINA_FALSE;
+ }
+
+ Eina_Bool bStoreDownload = EINA_FALSE;
+ char *pStoreDownloadValue = NULL;
+
+ if (app_control_get_extra_data
+ (pAppSvcHandle, VP_VIDEO_STORE_DOWNLOAD,
+ &pStoreDownloadValue) != APP_CONTROL_ERROR_NONE) {
+ VideoLogInfo("No exist store download type");
+ bStoreDownload = EINA_FALSE;
+ }
+
+ if (pStoreDownloadValue != NULL) {
+ if (strcmp(pStoreDownloadValue, VP_VIDEO_STORE_DOWNLOAD_ON_VALUE)
+ == 0) {
+ bStoreDownload = EINA_TRUE;
+ }
+
+ free(pStoreDownloadValue);
+ pStoreDownloadValue = NULL;
+ }
+
+ return bStoreDownload;
+}
+
+/**
+ *
+ * @param pAppSvcHandle
+ * @return
+ */
+static double __VpServiceParserGetStoreDownloadFileSize(app_control_h
+ pAppSvcHandle)
+{
+ if (pAppSvcHandle == NULL) {
+ VideoLogError("pAppSvcHandle == NULL!!!");
+ return EINA_FALSE;
+ }
+
+ char *pStoreDownloadFileSize = NULL;
+ double dFileSize = 0;
+
+ if (app_control_get_extra_data
+ (pAppSvcHandle, VP_VIDEO_STORE_DOWNLOAD_FILE_SIZE,
+ &pStoreDownloadFileSize) != APP_CONTROL_ERROR_NONE) {
+ VideoLogInfo("No exist store download file size");
+ }
+
+ if (pStoreDownloadFileSize != NULL) {
+ dFileSize = atof(pStoreDownloadFileSize);
+ VideoLogInfo("dFileSize : %f", dFileSize);
+ free(pStoreDownloadFileSize);
+ pStoreDownloadFileSize = NULL;
+ }
+
+ return dFileSize;
+}
+
+/**
+ *
+ * @param pAppSvcHandle
+ * @return
+ */
+static int __VpServiceParserGetStoreDownloadPlayedTime(app_control_h
+ pAppSvcHandle)
+{
+ if (pAppSvcHandle == NULL) {
+ VideoLogError("pAppSvcHandle == NULL!!!");
+ return 0;
+ }
+
+ int nPlayedTime = 0;
+ char *pPlayedTime = NULL;
+
+ if (app_control_get_extra_data
+ (pAppSvcHandle, VP_VIDEO_STORE_DOWNLOAD_PLAYED_TIME,
+ &pPlayedTime) != APP_CONTROL_ERROR_NONE) {
+ VideoLogInfo("No exist multi window type token.");
+ }
+
+ if (pPlayedTime != NULL) {
+ nPlayedTime = atoi(pPlayedTime);
+ free(pPlayedTime);
+ pPlayedTime = NULL;
+ }
+
+ return nPlayedTime;
+}
+
+/**
+ *
+ * @param pAppSvcHandle
+ * @return
+ */
+static Eina_Bool __VpServiceParserGetRepeatMode(app_control_h
+ pAppSvcHandle)
+{
+ if (pAppSvcHandle == NULL) {
+ VideoLogError("pAppSvcHandle == NULL!!!");
+ return EINA_FALSE;
+ }
+
+ Eina_Bool bRepeatMode = EINA_FALSE;
+ char *pRepeatModeValue = NULL;
+
+ if (app_control_get_extra_data
+ (pAppSvcHandle, VP_VIDEO_APP_CONTROL_REPEAT_MODE,
+ &pRepeatModeValue) != APP_CONTROL_ERROR_NONE) {
+ VideoLogInfo("No exist repeat mode value");
+ bRepeatMode = EINA_FALSE;
+ }
+
+ if (pRepeatModeValue != NULL) {
+ if (strcmp
+ (pRepeatModeValue,
+ VP_VIDEO_APP_CONTROL_REPEAT_VALUE_STOP_AFTER_ALL) == 0) {
+ bRepeatMode = EINA_TRUE;
+ }
+
+ free(pRepeatModeValue);
+ pRepeatModeValue = NULL;
+ }
+
+ return bRepeatMode;
+}
+
+/**
+ *
+ * @param pAppSvcHandle
+ * @param pReceiveData
+ */
+static void __VpServiceParserGetStoreOrderInfo(app_control_h pAppSvcHandle,
+ VpServiceData *
+ pReceiveData)
+{
+ if (pAppSvcHandle == NULL) {
+ VideoLogError("pAppSvcHandle == NULL!!!");
+ return;
+ }
+
+ if (pReceiveData == NULL) {
+ VideoLogError("pReceiveData == NULL!!!");
+ return;
+ }
+
+ if (app_control_get_extra_data
+ (pAppSvcHandle, VP_VIDEO_STORE_ORDER_ID,
+ &pReceiveData->pStoreOrderId) != APP_CONTROL_ERROR_NONE) {
+ VideoLogInfo("No exist VP_VIDEO_STORE_ORDER_ID.");
+ goto NOT_EXISTED_INFO;
+ }
+
+ if (app_control_get_extra_data
+ (pAppSvcHandle, VP_VIDEO_STORE_APP_ID,
+ &pReceiveData->pStoreAppId) != APP_CONTROL_ERROR_NONE) {
+ VideoLogInfo("No exist VP_VIDEO_STORE_APP_ID.");
+ goto NOT_EXISTED_INFO;
+ }
+
+ if (app_control_get_extra_data
+ (pAppSvcHandle, VP_VIDEO_STORE_MV_ID,
+ &pReceiveData->pStoreMvId) != APP_CONTROL_ERROR_NONE) {
+ VideoLogInfo("No exist store_mv_id.");
+ goto NOT_EXISTED_INFO;
+ }
+
+ if (app_control_get_extra_data
+ (pAppSvcHandle, VP_VIDEO_STORE_SERVER_ID,
+ &pReceiveData->pStoreServerId) != APP_CONTROL_ERROR_NONE) {
+ VideoLogInfo("No exist VP_VIDEO_STORE_SERVER_ID.");
+ goto NOT_EXISTED_INFO;
+ }
+
+ return;
+
+ NOT_EXISTED_INFO:
+ if (pReceiveData->pStoreOrderId != NULL) {
+ free(pReceiveData->pStoreOrderId);
+ pReceiveData->pStoreOrderId = NULL;
+ }
+
+ if (pReceiveData->pStoreAppId != NULL) {
+ free(pReceiveData->pStoreAppId);
+ pReceiveData->pStoreAppId = NULL;
+ }
+
+ if (pReceiveData->pStoreMvId != NULL) {
+ free(pReceiveData->pStoreMvId);
+ pReceiveData->pStoreMvId = NULL;
+ }
+
+ if (pReceiveData->pStoreServerId != NULL) {
+ free(pReceiveData->pStoreServerId);
+ pReceiveData->pStoreServerId = NULL;
+ }
+
+ return;
+}
+
+/**
+ *
+ * @param pUri
+ * @return
+ */
+static Eina_Bool __VpServiceParserGetStreamingLaunch(char *pUri)
+{
+ if (pUri == NULL) {
+ VideoLogInfo("ERR: pUri == NULL!!!");
+ return EINA_FALSE;
+ }
+
+ VideoSecureLogInfo("pUri : %s", pUri);
+
+ if (strstr(pUri, "rtp") != NULL) {
+ return EINA_TRUE;
+ } else if (strstr(pUri, "rtsp") != NULL) {
+ return EINA_TRUE;
+ } else if (strstr(pUri, "http") != NULL) {
+ return EINA_TRUE;
+ } else if (strstr(pUri, "https") != NULL) {
+ return EINA_TRUE;
+ }
+
+ return EINA_FALSE;
+}
+
+/**
+ *
+ * @param pAppSvcHandle
+ * @return
+ */
+static char *__VpServiceParserGetDeviceID(app_control_h pAppSvcHandle)
+{
+ if (pAppSvcHandle == NULL) {
+ VideoLogError("pAppSvcHandle == NULL!!!");
+ return NULL;
+ }
+
+ char *szDeviceID = NULL;
+
+ if (app_control_get_extra_data
+ (pAppSvcHandle, VP_VIDEO_DEVICE_ID_KEY,
+ &szDeviceID) != APP_CONTROL_ERROR_NONE) {
+ VideoLogInfo("No exist buntle type.");
+
+ if (szDeviceID != NULL) {
+ free(szDeviceID);
+ szDeviceID = NULL;
+ }
+ return NULL;
+ }
+
+ return szDeviceID;
+
+}
+
+/**
+ *
+ * @param pAppSvcHandle
+ * @return
+ */
+static char *__VpServiceParserGetAutoPlaySetting(app_control_h
+ pAppSvcHandle)
+{
+ if (pAppSvcHandle == NULL) {
+ VideoLogError("pAppSvcHandle == NULL!!!");
+ return NULL;
+ }
+
+ char *AutoSetting = NULL;
+
+ if (app_control_get_extra_data
+ (pAppSvcHandle, "auto_play_setting",
+ &AutoSetting) != APP_CONTROL_ERROR_NONE) {
+ VideoLogInfo("No exist buntle type.");
+
+ if (!AutoSetting) {
+ free(AutoSetting);
+ AutoSetting = NULL;
+ }
+ return NULL;
+ }
+
+ return AutoSetting;
+
+}
+
+/**
+ *
+ * @param pAppSvcHandle
+ * @return
+ */
+static char *__VpServiceParserGetDMRID(app_control_h pAppSvcHandle)
+{
+ if (pAppSvcHandle == NULL) {
+ VideoLogError("pAppSvcHandle == NULL!!!");
+ return NULL;
+ }
+
+ char *szDMRID = NULL;
+
+ if (app_control_get_extra_data
+ (pAppSvcHandle, VP_VIDEO_DMR_ID_KEY,
+ &szDMRID) != APP_CONTROL_ERROR_NONE) {
+ VideoLogInfo("No exist buntle type.");
+
+ if (szDMRID != NULL) {
+ free(szDMRID);
+ szDMRID = NULL;
+ }
+ return NULL;
+ }
+ VideoLogError("#### %s ####", szDMRID);
+
+ return szDMRID;
+
+}
+
+/**
+ *
+ * @param pAppSvcHandle
+ * @return
+ */
+static char *__VpServiceParserGetCookie(app_control_h pAppSvcHandle)
+{
+ if (pAppSvcHandle == NULL) {
+ VideoLogError("pAppSvcHandle == NULL!!!");
+ return NULL;
+ }
+
+ char *szCookie = NULL;
+
+ if (app_control_get_extra_data
+ (pAppSvcHandle, VP_VIDEO_COOKIE_KEY,
+ &szCookie) != APP_CONTROL_ERROR_NONE) {
+ VideoLogInfo("No exist buntle type.");
+
+ if (szCookie != NULL) {
+ free(szCookie);
+ szCookie = NULL;
+ }
+ return NULL;
+ }
+ VideoLogError("== [Cookie : %s] ==", szCookie);
+
+ return szCookie;
+
+}
+
+/**
+ *
+ * @param pAppSvcHandle
+ * @return
+ */
+static char *__VpServiceParserGetProxy(app_control_h pAppSvcHandle)
+{
+ if (pAppSvcHandle == NULL) {
+ VideoLogError("pAppSvcHandle == NULL!!!");
+ return NULL;
+ }
+
+ char *szProxy = NULL;
+
+ if (app_control_get_extra_data
+ (pAppSvcHandle, VP_VIDEO_PROXY_KEY,
+ &szProxy) != APP_CONTROL_ERROR_NONE) {
+ VideoLogInfo("No exist buntle type.");
+
+ if (szProxy != NULL) {
+ free(szProxy);
+ szProxy = NULL;
+ }
+ return NULL;
+ }
+ VideoLogError("== [Proxy : %s] ==", szProxy);
+
+ return szProxy;
+
+}
+
+/**
+ *
+ * @param pAppSvcHandle
+ * @return
+ */
+static char *__VpServiceParserGetMediaTitle(app_control_h pAppSvcHandle)
+{
+ if (pAppSvcHandle == NULL) {
+ VideoLogError("pAppSvcHandle == NULL!!!");
+ return NULL;
+ }
+
+ char *szMediaTitle = NULL;
+
+ if (app_control_get_extra_data
+ (pAppSvcHandle, VP_VIDEO_TITLE_KEY,
+ &szMediaTitle) != APP_CONTROL_ERROR_NONE) {
+ VideoLogInfo("No exist app_control_h type.");
+
+ if (szMediaTitle != NULL) {
+ free(szMediaTitle);
+ szMediaTitle = NULL;
+ }
+ return NULL;
+ }
+ return szMediaTitle;
+
+}
+
+/**
+ *
+ * @param pAppSvcHandle
+ * @param dpUri
+ * @return
+ */
+static Eina_Bool __VpServiceParserGetAUL(app_control_h pAppSvcHandle,
+ char **dpUri)
+{
+ if (pAppSvcHandle == NULL) {
+ VideoLogError("pAppSvcHandle == NULL!!!");
+ return EINA_FALSE;
+ }
+
+ if (dpUri == NULL) {
+ VideoLogError("dpUri == NULL!!!");
+ return EINA_FALSE;
+ }
+
+ if (app_control_get_uri(pAppSvcHandle, dpUri) !=
+ APP_CONTROL_ERROR_NONE) {
+ VideoLogInfo("No exist uri");
+
+ if (*dpUri != NULL) {
+ free(*dpUri);
+ *dpUri = NULL;
+ }
+
+ return EINA_FALSE;
+ }
+
+ if (*dpUri != NULL) {
+ return EINA_TRUE;
+ }
+
+ return EINA_FALSE;
+}
+
+/**
+ *
+ * @param pAppSvcHandle
+ * @param dpUri
+ * @return
+ */
+static Eina_Bool __VpServiceParserGetAppControl(app_control_h
+ pAppSvcHandle,
+ char **dpUri)
+{
+ if (pAppSvcHandle == NULL) {
+ VideoLogError("pAppSvcHandle == NULL!!!");
+ return EINA_FALSE;
+ }
+
+ if (dpUri == NULL) {
+ VideoLogError("dpUri == NULL!!!");
+ return EINA_FALSE;
+ }
+
+ if (app_control_get_extra_data
+ (pAppSvcHandle, VP_VIDEO_URI_PATH_KEY,
+ dpUri) != APP_CONTROL_ERROR_NONE) {
+ VideoLogInfo("No exist buntle type.");
+
+ if (*dpUri != NULL) {
+ free(*dpUri);
+ *dpUri = NULL;
+ }
+
+ return EINA_FALSE;
+ }
+
+ if (*dpUri != NULL) {
+ return EINA_TRUE;
+ }
+
+ return EINA_FALSE;
+}
+
+/**
+ *
+ * @param pAppSvcHandle
+ * @param nXID
+ * @return
+ */
+static Eina_Bool __VpServiceParserGetWindowID(app_control_h pAppSvcHandle,
+ unsigned int *nXID)
+{
+ if (pAppSvcHandle == NULL) {
+ VideoLogError("pAppSvcHandle == NULL!!!");
+ return EINA_FALSE;
+ }
+#if 0
+ char *szValue = NULL;
+ if (app_control_get_extra_data
+ (pAppSvcHandle, VP_VIDEO_EXIT_ON_BACK,
+ &szValue) != APP_CONTROL_ERROR_NONE) {
+ VideoLogInfo("No exist buntle type.");
+
+ if (szValue != NULL) {
+ free(szValue);
+ szValue = NULL;
+ }
+
+ return EINA_FALSE;
+ }
+
+ if (!strcmp(szValue, "true")) {
+ int nRet = APP_CONTROL_ERROR_NONE;
+
+ nRet = app_control_get_window(pAppSvcHandle, nXID);
+ if (nRet != APP_CONTROL_ERROR_NONE) {
+ VideoLogWarning("app_control_get_window fail: %d", nRet);
+ *nXID = 0;
+ return FALSE;
+ }
+
+ }
+#endif
+ return EINA_TRUE;
+}
+
+/**
+ *
+ * @param pAppSvcHandle
+ * @return
+ */
+static VpVideoSortType __VpServiceParserGetSortType(app_control_h
+ pAppSvcHandle)
+{
+ if (pAppSvcHandle == NULL) {
+ VideoLogError("pAppSvcHandle == NULL!!!");
+ return VP_VIDEO_SORT_TYPE_BY_NONE;
+ }
+
+ VpVideoSortType eSortType = VP_VIDEO_SORT_TYPE_BY_NONE;
+ char *pSortType = NULL;
+
+
+ if (app_control_get_extra_data
+ (pAppSvcHandle, VP_VIDEO_SORT_TYPE_KEY,
+ &pSortType) != APP_CONTROL_ERROR_NONE) {
+ VideoLogInfo("No exist gallery list sort order type!!!");
+ eSortType = VP_VIDEO_SORT_TYPE_BY_NONE;
+ goto RESULT_RETURN;
+ }
+
+ if (pSortType == NULL) {
+ VideoLogInfo("pSortType == NULL!!!");
+ eSortType = VP_VIDEO_SORT_TYPE_BY_NONE;
+ goto RESULT_RETURN;
+ }
+
+ if (!strcmp(pSortType, "name_asc")) {
+ eSortType = VP_VIDEO_SORT_TYPE_BY_NAME_ASC;
+ } else if (!strcmp(pSortType, "name_desc")) {
+ eSortType = VP_VIDEO_SORT_TYPE_BY_NAME_DESC;
+ } else if (!strcmp(pSortType, "date_asc")) {
+ eSortType = VP_VIDEO_SORT_TYPE_BY_DATE_ASC;
+ } else if (!strcmp(pSortType, "date_desc")) {
+ eSortType = VP_VIDEO_SORT_TYPE_BY_DATE_DESC;
+ } else if (!strcmp(pSortType, "none")) {
+ eSortType = VP_VIDEO_SORT_TYPE_BY_NONE;
+ } else {
+ eSortType = VP_VIDEO_SORT_TYPE_BY_NAME_DESC;
+ }
+
+
+ RESULT_RETURN:
+ if (pSortType != NULL) {
+ free(pSortType);
+ pSortType = NULL;
+ }
+
+ return eSortType;
+}
+
+/**
+ *
+ * @param pAppSvcHandle
+ * @return
+ */
+static VpVideoPlayListType __VpServiceParserGetListType(app_control_h
+ pAppSvcHandle)
+{
+ if (pAppSvcHandle == NULL) {
+ VideoLogError("pAppSvcHandle == NULL!!!");
+ return VP_VIDEO_PLAY_LIST_TYPE_NONE;
+ }
+
+ VpVideoPlayListType ePlayType = VP_VIDEO_PLAY_LIST_TYPE_NONE;
+ char *pPlayType = NULL;
+
+ if (app_control_get_extra_data
+ (pAppSvcHandle, VP_VIDEO_LIST_TYPE_KEY,
+ &pPlayType) != APP_CONTROL_ERROR_NONE) {
+ VideoLogInfo("No exist gallery play list type!!!");
+ ePlayType = VP_VIDEO_PLAY_LIST_TYPE_NONE;
+ goto RESULT_RETURN;
+ }
+
+ if (pPlayType == NULL) {
+ VideoLogInfo("pPlayType == NULL!!!");
+ pPlayType = VP_VIDEO_PLAY_LIST_TYPE_NONE;
+ goto RESULT_RETURN;
+ }
+
+
+ if (!strcmp(pPlayType, "folder")) {
+ ePlayType = VP_VIDEO_PLAY_LIST_TYPE_FOLDER;
+ } else if (!strcmp(pPlayType, "all_folder_video")) {
+ ePlayType = VP_VIDEO_PLAY_LIST_TYPE_ALL_FOLDER_GALLERY;
+ } else if (!strcmp(pPlayType, "tag_video")) {
+ ePlayType = VP_VIDEO_PLAY_LIST_TYPE_TAG_GALLERY;
+ } else if (!strcmp(pPlayType, "favorite")) {
+ ePlayType = VP_VIDEO_PLAY_LIST_TYPE_FAVORITE;
+ } else {
+ ePlayType = VP_VIDEO_PLAY_LIST_TYPE_NONE;
+ }
+
+
+ RESULT_RETURN:
+ if (pPlayType != NULL) {
+ free(pPlayType);
+ pPlayType = NULL;
+ }
+
+ return ePlayType;
+}
+
+/**
+ *
+ * @param szURL
+ * @return
+ */
+static Eina_Bool __VpServiceParserCheckURL(char *szURL)
+{
+ if (szURL == NULL) {
+ return EINA_FALSE;
+ }
+
+ if (strlen(szURL) <= 0) {
+ return EINA_FALSE;
+ }
+
+ return EINA_TRUE;
+}
+
+
+/**
+ *
+ * @param szFilePath
+ * @return
+ */
+static Eina_Bool __VpServiceParserCheckFileIsExist(char *szFilePath)
+{
+ if (szFilePath == NULL) {
+ VideoLogError("szFilePath == NULL!!!");
+ return EINA_FALSE;
+ }
+ Eina_Bool bIsExist = EINA_FALSE;
+
+ if (vp_file_exists(szFilePath)) {
+ bIsExist = EINA_TRUE;
+ }
+
+ return bIsExist;
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#include <app.h>
+#include <system_settings.h>
+#include "vp-main.h"
+#include "vp-service-parser.h"
+#include "vp-play-log.h"
+#include "vp-play-view.h"
+
+static void __appResume(void *pUserData);
+
+/**
+ *
+ * @param pUserData
+ */
+static void __vp_main_realize_cb(void *pUserData)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ */
+static void __vp_main_destroy_cb(void *pUserData)
+{
+ if (!pUserData) {
+ VideoLogError("pUserData is NULL");
+ return;
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ * @return
+ */
+static bool __appCreate(void *pUserData)
+{
+ VideoLogWarning("== APP CREATE ==");
+
+ if (pUserData == NULL) {
+ VideoLogError("[ERR] No exist pUserData.");
+ return FALSE;
+ }
+
+ char locale_path[1024] = { 0 };
+ char *path = app_get_resource_path();
+ if (path == NULL) {
+ return FALSE;
+ }
+ snprintf(locale_path, 1024, "%s%s", path, "locale");
+ VideoLogDebug("Locale Path is: %s", locale_path);
+ bindtextdomain("video-player", locale_path);
+ free(path);
+
+ VpAppData *pAppData = (VpAppData *) pUserData;
+
+ pAppData->bPause = FALSE;
+ pAppData->bIsRelaunch = FALSE;
+
+ return TRUE;
+}
+
+/**
+ *
+ * @param data
+ * @return
+ */
+static Eina_Bool __appControl_idler_cb(void *data)
+{
+ VpAppData *pAppData = (VpAppData *) data;
+
+
+ VideoLogPerfS
+ ("============================== RESET =============================");
+
+ video_play_launching_type_t nLaunchingType = VIDEO_PLAY_TYPE_OTHER;
+ video_play_mode_t nMode = VIDEO_PLAY_MODE_NORMAL_VIEW;
+ bool bRelaunchCaller = FALSE;
+ VideoLogError("LaunchType = %d", pAppData->pServiceData->eLaunchType);
+
+ switch (pAppData->pServiceData->eLaunchType) {
+ case VP_LAUNCH_TYPE_STORE:
+ nLaunchingType = VIDEO_PLAY_TYPE_STORE;
+ bRelaunchCaller = TRUE;
+ VideoLogWarning("== VIDEO_PLAY_TYPE_STORE ==");
+ break;
+ case VP_LAUNCH_TYPE_LIST:
+ nLaunchingType = VIDEO_PLAY_TYPE_LIST;
+ VideoLogWarning("== VIDEO_PLAY_TYPE_LIST ==");
+ break;
+ case VP_LAUNCH_TYPE_NONE:
+ case VP_LAUNCH_TYPE_MAX:
+ nLaunchingType = VIDEO_PLAY_TYPE_OTHER;
+ VideoLogWarning("== VIDEO_PLAY_TYPE_OTHER ==");
+ break;
+ case VP_LAUNCH_TYPE_EMAIL:
+ nLaunchingType = VIDEO_PLAY_TYPE_EMAIL;
+ VideoLogWarning("== VIDEO_PLAY_TYPE_EMAIL ==");
+ break;
+ case VP_LAUNCH_TYPE_MMS:
+ nLaunchingType = VIDEO_PLAY_TYPE_MESSAGE;
+ VideoLogWarning("== VIDEO_PLAY_TYPE_MESSAGE ==");
+ break;
+ case VP_LAUNCH_TYPE_MYFILE:
+ nLaunchingType = VIDEO_PLAY_TYPE_MYFILE;
+ VideoLogWarning("== VP_LAUNCH_TYPE_MYFILE ==");
+ break;
+ case VP_LAUNCH_TYPE_GALLERY:
+ nLaunchingType = VIDEO_PLAY_TYPE_GALLERY;
+ VideoLogWarning("== VIDEO_PLAY_TYPE_GALLERY ==");
+ break;
+ case VP_LAUNCH_TYPE_IMAGE_VIEWER:
+ nLaunchingType = VIDEO_PLAY_TYPE_GALLERY;
+ VideoLogWarning("== VIDEO_PLAY_TYPE_GALLERY ==");
+ break;
+ case VP_LAUNCH_TYPE_IMAGE_VIEWER_TRIM:
+ nLaunchingType = VIDEO_PLAY_TYPE_GALLERY;
+ VideoLogWarning("== VP_LAUNCH_TYPE_IMAGE_VIEWER_TRIM ==");
+ break;
+ case VP_LAUNCH_TYPE_MULTI_PATH:
+ nLaunchingType = VIDEO_PLAY_TYPE_MULTI_PATH;
+ break;
+ case VP_LAUNCH_TYPE_SIMPLE:
+ nLaunchingType = VIDEO_PLAY_TYPE_PREVIEW;
+ VideoLogWarning("== VIDEO_PLAY_TYPE_PREVIEW ==");
+ break;
+ }
+
+ if (pAppData->pServiceData->bStreaming) {
+ nLaunchingType = VIDEO_PLAY_TYPE_WEB;
+ }
+
+ bool bPopupMode = FALSE;
+ vp_play_view_get_popup_mode(pAppData->pPlayView, &bPopupMode);
+
+ bool bIsRealize = FALSE;
+
+ if (vp_play_view_is_realize(pAppData->pPlayView, &bIsRealize)) {
+ if (bPopupMode == FALSE && bIsRealize == FALSE
+ && pAppData->bPause == FALSE) {
+ VideoLogError("[ERR] Not Yet reailze");
+ return ECORE_CALLBACK_DONE;
+ }
+ }
+
+ if ((bPopupMode == TRUE && pAppData->pServiceData->szDMRID == NULL)
+ || (g_strcmp0(pAppData->pValStartup, "2") == 0 && bIsRealize)) { // pAppData->values[0] == 2 for multi window; change video url only, don't destroy the player window.
+ char *szCurURL = NULL;
+ bool bVisible = FALSE;
+
+ if (!vp_play_view_get_url(pAppData->pPlayView, &szCurURL)) {
+ VideoLogError("vp_play_view_set_url is fail");
+ }
+ if (!vp_play_view_get_visible_status
+ (pAppData->pPlayView, &bVisible)) {
+ VideoLogError("vp_play_view_get_visible_status is fail");
+ }
+
+ if (szCurURL && bVisible) {
+ char *req_uri = NULL;
+ if (pAppData->pServiceData->pMediaUri) {
+ req_uri = strdup(pAppData->pServiceData->pMediaUri);
+ } else if (nLaunchingType == VIDEO_PLAY_TYPE_MULTI_PATH) {
+ if (pAppData->pServiceData->szMultiPath[0] != NULL) {
+ char *multi_path =
+ strstr(pAppData->pServiceData->szMultiPath[0],
+ "file://");
+
+ if (multi_path != NULL) {
+ req_uri = strdup(multi_path);
+ }
+ }
+ }
+ if (req_uri) {
+ if (g_strcmp0(req_uri, szCurURL) == 0) {
+ VideoLogError("skip for same file");
+
+ free(szCurURL);
+ szCurURL = NULL;
+ free(req_uri);
+ req_uri = NULL;
+
+ Evas_Object *pWin =
+ vp_play_view_get_main_window(pAppData->pPlayView);
+ if (pWin) {
+ if (nLaunchingType == VIDEO_PLAY_TYPE_MESSAGE
+ || nLaunchingType == VIDEO_PLAY_TYPE_EMAIL) {
+ //if current mini mode, change it to full mode
+ VideoLogWarning
+ ("from Message type and Email type. change mini mode to full mode");
+ vp_play_view_change_style_minimode_to_fullmode
+ (pAppData->pPlayView, nLaunchingType);
+ }
+ elm_win_activate(pWin);
+ }
+
+ return ECORE_CALLBACK_DONE;
+ }
+ free(req_uri);
+ req_uri = NULL;
+ } else {
+ VideoLogError("skip for invalid input");
+
+ free(szCurURL);
+ szCurURL = NULL;
+
+ return ECORE_CALLBACK_DONE;
+ }
+ if (szCurURL) {
+ free(szCurURL);
+ }
+ szCurURL = NULL;
+ }
+
+ if (!vp_play_view_unrealize(pAppData->pPlayView)) {
+ VideoLogError("vp_play_view_unrealize is fail");
+ }
+
+ if (!vp_play_view_set_url
+ (pAppData->pPlayView, pAppData->pServiceData->pMediaUri)) {
+ VideoLogError("vp_play_view_set_url is fail");
+ }
+
+ vp_play_view_set_launching_mode(pAppData->pPlayView,
+ nLaunchingType);
+ if (szCurURL) {
+ free(szCurURL);
+ szCurURL = NULL;
+ }
+ } else {
+ if (pAppData->pPlayView) {
+#ifdef _PERF_TEST_
+ vp_play_view_reset(pAppData->pPlayView, nMode);
+#else
+ vp_play_view_reset_audio_only(pAppData->pPlayView);
+ vp_play_view_destroy(pAppData->pPlayView);
+#endif
+ pAppData->pPlayView = NULL;
+ }
+
+ if (pAppData->pPlayView == NULL) {
+ pAppData->pPlayView =
+ vp_play_view_create(NULL,
+ pAppData->pServiceData->nParentXID,
+ nMode, nLaunchingType);
+ if (pAppData->pPlayView == NULL) {
+ VideoLogError("vp_play_view_create is fail");
+ elm_exit();
+ return ECORE_CALLBACK_DONE;
+ }
+ }
+
+
+ Evas_Object *pWin = NULL;
+ pWin = vp_play_view_get_main_window(pAppData->pPlayView);
+
+ evas_object_show(pWin);
+ elm_win_activate(pWin);
+
+
+ if (!vp_play_view_set_callback
+ (pAppData->pPlayView, VIDEO_PLAY_CB_TYPE_REALIZE,
+ __vp_main_realize_cb)) {
+ VideoLogError("vp_play_view_set_callback is fail");
+ return ECORE_CALLBACK_DONE;
+ }
+
+ if (!vp_play_view_set_callback
+ (pAppData->pPlayView, VIDEO_PLAY_CB_TYPE_DESTORY,
+ __vp_main_destroy_cb)) {
+ VideoLogError("vp_play_view_set_callback is fail");
+ return ECORE_CALLBACK_DONE;
+ }
+
+ if (!vp_play_view_set_user_data
+ (pAppData->pPlayView, (void *) pAppData)) {
+ VideoLogError("vp_play_view_set_user_data is fail");
+ return ECORE_CALLBACK_DONE;
+ }
+ }
+
+
+ if (nLaunchingType == VIDEO_PLAY_TYPE_WEB) {
+ if (!vp_play_view_set_cookie
+ (pAppData->pPlayView, pAppData->pServiceData->szCookie)) {
+ VideoLogError("vp_play_view_set_cookie is fail");
+ }
+
+ if (!vp_play_view_set_proxy
+ (pAppData->pPlayView, pAppData->pServiceData->szProxy)) {
+ VideoLogError("vp_play_view_set_proxy is fail");
+ }
+ }
+
+ if (pAppData->pServiceData->szDMRID) {
+ VideoLogWarning("DMR ID : %s", pAppData->pServiceData->szDMRID);
+ if (!vp_play_view_set_dmr_id
+ (pAppData->pPlayView, pAppData->pServiceData->szDMRID)) {
+ VideoLogError("vp_play_view_set_dmr_id is fail");
+ }
+ }
+
+ if (nLaunchingType == VIDEO_PLAY_TYPE_MULTI_PATH
+ && pAppData->pServiceData->szMultiPath) {
+ int idx = 0;
+
+ if (!vp_play_view_set_stop_after_repeat_mode
+ (pAppData->pPlayView,
+ pAppData->pServiceData->bStopAfterRepeat)) {
+ VideoLogError
+ ("vp_play_view_set_stop_after_repeat_mode is fail");
+ }
+
+ for (idx = 0; idx < pAppData->pServiceData->nMultiPath; idx++) {
+ if (pAppData->pServiceData->szMultiPath[idx] == NULL) {
+ continue;
+ }
+
+ if (pAppData->pServiceData->szMultiPath[idx]) {
+ char *szSubtitle = NULL;
+ char *szTitle = NULL;
+ int nPosition = 0;
+ int nDuration = 0;
+
+ if (idx == 0) {
+ if (!vp_play_view_set_url
+ (pAppData->pPlayView,
+ pAppData->pServiceData->szMultiPath[idx])) {
+ VideoLogError("vp_play_view_set_url is fail");
+ }
+ }
+ if (pAppData->pServiceData->szMultiTitle) {
+ if (pAppData->pServiceData->szMultiTitle[idx]) {
+ szTitle =
+ pAppData->pServiceData->szMultiTitle[idx];
+ }
+ }
+ if (pAppData->pServiceData->szMultiSubTitle) {
+ if (pAppData->pServiceData->szMultiSubTitle[idx]) {
+ szSubtitle =
+ pAppData->pServiceData->szMultiSubTitle[idx];
+ }
+ }
+ if (pAppData->pServiceData->szMultiPosition) {
+ if (pAppData->pServiceData->szMultiPosition[idx]) {
+ nPosition =
+ atoi(pAppData->pServiceData->
+ szMultiPosition[idx]);
+ }
+ }
+ if (pAppData->pServiceData->szMultiDuration) {
+ if (pAppData->pServiceData->szMultiDuration[idx]) {
+ nDuration =
+ atoi(pAppData->pServiceData->
+ szMultiDuration[idx]);
+ }
+ }
+ vp_play_view_add_multi_path(pAppData->pPlayView,
+ pAppData->pServiceData->
+ szMultiPath[idx], szTitle,
+ szSubtitle, nPosition,
+ nDuration, FALSE);
+ }
+ }
+ } else {
+ int nPosition = 0;
+ if (pAppData->pServiceData->bStoreDownload) {
+ nPosition = pAppData->pServiceData->nStorePlayedTime;
+ }
+ if (!vp_play_view_set_start_position
+ (pAppData->pPlayView, nPosition)) {
+ VideoLogError("vp_play_view_set_start_position is fail");
+ }
+
+ if (!vp_play_view_set_url
+ (pAppData->pPlayView, pAppData->pServiceData->pMediaUri)) {
+ VideoLogError("vp_play_view_set_url is fail");
+ }
+
+ if (!vp_play_view_set_store_download_mode
+ (pAppData->pPlayView,
+ pAppData->pServiceData->bStoreDownload)) {
+ VideoLogError("vp_play_view_set_store_download_mode is fail");
+ }
+
+ if (!vp_play_view_set_store_download_filesize
+ (pAppData->pPlayView,
+ pAppData->pServiceData->dStoreDL_FileSize)) {
+ VideoLogError
+ ("vp_play_view_set_store_download_filesize is fail");
+ }
+
+ if (pAppData->pServiceData->bStoreDownload == EINA_TRUE
+ && pAppData->pServiceData->pStoreOrderId != NULL) {
+ if (!vp_play_view_set_store_order_info
+ (pAppData->pPlayView,
+ pAppData->pServiceData->pStoreOrderId,
+ pAppData->pServiceData->pStoreServerId,
+ pAppData->pServiceData->pStoreAppId,
+ pAppData->pServiceData->pStoreMvId)) {
+ VideoLogError("vp_play_view_set_store_order_info is fail");
+ }
+ }
+ }
+
+ if (pAppData->pServiceData->eListType ==
+ VP_VIDEO_PLAY_LIST_TYPE_FOLDER) {
+ vp_play_view_set_list_mode(pAppData->pPlayView,
+ VIDEO_PLAY_LIST_TYPE_FOLDER);
+ } else {
+ vp_play_view_set_list_mode(pAppData->pPlayView,
+ VIDEO_PLAY_LIST_TYPE_ALL);
+ }
+
+ if (pAppData->pServiceData->szDeviceID) {
+ VideoLogWarning("Device ID : %s",
+ pAppData->pServiceData->szDeviceID);
+ if (!vp_play_view_set_device_id
+ (pAppData->pPlayView, pAppData->pServiceData->szDeviceID)) {
+ VideoLogError("vp_play_view_set_device_id is fail");
+ }
+ }
+ if (!vp_play_view_set_auto_play_setting
+ (pAppData->pPlayView, pAppData->pServiceData->szAutoPlay)) {
+ VideoLogError("vp_play_view_set_auto_play_setting is fail");
+ }
+ if (pAppData->pServiceData->szMediaTitle) {
+ VideoLogWarning("szMediaTitle : %s",
+ pAppData->pServiceData->szMediaTitle);
+ if (!vp_play_view_set_media_title
+ (pAppData->pPlayView, pAppData->pServiceData->szMediaTitle)) {
+ VideoLogError("vp_play_view_set_media_title is fail");
+ }
+ }
+
+ if (!vp_play_view_set_relaunch_caller
+ (pAppData->pPlayView, bRelaunchCaller)) {
+ VideoLogError("vp_play_view_set_user_data is fail");
+ return ECORE_CALLBACK_DONE;
+ }
+
+ VideoLogPerfE
+ ("============================== RESET =============================");
+
+ if (pAppData->pAppSvcIdler) {
+ ecore_idler_del(pAppData->pAppSvcIdler);
+ pAppData->pAppSvcIdler = NULL;
+ }
+
+ return ECORE_CALLBACK_DONE;
+}
+
+/**
+ *
+ * @param pAppSvcHandle
+ * @param pUserData
+ */
+static void __appControl(app_control_h pAppSvcHandle, void *pUserData)
+{
+ VideoLogWarning("== APP SERVICE ==");
+
+ if (pAppSvcHandle == NULL) {
+ VideoLogError("[ERR] No exist pAppSvcHandle.");
+ return;
+ }
+
+ if (pUserData == NULL) {
+ VideoLogError("[ERR] No exist pUserData.");
+ return;
+ }
+
+ VpAppData *pAppData = (VpAppData *) pUserData;
+
+ char *resume_check = NULL;
+ if (app_control_get_extra_data
+ (pAppSvcHandle, "startup_type",
+ &resume_check) != APP_CONTROL_ERROR_NONE) {
+ VideoLogInfo("No exist startup_type");
+ } else {
+ VideoLogInfo("temp_resume_check : %s", resume_check);
+ if (resume_check) {
+ if (strcmp(resume_check, "1") == 0) {
+ VideoLogInfo("do resume");
+ free(resume_check);
+
+ VpAppData *pAppData = (VpAppData *) pUserData;
+ Evas_Object *pWin = NULL;
+ pWin = vp_play_view_get_main_window(pAppData->pPlayView);
+ if (pWin) {
+ __appResume(pUserData);
+ return;
+ } else {
+ VideoLogError("No exist pWin");
+ }
+ }
+ }
+ }
+
+ if (pAppData->pServiceData != NULL) {
+ VpServiceParserDestroyServiceData(pAppData->pServiceData);
+ pAppData->pServiceData = NULL;
+ }
+
+ pAppData->pServiceData = calloc(1, sizeof(VpServiceData));
+
+ if (VpServiceParserGetServiceData
+ (pAppSvcHandle, pAppData->pServiceData) == EINA_FALSE) {
+ VideoLogError("[ERR] VpServiceParserGetServiceData fail!!!");
+ if (pAppData->pServiceData != NULL) {
+ VpServiceParserDestroyServiceData(pAppData->pServiceData);
+ pAppData->pServiceData = NULL;
+ }
+
+ return;
+ }
+
+//////////////////////////////////////////////////////////////////////////////////////////////////////
+// for sidesync
+//////////////////////////////////////////////////////////////////////////////////////////////////////
+ if (pAppData->pServiceData && pAppData->pServiceData->pMediaUri != NULL) {
+ VideoSecureLogInfo("ss-play: %s",
+ pAppData->pServiceData->pMediaUri);
+ }
+//////////////////////////////////////////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////////////////////////////
+
+
+//////////////////////////////////////////////////////////////////////////////////////////////////////
+// for split window
+//////////////////////////////////////////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////////////////////////////
+
+
+#ifdef _PERF_TEST_
+ pAppData->pAppSvcIdler =
+ ecore_idler_add(__appControl_idler_cb, (void *) pAppData);
+#else
+ __appControl_idler_cb((void *) pAppData);
+#endif
+}
+
+/**
+ *
+ * @param pUserData
+ */
+static void __appExit(void *pUserData)
+{
+ if (pUserData == NULL) {
+ VideoLogError("[ERR] No exist pUserData.");
+ return;
+ }
+
+ VideoLogWarning("== APP EXIT ==");
+
+ VpAppData *pAppData = (VpAppData *) pUserData;
+
+ if (pAppData->pServiceData != NULL) {
+ VpServiceParserDestroyServiceData(pAppData->pServiceData);
+ pAppData->pServiceData = NULL;
+ }
+
+ if (pAppData->pPlayView) {
+ vp_play_view_destroy(pAppData->pPlayView);
+ pAppData->pPlayView = NULL;
+ }
+
+ if (pAppData->pValStartup != NULL) {
+ free(pAppData->pValStartup);
+ pAppData->pValStartup = NULL;
+ }
+
+ if (pAppData->pValLayout != NULL) {
+ free(pAppData->pValLayout);
+ pAppData->pValLayout = NULL;
+ }
+}
+
+/**
+ *
+ * @param pUserData
+ */
+static void __appPause(void *pUserData)
+{
+ VideoLogWarning("== APP PAUSE ==");
+
+ if (pUserData == NULL) {
+ VideoLogError("[ERR] No exist pUserData.");
+ return;
+ }
+
+ VpAppData *pAppData = (VpAppData *) pUserData;
+ pAppData->bPause = TRUE;
+#if 1
+ if (!vp_play_view_unrealize(pAppData->pPlayView)) {
+ VideoLogWarning("vp_play_view_unrealize is fail");
+ }
+#else
+ if (!vp_play_view_get_popup_mode(pAppData->pPlayView, &bPopupMode)) {
+ VideoLogWarning("vp_play_view_get_popup_mode is fail");
+ }
+
+ if (bPopupMode == FALSE) {
+ if (!vp_play_view_unrealize(pAppData->pPlayView)) {
+ VideoLogWarning("vp_play_view_unrealize is fail");
+ }
+ }
+#endif
+}
+
+/**
+ *
+ * @param pUserData
+ */
+static void __appResume(void *pUserData)
+{
+ VideoLogWarning("== APP RESUME ==");
+
+ if (pUserData == NULL) {
+ VideoLogError("[ERR] No exist pUserData.");
+ return;
+ }
+
+ VpAppData *pAppData = (VpAppData *) pUserData;
+ pAppData->bPause = FALSE;
+
+
+ if (!vp_play_view_realize(pAppData->pPlayView)) {
+ VideoLogError("vp_play_view_realize is fail");
+ }
+ vp_play_view_live_stream_realize(pAppData->pPlayView);
+}
+
+/**
+ *
+ * @param event_info
+ * @param data
+ */
+void vp_low_battery(app_event_info_h event_info, void *data)
+{
+ VpAppData *ad = (VpAppData *) data;
+ app_event_low_battery_status_e status = -1;
+ int ret = app_event_get_low_battery_status(event_info, &status);
+ if (ret == APP_ERROR_NONE) {
+ if (status <= APP_EVENT_LOW_BATTERY_POWER_OFF) {
+ __appExit(ad);
+ }
+ } else {
+ VideoLogInfo("Failed to get battery status. ret %d", ret);
+ }
+ return;
+}
+
+/**
+ *
+ * @param pEventInfo
+ * @param pUserData
+ */
+static void __appUpdateLanguage(app_event_info_h pEventInfo,
+ void *pUserData)
+{
+ char *locale = NULL;
+ VpAppData *pAd = (VpAppData*) pUserData;
+ int retcode =
+ system_settings_get_value_string
+ (SYSTEM_SETTINGS_KEY_LOCALE_LANGUAGE, &locale);
+
+ if (retcode != SYSTEM_SETTINGS_ERROR_NONE) {
+ VideoLogInfo
+ ("[ERR] failed to get updated language!!! [retcode = retcode]",
+ retcode);
+ } else {
+ if (locale) {
+ elm_language_set(locale);
+ free(locale);
+ }
+ }
+
+ if (pAd) {
+ vp_play_view_handle_language_change(pAd->pPlayView);
+ }
+}
+
+
+/**
+ *
+ * @param argc
+ * @param argv
+ * @return
+ */
+EXPORT_API int main(int argc, char *argv[])
+{
+ VpAppData sAppData = { 0, };
+ int nRet = -1;
+ ui_app_lifecycle_callback_s st_appEventService;
+ app_event_handler_h hLanguageChangedHandle;
+ app_event_handler_h hLowBatteryHandle;
+ nRet =
+ ui_app_add_event_handler(&hLanguageChangedHandle,
+ APP_EVENT_LANGUAGE_CHANGED,
+ __appUpdateLanguage, (void *) &sAppData);
+ if (nRet != APP_ERROR_NONE) {
+ VideoLogError
+ ("APP_EVENT_LANGUAGE_CHANGED ui_app_add_event_handler failed : [%d]!!!",
+ nRet);
+ return -1;
+
+ }
+ nRet =
+ ui_app_add_event_handler(&hLowBatteryHandle, APP_EVENT_LOW_BATTERY,
+ vp_low_battery, (void *) &sAppData);
+ if (nRet != APP_ERROR_NONE) {
+ VideoLogError
+ ("APP_EVENT_LOW_BATTERY ui_app_add_event_handler failed : [%d]!!!",
+ nRet);
+ return -1;
+ }
+
+
+ st_appEventService.create = __appCreate;
+ st_appEventService.terminate = __appExit;
+ st_appEventService.pause = __appPause;
+ st_appEventService.resume = __appResume;
+ st_appEventService.app_control = __appControl;
+
+ if (ui_app_main(argc, argv, &st_appEventService, &sAppData) !=
+ APP_ERROR_NONE) {
+ return -1;
+ }
+
+ return 0;
+}
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<manifest xmlns="http://tizen.org/ns/packages" api-version="4.0" package="org.tizen.video-player" version="1.0.0">
+ <profile name="mobile"/>
+ <ui-application appid="org.tizen.video-player" exec="video-player" launch_mode="caller" hw-acceleration="on" multiple="false" nodisplay="true" taskmanage="true" type="capp">
+ <label>video-player</label>
+ <icon>org.tizen.video-player.png</icon>
+ <app-control>
+ <operation name="http://tizen.org/appcontrol/operation/view" />
+ <mime name="video/mp4" />
+ <mime name="video/3gp" />
+ <mime name="video/divx" />
+ <mime name="video/x-msvideo" />
+ <mime name="video/x-ms-wmv" />
+ <mime name="application/vnd.ms-asf" />
+ <mime name="video/x-ms-asf" />
+ <mime name="video/video/x-flv" />
+ <mime name="video/3gpp" />
+ <mime name="video/x-matroska" />
+ <mime name="video/vnd.ms-playready.media.pyv" />
+ <mime name="application/vnd.apple.mpegurl" />
+ <mime name="application/x-mpegurl" />
+ <mime name="audio/x-mpegurl" />
+ <mime name="video/x-mpegurl" />
+ <mime name="video/x-flv" />
+ <mime name="video/ogg" />
+ <mime name="video/quicktime" />
+ <mime name="video/mp2t" />
+ <mime name="audio/isma" />
+ <mime name="application/sdp" />
+ <uri name="http" />
+ <uri name="https" />
+ <uri name="rtsp" />
+ <uri name="rtp" />
+ </app-control>
+ <app-control>
+ <operation name="http://tizen.org/appcontrol/operation/view" />
+ <mime name="video/mp4" />
+ <mime name="video/3gp" />
+ <mime name="video/divx" />
+ <mime name="video/x-msvideo" />
+ <mime name="video/x-ms-wmv" />
+ <mime name="video/x-ms-asf" />
+ <mime name="application/vnd.ms-asf" />
+ <mime name="video/video/x-flv" />
+ <mime name="video/3gpp" />
+ <mime name="video/x-matroska" />
+ <mime name="video/vnd.ms-playready.media.pyv" />
+ <mime name="application/vnd.apple.mpegurl" />
+ <mime name="application/x-mpegurl" />
+ <mime name="video/x-mpegurl" />
+ <mime name="video/x-flv" />
+ <mime name="video/ogg" />
+ <mime name="video/quicktime" />
+ <mime name="video/mp2t" />
+ <mime name="video/3gpp2" />
+ <mime name="application/sdp" />
+ </app-control>
+ </ui-application>
+ <privileges>
+ <privilege>http://tizen.org/privilege/network.get</privilege>
+ <privilege>http://tizen.org/privilege/mapservice</privilege>
+ <privilege>http://tizen.org/privilege/wifidirect</privilege>
+ <privilege>http://tizen.org/privilege/content.write</privilege>
+ <privilege>http://tizen.org/privilege/appmanager.launch</privilege>
+ <privilege>http://tizen.org/privilege/externalstorage</privilege>
+ <privilege>http://tizen.org/privilege/mediastorage</privilege>
+ <privilege>http://tizen.org/privilege/externalstorage.appdata</privilege>
+ <privilege>http://tizen.org/privilege/telephony</privilege>
+ <privilege>http://tizen.org/privilege/volume.set</privilege>
+ <privilege>http://tizen.org/privilege/internet</privilege>
+ <privilege>http://tizen.org/privilege/display</privilege>
+ </privileges>
+</manifest>