--- /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.1103449040">
+ <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="org.tizen.nativecore.config.sbi.gcc45.app.debug.1103449040" 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.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"/>
+ <extension id="org.tizen.nativecore.NativeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ </extensions>
+ </storageModule>
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">
+ <configuration artifactName="operationpickviewapp" buildArtefactType="org.tizen.nativecore.buildArtefactType.app" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug,org.eclipse.cdt.build.core.buildArtefactType=org.tizen.nativecore.buildArtefactType.app" description="" errorParsers="org.eclipse.cdt.core.MakeErrorParser;org.eclipse.cdt.core.GCCErrorParser;" id="org.tizen.nativecore.config.sbi.gcc45.app.debug.1103449040" name="Debug" parent="org.tizen.nativecore.config.sbi.gcc45.app.debug">
+ <folderInfo id="org.tizen.nativecore.config.sbi.gcc45.app.debug.1103449040." name="/" resourcePath="">
+ <toolChain id="org.tizen.nativecore.toolchain.sbi.gcc45.app.debug.1480192533" 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.1992113304" osList="linux,win32" superClass="org.tizen.nativeide.target.sbi.gnu.platform.base"/>
+ <builder autoBuildTarget="all" buildPath="${workspace_loc:/operationpickviewapp}/Debug" enableAutoBuild="true" id="org.tizen.nativecore.target.sbi.gnu.builder.136765545" 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.1363023222" name="Archiver" superClass="org.tizen.nativecore.tool.sbi.gnu.archiver"/>
+ <tool command="clang++" id="org.tizen.nativecore.tool.sbi.gnu.cpp.compiler.198203543" name="C++ Compiler" superClass="org.tizen.nativecore.tool.sbi.gnu.cpp.compiler">
+ <option id="gnu.cpp.compiler.option.optimization.level.909214708" 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.17442777" name="Debug level" superClass="sbi.gnu.cpp.compiler.option.debugging.level.core" valueType="enumerated"/>
+ <option id="sbi.gnu.cpp.compiler.option.435286799" name="Tizen-Target" superClass="sbi.gnu.cpp.compiler.option" valueType="userObjs">
+ <listOptionValue builtIn="false" value="mobile-3.0-device.core_llvm36.armel.core.app"/>
+ </option>
+ <option id="sbi.gnu.cpp.compiler.option.frameworks_inc.core.140915077" 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/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""/>
+ </option>
+ <option id="sbi.gnu.cpp.compiler.option.frameworks_cflags.core.2095415481" 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}""/>
+ <listOptionValue builtIn="false" value="-mthumb"/>
+ </option>
+ <option id="gnu.cpp.compiler.option.include.paths.379135796" 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.269244255" 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.1753410587" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
+ </tool>
+ <tool command="clang" id="org.tizen.nativecore.tool.sbi.gnu.c.compiler.215647693" 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.171896184" 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.113948260" name="Debug level" superClass="sbi.gnu.c.compiler.option.debugging.level.core" valueType="enumerated"/>
+ <option id="sbi.gnu.c.compiler.option.456139409" name="Tizen-Target" superClass="sbi.gnu.c.compiler.option" valueType="userObjs">
+ <listOptionValue builtIn="false" value="mobile-3.0-device.core_llvm36.armel.core.app"/>
+ </option>
+ <option id="sbi.gnu.c.compiler.option.frameworks_inc.core.1771289066" 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/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""/>
+ </option>
+ <option id="sbi.gnu.c.compiler.option.frameworks_cflags.core.549775668" 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}""/>
+ <listOptionValue builtIn="false" value="-mthumb"/>
+ </option>
+ <option id="gnu.c.compiler.option.include.paths.777202730" 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.788249505" 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.162278930" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
+ </tool>
+ <tool id="org.tizen.nativeide.tool.sbi.gnu.c.linker.base.1851067066" 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.550022393" name="C++ Linker" superClass="org.tizen.nativecore.tool.sbi.gnu.cpp.linker">
+ <option id="sbi.gnu.cpp.linker.option.frameworks_lflags.core.444811703" 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.2114762762" 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.709095449" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
+ <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
+ <additionalInput kind="additionalinput" paths="$(LIBS)"/>
+ </inputType>
+ </tool>
+ <tool command="arm-linux-gnueabi-as" id="org.tizen.nativeapp.tool.sbi.gnu.assembler.base.276393133" name="Assembler" superClass="org.tizen.nativeapp.tool.sbi.gnu.assembler.base">
+ <inputType id="cdt.managedbuild.tool.gnu.assembler.input.1431157995" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
+ </tool>
+ <tool id="org.tizen.nativecore.tool.fnmapgen.1250010413" name="C FN-Map Generator" superClass="org.tizen.nativecore.tool.fnmapgen"/>
+ <tool id="org.tizen.nativecore.tool.fnmapgen.cpp.813643885" name="C++ FN-Map Generator" superClass="org.tizen.nativecore.tool.fnmapgen.cpp"/>
+ <tool id="org.tizen.nativecore.tool.ast.869973014" name="C Static Analyzer" superClass="org.tizen.nativecore.tool.ast"/>
+ <tool id="org.tizen.nativecore.tool.ast.cpp.2027778989" name="C++ Static Analyzer" superClass="org.tizen.nativecore.tool.ast.cpp"/>
+ <tool id="org.tizen.nativecore.tool.sbi.gnu.archiver.mergelib.1703808188" name="Archive Generator" superClass="org.tizen.nativecore.tool.sbi.gnu.archiver.mergelib"/>
+ <tool id="org.tizen.nativecore.tool.sbi.po.compiler.1380668881" name="PO Resource Compiler" superClass="org.tizen.nativecore.tool.sbi.po.compiler"/>
+ <tool id="org.tizen.nativecore.tool.sbi.edc.compiler.2038229227" name="EDC Resource Compiler" superClass="org.tizen.nativecore.tool.sbi.edc.compiler"/>
+ </toolChain>
+ </folderInfo>
+ <sourceEntries>
+ <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="inc"/>
+ <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="res"/>
+ <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="shared"/>
+ <entry 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.987656676">
+ <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="org.tizen.nativecore.config.sbi.gcc45.app.release.987656676" 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.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"/>
+ <extension id="org.tizen.nativecore.NativeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ </extensions>
+ </storageModule>
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">
+ <configuration artifactName="org.tizen.operationpickviewapp" buildArtefactType="org.tizen.nativecore.buildArtefactType.app" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release,org.eclipse.cdt.build.core.buildArtefactType=org.tizen.nativecore.buildArtefactType.app" description="" errorParsers="org.eclipse.cdt.core.MakeErrorParser;org.eclipse.cdt.core.GCCErrorParser;" id="org.tizen.nativecore.config.sbi.gcc45.app.release.987656676" name="Release" parent="org.tizen.nativecore.config.sbi.gcc45.app.release">
+ <folderInfo id="org.tizen.nativecore.config.sbi.gcc45.app.release.987656676." name="/" resourcePath="">
+ <toolChain id="org.tizen.nativecore.toolchain.sbi.gcc45.app.release.1759013348" 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.940695500" osList="linux,win32" superClass="org.tizen.nativeide.target.sbi.gnu.platform.base"/>
+ <builder buildPath="${workspace_loc:/operationpickviewapp}/Release" id="org.tizen.nativecore.target.sbi.gnu.builder.138136440" 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.1936879157" name="Archiver" superClass="org.tizen.nativecore.tool.sbi.gnu.archiver"/>
+ <tool command="clang++" id="org.tizen.nativecore.tool.sbi.gnu.cpp.compiler.292305366" name="C++ Compiler" superClass="org.tizen.nativecore.tool.sbi.gnu.cpp.compiler">
+ <option id="gnu.cpp.compiler.option.optimization.level.718904526" 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.1739570295" name="Debug level" superClass="sbi.gnu.cpp.compiler.option.debugging.level.core" valueType="enumerated"/>
+ <option id="sbi.gnu.cpp.compiler.option.58477453" superClass="sbi.gnu.cpp.compiler.option" valueType="userObjs">
+ <listOptionValue builtIn="false" value="mobile-3.0-emulator.core_llvm36.i386.core.app"/>
+ </option>
+ <option id="sbi.gnu.cpp.compiler.option.frameworks_inc.core.1969714677" 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/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""/>
+ </option>
+ <option id="sbi.gnu.cpp.compiler.option.frameworks_cflags.core.324464205" 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.1038456025" 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.965267175" 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.290351576" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
+ </tool>
+ <tool command="clang" id="org.tizen.nativecore.tool.sbi.gnu.c.compiler.1563198852" 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.189448296" 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.648795018" name="Debug level" superClass="sbi.gnu.c.compiler.option.debugging.level.core" valueType="enumerated"/>
+ <option id="sbi.gnu.c.compiler.option.494933879" superClass="sbi.gnu.c.compiler.option" valueType="userObjs">
+ <listOptionValue builtIn="false" value="mobile-3.0-emulator.core_llvm36.i386.core.app"/>
+ </option>
+ <option id="sbi.gnu.c.compiler.option.frameworks_inc.core.287283156" 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/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""/>
+ </option>
+ <option id="sbi.gnu.c.compiler.option.frameworks_cflags.core.1715586697" 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.320532325" 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.1372377080" 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.1760489128" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
+ </tool>
+ <tool id="org.tizen.nativeide.tool.sbi.gnu.c.linker.base.1459823291" 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.120444540" name="C++ Linker" superClass="org.tizen.nativecore.tool.sbi.gnu.cpp.linker">
+ <option id="sbi.gnu.cpp.linker.option.frameworks_lflags.core.805656532" 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.647019302" 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.734815651" 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.1675579114" name="Assembler" superClass="org.tizen.nativeapp.tool.sbi.gnu.assembler.base">
+ <inputType id="cdt.managedbuild.tool.gnu.assembler.input.177337591" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
+ </tool>
+ <tool id="org.tizen.nativecore.tool.fnmapgen.1711931266" name="C FN-Map Generator" superClass="org.tizen.nativecore.tool.fnmapgen"/>
+ <tool id="org.tizen.nativecore.tool.fnmapgen.cpp.70214193" name="C++ FN-Map Generator" superClass="org.tizen.nativecore.tool.fnmapgen.cpp"/>
+ <tool id="org.tizen.nativecore.tool.ast.1417812274" name="C Static Analyzer" superClass="org.tizen.nativecore.tool.ast"/>
+ <tool id="org.tizen.nativecore.tool.ast.cpp.1356133334" name="C++ Static Analyzer" superClass="org.tizen.nativecore.tool.ast.cpp"/>
+ <tool id="org.tizen.nativecore.tool.sbi.gnu.archiver.mergelib.855070678" name="Archive Generator" superClass="org.tizen.nativecore.tool.sbi.gnu.archiver.mergelib"/>
+ <tool id="org.tizen.nativecore.tool.sbi.po.compiler.1675805489" name="PO Resource Compiler" superClass="org.tizen.nativecore.tool.sbi.po.compiler"/>
+ <tool id="org.tizen.nativecore.tool.sbi.edc.compiler.1755586339" name="EDC Resource Compiler" superClass="org.tizen.nativecore.tool.sbi.edc.compiler"/>
+ </toolChain>
+ </folderInfo>
+ <sourceEntries>
+ <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="inc"/>
+ <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="res"/>
+ <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="shared"/>
+ <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="src"/>
+ </sourceEntries>
+ </configuration>
+ </storageModule>
+ <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+ </cconfiguration>
+ </storageModule>
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">
+ <project id="operationpickviewapp.org.tizen.nativecore.target.sbi.gcc45.app.1439825072" 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.1103449040">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="org.tizen.nativecore.config.sbi.gcc45.app.release.987656676">
+ <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="/operationpickviewapp"/>
+ </configuration>
+ <configuration configurationName="Debug">
+ <resource resourceType="PROJECT" workspacePath="/operationpickviewapp"/>
+ </configuration>
+ </storageModule>
+</cproject>
--- /dev/null
+{
+ global: main;
+ local: *;
+};
--- /dev/null
+/SA_Report
+/Debug
+/.sign
--- /dev/null
+TPK
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>operationpickviewapp</name>
+ <comment></comment>
+ <projects>
+ </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>
+</projectDescription>
--- /dev/null
+#delete
+#add
+#modify
+author-signature.xml
+signature1.xml
+tizen-manifest.xml
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<tproject xmlns="http://www.tizen.org/tproject">
+ <platforms>
+ <platform>
+ <name>mobile-3.0</name>
+ </platform>
+ </platforms>
+ <package>
+ <blacklist/>
+ <resFallback autoGen="true"/>
+ </package>
+</tproject>
--- /dev/null
+/*******************************************************************************
+ * Copyright (c) 2014 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *******************************************************************************/
+
+/**
+ * @file filemanager-utils.h
+ * @brief This file provide basic filemanager utils.
+ * @since_tizen 2.4
+ * @author A. B. M. Nazibullah (nazib.ullah@samsung.com)
+ * @date February, 2016
+ * @bug
+ * @credit FileManager sample app
+ */
+
+#ifndef __FILEMANAGER_UTIL_H__
+#define __FILEMANAGER_UTIL_H__
+
+#include <storage.h>
+#include <Eina.h>
+#include <regex.h>
+#include <dirent.h>
+#include <system_info.h>
+#include <app.h>
+#include <Elementary.h>
+#include <system_settings.h>
+#include <efl_extension.h>
+#include "logger.h"
+
+#define FM_NAME_PATTERN "[\\:*\"&<>'/]"
+
+typedef enum {
+ FILE_TYPE_NONE = 0,
+ FILE_TYPE_DIR, /**< Folder category */
+ FILE_TYPE_FILE, /**< File category */
+ FILE_TYPE_IMAGE, /**< Image category */
+ FILE_TYPE_VIDEO, /**< Video category */
+ FILE_TYPE_MUSIC, /**< Music category */
+ FILE_TYPE_SOUND, /**< Sound category */
+ FILE_TYPE_PDF, /**< Pdf category */
+ FILE_TYPE_DOC, /**< Word category */
+ FILE_TYPE_PPT, /**< Powerpoint category */
+ FILE_TYPE_EXCEL, /**< Excel category */
+ FILE_TYPE_VOICE, /**< Voice category */
+ FILE_TYPE_HTML, /**< Html category */
+ FILE_TYPE_FLASH, /**< Flash category */
+ FILE_TYPE_GAME, /**< Game category */
+ FILE_TYPE_APP, /**< Application category */
+ FILE_TYPE_THEME, /**< Theme category */
+ FILE_TYPE_TXT, /**< Txt category */
+ FILE_TYPE_VCONTACT, /**< Vcontact category */
+ FILE_TYPE_VCALENDAR, /**< Vcalendar category */
+ FILE_TYPE_VNOTE, /**< Vnote category */
+ FILE_TYPE_VBOOKMARK, /**< Vbookmark category */
+ FILE_TYPE_VIDEO_PROJECT, /**< Video editor project category */
+ FILE_TYPE_RADIO_RECORDED, /**< radio recorded clips category */
+ FILE_TYPE_MOVIE_MAKER, /**< Movie maker project category */
+ FILE_TYPE_SVG, /**< Svg category */
+ FILE_TYPE_RSS, /**< Rss reader file, *.opml */
+ FILE_TYPE_CERTIFICATION, /**< certification file, *.pem */
+ FILE_TYPE_JAVA, /**< java file, *.jad, *.jar */
+ FILE_TYPE_WGT, /**< wrt , *.wgt, *.wgt */
+ FILE_TYPE_DRM, /**< drm file , *.dcf */
+ FILE_TYPE_ETC, /**< Other files category */
+ FILE_TYPE_MAX
+} file_type;
+
+typedef struct _file_type_by_ext {
+ const char *ext;
+ file_type ftype;
+} file_type_by_ext;
+
+
+static file_type_by_ext FILE_TYPE_BY_EXT[] = {
+ {"3G2", FILE_TYPE_VIDEO},
+ {"3GP", FILE_TYPE_VIDEO},
+ {"3GPP", FILE_TYPE_VIDEO},
+ {"AAC", FILE_TYPE_MUSIC},
+ {"AMR", FILE_TYPE_VOICE},
+ {"ASF", FILE_TYPE_VIDEO},
+ {"AVI", FILE_TYPE_VIDEO},
+ {"AWB", FILE_TYPE_VOICE},
+ {"BMP", FILE_TYPE_IMAGE},
+ {"DCF", FILE_TYPE_DRM},
+ {"DIVX", FILE_TYPE_VIDEO},
+ {"DOC", FILE_TYPE_DOC},
+ {"DOCX", FILE_TYPE_DOC},
+ {"G72", FILE_TYPE_MUSIC},
+ {"GIF", FILE_TYPE_IMAGE},
+ {"H263", FILE_TYPE_VIDEO},
+ {"HTM", FILE_TYPE_HTML},
+ {"HTML", FILE_TYPE_HTML},
+ {"IMY", FILE_TYPE_SOUND},
+ {"IPK", FILE_TYPE_APP},
+ {"JAD", FILE_TYPE_JAVA},
+ {"JAR", FILE_TYPE_JAVA},
+ {"JPE", FILE_TYPE_IMAGE},
+ {"JPEG", FILE_TYPE_IMAGE},
+ {"JPG", FILE_TYPE_IMAGE},
+ {"M3G", FILE_TYPE_FLASH},
+ {"M4A", FILE_TYPE_MUSIC},
+ {"MID", FILE_TYPE_SOUND},
+ {"MIDI", FILE_TYPE_SOUND},
+ {"MKA", FILE_TYPE_MUSIC},
+ {"MKV", FILE_TYPE_VIDEO},
+ {"MMF", FILE_TYPE_SOUND},
+ {"MP3", FILE_TYPE_MUSIC},
+ {"MP4", FILE_TYPE_VIDEO},
+ {"MPEG", FILE_TYPE_VIDEO},
+ {"MPG", FILE_TYPE_VIDEO},
+ {"MXMF", FILE_TYPE_SOUND},
+ {"OPML", FILE_TYPE_RSS},
+ {"PDF", FILE_TYPE_PDF},
+ {"PEM", FILE_TYPE_CERTIFICATION},
+ {"PJPEG", FILE_TYPE_IMAGE},
+ {"PNG", FILE_TYPE_IMAGE},
+ {"PPT", FILE_TYPE_PPT},
+ {"PPTX", FILE_TYPE_PPT},
+ {"SCN", FILE_TYPE_MOVIE_MAKER},
+ {"SDP", FILE_TYPE_VIDEO},
+ {"SMP", FILE_TYPE_SOUND},
+ {"SPF", FILE_TYPE_SOUND},
+ {"SPM", FILE_TYPE_SOUND},
+ {"SVG", FILE_TYPE_SVG},
+ {"SVGZ", FILE_TYPE_SVG},
+ {"SWF", FILE_TYPE_FLASH},
+ {"THM", FILE_TYPE_THEME},
+ {"TXT", FILE_TYPE_TXT},
+ {"VBM", FILE_TYPE_VBOOKMARK},
+ {"VCF", FILE_TYPE_VCONTACT},
+ {"VCS", FILE_TYPE_VCALENDAR},
+ {"VNT", FILE_TYPE_VNOTE},
+ {"WAV", FILE_TYPE_SOUND},
+ {"WBMP", FILE_TYPE_IMAGE},
+ {"WGT", FILE_TYPE_WGT},
+ {"WMA", FILE_TYPE_MUSIC},
+ {"WMV", FILE_TYPE_VIDEO},
+ {"XHTML", FILE_TYPE_HTML},
+ {"XLS", FILE_TYPE_EXCEL},
+ {"XLSX", FILE_TYPE_EXCEL},
+ {"XMF", FILE_TYPE_SOUND}
+};
+
+
+
+enum {
+ FILE_TYPE_BY_EXT_ITEM_SIZE = sizeof(file_type_by_ext),
+ FILE_TYPE_BY_EXT_LENGTH = sizeof(FILE_TYPE_BY_EXT) / FILE_TYPE_BY_EXT_ITEM_SIZE,
+ MAX_EXT_LENGTH = 8
+};
+
+typedef struct _filemanager_data{
+ file_type type;
+
+}filemanager_data_s;
+
+int filemanager_utils_file_type_by_ext_compare(const void *key, const void *elem);
+void filemanager_utils_get_file_category(const char *filepath, file_type *category);
+file_type filemanager_utils_get_category_by_file_ext(const char *file_ext, const char *fullpath);
+Eina_Bool filemanager_utils_is_file_exists(const char *filepath);
+const char *filemanager_util_get_filename(const char *path);
+void filemanager_utils_get_file_list_of_type(const char *dir_path, Eina_List **file_list,file_type file_type, void* data);
+
+#endif
--- /dev/null
+/*******************************************************************************
+ * Copyright (c) 2014 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *******************************************************************************/
+
+/**
+ * @file logger.h
+ * @brief This file provide necessary macro for logging information.
+ * @since_tizen 2.3
+ * @author Amlan Chowdhury (amlan.c@samsung.com)
+ * @date October, 2014
+ * @bug
+ * @credit
+ */
+#ifndef __LOGGER_H__
+#define __LOGGER_H__
+
+#include <dlog.h>
+
+#define LOG_TAG_CORE "[OPERATION_PICK_VIEW]_"
+
+#define DLOG(prio, fmt, arg...) dlog_print(prio, LOG_TAG_CORE, "%s (Line: %d) > " fmt, __func__, __LINE__, ##arg)
+#define DBG(fmt, arg...) DLOG(DLOG_DEBUG, fmt, ##arg)
+#define ERR(fmt, arg...) DLOG(DLOG_ERROR, fmt, ##arg)
+
+#define RETM_IF(expr, fmt, arg...) \
+{ \
+ if (expr) \
+ { \
+ ERR(fmt, ##arg); \
+ return; \
+ } \
+}
+
+#define RETVM_IF(expr, val, fmt, arg...) \
+{ \
+ if (expr) \
+ { \
+ ERR(fmt, ##arg); \
+ return (val); \
+ } \
+}
+
+#define SAFE_DELETE(a) if( (a) != NULL ) free (a); (a) = NULL;
+
+#endif /* __LOGGER_H__ */
--- /dev/null
+/*******************************************************************************
+ * Copyright (c) 2014 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *******************************************************************************/
+
+/**
+ * @file operationviewpickapp.h
+ * @brief
+ * @since_tizen 2.4
+ * @author A. B. M. Nazibullah (nazib.ullah@samsung.com)
+ * @date january, 2016
+ * @bug
+ * @credit
+ **/
+
+
+#ifndef __operationpickviewapp_H__
+#define __operationpickviewapp_H__
+
+#include <app.h>
+#include <Elementary.h>
+#include <system_settings.h>
+#include <efl_extension.h>
+#include <dlog.h>
+#include <EWebKit.h>
+#include <app_manager.h>
+
+#ifdef LOG_TAG
+#undef LOG_TAG
+#endif
+#define LOG_TAG "operationpickviewapp"
+
+#if !defined(PACKAGE)
+#define PACKAGE "org.tizen.operationpickviewapp"
+#endif
+
+#define EDJ_FILE "edje/operationpickviewapp.edj"
+#define GRP_MAIN "main"
+
+
+#endif /* __operationpickviewapp_H__ */
--- /dev/null
+/*******************************************************************************
+ * Copyright (c) 2014 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *******************************************************************************/
+
+/**
+ * @file soundplayer-utils.h
+ * @brief This file provide basic video sound utils.
+ * @since_tizen 2.4
+ * @author A. B. M. Nazibullah (nazib.ullah@samsung.com)
+ * @date February, 2016
+ * @bug
+ * @credit
+ */
+
+
+#ifndef __SOUNDPLAYER_UTIL_H__
+#define __SOUNDPLAYER_UTIL_H__
+
+#include <player.h>
+#include "logger.h"
+
+
+typedef struct _soundplayer_data
+{
+ player_h player;
+ char* uri;
+
+}soundplayer_data_s;
+
+
+void start_sound_player(soundplayer_data_s *this);
+void destroy_sound_player(soundplayer_data_s *this);
+player_h create_sound_player(soundplayer_data_s *this);
+
+#endif
+
+
--- /dev/null
+/*******************************************************************************
+ * Copyright (c) 2014 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *******************************************************************************/
+
+/**
+ * @file ui-utils.h
+ * @brief This file provide basic ui utils.
+ * @since_tizen 2.4
+ * @author A. B. M. Nazibullah (nazib.ullah@samsung.com)
+ * @date january, 2016
+ * @bug
+ * @credit
+ */
+#ifndef __UI_UTILS_H__
+#define __UI_UTILS_H__
+
+#include "logger.h"
+#include <Evas.h>
+#include <efl_extension.h>
+#include <stdbool.h>
+
+Evas_Object *ui_utils_create_image(Evas_Object *parent, const char *file_path);
+
+#endif /* __UI_UTILS_H__ */
--- /dev/null
+/*******************************************************************************
+ * Copyright (c) 2014 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *******************************************************************************/
+
+/**
+ * @file videoplayer-utils.h
+ * @brief This file provide basic video player utils.
+ * @since_tizen 2.4
+ * @author A. B. M. Nazibullah (nazib.ullah@samsung.com)
+ * @date February, 2016
+ * @bug
+ * @credit
+ */
+
+#ifndef __VIDEOPLAYER_UTILS_H__
+#define __VIDEOPLAYER_UTILS_H__
+
+#include <player.h>
+#include "operationpickviewapp.h"
+#include "logger.h"
+
+typedef struct _videoplayer_data{
+ Evas_Object* video_rect;
+ player_h player;
+ char* uri;
+}videoplayer_data_s;
+
+
+
+void start_player(videoplayer_data_s *this);
+void destroy_player(videoplayer_data_s *this);
+player_h create_player(videoplayer_data_s *this);
+char* get_video_player_error(player_error_e error_state);
+
+#endif
--- /dev/null
+APPNAME = operationpickviewapp
+
+type = app
+profile = mobile-2.4
+
+USER_SRCS = src/operationpickviewapp.c
+USER_DEFS =
+USER_INC_DIRS = inc
+USER_OBJS =
+USER_LIBS =
+USER_EDCS = res/edje/operationpickviewapp.edc
--- /dev/null
+collections {
+ group { name: "main";
+ parts {
+ part { name: "data_view";
+ type: SWALLOW;
+ description{
+ state: "default" 0.0;
+ align: 0.0 0.0;
+ visible: 1;
+ rel1 {
+ relative: 0.0 0.0;
+ }
+ rel2 {
+ relative: 1.0 0.68;
+ }
+ }
+
+ }
+ }
+ }
+}
--- /dev/null
+/*******************************************************************************
+ * Copyright (c) 2014 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *******************************************************************************/
+
+/**
+ * @file filemanager-utils.c
+ * @brief This file is implementation of filemanager-utils.h
+ * @since_tizen 2.4
+ * @author A. B. M. Nazibullah (nazib.ullah@samsung.com)
+ * @date February, 2016
+ * @bug
+ * @credit FileManager sample app
+ */
+
+#include "filemanager-util.h"
+
+int filemanager_utils_file_type_by_ext_compare(const void *key, const void *elem)
+{
+ return strcmp((const char *)key, ((const file_type_by_ext *)elem)->ext);
+}
+
+void filemanager_utils_get_file_category(const char *filepath, file_type *category)
+{
+ if (filemanager_utils_is_file_exists(filepath)) {
+ *category = FILE_TYPE_DIR;
+ return;
+ }
+
+ const char *filename = filemanager_util_get_filename(filepath);
+ if (!filename) {
+ *category = FILE_TYPE_NONE;
+ return;
+ }
+
+ const char *ext = strrchr(filename, '.');
+ if ((ext) && (ext != filename) && (strlen(ext) != 1)) {
+ *category = filemanager_utils_get_category_by_file_ext(ext + 1, filepath);
+ return;
+ }
+
+ *category = FILE_TYPE_NONE;
+ return;
+
+}
+
+file_type filemanager_utils_get_category_by_file_ext(const char *file_ext, const char *fullpath)
+{
+ file_type result = FILE_TYPE_ETC;
+
+ if (file_ext) {
+ char ext_upper[MAX_EXT_LENGTH + 1];
+ int i = 0;
+
+ {
+ const int skip = (file_ext[0] == '.') ? 1 : 0;
+ while ((file_ext[i + skip] != '\0') && (i < MAX_EXT_LENGTH)) {
+ ext_upper[i] = toupper(file_ext[i + skip]);
+ ++i;
+ }
+ ext_upper[i] = '\0';
+ }
+
+ if (i > 0) {
+ file_type_by_ext *const item = bsearch(ext_upper,
+ FILE_TYPE_BY_EXT,
+ FILE_TYPE_BY_EXT_LENGTH,
+ FILE_TYPE_BY_EXT_ITEM_SIZE,
+ filemanager_utils_file_type_by_ext_compare);
+
+ if (item) {
+ result = item->ftype;
+ }
+ }
+ }
+ return result;
+}
+
+Eina_Bool filemanager_utils_is_file_exists(const char *filepath)
+{
+ struct stat st;
+
+ if ((stat(filepath, &st) < 0) && (strcmp(filepath, "/"))) {
+ return EINA_FALSE;
+ }
+
+ return EINA_TRUE;
+}
+
+
+const char *filemanager_util_get_filename(const char *path)
+{
+ char *result = NULL;
+
+ if (!path) {
+ return NULL;
+ }
+ if ((result = strrchr(path, '/'))) {
+ result++;
+ } else {
+ result = (char *)path;
+ }
+
+ return result;
+}
+
+
+void filemanager_utils_get_file_list_of_type(const char *dir_path, Eina_List **file_list,file_type file_type, void* data)
+{
+ filemanager_data_s *ad =(filemanager_data_s*) data;
+
+ DIR *d;
+ struct dirent *dir;
+
+ d = opendir(dir_path);
+ //DBG("dir_path: %s",dir_path);
+ if (d) {
+ while ((dir = readdir(d)) != NULL) {
+ //DBG("FILES: %s",dir->d_name);
+ if ((strcmp(dir->d_name, ".")) && (strcmp(dir->d_name, ".."))) {
+
+ filemanager_utils_get_file_category(dir->d_name, &(ad->type));
+ if(file_type!=NULL){
+ if(ad->type == file_type){
+ //DBG("FILES: %s",dir->d_name);
+ *file_list = eina_list_append(*file_list, dir->d_name);
+ }
+ }
+ else if(ad->type == FILE_TYPE_IMAGE || ad->type == FILE_TYPE_MUSIC || ad->type == FILE_TYPE_VIDEO){
+ *file_list = eina_list_append(*file_list, dir->d_name);
+ }
+
+ }
+ }
+
+ closedir(d);
+ }
+
+
+}
--- /dev/null
+/*******************************************************************************
+ * Copyright (c) 2014 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *******************************************************************************/
+
+/**
+ * @file operationviewpickapp.c
+ * @brief This file is provides the main functionalaties of operation view pick app
+ * @since_tizen 2.4
+ * @author A. B. M. Nazibullah (nazib.ullah@samsung.com)
+ * @date january, 2016
+ * @bug
+ * @credit
+ **/
+
+
+
+#include "operationpickviewapp.h"
+#include "ui-utils.h"
+#include <service_adaptor_client.h>
+#include "filemanager-util.h"
+#include "videoplayer-util.h"
+#include "soundplayer-util.h"
+
+
+#define SAFE_DELETE(a) if( (a) != NULL ) free (a); (a) = NULL;
+
+
+typedef struct appdata{
+ Evas_Object* win;
+ Evas_Object* layout;
+ Evas_Object* conform;
+
+ char* category;
+ char* mime;
+ char* uri;
+ app_control_h app_control;
+
+ Evas_Object* video_rect;
+ player_h player;
+
+ file_type type;
+ char* file_name;
+
+ Evas_Object* files_list;
+
+ videoplayer_data_s* video_player_data;
+ soundplayer_data_s* sound_player_data;
+
+
+} appdata_s;
+
+static int _supportedStorageID;
+static app_control_h _control;
+
+static Elm_Genlist_Item_Class *_itc = NULL;
+
+
+static void show_image(void* data);
+static void show_video(void* data);
+static void show_audio(void* data);
+static void show_url(void* data);
+
+static char* get_app_control_error(int ret);
+static void list_item_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+static char * _item_label_get(void *data, Evas_Object *obj, const char *part);
+
+Eina_List* get_image_dir_image_file_list(void* data);
+Eina_List* get_audio_dir_audio_file_list(void* data);
+Eina_List* get_video_dir_video_file_list(void* data);
+
+Eina_List* get_all_dir_file_list(void* data);
+
+
+
+static bool _storage_device_supported_cb(int storage_id, storage_type_e type, storage_state_e state, const char *path, void *user_data)
+{
+ if(type == STORAGE_TYPE_INTERNAL)
+ {
+ // save storage id
+ _supportedStorageID=storage_id;
+ return false;
+ }
+ return true;
+}
+
+static inline const char *get_storage_image_dir_path()
+{
+ static char *absolute_path;
+ // lets set storage devices
+ storage_foreach_device_supported(_storage_device_supported_cb,NULL);
+ storage_get_directory(_supportedStorageID,STORAGE_DIRECTORY_IMAGES,&absolute_path);
+ DBG("Logging_Dir set = %s",absolute_path);
+
+ return strdup(absolute_path);
+}
+
+static inline const char *get_storage_audio_dir_path()
+{
+ static char *absolute_path;
+ // lets set storage devices
+ storage_foreach_device_supported(_storage_device_supported_cb,NULL);
+ storage_get_directory(_supportedStorageID,STORAGE_DIRECTORY_SOUNDS,&absolute_path);
+ DBG("Logging_Dir set = %s",absolute_path);
+
+ return strdup(absolute_path);
+}
+
+static inline const char *get_storage_video_dir_path()
+{
+ static char *absolute_path;
+ // lets set storage devices
+ storage_foreach_device_supported(_storage_device_supported_cb,NULL);
+ storage_get_directory(_supportedStorageID,STORAGE_DIRECTORY_VIDEOS,&absolute_path);
+ DBG("Logging_Dir set = %s",absolute_path);
+
+ return strdup(absolute_path);
+}
+
+static void win_delete_request_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ ui_app_exit();
+}
+
+static void layout_back_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ appdata_s *ad = data;
+ /* Let window go to hide state. */
+ if(!strcmp(ad->mime, "video/3gpp") ||
+ !strcmp(ad->mime, "video/mp4"))
+ {
+ destroy_player(ad->video_player_data);
+ }
+ else if(!strcmp(ad->mime, "audio/mp3") ||
+ !strcmp(ad->mime, "audio/aac") ||
+ !strcmp(ad->mime, "audio/amr") ||
+ !strcmp(ad->mime, "audio/wav"))
+ {
+ destroy_sound_player(ad->sound_player_data);
+ }
+ elm_win_lower(ad->win);
+}
+
+static void app_get_resource(const char *edj_file_in, char *edj_path_out, int edj_path_max)
+{
+ char *res_path = app_get_resource_path();
+ if (res_path) {
+ snprintf(edj_path_out, edj_path_max, "%s%s", res_path, edj_file_in);
+ free(res_path);
+ }
+}
+
+static void create_base_gui(appdata_s *ad)
+{
+ char edj_path[PATH_MAX] = {0, };
+
+ /* Window */
+ /* Create and initialize elm_win.
+ elm_win is mandatory to manipulate window. */
+ ad->win = elm_win_util_standard_add(PACKAGE, PACKAGE);
+ elm_win_conformant_set(ad->win, EINA_TRUE);
+ elm_win_autodel_set(ad->win, EINA_TRUE);
+
+ if (elm_win_wm_rotation_supported_get(ad->win)) {
+ int rots[4] = { 0, 90, 180, 270 };
+ elm_win_wm_rotation_available_rotations_set(ad->win, (const int *)(&rots), 4);
+ }
+
+ evas_object_smart_callback_add(ad->win, "delete,request", win_delete_request_cb, NULL);
+
+ /* Conformant */
+ /* Create and initialize elm_conformant.
+ elm_conformant is mandatory for base gui to have proper size
+ when indicator or virtual keypad is visible. */
+ ad->conform = elm_conformant_add(ad->win);
+ elm_win_indicator_mode_set(ad->win, ELM_WIN_INDICATOR_SHOW);
+ elm_win_indicator_opacity_set(ad->win, ELM_WIN_INDICATOR_OPAQUE);
+ evas_object_size_hint_weight_set(ad->conform, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ elm_win_resize_object_add(ad->win, ad->conform);
+ evas_object_show(ad->conform);
+
+ /* Base Layout */
+ /* Create an actual view of the base gui.
+ Modify this part to change the view. */
+ app_get_resource(EDJ_FILE, edj_path, (int)PATH_MAX);
+ ad->layout = elm_layout_add(ad->win);
+ elm_layout_file_set(ad->layout, edj_path, GRP_MAIN);
+ evas_object_size_hint_weight_set(ad->layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ eext_object_event_callback_add(ad->layout, EEXT_CALLBACK_BACK, layout_back_cb, ad);
+ elm_object_content_set(ad->conform, ad->layout);
+
+ /* Show window after base gui is set up */
+ evas_object_show(ad->win);
+
+}
+
+static bool app_create(void *data)
+{
+ /* Hook to take necessary actions before main event loop starts
+ Initialize UI resources and application's data
+ If this function returns true, the main loop of application starts
+ If this function returns false, the application is terminated */
+ appdata_s *ad = data;
+
+ create_base_gui(ad);
+
+ return true;
+}
+static void gl_del_cb(void *data, Evas_Object *obj EINA_UNUSED);
+static void app_control(app_control_h app_control, void *data)
+{
+ /* Handle the launch request. */
+ int result;
+ appdata_s *ad = data;
+
+ ad->category = NULL;
+ ad->mime = NULL;
+ ad->uri = NULL;
+ ad->app_control = app_control;
+
+ result = app_control_get_operation(app_control,&ad->category);
+
+ if(!ad->category)
+ {
+ ERR("category is Null");
+ return;
+ }
+ else if(strcmp(ad->category,APP_CONTROL_OPERATION_VIEW)==0)
+ {
+ DBG("Operation View");
+ app_control_get_mime(app_control, &ad->mime);
+ DBG("mime : %s", ad->mime);
+ if(ad->mime == NULL)
+ {
+ return;
+ }
+ else
+ {
+ app_control_get_uri(app_control, &ad->uri);
+ DBG("uri : %s", ad->uri);
+
+ if(!strcmp(ad->mime, "image/jpeg") ||
+ !strcmp(ad->mime, "image/png") ||
+ !strcmp(ad->mime, "image/gif") ||
+ !strcmp(ad->mime, "image/bmp"))
+ {
+ if(ad->uri != NULL)
+ {
+ show_image(ad);
+ }
+ }
+
+ else if(!strcmp(ad->mime, "video/3gpp") ||
+ !strcmp(ad->mime, "video/mp4"))
+ {
+ if(ad->uri != NULL)
+ {
+ show_video(ad);
+ }
+ }
+ else if(!strcmp(ad->mime, "audio/mp3") ||
+ !strcmp(ad->mime, "audio/aac") ||
+ !strcmp(ad->mime, "audio/amr") ||
+ !strcmp(ad->mime, "audio/wav"))
+ {
+ if (ad->uri != NULL)
+ {
+ show_audio(ad);
+ }
+ }
+ }
+
+ }
+ else if(strcmp(ad->category,APP_CONTROL_OPERATION_DEFAULT)==0)
+ {
+ DBG("Operation Default");
+ }
+ else if(strcmp(ad->category,APP_CONTROL_OPERATION_PICK)==0)
+ {
+
+ int nStatus=app_control_clone (&_control, app_control);
+ DBG("app_control_clone=%s",get_app_control_error(nStatus));
+ if(!_control)
+ {
+ DBG("_control is Null");
+ }
+
+ if (!_itc)
+
+ {
+ _itc = elm_genlist_item_class_new();
+ _itc->item_style = "default";
+ _itc->func.text_get = _item_label_get;
+ _itc->func.content_get = NULL;
+ _itc->func.state_get = NULL;
+ _itc->func.del = gl_del_cb;
+
+ }
+
+
+ ad->files_list = elm_genlist_add(ad->layout);
+ elm_object_part_content_set(ad->layout, "data_view", ad->files_list);
+ evas_object_show(ad->files_list);
+
+ DBG("Operation pick");
+ app_control_get_mime(app_control, &ad->mime);
+ DBG("mime : %s", ad->mime);
+ if(ad->mime == NULL)
+ {
+ return;
+ }
+ else
+ {
+ app_control_get_uri(app_control, &ad->uri);
+ DBG("uri : %s", ad->uri);
+
+ Eina_List* file_list = NULL;
+
+ if(!strcmp(ad->mime, "image/*"))
+ {
+ file_list = get_image_dir_image_file_list(ad);
+ }
+ else if(!strcmp(ad->mime, "video/*"))
+ {
+ file_list = get_video_dir_video_file_list(ad);
+ }
+ else if(!strcmp(ad->mime, "audio/*"))
+ {
+ file_list = get_audio_dir_audio_file_list(ad);
+ }
+ else if(!strcmp(ad->mime, "*/*"))
+ {
+ file_list = get_all_dir_file_list(ad);
+ }
+
+ Eina_List *l;
+ void *list_data;
+
+ EINA_LIST_FOREACH(file_list, l, list_data)
+ {
+
+ //DBG("list_data%s", list_data);
+ elm_genlist_item_append(ad->files_list, _itc, strdup(list_data), NULL, ELM_GENLIST_ITEM_NONE, list_item_clicked_cb, strdup(list_data));
+
+ }
+// elm_genlist_item_append(ad->files_list, _itc, "amlan", NULL, ELM_GENLIST_ITEM_NONE, list_item_clicked_cb, NULL);
+// elm_genlist_item_class_free(_itc);
+
+
+
+ }
+ }
+}
+
+
+static void gl_del_cb(void *data, Evas_Object *obj EINA_UNUSED)
+{
+
+ DBG("gl_del_cb");
+
+}
+
+static char * _item_label_get(void *data, Evas_Object *obj, const char *part)
+{
+// appdata_s *ad = data;
+ DBG("_item_label_get %s %s", (char*)data, part);
+
+ char buf[256];
+ snprintf(buf, sizeof(buf), "%s", (char*)data);
+ return strdup(buf);
+
+}
+
+
+void list_item_clicked_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info)
+{
+ RETM_IF(NULL == data, "data is null");
+ const char *str_data = (char*) data;
+ DBG("list item clicked %s", str_data);
+
+
+
+ app_control_h reply;
+ int nStatus = app_control_create (&reply);
+ DBG("app_control_create=%s",get_app_control_error(nStatus));
+ if(!reply)
+ {
+ DBG("reply is Null");
+ }
+ // lets craete reply dta
+/* const Eina_List *items,*l;
+ Elm_Object_Item *list_it;
+
+ DBG("Getting List Items");
+ items = elm_list_selected_items_get(ad->list);
+ DBG("Got List Items");
+
+ EINA_LIST_FOREACH(items, l, list_it)
+ {
+ selectionCount++;
+ DBG("SELECTED %s",elm_object_item_text_get(list_it));
+ }
+
+ char countStr[32];
+ snprintf(countStr, sizeof(countStr), "%d",selectionCount);
+ nStatus = app_control_add_extra_data ( reply, "count", countStr);
+ DBG("app_control_add_extra_data=%s",get_app_control_error(nStatus));
+
+
+ char *values[selectionCount];
+ int now=0;
+
+
+ EINA_LIST_FOREACH(items, l, list_it)
+ {
+ values[now++]=(char*)elm_object_item_text_get(list_it);
+ }*/
+
+
+ nStatus = app_control_add_extra_data_array( reply, "filename", &str_data, 1);
+ DBG("app_control_add_extra_data=%s",get_app_control_error(nStatus));
+
+
+ // ************************************
+ //APP_CONTROL_RESULT_SUCCEEDED
+
+ app_control_result_e res=APP_CONTROL_RESULT_SUCCEEDED;
+ nStatus = app_control_reply_to_launch_request(reply,_control,res);
+ DBG("app_control_reply_to_launch_request=%s",get_app_control_error(nStatus));
+
+ ui_app_exit();
+
+
+}
+
+Eina_List* get_image_dir_image_file_list(void* data)
+{
+ DBG("get_image_dir_image_file_list");
+ appdata_s *ad =(appdata_s*) data;
+ Eina_List* file_list = NULL;
+ char *app_id;
+ char *shared_res_path;
+ app_control_get_caller (ad->app_control, &app_id);
+ //DBG("app_id%s", app_id);
+ app_manager_get_shared_resource_path(app_id, &shared_res_path);
+ //DBG("shared_path%s", shared_res_path);
+ //strcat(shared_res_path, "images/");
+ DBG("shared_res_path%s", shared_res_path);
+ filemanager_utils_get_file_list_of_type(shared_res_path,&file_list, FILE_TYPE_IMAGE, ad);
+ //filemanager_utils_get_file_list_of_type(get_storage_image_dir_path(),&file_list, FILE_TYPE_IMAGE, ad);
+ return file_list;
+}
+
+Eina_List* get_audio_dir_audio_file_list(void* data)
+{
+ DBG("get_audio_dir_audio_file_list");
+ appdata_s *ad =(appdata_s*) data;
+ Eina_List* file_list = NULL;
+ char *app_id;
+ char *shared_res_path;
+ app_control_get_caller (ad->app_control, &app_id);
+ //DBG("app_id%s", app_id);
+ app_manager_get_shared_resource_path(app_id, &shared_res_path);
+ //DBG("shared_path%s", shared_res_path);
+ //strcat(shared_res_path, "sounds/");
+ DBG("shared_res_path%s", shared_res_path);
+ filemanager_utils_get_file_list_of_type(shared_res_path,&file_list, FILE_TYPE_MUSIC, ad);
+ //filemanager_utils_get_file_list_of_type(get_storage_audio_dir_path(),&file_list, FILE_TYPE_MUSIC, ad);
+ return file_list;
+}
+
+Eina_List* get_all_dir_file_list(void* data)
+{
+ DBG("get_audio_dir_audio_file_list");
+ appdata_s *ad =(appdata_s*) data;
+ Eina_List* file_list = NULL;
+ char *app_id;
+ char *shared_res_path;
+ app_control_get_caller (ad->app_control, &app_id);
+ //DBG("app_id%s", app_id);
+ app_manager_get_shared_resource_path(app_id, &shared_res_path);
+ //DBG("shared_path%s", shared_res_path);
+ //strcat(shared_res_path, "sounds/");
+ DBG("shared_res_path%s", shared_res_path);
+ filemanager_utils_get_file_list_of_type(shared_res_path,&file_list, NULL, ad);
+ //filemanager_utils_get_file_list_of_type(get_storage_audio_dir_path(),&file_list, FILE_TYPE_MUSIC, ad);
+ return file_list;
+}
+
+Eina_List* get_video_dir_video_file_list(void* data)
+{
+ DBG("get_video_dir_video_file_list");
+ appdata_s *ad =(appdata_s*) data;
+ Eina_List* file_list = NULL;
+ char *app_id;
+ char *shared_res_path;
+ app_control_get_caller (ad->app_control, &app_id);
+ DBG("app_id%s", app_id);
+ app_manager_get_shared_resource_path(app_id, &shared_res_path);
+ DBG("shared_path%s", shared_res_path);
+ //strcat(shared_res_path, "video/");
+ DBG("shared_res_path%s", shared_res_path);
+ filemanager_utils_get_file_list_of_type(shared_res_path,&file_list, FILE_TYPE_VIDEO, ad);
+ //filemanager_utils_get_file_list_of_type(get_storage_video_dir_path(),&file_list, FILE_TYPE_VIDEO, ad);
+ return file_list;
+}
+
+
+
+static void
+app_pause(void *data)
+{
+ /* Take necessary actions when application becomes invisible. */
+}
+
+static void
+app_resume(void *data)
+{
+ /* Take necessary actions when application becomes visible. */
+}
+
+static void
+app_terminate(void *data)
+{
+ /* Release all resources. */
+}
+
+static void
+ui_app_lang_changed(app_event_info_h event_info, void *user_data)
+{
+ /*APP_EVENT_LANGUAGE_CHANGED*/
+ char *locale = NULL;
+ system_settings_get_value_string(SYSTEM_SETTINGS_KEY_LOCALE_LANGUAGE, &locale);
+ elm_language_set(locale);
+ free(locale);
+ return;
+}
+
+static void
+ui_app_orient_changed(app_event_info_h event_info, void *user_data)
+{
+ /*APP_EVENT_DEVICE_ORIENTATION_CHANGED*/
+ return;
+}
+
+static void
+ui_app_region_changed(app_event_info_h event_info, void *user_data)
+{
+ /*APP_EVENT_REGION_FORMAT_CHANGED*/
+}
+
+static void
+ui_app_low_battery(app_event_info_h event_info, void *user_data)
+{
+ /*APP_EVENT_LOW_BATTERY*/
+}
+
+static void
+ui_app_low_memory(app_event_info_h event_info, void *user_data)
+{
+ /*APP_EVENT_LOW_MEMORY*/
+}
+
+int
+main(int argc, char *argv[])
+{
+ appdata_s ad = {0,};
+ int ret = 0;
+
+ ui_app_lifecycle_callback_s event_callback = {0,};
+ app_event_handler_h handlers[5] = {NULL, };
+
+ event_callback.create = app_create;
+ event_callback.terminate = app_terminate;
+ event_callback.pause = app_pause;
+ event_callback.resume = app_resume;
+ event_callback.app_control = app_control;
+
+ ui_app_add_event_handler(&handlers[APP_EVENT_LOW_BATTERY], APP_EVENT_LOW_BATTERY, ui_app_low_battery, &ad);
+ ui_app_add_event_handler(&handlers[APP_EVENT_LOW_MEMORY], APP_EVENT_LOW_MEMORY, ui_app_low_memory, &ad);
+ ui_app_add_event_handler(&handlers[APP_EVENT_DEVICE_ORIENTATION_CHANGED], APP_EVENT_DEVICE_ORIENTATION_CHANGED, ui_app_orient_changed, &ad);
+ ui_app_add_event_handler(&handlers[APP_EVENT_LANGUAGE_CHANGED], APP_EVENT_LANGUAGE_CHANGED, ui_app_lang_changed, &ad);
+ ui_app_add_event_handler(&handlers[APP_EVENT_REGION_FORMAT_CHANGED], APP_EVENT_REGION_FORMAT_CHANGED, ui_app_region_changed, &ad);
+
+ ret = ui_app_main(argc, argv, &event_callback, &ad);
+ if (ret != APP_ERROR_NONE) {
+ dlog_print(DLOG_ERROR, LOG_TAG, "ui_app_main() is failed. err = %d", ret);
+ }
+
+ return ret;
+}
+
+static void show_image(void* data)
+{
+ appdata_s *this =(appdata_s*) data;
+
+ const char *file_path;
+ file_path = this->uri;
+ file_path += 7;
+
+ DBG("FILE: %s", file_path);
+
+ Evas_Object* image = ui_utils_create_image(this->layout, file_path);
+
+ if(EINA_TRUE == elm_image_animated_available_get(image))
+ {
+ elm_image_animated_set(image, EINA_TRUE);
+ elm_image_animated_play_set(image, EINA_TRUE);
+ }
+
+ elm_object_part_content_set(this->layout, "data_view", image);
+}
+
+static void show_video(void* data)
+{
+ DBG("show_video.....");
+ appdata_s *this = (appdata_s*) data;
+
+ Evas *evas = evas_object_evas_get(this->layout);
+ this->video_rect = evas_object_image_filled_add(evas);
+
+ evas_object_show(this->video_rect);
+ elm_object_part_content_set(this->layout, "data_view", this->video_rect);
+
+
+ this->video_player_data = (videoplayer_data_s*) malloc(sizeof(videoplayer_data_s));
+ this->video_player_data->video_rect = this->video_rect;
+ this->video_player_data->player = NULL;
+ this->video_player_data->uri = this->uri;
+
+ start_player(this->video_player_data);
+
+
+}
+
+static void show_audio(void* data)
+{
+ DBG("show_audio.....");
+ appdata_s *this = (appdata_s*) data;
+
+ this->sound_player_data = (soundplayer_data_s*) malloc(sizeof(soundplayer_data_s));
+ this->sound_player_data->uri = this->uri;
+
+ this->sound_player_data->player = create_sound_player(this->sound_player_data);
+ start_sound_player(this->sound_player_data);
+}
+
+static void show_url(void* data)
+{
+ DBG("show_url.....");
+ appdata_s *this = (appdata_s*) data;
+
+ Evas_Object *web_view = ewk_view_add (evas_object_evas_get(this->layout));
+
+ ewk_view_url_set(web_view, "http://www.google.com"); //TODO: this url will change according to data
+
+ evas_object_show(web_view);
+ elm_object_part_content_set(this->layout, "data_view", web_view);
+}
+
+
+static char* get_app_control_error(int ret)
+{
+ char* error = NULL;
+
+ switch (ret) {
+ case APP_CONTROL_ERROR_NONE:
+ error = "APP_CONTROL_ERROR_NONE";
+ break;
+ case APP_CONTROL_ERROR_INVALID_PARAMETER:
+ error = "APP_CONTROL_ERROR_INVALID_PARAMETER";
+ break;
+ case APP_CONTROL_ERROR_OUT_OF_MEMORY:
+ error = "APP_CONTROL_ERROR_OUT_OF_MEMORY";
+ break;
+ case APP_CONTROL_ERROR_APP_NOT_FOUND:
+ error = "APP_CONTROL_ERROR_APP_NOT_FOUND";
+ break;
+ case APP_CONTROL_ERROR_KEY_NOT_FOUND:
+ error = "APP_CONTROL_ERROR_KEY_NOT_FOUND";
+ break;
+ case APP_CONTROL_ERROR_KEY_REJECTED:
+ error = "APP_CONTROL_ERROR_KEY_REJECTED";
+ break;
+ case APP_CONTROL_ERROR_INVALID_DATA_TYPE:
+ error = "APP_CONTROL_ERROR_INVALID_DATA_TYPE";
+ break;
+ case APP_CONTROL_ERROR_LAUNCH_REJECTED:
+ error = "APP_CONTROL_ERROR_LAUNCH_REJECTED";
+ break;
+ case APP_CONTROL_ERROR_PERMISSION_DENIED:
+ error = "APP_CONTROL_ERROR_PERMISSION_DENIED";
+ break;
+ case APP_CONTROL_ERROR_LAUNCH_FAILED:
+ error = "APP_CONTROL_ERROR_LAUNCH_FAILED";
+ break;
+ case APP_CONTROL_ERROR_TIMED_OUT:
+ error = "APP_CONTROL_ERROR_TIMED_OUT";
+ break;
+ //case APP_CONTROL_ERROR_IO_ERROR:
+ //error = "APP_CONTROL_ERROR_IO_ERROR";
+ //break;
+ default:
+ error = "Unknown Error";
+ break;
+ }
+ return error;
+}
+
+
+
+
--- /dev/null
+/*******************************************************************************
+ * Copyright (c) 2014 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *******************************************************************************/
+
+/**
+ * @file soundplayer-utils.c
+ * @brief This file is implementation of soundplayer-utils.h
+ * @since_tizen 2.4
+ * @author A. B. M. Nazibullah (nazib.ullah@samsung.com)
+ * @date February, 2016
+ * @bug
+ * @credit
+ */
+
+
+
+#include "soundplayer-util.h"
+
+static char* get_player_error(int ret);
+
+void start_sound_player(soundplayer_data_s *this)
+{
+ int ret;
+ RETM_IF(NULL == this, "this is NULL");
+
+ if(!this->player)
+ {
+ this->player = create_sound_player(this);
+ }
+
+ if(this->player)
+ {
+ player_state_e state;
+ ret = player_get_state(this->player, &state);
+ RETM_IF(PLAYER_ERROR_NONE!=ret, "player_get_state failed:%s", get_player_error(ret));
+
+ if(state != PLAYER_STATE_PLAYING)
+ {
+ ret = player_set_display_visible(this->player, true);
+ RETM_IF(PLAYER_ERROR_NONE!=ret, "player_set_display_visible failed:%s", get_player_error(ret));
+ ret = player_start(this->player);
+ RETM_IF(PLAYER_ERROR_NONE!=ret, "player_start failed:%s", get_player_error(ret));
+
+ }
+ }
+}
+
+void destroy_sound_player(soundplayer_data_s *this)
+{
+ RETM_IF(NULL == this, "view is NULL");
+ int ret;
+ if(this->player)
+ {
+ ret = player_unset_interrupted_cb( this->player);
+ DBG("player_unset_interrupted_cb failed: %s", get_player_error(ret));
+ player_state_e state;
+ player_get_state(this->player, &state);
+ if(state != PLAYER_STATE_READY)
+ {
+ ret = player_stop(this->player);
+ RETM_IF(PLAYER_ERROR_NONE!=ret, "player_stop failed:%s", get_player_error(ret));
+ }
+ ret = player_unprepare(this->player);
+ RETM_IF(PLAYER_ERROR_NONE!=ret, "player_unprepare failed:%s", get_player_error(ret));
+ ret = player_destroy(this->player);
+ RETM_IF(PLAYER_ERROR_NONE!=ret, "player_destroy failed:%s", get_player_error(ret));
+ this->player = NULL;
+ }
+}
+
+
+player_h create_sound_player(soundplayer_data_s *this)
+{
+ RETVM_IF(NULL == this, NULL, "view is NULL");
+
+ player_h player = NULL;
+
+ int ret ;
+
+ ret = player_create(&player);
+ RETVM_IF(ret != PLAYER_ERROR_NONE, NULL, "player_create fail > Error = %s", get_player_error(ret));
+ RETVM_IF(player == NULL, NULL, "player_create fail");
+
+ ret = player_set_sound_type(player, SOUND_TYPE_MEDIA);
+ if(ret != PLAYER_ERROR_NONE)
+ {
+ DBG( "player_set_sound_type fail > Error = %s", get_player_error(ret));
+ }
+
+ ret = player_set_volume(player, 1.0, 1.0);
+ if(ret != PLAYER_ERROR_NONE)
+ {
+ DBG( "player_set_volume fail > Error = %s", get_player_error(ret));
+ }
+
+ ret = player_set_looping(player, true);
+ if(ret != PLAYER_ERROR_NONE)
+ {
+ DBG( "player_set_looping fail > Error = %s", get_player_error(ret));
+ }
+
+// ret = player_set_interrupted_cb(player, _player_interrupted_cb, this);
+// if(ret != PLAYER_ERROR_NONE)
+// {
+// DBG( "player_set_looping fail > Error = %s", get_player_error(ret));
+// }
+
+ // ret = player_set_uri(player, get_resource_path(this->view->tbt_info->file_name));
+
+
+ ret = player_set_uri(player, this->uri);
+ if(ret != PLAYER_ERROR_NONE)
+ {
+ DBG( "player_set_uri fail > Error = %s", get_player_error(ret));
+ }
+ ret = player_set_display_visible(player, true);
+ if(ret != PLAYER_ERROR_NONE)
+ {
+ DBG( "player_set_display_visible fail > Error = %s", get_player_error(ret));
+ }
+ ret = player_prepare(player);
+ if(ret != PLAYER_ERROR_NONE)
+ {
+ DBG( "player_prepare fail > Error = %s", get_player_error(ret));
+ }
+
+ return player;
+}
+
+static char* get_player_error(int ret)
+{
+ char* error;
+
+switch(ret)
+{
+ case PLAYER_ERROR_NONE:
+ error = "PLAYER_ERROR_NONE ";
+ break;
+ case PLAYER_ERROR_OUT_OF_MEMORY:
+ error = "PLAYER_ERROR_OUT_OF_MEMORY";
+ break;
+ case PLAYER_ERROR_INVALID_PARAMETER:
+ error = "PLAYER_ERROR_INVALID_PARAMETER";
+ break;
+ case PLAYER_ERROR_NO_SUCH_FILE:
+ error = "PLAYER_ERROR_NO_SUCH_FILE ";
+ break;
+ case PLAYER_ERROR_INVALID_OPERATION:
+ error = "PLAYER_ERROR_INVALID_OPERATION";
+ break;
+ case PLAYER_ERROR_FILE_NO_SPACE_ON_DEVICE:
+ error = "PLAYER_ERROR_FILE_NO_SPACE_ON_DEVICE ";
+ break;
+ case PLAYER_ERROR_FEATURE_NOT_SUPPORTED_ON_DEVICE:
+ error = "PLAYER_ERROR_FEATURE_NOT_SUPPORTED_ON_DEVICE ";
+ break;
+ case PLAYER_ERROR_SEEK_FAILED:
+ error = "PLAYER_ERROR_SEEK_FAILED ";
+ break;
+ case PLAYER_ERROR_INVALID_STATE:
+ error = "PLAYER_ERROR_INVALID_STATE";
+ break;
+ case PLAYER_ERROR_NOT_SUPPORTED_FILE:
+ error = "PLAYER_ERROR_NOT_SUPPORTED_FIL";
+ break;
+ case PLAYER_ERROR_INVALID_URI:
+ error = "PLAYER_ERROR_INVALID_URI ";
+ break;
+ case PLAYER_ERROR_SOUND_POLICY:
+ error = "PLAYER_ERROR_SOUND_POLICY ";
+ break;
+ case PLAYER_ERROR_CONNECTION_FAILED:
+ error = "PLAYER_ERROR_CONNECTION_FAILED";
+ break;
+ case PLAYER_ERROR_VIDEO_CAPTURE_FAILED:
+ error = "PLAYER_ERROR_VIDEO_CAPTURE_FAILED ";
+ break;
+ case PLAYER_ERROR_DRM_EXPIRED:
+ error = "PLAYER_ERROR_DRM_EXPIRED ";
+ break;
+ case PLAYER_ERROR_DRM_NO_LICENSE:
+ error = "PLAYER_ERROR_DRM_NO_LICENSE";
+ break;
+ case PLAYER_ERROR_DRM_FUTURE_USE:
+ error = "PLAYER_ERROR_DRM_FUTURE_USE";
+ break;
+ case PLAYER_ERROR_DRM_NOT_PERMITTED:
+ error = "PLAYER_ERROR_DRM_NOT_PERMITTED";
+ break;
+ case PLAYER_ERROR_RESOURCE_LIMIT:
+ error = "PLAYER_ERROR_RESOURCE_LIMIT ";
+ break;
+ case PLAYER_ERROR_PERMISSION_DENIED:
+ error = "PLAYER_ERROR_PERMISSION_DENIED";
+ break;
+ default:
+ error = "Unknown error";
+ }
+ return error;
+}
+
--- /dev/null
+/*******************************************************************************
+ * Copyright (c) 2014 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *******************************************************************************/
+
+/**
+ * @file ui-utils.c
+ * @brief This file is implementation of ui-utils.h.
+ * @since_tizen 2.4
+ * @author A. B. M. Nazibullah (nazib.ullah@samsung.com)
+ * @date january, 2016
+ * @bug
+ * @credit
+ **/
+
+#include "ui-utils.h"
+
+Evas_Object *ui_utils_create_image(Evas_Object *parent, const char *file_path)
+{
+ RETVM_IF(NULL == parent, NULL, "create_image parent is NULL");
+
+ Evas_Object *image = NULL;
+ image = elm_image_add(parent);
+ RETVM_IF(NULL == image, NULL, "elm_image_add is NULL");
+
+ bool result = (EINA_TRUE == elm_image_file_set(image, file_path, NULL));
+ if(!result)
+ {
+ ERR("error with elm_image_file_set, image name %s", file_path);
+ evas_object_del(image);
+ return NULL;
+ }
+
+ elm_image_no_scale_set(image, EINA_FALSE);
+ elm_image_resizable_set(image, EINA_TRUE, EINA_TRUE);
+ elm_image_smooth_set(image, EINA_FALSE);
+ elm_image_aspect_fixed_set(image, EINA_TRUE);
+ elm_image_editable_set(image, EINA_FALSE);
+ evas_object_show(image);
+
+ return image;
+}
--- /dev/null
+/*******************************************************************************
+ * Copyright (c) 2014 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *******************************************************************************/
+
+/**
+ * @file videoplayer-utils.c
+ * @brief This file is implementation of videoplayer-utils.h
+ * @since_tizen 2.4
+ * @author A. B. M. Nazibullah (nazib.ullah@samsung.com)
+ * @date February, 2016
+ * @bug
+ * @credit
+ */
+
+
+
+#include "videoplayer-util.h"
+
+
+player_h create_player(videoplayer_data_s* this)
+{
+ RETVM_IF(NULL == this, NULL, "view is NULL");
+
+ player_h player = NULL;
+ int result = player_create(&player);
+ if(result == PLAYER_ERROR_NONE)
+ {
+ result = player_set_sound_type(player, SOUND_TYPE_MEDIA);
+ RETVM_IF(result != PLAYER_ERROR_NONE, NULL, "player_set_sound_type fail > Error = %s", get_video_player_error(result));
+ result = player_set_volume(player, 1.0, 1.0);
+ RETVM_IF(result != PLAYER_ERROR_NONE, NULL, "player_set_volume fail > Error = %s", get_video_player_error(result));
+ result = player_set_looping(player, true);
+ RETVM_IF(result != PLAYER_ERROR_NONE, NULL, "player_set_looping fail > Error = %s", get_video_player_error(result));
+ result = player_set_uri(player, this->uri);
+ RETVM_IF(result != PLAYER_ERROR_NONE, NULL, "player_set_uri fail > Error = %s", get_video_player_error(result));
+
+ result = player_set_display(player, PLAYER_DISPLAY_TYPE_EVAS, GET_DISPLAY(this->video_rect));
+
+ RETVM_IF(result != PLAYER_ERROR_NONE, NULL, "player_set_display fail > Error = %s", get_video_player_error(result));
+ result = player_set_display_mode(player, PLAYER_DISPLAY_MODE_FULL_SCREEN);
+ RETVM_IF(result != PLAYER_ERROR_NONE, NULL, "player_set_display_mode fail > Error = %s", get_video_player_error(result));
+ result = player_set_display_visible(player, true);
+ RETVM_IF(result != PLAYER_ERROR_NONE, NULL, "player_set_display_visible fail > Error = %s", get_video_player_error(result));
+ result = player_prepare(player);
+ DBG("result is %d", result);
+ RETVM_IF(result != PLAYER_ERROR_NONE, NULL, "player_prepare fail > Error = %s", get_video_player_error(result));
+ }
+ else
+ {
+ ERR("player_pause fail > Error = %s", get_video_player_error(result));
+ }
+
+ return player;
+}
+
+void start_player(videoplayer_data_s *this)
+{
+ DBG("start_player.......");
+ RETM_IF(NULL == this, "this is NULL");
+ int result;
+ if(!this->player)
+ {
+ this->player = create_player(this);
+ }
+
+ if(this->player)
+ {
+ player_state_e state;
+ result = player_get_state(this->player, &state);
+ DBG( "player_get_state fail > Error = %s", get_video_player_error(result));
+ if(state != PLAYER_STATE_PLAYING)
+ {
+ result = player_set_display_visible(this->player, true);
+ RETM_IF(result != PLAYER_ERROR_NONE, "player_set_display_visible fail > Error = %s", get_video_player_error(result));
+ result = player_start(this->player);
+ RETM_IF(result != PLAYER_ERROR_NONE, "player_start fail > Error = %s", get_video_player_error(result));
+ }
+ }
+}
+
+char* get_video_player_error(player_error_e error_state)
+{
+
+switch(error_state)
+{
+ case PLAYER_ERROR_OUT_OF_MEMORY:
+ return "PLAYER_ERROR_OUT_OF_MEMORY";
+
+ case PLAYER_ERROR_INVALID_PARAMETER:
+ return "PLAYER_ERROR_INVALID_PARAMETER";
+
+ case PLAYER_ERROR_NO_SUCH_FILE:
+ return "PLAYER_ERROR_NO_SUCH_FILE";
+
+ case PLAYER_ERROR_FILE_NO_SPACE_ON_DEVICE:
+ return "PLAYER_ERROR_FILE_NO_SPACE_ON_DEVICE";
+
+ case PLAYER_ERROR_INVALID_OPERATION:
+ return "PLAYER_ERROR_INVALID_OPERATION";
+
+ case PLAYER_ERROR_FEATURE_NOT_SUPPORTED_ON_DEVICE:
+ return "PLAYER_ERROR_FEATURE_NOT_SUPPORTED_ON_DEVICE";
+
+ case PLAYER_ERROR_SEEK_FAILED:
+ return "PLAYER_ERROR_SEEK_FAILED";
+
+ case PLAYER_ERROR_INVALID_STATE:
+ return "PLAYER_ERROR_INVALID_STATE";
+
+ case PLAYER_ERROR_NOT_SUPPORTED_FILE:
+ return "PLAYER_ERROR_NOT_SUPPORTED_FILE";
+
+ case PLAYER_ERROR_INVALID_URI:
+ return "PLAYER_ERROR_INVALID_URI";
+
+ case PLAYER_ERROR_SOUND_POLICY:
+ return "PLAYER_ERROR_SOUND_POLICY";
+
+ case PLAYER_ERROR_CONNECTION_FAILED:
+ return "PLAYER_ERROR_CONNECTION_FAILED";
+
+ case PLAYER_ERROR_VIDEO_CAPTURE_FAILED:
+ return "PLAYER_ERROR_VIDEO_CAPTURE_FAILED";
+ case PLAYER_ERROR_DRM_EXPIRED:
+ return "PLAYER_ERROR_DRM_EXPIRED";
+ case PLAYER_ERROR_DRM_NO_LICENSE:
+ return "PLAYER_ERROR_DRM_NO_LICENSE";
+ case PLAYER_ERROR_DRM_FUTURE_USE:
+ return "PLAYER_ERROR_DRM_FUTURE_USE";
+ case PLAYER_ERROR_DRM_NOT_PERMITTED:
+ return "PLAYER_ERROR_DRM_NOT_PERMITTED";
+ case PLAYER_ERROR_RESOURCE_LIMIT:
+ return "PLAYER_ERROR_RESOURCE_LIMIT";
+ case PLAYER_ERROR_PERMISSION_DENIED:
+ return "PLAYER_ERROR_PERMISSION_DENIED";
+ default:
+ return "ERROR_NOT_FOUND";
+
+
+ }
+}
+
+void destroy_player(videoplayer_data_s *this)
+{
+ RETM_IF(NULL == this, "view is NULL");
+ int result;
+ if(this->player)
+ {
+ result = player_stop(this->player);
+ DBG( "player_stop fail > Error = %s", get_video_player_error(result));
+ result = player_unprepare(this->player);
+ DBG( "player_unprepare fail > Error = %s", get_video_player_error(result));
+ result = player_destroy(this->player);
+ DBG( "player_destroy fail > Error = %s", get_video_player_error(result));
+ this->player = NULL;
+ }
+}
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<manifest xmlns="http://tizen.org/ns/packages" api-version="3.0" package="org.tizen.operationpickviewapp" version="1.0.0">
+ <profile name="mobile"/>
+ <ui-application appid="org.tizen.operationpickviewapp" exec="operationpickviewapp" launch_mode="single" multiple="false" nodisplay="false" taskmanage="true" type="capp">
+ <label>operationpickviewapp</label>
+ <icon>operationpickviewapp.png</icon>
+ <app-control>
+ <operation name="http://tizen.org/appcontrol/operation/view"/>
+ <mime name="image/png"/>
+ </app-control>
+ <app-control>
+ <operation name="http://tizen.org/appcontrol/operation/view"/>
+ <mime name="image/jpeg (image/pjpeg)"/>
+ </app-control>
+ <app-control>
+ <operation name="http://tizen.org/appcontrol/operation/view"/>
+ <mime name="image/gif"/>
+ </app-control>
+ <app-control>
+ <operation name="http://tizen.org/appcontrol/operation/view"/>
+ <mime name="image/bmp (image/x-bmp)"/>
+ </app-control>
+ <app-control>
+ <operation name="http://tizen.org/appcontrol/operation/view"/>
+ <mime name="audio/mp3"/>
+ </app-control>
+ <app-control>
+ <operation name="http://tizen.org/appcontrol/operation/view"/>
+ <mime name="audio/aac"/>
+ </app-control>
+ <app-control>
+ <operation name="http://tizen.org/appcontrol/operation/view"/>
+ <mime name="audio/amr"/>
+ </app-control>
+ <app-control>
+ <operation name="http://tizen.org/appcontrol/operation/view"/>
+ <mime name="audio/wav"/>
+ </app-control>
+ <app-control>
+ <operation name="http://tizen.org/appcontrol/operation/view"/>
+ <mime name="video/3gpp"/>
+ </app-control>
+ <app-control>
+ <operation name="http://tizen.org/appcontrol/operation/view"/>
+ <mime name="video/mp4"/>
+ </app-control>
+ <app-control>
+ <operation name="http://tizen.org/appcontrol/operation/pick"/>
+ <mime name="image/png"/>
+ </app-control>
+ <app-control>
+ <operation name="http://tizen.org/appcontrol/operation/pick"/>
+ <mime name="image/jpeg (image/pjpeg)"/>
+ </app-control>
+ <app-control>
+ <operation name="http://tizen.org/appcontrol/operation/pick"/>
+ <mime name="image/gif"/>
+ </app-control>
+ <app-control>
+ <operation name="http://tizen.org/appcontrol/operation/pick"/>
+ <mime name="image/bmp (image/x-bmp)"/>
+ </app-control>
+ <app-control>
+ <operation name="http://tizen.org/appcontrol/operation/pick"/>
+ <mime name="audio/mp3"/>
+ </app-control>
+ <app-control>
+ <operation name="http://tizen.org/appcontrol/operation/pick"/>
+ <mime name="audio/aac"/>
+ </app-control>
+ <app-control>
+ <operation name="http://tizen.org/appcontrol/operation/pick"/>
+ <mime name="audio/amr"/>
+ </app-control>
+ <app-control>
+ <operation name="http://tizen.org/appcontrol/operation/pick"/>
+ <mime name="audio/wav"/>
+ </app-control>
+ <app-control>
+ <operation name="http://tizen.org/appcontrol/operation/pick"/>
+ <mime name="video/3gpp"/>
+ </app-control>
+ <app-control>
+ <operation name="http://tizen.org/appcontrol/operation/pick"/>
+ <mime name="video/mp4"/>
+ </app-control>
+ <app-control>
+ <operation name="http://tizen.org/appcontrol/operation/view"/>
+ <mime name="text/html"/>
+ </app-control>
+ </ui-application>
+ <privileges>
+ <privilege>http://tizen.org/privilege/mediastorage</privilege>
+ <privilege>http://tizen.org/privilege/appmanager.launch</privilege>
+ <privilege>http://tizen.org/privilege/externalstorage</privilege>
+ </privileges>
+</manifest>
sdb install org.tizen.coretbt_uiapp-0.0.1-1.armv7l.tpk
sdb install org.tizen.coretbtwidgetapp-0.0.1-1.armv7l.tpk
sdb install org.tizen.tbt-ime-0.0.1-1.armv7l.tpk
-sdb install org.tizen.tbtcoreapp-0.0.1-1.armv7l.tpk
+sdb install org.tizen.operationpickviewapp-1.0.0-arm.tpk
+sdb install org.tizen.tbtcoreapp-1.0.0-arm.tpk
sdb push dog_1024_960.gif /opt/home/owner/content/Images
sdb push SampleMP3.mp3 /opt/home/owner/content/Sounds
sdb install org.tizen.coretbt_uiapp-1.0.0-i386.tpk
sdb install org.tizen.coretbtwidgetapp-1.0.0-i386.tpk
sdb install org.tizen.tbt-ime-1.0.0-i386.tpk
+sdb install org.tizen.operationpickviewapp-1.0.0-i386.tpk
sdb install org.tizen.tbtcoreapp-1.0.0-i386.tpk
sdb push dog_1024_960.gif /opt/home/owner/content/Images
accounts-svc
ail
appcore-efl
-appfw-env
appsvc
attach-panel
aul
ecore-file
ecore-imf
ecore-input
-ecore-x
edje
eet
efl-extension
shortcut
storage
syspopup-caller
-utilX
-x11
+nsd-dns-sd
+nsd-ssdp
+capi-network-mtp
+ecore-wayland
+efl
)
INCLUDE(FindPkgConfig)
capi-appfw-application
capi-appfw-preference
capi-base-common
- capi-data-control
capi-location-manager
capi-media-camera
capi-media-player
xml2
capi-media-screen-mirroring
attach-panel
+ nsd-dns-sd
+ nsd-ssdp
+ capi-network-mtp
+ efl
+ data-control
)
CONFIGURE_FILE(tizen-manifest.xml ${PACKAGE_NAME}.xml)
TBT_APP_MTP,
- TBT_APP_NSD_DNS_SD,
-
+ TBT_APP_NSD_DNS_SD_LOCAL,
+
+ TBT_APP_NSD_DNS_SD_REMOTE,
+
+ TBT_APP_NSD_SSDP_LOCAL,
+
+ TBT_APP_NSD_SSDP_REMOTE,
+
TBT_APP_STORAGE,
TBT_APP_RADIO
#define TBT_MODULE_MTP
#define TBT_MODULE_APP_MTP
-//#define TBT_MODULE_NSD
-//#define TBT_MODULE_APP_NSD_DNS_SD
+#define TBT_MODULE_NSD
+#define TBT_MODULE_APP_NSD_DNS_SD_LOCAL
+#define TBT_MODULE_APP_NSD_DNS_SD_REMOTE
+#define TBT_MODULE_APP_NSD_SSDP_LOCAL
+#define TBT_MODULE_APP_NSD_SSDP_REMOTE
#define TBT_MODULE_STORAGE
#define TBT_MODULE_APP_STORAGE
--- /dev/null
+/*******************************************************************************
+ * Copyright (c) 2014 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ *******************************************************************************/
+/**
+ * @file tbt-nsd_ssdp-view.h
+ * @brief checks availability of nsd_ssdps in device
+ * @since_tizen 2.3
+ * @author A B M Nazibullah(nazib.ullah@samsung.com)
+ * @date October, 2014
+ * @bug NA
+ * @credit Tizen SDK Version 2.3.0 Sample Example
+ *
+ */
+
+#ifndef __TBT_NSD_SSDP_VIEW_H__
+#define __TBT_NSD_SSDP_VIEW_H__
+
+#include "utils/app_module_config.h"
+#ifdef TBT_MODULE_NSD
+#include <Evas.h>
+#include "model/tbt-list.h"
+
+/**
+ * @typedef nsd_ssdp_view
+ * @since_tizen 3.0
+ * @brief A nsd_ssdp viewer view handle.
+ */
+typedef struct _nsd_ssdp_view nsd_ssdp_view;
+
+/**
+ * @brief Add nsd_ssdp view
+ * @since_tizen 2.3
+ * @param[in] app The pointer to _app_data instance
+ * @param[in] navi The naviframe object
+ * @return nsd_ssdp viewer view data
+ */
+nsd_ssdp_view *nsd_ssdp_view_add(Evas_Object *navi, tbt_info *tbt_info, Elm_Object_Item *item);
+
+#endif
+#endif // __TBT_NSD_SSDP_VIEW_H__
BuildRequires: pkgconfig(alarm-service)
BuildRequires: pkgconfig(appcore-common)
BuildRequires: pkgconfig(appcore-efl)
-BuildRequires: pkgconfig(appfw-env)
BuildRequires: pkgconfig(appsvc)
BuildRequires: pkgconfig(attach-panel)
BuildRequires: pkgconfig(aul)
BuildRequires: pkgconfig(ecore-file)
BuildRequires: pkgconfig(ecore-imf)
BuildRequires: pkgconfig(ecore-input)
-BuildRequires: pkgconfig(ecore-x)
BuildRequires: pkgconfig(ecore)
BuildRequires: pkgconfig(edje)
BuildRequires: pkgconfig(eet)
BuildRequires: pkgconfig(libcurl)
BuildRequires: pkgconfig(libsmack)
BuildRequires: pkgconfig(libxml-2.0)
-BuildRequires: pkgconfig(location)
BuildRequires: pkgconfig(mm-wfd)
BuildRequires: pkgconfig(msg-service)
BuildRequires: pkgconfig(notification)
BuildRequires: pkgconfig(oauth2)
BuildRequires: pkgconfig(pkgmgr-info)
BuildRequires: pkgconfig(pkgmgr)
-BuildRequires: pkgconfig(privacy-manager-client)
BuildRequires: pkgconfig(push)
-BuildRequires: pkgconfig(security-server)
BuildRequires: pkgconfig(shortcut)
BuildRequires: pkgconfig(sqlite3)
BuildRequires: pkgconfig(storage)
BuildRequires: pkgconfig(syspopup-caller)
BuildRequires: pkgconfig(tapi)
BuildRequires: pkgconfig(tts)
-BuildRequires: pkgconfig(utilX)
-BuildRequires: pkgconfig(x11)
+BuildRequires: pkgconfig(nsd-dns-sd)
+BuildRequires: pkgconfig(nsd-ssdp)
+BuildRequires: pkgconfig(capi-network-mtp)
+BuildRequires: pkgconfig(ecore-wayland)
+BuildRequires: pkgconfig(efl)
%description
Platform Project
+++ /dev/null
-/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the License);
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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 TEXT_HEIGHT 0.08
-
-collections
-{
- base_scale: 1.8;
- group
- {
- name: "nsd_dnssd_viewer";
- parts{
- part{
- name: "nsd_dnssd_view";
- type: SWALLOW;
- description{
- state: "default" 0.0;
- align: 0.0 0.0;
- visible: 1;
- rel1 {relative: 0.0 0.0; }
- rel2 {relative: 1.0 0.5; }
- }
- }
-
- part{
- name: "nsd_dnssd_info_view";
- type: SWALLOW;
- description{
- state: "default" 0.0;
- align: 0.0 0.0;
- visible: 1;
- rel1 {relative: 0.0 0.5; }
- rel2 {relative: 1.0 0.8; }
- }
- }
-
- part{
- name: "nsd_dnssd_btn_view";
- type: SWALLOW;
- description{
- state: "default" 0.0;
- align: 0.0 0.0;
- visible: 1;
- rel1 {relative: 0.0 0.8; }
- rel2 {relative: 1.0 1.0; }
- }
- }
- }
- }
-}
--- /dev/null
+/*
+ * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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 TEXT_HEIGHT 0.08
+
+collections
+{
+ base_scale: 1.8;
+ group
+ {
+ name: "nsd_dnssd_viewer";
+ parts{
+ part{
+ name: "nsd_dnssd_view";
+ type: SWALLOW;
+ description{
+ state: "default" 0.0;
+ align: 0.0 0.0;
+ visible: 1;
+ rel1 {relative: 0.0 0.0; }
+ rel2 {relative: 1.0 0.5; }
+ }
+ }
+
+ part{
+ name: "nsd_dnssd_info_view";
+ type: SWALLOW;
+ description{
+ state: "default" 0.0;
+ align: 0.0 0.0;
+ visible: 1;
+ rel1 {relative: 0.0 0.5; }
+ rel2 {relative: 1.0 0.8; }
+ }
+ }
+
+ part{
+ name: "nsd_dnssd_btn_view";
+ type: SWALLOW;
+ description{
+ state: "default" 0.0;
+ align: 0.0 0.0;
+ visible: 1;
+ rel1 {relative: 0.0 0.8; }
+ rel2 {relative: 1.0 1.0; }
+ }
+ }
+
+ }
+ }
+
+
+ group
+ {
+ name: "nsd_ssdp_viewer";
+ parts{
+ part{
+ name: "nsd_ssdp_view";
+ type: SWALLOW;
+ description{
+ state: "default" 0.0;
+ align: 0.0 0.0;
+ visible: 1;
+ rel1 {relative: 0.0 0.0; }
+ rel2 {relative: 1.0 0.5; }
+ }
+ }
+
+ part{
+ name: "nsd_ssdp_info_view";
+ type: SWALLOW;
+ description{
+ state: "default" 0.0;
+ align: 0.0 0.0;
+ visible: 1;
+ rel1 {relative: 0.0 0.5; }
+ rel2 {relative: 1.0 0.8; }
+ }
+ }
+
+ part{
+ name: "nsd_ssdp_btn_view";
+ type: SWALLOW;
+ description{
+ state: "default" 0.0;
+ align: 0.0 0.0;
+ visible: 1;
+ rel1 {relative: 0.0 0.8; }
+ rel2 {relative: 1.0 1.0; }
+ }
+ }
+
+ }
+ }
+}
--- /dev/null
+/*
+ * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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 TEXT_HEIGHT 0.08
+
+collections
+{
+ base_scale: 1.8;
+ group
+ {
+ name: "nsd_dnssd_viewer";
+ parts{
+ part{
+ name: "nsd_dnssd_view";
+ type: SWALLOW;
+ description{
+ state: "default" 0.0;
+ align: 0.0 0.0;
+ visible: 1;
+ rel1 {relative: 0.0 0.0; }
+ rel2 {relative: 1.0 0.5; }
+ }
+ }
+
+ part{
+ name: "nsd_dnssd_info_view";
+ type: SWALLOW;
+ description{
+ state: "default" 0.0;
+ align: 0.0 0.0;
+ visible: 1;
+ rel1 {relative: 0.0 0.5; }
+ rel2 {relative: 1.0 0.8; }
+ }
+ }
+
+ part{
+ name: "nsd_dnssd_btn_view";
+ type: SWALLOW;
+ description{
+ state: "default" 0.0;
+ align: 0.0 0.0;
+ visible: 1;
+ rel1 {relative: 0.0 0.8; }
+ rel2 {relative: 1.0 1.0; }
+ }
+ }
+
+ }
+ }
+
+
+ group
+ {
+ name: "nsd_ssdp_viewer";
+ parts{
+ part{
+ name: "nsd_ssdp_view";
+ type: SWALLOW;
+ description{
+ state: "default" 0.0;
+ align: 0.0 0.0;
+ visible: 1;
+ rel1 {relative: 0.0 0.0; }
+ rel2 {relative: 1.0 0.5; }
+ }
+ }
+
+ part{
+ name: "nsd_ssdp_info_view";
+ type: SWALLOW;
+ description{
+ state: "default" 0.0;
+ align: 0.0 0.0;
+ visible: 1;
+ rel1 {relative: 0.0 0.5; }
+ rel2 {relative: 1.0 0.8; }
+ }
+ }
+
+ part{
+ name: "nsd_ssdp_btn_view";
+ type: SWALLOW;
+ description{
+ state: "default" 0.0;
+ align: 0.0 0.0;
+ visible: 1;
+ rel1 {relative: 0.0 0.8; }
+ rel2 {relative: 1.0 1.0; }
+ }
+ }
+
+ }
+ }
+}
#ifdef TBT_MODULE_MTP
#ifdef TBT_MODULE_APP_MTP
- //HW-SW Feature summary
+ //MTP
{
.name = "MTP",
.parent = "MTP",
#endif
#ifdef TBT_MODULE_NSD
- #ifdef TBT_MODULE_APP_NSD_DNS_SD
+ #ifdef TBT_MODULE_APP_NSD_DNS_SD_LOCAL
- //HW-SW Feature summary
+ //NSD DNSSD LOCAL
+ {
+ .name = "DNS-SD Local",
+ .parent = "NSD",
+ .apptype = TBT_APP_NSD_DNS_SD_LOCAL,
+ .icon_name = "dummy",
+ .info = "Check NSD DNS-SD <br/>",
+ .result = 0
+ },
+ #endif
+ #ifdef TBT_MODULE_APP_NSD_DNS_SD_REMOTE
+
+ //NSD DNSSD REMOTE
{
- .name = "DNS-SD",
+ .name = "DNS-SD Remote",
.parent = "NSD",
- .apptype = TBT_APP_NSD_DNS_SD,
+ .apptype = TBT_APP_NSD_DNS_SD_REMOTE,
.icon_name = "dummy",
.info = "Check NSD DNS-SD <br/>",
.result = 0
},
#endif
+ #ifdef TBT_MODULE_APP_NSD_SSDP_LOCAL
+ {
+ .name = "SSDP Local",
+ .parent = "NSD",
+ .apptype = TBT_APP_NSD_SSDP_LOCAL,
+ .icon_name = "dummy",
+ .info = "Check NSD SSDP <br/>",
+ .result = 0
+ },
+ #endif
+
+ #ifdef TBT_MODULE_APP_NSD_SSDP_REMOTE
+ {
+ .name = "SSDP Remote",
+ .parent = "NSD",
+ .apptype = TBT_APP_NSD_SSDP_REMOTE,
+ .icon_name = "dummy",
+ .info = "Check NSD SSDP <br/>",
+ .result = 0
+ },
+ #endif
#endif
#ifdef TBT_MODULE_STORAGE
#ifdef TBT_MODULE_APP_STORAGE
#include "view/tbt-attachpanel-view.h"
#include "view/tbt-mtp-view.h"
#include "view/tbt-nsd-dns-sd-view.h"
+#include "view/tbt-nsd-ssdp-view.h"
#include "view/tbt-storage-view.h"
#include "view/tbt-radio-view.h"
#endif
#ifdef TBT_MODULE_NSD
- case TBT_APP_NSD_DNS_SD:
+ case TBT_APP_NSD_DNS_SD_LOCAL:
nsd_dnssd_view_add(view->navi, info, it);
break;
+ case TBT_APP_NSD_DNS_SD_REMOTE:
+ nsd_dnssd_view_add(view->navi, info, it);
+ break;
+ case TBT_APP_NSD_SSDP_LOCAL:
+ nsd_ssdp_view_add(view->navi, info, it);
+ break;
+ case TBT_APP_NSD_SSDP_REMOTE:
+ nsd_ssdp_view_add(view->navi, info, it);
+ break;
#endif
#ifdef TBT_MODULE_STORAGE
snprintf(buf, MAX_LENGTH, "%d MTP Devices found",this->device_count);
elm_list_item_append(this->info_list, buf, NULL, NULL, NULL, NULL);
- for(int i=0; i<this->device_count;i++)
+ int i;
+ for(i=0; i<this->device_count;i++)
{
snprintf(buf, MAX_LENGTH, "Device %d's Info: ",i);
elm_list_item_append(this->info_list, buf, NULL, NULL, NULL, NULL);
elm_list_item_append(this->info_list, buf, NULL, NULL, NULL, NULL);
-
- for(int j=0; j<this->storage_count;j++)
+ int j;
+ for(j=0; j<this->storage_count;j++)
{
snprintf(buf, MAX_LENGTH, "Device %d's Storage %d's Info: ", i, j);
snprintf(buf, MAX_LENGTH, "MTP Folders: ");
elm_list_item_append(this->info_list, buf, NULL, NULL, NULL, NULL);
- for (int k = 0; k < folder_count; k++)
+ int k;
+ for (k = 0; k < folder_count; k++)
{
char* folder_name;
res = mtp_objectinfo_get_file_name(this->mtp_devices[i], folder_list[k], &folder_name);
snprintf(buf, MAX_LENGTH, "File count: %d", file_count);
elm_list_item_append(this->list, buf, NULL, NULL, NULL, NULL);
- for (int k = 0; k < file_count; k++)
+ int k;
+ for (k = 0; k < file_count; k++)
{
mtp_data *data = (mtp_data*) malloc(sizeof(mtp_data));
int res = MTP_ERROR_NONE;
DBG("Count %d", count);
- for(int i=0; i<count; i++)
+ int i;
+ for(i=0; i<count; i++)
{
SAFE_DELETE(deallocate_me[i]);
}
Evas_Object* info_list;
dnssd_service_h dnssd_local_service;
+ dnssd_service_h dnssd_remote_service;
Evas_Object* btn_browse_service;
+ Evas_Object* btn_add_text_record;
+
+ char* txt_record_key;
+
+ bool is_btn_add_text_clicked;
+ bool is_btn_browse_clicked;
};
static void dns_sd_api(void* data);
static void _dnssd_registered_cb(dnssd_error_e result, dnssd_service_h local_service, void *user_data);
static void _on_browse_btn_clickded_cb(void *data, Evas_Object *obj, void *event_info);
+static void _on_add_record_btn_clickded_cb(void *data, Evas_Object *obj, void *event_info);
static void _dnssd_found_cb(dnssd_service_state_e service_state, dnssd_service_h remote_service, void *user_data);
-static void show_txt_record(unsigned short txt_len, const char *txt_record);
+static char** str_split(char* a_str, const char a_delim);
/**
RETVM_IF(!this->view, NULL, "calloc failed");
tbt_info->layout_group = "nsd_dnssd_viewer";
- tbt_info->layout_file = get_edje_path("nsd_dnssd_viewer.edj");
+ tbt_info->layout_file = get_edje_path("nsd_viewer.edj");
common_view_add(navi, tbt_info, item, this->view, _app_destroy_cb, this);
elm_object_part_content_set(this->view->layout, "nsd_dnssd_info_view", this->info_list);
- this->btn_browse_service = ui_utils_push_button_add(this, this->view->layout, "Browse Service", _on_browse_btn_clickded_cb);
- elm_object_part_content_set(this->view->layout, "nsd_dnssd_btn_view", this->btn_browse_service);
+ if(this->view->tbt_info->apptype == TBT_APP_NSD_DNS_SD_LOCAL)
+ {
+ this->btn_browse_service = ui_utils_push_button_add(this, this->view->layout, "Browse Service", _on_browse_btn_clickded_cb);
+ elm_object_part_content_set(this->view->layout, "nsd_dnssd_btn_view", this->btn_browse_service);
+ }
+ else if(this->view->tbt_info->apptype == TBT_APP_NSD_DNS_SD_REMOTE)
+ {
+ this->btn_add_text_record = ui_utils_push_button_add(this, this->view->layout, "Add Record", _on_add_record_btn_clickded_cb);
+ elm_object_part_content_set(this->view->layout, "nsd_dnssd_btn_view", this->btn_add_text_record);
+ }
evas_object_show(this->list);
evas_object_show(this->info_list);
res = dnssd_initialize();
RETM_IF(res != DNSSD_ERROR_NONE, "dnssd_initialize fail > Error = %s", get_dns_sd_error(res));
- res = dnssd_create_local_service("_http._tcp", &this->dnssd_local_service);
- RETM_IF(res != DNSSD_ERROR_NONE, "dnssd_create_local_service fail > Error = %s", get_dns_sd_error(res));
-
- res = dnssd_service_set_name(this->dnssd_local_service, "NsdDnsChat");
- RETM_IF(res != DNSSD_ERROR_NONE, "dnssd_service_set_name fail > Error = %s", get_dns_sd_error(res));
-
- res = dnssd_service_set_port(this->dnssd_local_service, 12683);
- RETM_IF(res != DNSSD_ERROR_NONE, "dnssd_service_set_port fail > Error = %s", get_dns_sd_error(res));
-
- res = dnssd_register_local_service(this->dnssd_local_service, _dnssd_registered_cb, this);
- RETM_IF(res != DNSSD_ERROR_NONE, "dnssd_register_local_service fail > Error = %s", get_dns_sd_error(res));
+ char* str = format_string("%s", "dnssd initialized");
+ elm_list_item_append(this->info_list, str, NULL, NULL, NULL, NULL);
+ SAFE_DELETE(str);
- res = dnssd_service_add_txt_record(this->dnssd_local_service, "kk", 5, "Hello");
- RETM_IF(res != DNSSD_ERROR_NONE, "dnssd_service_add_txt_record fail > Error = %s", get_dns_sd_error(res));
}
-static void _dnssd_registered_cb(dnssd_error_e result, dnssd_service_h local_service, void *user_data)
+static void _dnssd_registered_cb(dnssd_error_e result, dnssd_service_h local_service, void *data)
{
DBG("_dnssd_registered_cb");
+ RETM_IF(NULL == data, "data is NULL");
+ nsd_dnssd_view *this = (nsd_dnssd_view*) data;
+
+ char* str = format_string("%s", "local service registered");
+ elm_list_item_append(this->info_list, str, NULL, NULL, NULL, NULL);
+ SAFE_DELETE(str);
+
+ str = format_string("registered service: %u", local_service);
+ elm_list_item_append(this->list, str, NULL, NULL, NULL, NULL);
+ SAFE_DELETE(str);
+
+ elm_list_go(this->list);
+ elm_list_go(this->info_list);
}
-static void _dnssd_found_cb(dnssd_service_state_e service_state, dnssd_service_h remote_service, void *user_data)
+static void _dnssd_found_cb(dnssd_service_state_e service_state, dnssd_service_h remote_service, void *data)
{
DBG("_dnssd_found_cb");
+ RETM_IF(NULL == data, "data is NULL");
+ nsd_dnssd_view *this = (nsd_dnssd_view*) data;
unsigned short length;
char* value;
char* ipv6;
int port;
char* service_name;
+ char* service_type;
+ char* str;
if(service_state == DNSSD_SERVICE_STATE_AVAILABLE)
-
{
+ str = format_string("remote service %u", remote_service);
+ elm_list_item_append(this->list, str, NULL, NULL, NULL, NULL);
+ SAFE_DELETE(str);
+
+ str = format_string("found remote service");
+ elm_list_item_append(this->info_list, str, NULL, NULL, NULL, NULL);
+ SAFE_DELETE(str);
+
int res = dnssd_service_get_all_txt_record(remote_service, &length, (void*)&value);
- show_txt_record(length, value);
+ RETM_IF(res != DNSSD_ERROR_NONE, "dnssd_service_get_all_txt_record fail > Error = %s", get_dns_sd_error(res));
+
+ res = dnssd_service_get_name(remote_service, &service_name);
+ RETM_IF(res != DNSSD_ERROR_NONE, "dnssd_service_get_name fail > Error = %s", get_dns_sd_error(res));
+ if(service_name != NULL && sizeof(service_name) >0)
+ {
+ str = format_string("service name: %s", service_name);
+ elm_list_item_append(this->list, str, NULL, NULL, NULL, NULL);
+ SAFE_DELETE(str);
+ }
+
+ res = dnssd_service_get_type(remote_service, &service_type);
+ RETM_IF(res != DNSSD_ERROR_NONE, "dnssd_service_get_type fail > Error = %s", get_dns_sd_error(res));
+
+ if(service_type != NULL && sizeof(service_type) >0)
+ {
+ str = format_string("service type: %s", service_type);
+ elm_list_item_append(this->list, str, NULL, NULL, NULL, NULL);
+ SAFE_DELETE(str);
+ }
+
+ res = dnssd_service_get_ip(remote_service, &ipv4, &ipv6);
+ RETM_IF(res != DNSSD_ERROR_NONE, "dnssd_service_get_ip fail > Error = %s", get_dns_sd_error(res));
+
+ if(ipv4 != NULL && sizeof(ipv4) >0)
+ {
+ str = format_string("ipv4: %s", ipv4);
+ elm_list_item_append(this->list, str, NULL, NULL, NULL, NULL);
+ SAFE_DELETE(str);
+ }
+ if(ipv6 != NULL && sizeof(ipv6) >0)
+ {
+ str = format_string("ipv6: %s", ipv6);
+ elm_list_item_append(this->list, str, NULL, NULL, NULL, NULL);
+ SAFE_DELETE(str);
+ }
+
+ res = dnssd_service_get_port(remote_service, &port);
+ RETM_IF(res != DNSSD_ERROR_NONE, "dnssd_service_get_port fail > Error = %s", get_dns_sd_error(res));
+
+ str = format_string("port: %d", port);
+ elm_list_item_append(this->list, str, NULL, NULL, NULL, NULL);
+ SAFE_DELETE(str);
+
+
+ memmove(value, value+1, strlen(value));
+
+ char** tokens = str_split(value, '=');
- dnssd_service_get_name(remote_service, &service_name);
- DBG("result : %s", get_dns_sd_error(res));
- dnssd_service_get_ip(remote_service, &ipv4, &ipv6);
- dnssd_service_get_port(remote_service, &port);
+ if (tokens)
+ {
- DBG("Length %u , Value: %s port %d ipv4 %s ipv6 %s service_name %s", length, value, port, ipv4, ipv6, service_name);
+ if(tokens[0] != NULL && strlen(tokens[0])>0)
+ {
+ str = format_string("key: %s", tokens[0]);
+ elm_list_item_append(this->list, str, NULL, NULL, NULL, NULL);
+ SAFE_DELETE(str);
+ }
+ if(tokens[1] != NULL && strlen(tokens[1])>0)
+ {
+ str = format_string("value: %s", tokens[1]);
+ elm_list_item_append(this->list, str, NULL, NULL, NULL, NULL);
+ SAFE_DELETE(str);
+ }
+ int i;
+ for (i = 0; *(tokens + i); i++)
+ {
+ SAFE_DELETE(*(tokens + i));
+ }
+
+ SAFE_DELETE(tokens);
+ }
+
+
+ elm_list_go(this->list);
+ elm_list_go(this->info_list);
}
}
+static void _on_add_record_btn_clickded_cb(void *data, Evas_Object *obj, void *event_info)
+{
+
+ RETM_IF(NULL == data, "data is NULL");
+ nsd_dnssd_view *this = (nsd_dnssd_view*) data;
+
+ this->is_btn_add_text_clicked = true;
+
+ char* str;
+
+ DBG("_on_add_record_btn_clickded_cb");
+
+ int res = DNSSD_ERROR_NONE;
+
+ res = dnssd_create_local_service("_http._tcp", &this->dnssd_local_service);
+ RETM_IF(res != DNSSD_ERROR_NONE, "dnssd_create_local_service fail > Error = %s", get_dns_sd_error(res));
+
+ str = format_string("local service created: %u", this->dnssd_local_service);
+ elm_list_item_append(this->list, str, NULL, NULL, NULL, NULL);
+ SAFE_DELETE(str);
+
+ char* service_name = "NsdDnsChat";
+ res = dnssd_service_set_name(this->dnssd_local_service, service_name);
+ RETM_IF(res != DNSSD_ERROR_NONE, "dnssd_service_set_name fail > Error = %s", get_dns_sd_error(res));
+
+ str = format_string("%s%s", "service name: ", service_name);
+ elm_list_item_append(this->info_list, str, NULL, NULL, NULL, NULL);
+ SAFE_DELETE(str);
+
+ int port = 12684;
+ res = dnssd_service_set_port(this->dnssd_local_service, port);
+ RETM_IF(res != DNSSD_ERROR_NONE, "dnssd_service_set_port fail > Error = %s", get_dns_sd_error(res));
+
+ str = format_string("%s%d", "port: ", port);
+ elm_list_item_append(this->info_list, str, NULL, NULL, NULL, NULL);
+ SAFE_DELETE(str);
+
+ res = dnssd_register_local_service(this->dnssd_local_service, _dnssd_registered_cb, this);
+ RETM_IF(res != DNSSD_ERROR_NONE, "dnssd_register_local_service fail > Error = %s", get_dns_sd_error(res));
+
+ str = format_string("%s", "register local service invoked");
+ elm_list_item_append(this->info_list, str, NULL, NULL, NULL, NULL);
+ SAFE_DELETE(str);
+
+ this->txt_record_key = "kk";
+ unsigned short txt_length = 10;
+ char* text_value = "Hello";
+ res = dnssd_service_add_txt_record(this->dnssd_local_service, this->txt_record_key, txt_length, text_value);
+ RETM_IF(res != DNSSD_ERROR_NONE, "dnssd_service_add_txt_record fail > Error = %s", get_dns_sd_error(res));
+
+ void* val;
+ unsigned short buf_len, type;
+ dnssd_service_get_all_txt_record(this->dnssd_local_service, &buf_len, &val);
+
+ //DBG("length %d value %s", l, (char*)val);
+
+ type = 16; //16 for TXT type
+ res = dnssd_service_set_record(this->dnssd_local_service, type, buf_len, val);
+ RETM_IF(res != DNSSD_ERROR_NONE, "dnssd_service_set_record fail > Error = %s", get_dns_sd_error(res));
+
+ str = format_string("%s", "Text added successfully");
+ elm_list_item_append(this->info_list, str, NULL, NULL, NULL, NULL);
+ SAFE_DELETE(str);
+
+ str = format_string("%s%s", "key: ",this->txt_record_key);
+ elm_list_item_append(this->list, str, NULL, NULL, NULL, NULL);
+ SAFE_DELETE(str);
+
+ str = format_string("%s%s", "value: ", text_value);
+ elm_list_item_append(this->list, str, NULL, NULL, NULL, NULL);
+ SAFE_DELETE(str);
+
+ elm_list_go(this->list);
+ elm_list_go(this->info_list);
+ evas_object_show(this->list);
+ evas_object_show(this->info_list);
+
+}
+
static void _on_browse_btn_clickded_cb(void *data, Evas_Object *obj, void *event_info)
{
DBG("_on_browse_btn_clickded_cb");
RETM_IF(NULL == data, "data is NULL");
nsd_dnssd_view *this = (nsd_dnssd_view*) data;
+ this->is_btn_browse_clicked = true;
+
int res;
- dnssd_browser_h dnssd_service;
- res = dnssd_start_browsing_service("_http._tcp", &dnssd_service, _dnssd_found_cb, this);
-}
-static void show_txt_record(unsigned short txt_len, const char *txt_record)
-{
- const char *ptr = txt_record;
- const char *max = txt_record + txt_len;
- while (ptr < max) {
- const char *const end = ptr + 1 + ptr[0];
- if (end > max) {
- DBG("<< invalid data >>");
- break;
- }
- if (++ptr < end)
- DBG(" ");
- while (ptr < end) {
- if (*ptr >= ' ')
- DBG("%c", *ptr);
- ptr++;
- }
- }
- DBG("\n");
+ res = dnssd_start_browsing_service("_http._tcp", &this->dnssd_remote_service, _dnssd_found_cb, this);
+ char* str = format_string("Remote service browsing started");
+ elm_list_item_append(this->info_list, str, NULL, NULL, NULL, NULL);
+ SAFE_DELETE(str);
+
+ elm_list_go(this->info_list);
}
{
RETM_IF(NULL == this, "data is NULL");
+ int res = DNSSD_ERROR_NONE;
+
nsd_dnssd_view *view = NULL;
view = (nsd_dnssd_view*)this;
+
+ if(view->is_btn_add_text_clicked == true)
+ {
+ res = dnssd_service_remove_txt_record(view->dnssd_local_service, view->txt_record_key);
+ RETM_IF(res != DNSSD_ERROR_NONE, "dnssd_service_remove_txt_record fail > Error = %s", get_dns_sd_error(res));
+
+ res = dnssd_deregister_local_service(view->dnssd_local_service);
+ RETM_IF(res != DNSSD_ERROR_NONE, "dnssd_deregister_local_service fail > Error = %s", get_dns_sd_error(res));
+
+ res = dnssd_destroy_local_service(view->dnssd_local_service);
+ RETM_IF(res != DNSSD_ERROR_NONE, "dnssd_destroy_local_service fail > Error = %s", get_dns_sd_error(res));
+
+ res = dnssd_service_unset_record(view->dnssd_local_service, 16);
+ }
+
+ if(view->is_btn_browse_clicked == true)
+ {
+ res = dnssd_stop_browsing_service(view->dnssd_remote_service);
+ RETM_IF(res != DNSSD_ERROR_NONE, "dnssd_stop_browsing_service fail > Error = %s", get_dns_sd_error(res));
+ }
+
+ res = dnssd_deinitialize();
+ RETM_IF(res != DNSSD_ERROR_NONE, "dnssd_deinitialize fail > Error = %s", get_dns_sd_error(res));
+
RETM_IF(NULL == view, "view is NULL");
SAFE_DELETE(view->view);
return error_msg;
}
+static char** str_split(char* a_str, const char a_delim)
+{
+ char** result = 0;
+ size_t count = 0;
+ char* tmp = a_str;
+ char* last_comma = 0;
+ char delim[2];
+ delim[0] = a_delim;
+ delim[1] = 0;
+
+ while (*tmp)
+ {
+
+ if (a_delim == *tmp)
+ {
+ count++;
+ last_comma = tmp;
+ }
+ tmp++;
+ }
+
+ count += last_comma < (a_str + strlen(a_str) - 1);
+ count++;
+
+ result = malloc(sizeof(char*) * count);
+
+ if (result)
+ {
+ size_t idx = 0;
+ char* token = strtok(a_str, delim);
+
+ while (token)
+ {
+ RETVM_IF(idx >= count, NULL, "idx >= count");
+ *(result + idx++) = strdup(token);
+ token = strtok(0, delim);
+ }
+ *(result + idx) = 0;
+ }
+
+ return result;
+}
+
#endif
--- /dev/null
+/*******************************************************************************
+ * Copyright (c) 2014 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *******************************************************************************/
+/**
+ * @file tbt-nsd_ssdp-view.h
+ * @brief checks required nsd_ssdps are available or not
+ *
+ * @author A B M Nazibullah(nazib.ullah@samsung.com)
+ * @date October, 2014
+ * @bug NA
+ * @credit Tizen SDK Version 2.3.0 Sample Example
+ *
+ */
+
+#include "utils/app_module_config.h"
+#ifdef TBT_MODULE_NSD
+
+#include <Elementary.h>
+#include <ssdp.h>
+
+#include "utils/logger.h"
+#include "utils/config.h"
+#include "utils/ui-utils.h"
+#include "view/tbt-nsd-ssdp-view.h"
+#include "view/tbt-common-view.h"
+
+struct _nsd_ssdp_view
+{
+ common_view* view;
+
+ Evas_Object* list;
+ Evas_Object* info_list;
+
+ ssdp_service_h ssdp_local_service;
+ ssdp_service_h ssdp_remote_service;
+ ssdp_browser_h ssdp_browser;
+
+ Evas_Object* btn_browse_service;
+ Evas_Object* btn_add_text_record;
+
+ char* txt_record_key;
+ char* ssdp_target;
+ char* usn;
+ char* url;
+
+ bool is_btn_add_text_clicked;
+ bool is_btn_browse_clicked;
+};
+
+
+static void _app_destroy_cb(void* this);
+static char* get_ssdp_error(ssdp_error_e error);
+static void ssdp_api(void* data);
+static void _ssdp_registered_cb(ssdp_error_e result, ssdp_service_h local_service, void *user_data);
+static void _on_browse_btn_clickded_cb(void *data, Evas_Object *obj, void *event_info);
+static void _on_add_record_btn_clickded_cb(void *data, Evas_Object *obj, void *event_info);
+static void _ssdp_found_cb(ssdp_service_state_e service_state, ssdp_service_h remote_service, void *user_data);
+
+
+
+/**
+ * @function nsd_ssdp_view_add
+ * @since_tizen 3.0
+ * @description nsd_ssdp View Add
+ * @parameter Evas_Object*: Evas Object Pointer, tbt_info*: Tbt Info Pointer, Elm_Object_Item*: Elm Object Item Pointer
+ * @return nsd_ssdp_view*
+ */
+nsd_ssdp_view *nsd_ssdp_view_add(Evas_Object *navi, tbt_info *tbt_info, Elm_Object_Item *item)
+{
+ RETVM_IF(NULL == navi, NULL, "navi is null");
+
+ nsd_ssdp_view *this = NULL;
+ this = calloc(1, sizeof(nsd_ssdp_view));
+ RETVM_IF(!this, NULL, "calloc failed");
+ this->view = calloc(1, sizeof(common_view));
+ RETVM_IF(!this->view, NULL, "calloc failed");
+
+ tbt_info->layout_group = "nsd_ssdp_viewer";
+ tbt_info->layout_file = get_edje_path("nsd_viewer.edj");
+
+ common_view_add(navi, tbt_info, item, this->view, _app_destroy_cb, this);
+
+ RETVM_IF(NULL == this->view, NULL, "navi is null");
+
+ this->list = elm_list_add(this->view->layout);
+ RETVM_IF(!this->list, NULL, "elm_list_add failed");
+ evas_object_data_set(this->list, "view_data", this);
+ elm_object_part_content_set(this->view->layout, "nsd_ssdp_view", this->list);
+
+ this->info_list = elm_list_add(this->view->layout);
+ RETVM_IF(!this->info_list, NULL, "elm_list_add failed");
+ evas_object_data_set(this->info_list, "view_data", this);
+ elm_object_part_content_set(this->view->layout, "nsd_ssdp_info_view", this->info_list);
+
+
+ if(this->view->tbt_info->apptype == TBT_APP_NSD_SSDP_LOCAL)
+ {
+ this->btn_browse_service = ui_utils_push_button_add(this, this->view->layout, "Browse Service", _on_browse_btn_clickded_cb);
+ elm_object_part_content_set(this->view->layout, "nsd_ssdp_btn_view", this->btn_browse_service);
+ }
+ else if(this->view->tbt_info->apptype == TBT_APP_NSD_SSDP_REMOTE)
+ {
+ this->btn_add_text_record = ui_utils_push_button_add(this, this->view->layout, "Add Service", _on_add_record_btn_clickded_cb);
+ elm_object_part_content_set(this->view->layout, "nsd_ssdp_btn_view", this->btn_add_text_record);
+ }
+
+ evas_object_show(this->list);
+ evas_object_show(this->info_list);
+
+ ssdp_api(this);
+
+
+ return this;
+}
+
+
+static void ssdp_api(void* data)
+{
+ DBG("ssdp_api");
+
+ RETM_IF(NULL == data, "data is NULL");
+ nsd_ssdp_view *this = (nsd_ssdp_view*) data;
+
+ int res = SSDP_ERROR_NONE;
+
+ res = ssdp_initialize();
+ RETM_IF(res != SSDP_ERROR_NONE, "ssdp_initialize fail > Error = %s", get_ssdp_error(res));
+
+ char* str = format_string("%s", "ssdp initialized");
+ elm_list_item_append(this->info_list, str, NULL, NULL, NULL, NULL);
+ SAFE_DELETE(str);
+
+}
+
+
+static void _ssdp_registered_cb(ssdp_error_e result, ssdp_service_h local_service, void *user_data)
+{
+ DBG("_ssdp_registered_cb");
+
+ RETM_IF(NULL == user_data, "data is NULL");
+ nsd_ssdp_view *this = (nsd_ssdp_view*) user_data;
+
+ char* str = format_string("service registered");
+ elm_list_item_append(this->list, str, NULL, NULL, NULL, NULL);
+ SAFE_DELETE(str);
+}
+
+static void _ssdp_found_cb(ssdp_service_state_e service_state, ssdp_service_h remote_service, void *user_data)
+{
+ DBG("_ssdp_found_cb");
+ RETM_IF(NULL == user_data, "data is NULL");
+ nsd_ssdp_view *this = (nsd_ssdp_view*) user_data;
+ int res = SSDP_ERROR_NONE;
+
+ char* str;
+ str = format_string("Found remote service");
+ elm_list_item_append(this->info_list, str, NULL, NULL, NULL, NULL);
+ SAFE_DELETE(str);
+
+ if(service_state == SSDP_SERVICE_STATE_AVAILABLE)
+ {
+ char* usn;
+ char* url;
+
+ DBG("remote service %u", remote_service);
+ str = format_string("remote service %u", remote_service);
+ elm_list_item_append(this->list, str, NULL, NULL, NULL, NULL);
+ SAFE_DELETE(str);
+
+ res = ssdp_service_get_usn(remote_service, &usn);
+ RETM_IF(res != SSDP_ERROR_NONE, "ssdp_service_get_usn fail > Error = %s", get_ssdp_error(res));
+
+ str = format_string("usn: %s", usn);
+ elm_list_item_append(this->list, str, NULL, NULL, NULL, NULL);
+ SAFE_DELETE(str);
+
+ res = ssdp_service_get_url(remote_service, &url);
+ RETM_IF(res != SSDP_ERROR_NONE, "ssdp_service_get_url fail > Error = %s", get_ssdp_error(res));
+
+ str = format_string("url: %s", url);
+ elm_list_item_append(this->list, str, NULL, NULL, NULL, NULL);
+ SAFE_DELETE(str);
+
+ DBG("usn: %s, url: %s", usn, url);
+
+ }
+
+ elm_list_go(this->list);
+ elm_list_go(this->info_list);
+
+}
+
+static void _on_add_record_btn_clickded_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ DBG("_on_add_record_btn_clickded_cb");
+
+ RETM_IF(NULL == data, "data is NULL");
+ nsd_ssdp_view *this = (nsd_ssdp_view*) data;
+
+ this->is_btn_add_text_clicked = true;
+
+ int res = SSDP_ERROR_NONE;
+ char* str;
+
+ char* target;
+
+ this->ssdp_target="upnp:rootdevice";
+ res = ssdp_create_local_service(this->ssdp_target, &this->ssdp_local_service);
+ RETM_IF(res != SSDP_ERROR_NONE, "ssdp_create_local_service fail > Error = %s", get_ssdp_error(res));
+
+ str = format_string("service created");
+ elm_list_item_append(this->info_list, str, NULL, NULL, NULL, NULL);
+ SAFE_DELETE(str);
+
+ str = format_string("service: %u", this->ssdp_local_service);
+ elm_list_item_append(this->list, str, NULL, NULL, NULL, NULL);
+ SAFE_DELETE(str);
+
+ this->usn = "uuid:1234abcd-12ab-12ab-12ab-1234567abc12::upnp:rootdevice";
+ res = ssdp_service_set_usn(this->ssdp_local_service, this->usn);
+ RETM_IF(res != SSDP_ERROR_NONE, "ssdp_service_set_usn fail > Error = %s", get_ssdp_error(res));
+
+ str = format_string("usn: %s", this->usn);
+ elm_list_item_append(this->list, str, NULL, NULL, NULL, NULL);
+ SAFE_DELETE(str);
+
+ this->url = "http://192.168.0.111";
+ res = ssdp_service_set_url(this->ssdp_local_service, this->url);
+ RETM_IF(res != SSDP_ERROR_NONE, "ssdp_service_set_url fail > Error = %s", get_ssdp_error(res));
+
+ str = format_string("url: %s", this->url);
+ elm_list_item_append(this->list, str, NULL, NULL, NULL, NULL);
+ SAFE_DELETE(str);
+
+ res = ssdp_service_get_target(this->ssdp_local_service, &target);
+ RETM_IF(res != SSDP_ERROR_NONE, "ssdp_service_get_target fail > Error = %s", get_ssdp_error(res));
+
+ str = format_string("target: %s", target);
+ elm_list_item_append(this->list, str, NULL, NULL, NULL, NULL);
+ SAFE_DELETE(str);
+
+ res = ssdp_register_local_service(this->ssdp_local_service, _ssdp_registered_cb, this);
+ RETM_IF(res != SSDP_ERROR_NONE, "ssdp_register_local_service fail > Error = %s", get_ssdp_error(res));
+
+ str = format_string("service register called");
+ elm_list_item_append(this->list, str, NULL, NULL, NULL, NULL);
+ SAFE_DELETE(str);
+
+ DBG("_on_add_record_btn_clickded_cb finished");
+
+ elm_list_go(this->list);
+ elm_list_go(this->info_list);
+}
+
+static void _on_browse_btn_clickded_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ DBG("_on_browse_btn_clickded_cb");
+
+ RETM_IF(NULL == data, "data is NULL");
+ nsd_ssdp_view *this = (nsd_ssdp_view*) data;
+
+ char* str;
+
+ this->is_btn_browse_clicked = true;
+
+ int res = SSDP_ERROR_NONE;
+
+ this->ssdp_target="upnp:rootdevice";
+ res = ssdp_start_browsing_service(this->ssdp_target, &this->ssdp_browser,_ssdp_found_cb, this);
+ RETM_IF(res != SSDP_ERROR_NONE, "ssdp_start_browsing_service fail > Error = %s", get_ssdp_error(res));
+
+ str = format_string("Service browsing started");
+ elm_list_item_append(this->info_list, str, NULL, NULL, NULL, NULL);
+ SAFE_DELETE(str);
+
+ elm_list_go(this->info_list);
+}
+
+
+
+/**
+ * @function _app_destroy_cb
+ * @since_tizen 2.3
+ * @description App Destroy Cb
+ * @parameter void*: Void Pointer
+ * @return static void
+ */
+static void _app_destroy_cb(void* this)
+{
+ RETM_IF(NULL == this, "data is NULL");
+
+ int res = SSDP_ERROR_NONE;
+
+ nsd_ssdp_view *view = NULL;
+ view = (nsd_ssdp_view*)this;
+ RETM_IF(NULL == view, "view is NULL");
+
+ if(view->is_btn_add_text_clicked == true)
+ {
+ res = ssdp_deregister_local_service(view->ssdp_local_service);
+ RETM_IF(res != SSDP_ERROR_NONE, "ssdp_deregister_local_service fail > Error = %s", get_ssdp_error(res));
+ }
+
+ if(view->is_btn_browse_clicked == true)
+ {
+ res = ssdp_stop_browsing_service(view->ssdp_browser);
+ RETM_IF(res != SSDP_ERROR_NONE, "ssdp_stop_browsing_service fail > Error = %s", get_ssdp_error(res));
+ }
+
+ res = ssdp_deinitialize();
+ RETM_IF(res != SSDP_ERROR_NONE, "ssdp_deinitialize fail > Error = %s", get_ssdp_error(res));
+
+ SAFE_DELETE(view->view);
+ SAFE_DELETE(view);
+}
+
+static char* get_ssdp_error(ssdp_error_e error)
+{
+
+ char* error_msg;
+ switch(error)
+ {
+ case SSDP_ERROR_NONE:
+ error_msg = "SSDP_ERROR_NONE";
+ break;
+ case SSDP_ERROR_OUT_OF_MEMORY:
+ error_msg = "SSDP_ERROR_OUT_OF_MEMORY";
+ break;
+ case SSDP_ERROR_INVALID_PARAMETER:
+ error_msg = "SSDP_ERROR_INVALID_PARAMETER";
+ break;
+ case SSDP_ERROR_NOT_SUPPORTED:
+ error_msg = "SSDP_ERROR_NOT_SUPPORTED";
+ break;
+ case SSDP_ERROR_NOT_INITIALIZED:
+ error_msg = "SSDP_ERROR_NOT_INITIALIZED";
+ break;
+
+ case SSDP_ERROR_OPERATION_FAILED:
+ error_msg = "SSDP_ERROR_OPERATION_FAILED";
+ break;
+ case SSDP_ERROR_SERVICE_NOT_FOUND:
+ error_msg = "SSDP_ERROR_SERVICE_NOT_FOUND";
+ break;
+ case SSDP_ERROR_SERVICE_ALREADY_REGISTERED:
+ error_msg = "SSDP_ERROR_SERVICE_ALREADY_REGISTERED";
+ break;
+ default:
+ error_msg = "UNSUPPORTED_ERROR";
+ break;
+ }
+
+ return error_msg;
+}
+
+
+#endif
#include <json-glib/json-glib.h>
#include <curl/curl.h>
-//Following client_id and client secret generated against srbd.tizen.tbt.test@gmail.com pass: tizentbttest
+//Following client_id and client secret generated against srbd.tizen.tbt.test@gmail.com pass: tizentbttest123
+
+//#define GOOGLE_CLIENT_ID "670877175811-sfjbiiambdqg411db9472u13ko89m972.apps.googleusercontent.com"
+//#define GOOGLE_CLIENT_SECRET "FHPYeaQnAD2nFEA7yyJac2SS"
+
+
+#define GOOGLE_CLIENT_ID "670877175811-fneddq3cnvgajhalsndlqargbft6tn5j.apps.googleusercontent.com"
+#define GOOGLE_CLIENT_SECRET "AIRkuD9jcPEtaHwDZlvW-pwr"
-#define GOOGLE_CLIENT_ID "670877175811-sfjbiiambdqg411db9472u13ko89m972.apps.googleusercontent.com"
-#define GOOGLE_CLIENT_SECRET "FHPYeaQnAD2nFEA7yyJac2SS"
#define OAUTH2_TYPE_STR(k) #k
ret = oauth2_request_set_token_end_point_url(request,"https://accounts.google.com/o/oauth2/token");
RETM_IF(ret != OAUTH2_ERROR_NONE, "oauth2_request_set_token_end_point_url error: %s", get_oauth2_error(ret));
- ret = oauth2_request_set_redirection_url(request,"https://localhost:8080");
+ ret = oauth2_request_set_redirection_url(request,"https://developer.tizen.org");
RETM_IF(ret != OAUTH2_ERROR_NONE, "oauth2_request_set_redirection_url error: %s", get_oauth2_error(ret));
ret = oauth2_request_set_client_id(request, GOOGLE_CLIENT_ID);
--- /dev/null
+[general]
+buildroot = ~/GBS-ROOT-TBT-MOBILE
+
+################ Profile for Device ################
+[profile.device]
+repos = repo.public_3.0_base_arm,repo.public_3.0_mobile_tm1
+
+[repo.public_3.0_base_arm]
+url = http://download.tizen.org/snapshots/tizen/base/latest/repos/arm/packages/
+user = nazib
+passwdx = QlpoOTFBWSZTWRS3BYsAAAQRgAABMGUCECAAMQZMQQDJ6lptGgLxdyRThQkBS3BYsA==
+
+[repo.public_3.0_mobile_tm1]
+url = http://download.tizen.org/snapshots/tizen/mobile/latest/repos/target-TM1/packages/
+user = nazib
+passwdx = QlpoOTFBWSZTWRS3BYsAAAQRgAABMGUCECAAMQZMQQDJ6lptGgLxdyRThQkBS3BYsA==
+
+################ Profile for Emulator ################
+[profile.sdk]
+repos = repo.public_3.0_base_emul,repo.public_3.0_mobile_emul
+
+[repo.public_3.0_base_emul]
+url = http://download.tizen.org/snapshots/tizen/base/latest/repos/emulator32/packages/
+user = nazib
+passwdx = QlpoOTFBWSZTWRS3BYsAAAQRgAABMGUCECAAMQZMQQDJ6lptGgLxdyRThQkBS3BYsA==
+
+[repo.public_3.0_mobile_emul]
+url = http://download.tizen.org/snapshots/tizen/mobile/latest/repos/emulator32-wayland/packages/
+user = nazib
+passwdx = QlpoOTFBWSZTWRS3BYsAAAQRgAABMGUCECAAMQZMQQDJ6lptGgLxdyRThQkBS3BYsA==