[TBT][NSD DNS-SD, NSD SSDP][DPTTIZEN-1868][Added NSD DNS-SD, NSD SSDP local and remot... 97/73797/1
authorAmlan Chowdhury <amlan.c@samsung.com>
Thu, 9 Jun 2016 10:55:30 +0000 (16:55 +0600)
committerAmlan Chowdhury <amlan.c@samsung.com>
Thu, 9 Jun 2016 11:26:59 +0000 (17:26 +0600)
Signed-off-by: Amlan Chowdhury <amlan.c@samsung.com>
Change-Id: I00f4a375e18bf62e235673d2a38338737e140288

45 files changed:
operationpickviewapp/.cproject [new file with mode: 0644]
operationpickviewapp/.exportMap [new file with mode: 0644]
operationpickviewapp/.gitignore [new file with mode: 0644]
operationpickviewapp/.package-stamp [new file with mode: 0644]
operationpickviewapp/.project [new file with mode: 0644]
operationpickviewapp/.rds_delta [new file with mode: 0644]
operationpickviewapp/.sdk_delta.info [new file with mode: 0644]
operationpickviewapp/.tproject [new file with mode: 0644]
operationpickviewapp/inc/filemanager-util.h [new file with mode: 0644]
operationpickviewapp/inc/logger.h [new file with mode: 0644]
operationpickviewapp/inc/operationpickviewapp.h [new file with mode: 0644]
operationpickviewapp/inc/soundplayer-util.h [new file with mode: 0644]
operationpickviewapp/inc/ui-utils.h [new file with mode: 0644]
operationpickviewapp/inc/videoplayer-util.h [new file with mode: 0644]
operationpickviewapp/project_def.prop [new file with mode: 0644]
operationpickviewapp/res/edje/operationpickviewapp.edc [new file with mode: 0644]
operationpickviewapp/shared/res/operationpickviewapp.png [new file with mode: 0644]
operationpickviewapp/src/filemanager-util.c [new file with mode: 0644]
operationpickviewapp/src/operationpickviewapp.c [new file with mode: 0644]
operationpickviewapp/src/soundplayer-util.c [new file with mode: 0644]
operationpickviewapp/src/ui-utils.c [new file with mode: 0644]
operationpickviewapp/src/videoplayer-util.c [new file with mode: 0644]
operationpickviewapp/tizen-manifest.xml [new file with mode: 0644]
release/binary-armv7l/install.sh
release/binary-armv7l/org.tizen.operationpickviewapp-1.0.0-arm.tpk [new file with mode: 0644]
release/binary-armv7l/org.tizen.tbtcoreapp-0.0.1-1.armv7l.tpk [deleted file]
release/binary-armv7l/org.tizen.tbtcoreapp-1.0.0-arm.tpk [new file with mode: 0644]
release/binary-x86/install.sh
release/binary-x86/org.tizen.operationpickviewapp-1.0.0-i386.tpk [new file with mode: 0644]
release/binary-x86/org.tizen.tbtcoreapp-1.0.0-i386.tpk
tbtcoreapp/CMakeLists.txt
tbtcoreapp/inc/model/tbt-info.h
tbtcoreapp/inc/utils/app_module_config.h
tbtcoreapp/inc/view/tbt-nsd-ssdp-view.h [new file with mode: 0644]
tbtcoreapp/packaging/org.tizen.tbtcoreapp.spec
tbtcoreapp/res/edje/2.4/mobile/nsd_dnssd_viewer.edc [deleted file]
tbtcoreapp/res/edje/2.4/mobile/nsd_viewer.edc [new file with mode: 0644]
tbtcoreapp/res/edje/3.0/mobile/nsd_viewer.edc [new file with mode: 0644]
tbtcoreapp/src/model/tbt-list.c
tbtcoreapp/src/view/tbt-genlist-view.c
tbtcoreapp/src/view/tbt-mtp-view.c
tbtcoreapp/src/view/tbt-nsd-dns-sd-view.c
tbtcoreapp/src/view/tbt-nsd-ssdp-view.c [new file with mode: 0644]
tbtcoreapp/src/view/tbt-oauth2-view.c
tbtcoreapp/tbt32_mobile.conf [new file with mode: 0755]

diff --git a/operationpickviewapp/.cproject b/operationpickviewapp/.cproject
new file mode 100644 (file)
index 0000000..398ae90
--- /dev/null
@@ -0,0 +1,570 @@
+<?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="&quot;${SBI_SYSROOT}/usr/include/libxml2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appcore-agent&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appfw&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/attach-panel&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/badge&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/base&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/cairo&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/calendar-service2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/chromium-ewk&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ckm&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/contacts-svc&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/content&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/context-service&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dali&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dali-toolkit&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dbus-1.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/device&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dlog&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-buffer-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-con-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-file-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-imf-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-imf-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-input-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-input-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-ipc-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ector-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/e_dbus-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/edje-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eet-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efl-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efl-extension&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efreet-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eina-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eina-1/eina&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eio-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eldbus-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/elementary-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/embryo-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/emile-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eo-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eom&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ethumb-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ethumb-client-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/feedback&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/fontconfig&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/freetype2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/geofence&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/gio-unix-2.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/glib-2.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/harfbuzz&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/iotcon&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/json-glib-1.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/location&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/maps&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/media&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/media-content&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/messaging&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/metadata-editor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/minicontrol&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/minizip&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/network&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/notification&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/nsd/&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/phonenumber-utils&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/sensor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/service-adaptor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/shortcut&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/storage&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/system&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/telephony&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ui&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/web&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_service&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_viewer_evas&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/wifi-direct&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/lib/dbus-1.0/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/lib/glib-2.0/include&quot;"/>
+                                                               </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=&quot;${SBI_SYSROOT}&quot;"/>
+                                                                       <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="&quot;${workspace_loc:/${ProjName}/inc}&quot;"/>
+                                                               </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="&quot;${SBI_SYSROOT}/usr/include/libxml2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appcore-agent&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appfw&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/attach-panel&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/badge&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/base&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/cairo&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/calendar-service2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/chromium-ewk&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ckm&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/contacts-svc&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/content&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/context-service&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dali&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dali-toolkit&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dbus-1.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/device&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dlog&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-buffer-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-con-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-file-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-imf-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-imf-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-input-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-input-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-ipc-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ector-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/e_dbus-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/edje-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eet-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efl-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efl-extension&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efreet-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eina-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eina-1/eina&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eio-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eldbus-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/elementary-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/embryo-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/emile-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eo-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eom&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ethumb-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ethumb-client-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/feedback&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/fontconfig&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/freetype2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/geofence&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/gio-unix-2.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/glib-2.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/harfbuzz&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/iotcon&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/json-glib-1.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/location&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/maps&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/media&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/media-content&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/messaging&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/metadata-editor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/minicontrol&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/minizip&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/network&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/notification&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/nsd/&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/phonenumber-utils&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/sensor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/service-adaptor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/shortcut&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/storage&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/system&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/telephony&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ui&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/web&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_service&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_viewer_evas&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/wifi-direct&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/lib/dbus-1.0/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/lib/glib-2.0/include&quot;"/>
+                                                               </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=&quot;${SBI_SYSROOT}&quot;"/>
+                                                                       <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="&quot;${workspace_loc:/${ProjName}/inc}&quot;"/>
+                                                               </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=&quot;/home/developer/sdk_tools/lib&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="--sysroot=&quot;${SBI_SYSROOT}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="-Xlinker --version-script=&quot;${PROJ_PATH}/.exportMap&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="-L&quot;${SBI_SYSROOT}/usr/lib&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="$(RS_LIBRARIES)"/>
+                                                               </option>
+                                                               <option id="gnu.cpp.link.option.paths.2114762762" name="Library search path (-L)" superClass="gnu.cpp.link.option.paths" valueType="libPaths">
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/lib}&quot;"/>
+                                                               </option>
+                                                               <inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.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="&quot;${SBI_SYSROOT}/usr/include/libxml2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appcore-agent&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appfw&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/attach-panel&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/badge&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/base&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/cairo&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/calendar-service2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/chromium-ewk&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ckm&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/contacts-svc&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/content&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/context-service&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dali&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dali-toolkit&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dbus-1.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/device&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dlog&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-buffer-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-con-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-file-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-imf-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-imf-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-input-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-input-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-ipc-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ector-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/e_dbus-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/edje-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eet-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efl-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efl-extension&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efreet-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eina-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eina-1/eina&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eio-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eldbus-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/elementary-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/embryo-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/emile-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eo-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eom&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ethumb-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ethumb-client-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/feedback&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/fontconfig&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/freetype2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/geofence&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/gio-unix-2.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/glib-2.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/harfbuzz&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/iotcon&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/json-glib-1.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/location&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/maps&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/media&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/media-content&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/messaging&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/metadata-editor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/minicontrol&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/minizip&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/network&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/notification&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/nsd/&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/phonenumber-utils&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/sensor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/service-adaptor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/shortcut&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/storage&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/system&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/telephony&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ui&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/web&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_service&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_viewer_evas&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/wifi-direct&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/lib/dbus-1.0/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/lib/glib-2.0/include&quot;"/>
+                                                               </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=&quot;${SBI_SYSROOT}&quot;"/>
+                                                               </option>
+                                                               <option id="gnu.cpp.compiler.option.include.paths.1038456025" superClass="gnu.cpp.compiler.option.include.paths" valueType="includePath">
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/inc}&quot;"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.cpp.compiler.option.frameworks.core.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="&quot;${SBI_SYSROOT}/usr/include/libxml2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appcore-agent&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appfw&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/attach-panel&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/badge&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/base&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/cairo&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/calendar-service2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/chromium-ewk&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ckm&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/contacts-svc&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/content&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/context-service&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dali&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dali-toolkit&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dbus-1.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/device&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dlog&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-buffer-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-con-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-file-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-imf-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-imf-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-input-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-input-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-ipc-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ector-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/e_dbus-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/edje-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eet-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efl-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efl-extension&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efreet-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eina-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eina-1/eina&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eio-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eldbus-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/elementary-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/embryo-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/emile-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eo-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eom&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ethumb-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ethumb-client-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/feedback&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/fontconfig&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/freetype2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/geofence&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/gio-unix-2.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/glib-2.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/harfbuzz&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/iotcon&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/json-glib-1.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/location&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/maps&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/media&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/media-content&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/messaging&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/metadata-editor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/minicontrol&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/minizip&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/network&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/notification&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/nsd/&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/phonenumber-utils&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/sensor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/service-adaptor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/shortcut&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/storage&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/system&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/telephony&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ui&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/web&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_service&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_viewer_evas&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/wifi-direct&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/lib/dbus-1.0/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/lib/glib-2.0/include&quot;"/>
+                                                               </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=&quot;${SBI_SYSROOT}&quot;"/>
+                                                               </option>
+                                                               <option id="gnu.c.compiler.option.include.paths.320532325" superClass="gnu.c.compiler.option.include.paths" valueType="includePath">
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/inc}&quot;"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.c.compiler.option.frameworks.core.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=&quot;/home/developer/sdk_tools/lib&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="--sysroot=&quot;${SBI_SYSROOT}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="-Xlinker --version-script=&quot;${PROJ_PATH}/.exportMap&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="-L&quot;${SBI_SYSROOT}/usr/lib&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="$(RS_LIBRARIES)"/>
+                                                               </option>
+                                                               <option id="gnu.cpp.link.option.paths.647019302" superClass="gnu.cpp.link.option.paths" valueType="libPaths">
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/lib}&quot;"/>
+                                                               </option>
+                                                               <inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.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>
diff --git a/operationpickviewapp/.exportMap b/operationpickviewapp/.exportMap
new file mode 100644 (file)
index 0000000..43e310e
--- /dev/null
@@ -0,0 +1,4 @@
+{
+       global: main;
+       local: *;
+};
diff --git a/operationpickviewapp/.gitignore b/operationpickviewapp/.gitignore
new file mode 100644 (file)
index 0000000..ffab4a7
--- /dev/null
@@ -0,0 +1,3 @@
+/SA_Report
+/Debug
+/.sign
diff --git a/operationpickviewapp/.package-stamp b/operationpickviewapp/.package-stamp
new file mode 100644 (file)
index 0000000..40cbe59
--- /dev/null
@@ -0,0 +1 @@
+TPK
\ No newline at end of file
diff --git a/operationpickviewapp/.project b/operationpickviewapp/.project
new file mode 100644 (file)
index 0000000..6c7a060
--- /dev/null
@@ -0,0 +1,26 @@
+<?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>
diff --git a/operationpickviewapp/.rds_delta b/operationpickviewapp/.rds_delta
new file mode 100644 (file)
index 0000000..f676049
--- /dev/null
@@ -0,0 +1,6 @@
+#delete
+#add
+#modify
+author-signature.xml
+signature1.xml
+tizen-manifest.xml
diff --git a/operationpickviewapp/.sdk_delta.info b/operationpickviewapp/.sdk_delta.info
new file mode 100644 (file)
index 0000000..018296c
Binary files /dev/null and b/operationpickviewapp/.sdk_delta.info differ
diff --git a/operationpickviewapp/.tproject b/operationpickviewapp/.tproject
new file mode 100644 (file)
index 0000000..56660b2
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<tproject xmlns="http://www.tizen.org/tproject">
+    <platforms>
+        <platform>
+            <name>mobile-3.0</name>
+        </platform>
+    </platforms>
+    <package>
+        <blacklist/>
+        <resFallback autoGen="true"/>
+    </package>
+</tproject>
diff --git a/operationpickviewapp/inc/filemanager-util.h b/operationpickviewapp/inc/filemanager-util.h
new file mode 100644 (file)
index 0000000..94ad6bd
--- /dev/null
@@ -0,0 +1,175 @@
+/*******************************************************************************
+ * 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
diff --git a/operationpickviewapp/inc/logger.h b/operationpickviewapp/inc/logger.h
new file mode 100644 (file)
index 0000000..b2f6119
--- /dev/null
@@ -0,0 +1,57 @@
+/*******************************************************************************
+ * 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__ */
diff --git a/operationpickviewapp/inc/operationpickviewapp.h b/operationpickviewapp/inc/operationpickviewapp.h
new file mode 100644 (file)
index 0000000..0922e6e
--- /dev/null
@@ -0,0 +1,52 @@
+/*******************************************************************************
+ * 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__ */
diff --git a/operationpickviewapp/inc/soundplayer-util.h b/operationpickviewapp/inc/soundplayer-util.h
new file mode 100644 (file)
index 0000000..637999e
--- /dev/null
@@ -0,0 +1,49 @@
+/*******************************************************************************
+ * 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
+
+
diff --git a/operationpickviewapp/inc/ui-utils.h b/operationpickviewapp/inc/ui-utils.h
new file mode 100644 (file)
index 0000000..0090b19
--- /dev/null
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * 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__ */
diff --git a/operationpickviewapp/inc/videoplayer-util.h b/operationpickviewapp/inc/videoplayer-util.h
new file mode 100644 (file)
index 0000000..5dfeb5f
--- /dev/null
@@ -0,0 +1,47 @@
+/*******************************************************************************
+ * 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
diff --git a/operationpickviewapp/project_def.prop b/operationpickviewapp/project_def.prop
new file mode 100644 (file)
index 0000000..5a62beb
--- /dev/null
@@ -0,0 +1,11 @@
+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
diff --git a/operationpickviewapp/res/edje/operationpickviewapp.edc b/operationpickviewapp/res/edje/operationpickviewapp.edc
new file mode 100644 (file)
index 0000000..391d188
--- /dev/null
@@ -0,0 +1,21 @@
+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;
+               }
+            }
+            
+         }
+      }
+   }
+}
diff --git a/operationpickviewapp/shared/res/operationpickviewapp.png b/operationpickviewapp/shared/res/operationpickviewapp.png
new file mode 100644 (file)
index 0000000..9765b1b
Binary files /dev/null and b/operationpickviewapp/shared/res/operationpickviewapp.png differ
diff --git a/operationpickviewapp/src/filemanager-util.c b/operationpickviewapp/src/filemanager-util.c
new file mode 100644 (file)
index 0000000..ea55043
--- /dev/null
@@ -0,0 +1,151 @@
+/*******************************************************************************
+ * 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);
+               }
+
+
+}
diff --git a/operationpickviewapp/src/operationpickviewapp.c b/operationpickviewapp/src/operationpickviewapp.c
new file mode 100644 (file)
index 0000000..03d4f40
--- /dev/null
@@ -0,0 +1,723 @@
+/*******************************************************************************
+ * 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;
+}
+
+
+
+
diff --git a/operationpickviewapp/src/soundplayer-util.c b/operationpickviewapp/src/soundplayer-util.c
new file mode 100644 (file)
index 0000000..e760d08
--- /dev/null
@@ -0,0 +1,213 @@
+/*******************************************************************************
+ * 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;
+}
+
diff --git a/operationpickviewapp/src/ui-utils.c b/operationpickviewapp/src/ui-utils.c
new file mode 100644 (file)
index 0000000..81bef1d
--- /dev/null
@@ -0,0 +1,53 @@
+/*******************************************************************************
+ * 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;
+}
diff --git a/operationpickviewapp/src/videoplayer-util.c b/operationpickviewapp/src/videoplayer-util.c
new file mode 100644 (file)
index 0000000..b61bd3e
--- /dev/null
@@ -0,0 +1,169 @@
+/*******************************************************************************
+ * 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;
+    }
+}
diff --git a/operationpickviewapp/tizen-manifest.xml b/operationpickviewapp/tizen-manifest.xml
new file mode 100644 (file)
index 0000000..ce3754c
--- /dev/null
@@ -0,0 +1,97 @@
+<?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>
index 0c49acdd61f130b7256161140a6273057e1d42c5..6fba8341e8b12a6cb2db6d6fb165f560959aa8ae 100644 (file)
@@ -29,7 +29,8 @@ sdb install org.tizen.coretbt_serviceapp-0.0.1-1.armv7l.tpk
 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
diff --git a/release/binary-armv7l/org.tizen.operationpickviewapp-1.0.0-arm.tpk b/release/binary-armv7l/org.tizen.operationpickviewapp-1.0.0-arm.tpk
new file mode 100644 (file)
index 0000000..2c91933
Binary files /dev/null and b/release/binary-armv7l/org.tizen.operationpickviewapp-1.0.0-arm.tpk differ
diff --git a/release/binary-armv7l/org.tizen.tbtcoreapp-0.0.1-1.armv7l.tpk b/release/binary-armv7l/org.tizen.tbtcoreapp-0.0.1-1.armv7l.tpk
deleted file mode 100644 (file)
index 23c274b..0000000
Binary files a/release/binary-armv7l/org.tizen.tbtcoreapp-0.0.1-1.armv7l.tpk and /dev/null differ
diff --git a/release/binary-armv7l/org.tizen.tbtcoreapp-1.0.0-arm.tpk b/release/binary-armv7l/org.tizen.tbtcoreapp-1.0.0-arm.tpk
new file mode 100644 (file)
index 0000000..0e2177c
Binary files /dev/null and b/release/binary-armv7l/org.tizen.tbtcoreapp-1.0.0-arm.tpk differ
index 310d72136bc2729477d2e16a01c0311accd32434..0aeb09ee6c66b3e617638119390c66ed7f5d2709 100644 (file)
@@ -29,6 +29,7 @@ sdb install org.tizen.coretbt_serviceapp-1.0.0-i386.tpk
 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
diff --git a/release/binary-x86/org.tizen.operationpickviewapp-1.0.0-i386.tpk b/release/binary-x86/org.tizen.operationpickviewapp-1.0.0-i386.tpk
new file mode 100644 (file)
index 0000000..4ee27e5
Binary files /dev/null and b/release/binary-x86/org.tizen.operationpickviewapp-1.0.0-i386.tpk differ
index 48f41ba90689c223621971ecb4d6703621466a5d..7fdd1638668bd5fe0e15f1f80684367637fdf6fa 100644 (file)
Binary files a/release/binary-x86/org.tizen.tbtcoreapp-1.0.0-i386.tpk and b/release/binary-x86/org.tizen.tbtcoreapp-1.0.0-i386.tpk differ
index 2d8c87dd2134c42b31144f851c4f271fa79e7fb4..2c8450e82f312412942cec066e98949e0a8e9961 100755 (executable)
@@ -8,7 +8,6 @@ SET(PKG_MODULES
 accounts-svc
 ail
 appcore-efl
-appfw-env
 appsvc
 attach-panel
 aul
@@ -44,7 +43,6 @@ ecore-evas
 ecore-file
 ecore-imf
 ecore-input
-ecore-x
 edje
 eet
 efl-extension
@@ -64,8 +62,11 @@ pkgmgr-info
 shortcut
 storage
 syspopup-caller
-utilX
-x11
+nsd-dns-sd
+nsd-ssdp
+capi-network-mtp
+ecore-wayland
+efl
 )
 
 INCLUDE(FindPkgConfig)
@@ -92,7 +93,6 @@ TARGET_LINK_LIBRARIES(${PROJECT_NAME}
                capi-appfw-application
                capi-appfw-preference
                capi-base-common
-               capi-data-control
                capi-location-manager 
                capi-media-camera
                capi-media-player
@@ -126,6 +126,11 @@ TARGET_LINK_LIBRARIES(${PROJECT_NAME}
                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)
index 5a64272fadcfa0b7b694ce1069ffba4850177e5b..9df84c651e60824fdc2919e0dddf2ae1f8798428 100644 (file)
@@ -178,8 +178,14 @@ typedef enum {
 
     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
index f7a9126e36b05828db0cb8a79d89038a025b48c0..cf855ba9feff5ed08bbf88dbb48bcaf0f0674f33 100644 (file)
 #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
diff --git a/tbtcoreapp/inc/view/tbt-nsd-ssdp-view.h b/tbtcoreapp/inc/view/tbt-nsd-ssdp-view.h
new file mode 100644 (file)
index 0000000..3d74479
--- /dev/null
@@ -0,0 +1,53 @@
+/*******************************************************************************
+ * 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__
index 9e6e291c12d1e8b2bc4df75c2479217a0acb1af4..447e4f4898241512f101d7724a2cc0199611bd75 100755 (executable)
@@ -19,7 +19,6 @@ BuildRequires: pkgconfig(ail)
 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)
@@ -69,7 +68,6 @@ BuildRequires: pkgconfig(ecore-evas)
 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)
@@ -91,24 +89,24 @@ BuildRequires: pkgconfig(key-manager)
 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
diff --git a/tbtcoreapp/res/edje/2.4/mobile/nsd_dnssd_viewer.edc b/tbtcoreapp/res/edje/2.4/mobile/nsd_dnssd_viewer.edc
deleted file mode 100644 (file)
index f289d0c..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * 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; }
-                }
-            }
-        }
-    }
-}
diff --git a/tbtcoreapp/res/edje/2.4/mobile/nsd_viewer.edc b/tbtcoreapp/res/edje/2.4/mobile/nsd_viewer.edc
new file mode 100644 (file)
index 0000000..31543bc
--- /dev/null
@@ -0,0 +1,108 @@
+/*
+ * 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; }
+                }
+            }
+
+        }
+    }
+}
diff --git a/tbtcoreapp/res/edje/3.0/mobile/nsd_viewer.edc b/tbtcoreapp/res/edje/3.0/mobile/nsd_viewer.edc
new file mode 100644 (file)
index 0000000..31543bc
--- /dev/null
@@ -0,0 +1,108 @@
+/*
+ * 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; }
+                }
+            }
+
+        }
+    }
+}
index 4f723672ba5f3cbfb1ccb36783d8ece009328c58..98c9c0174c3bb130b1e7a13f9745241c4f340d5c 100644 (file)
@@ -1447,7 +1447,7 @@ static tbt_info tbtapps[] =
 #ifdef TBT_MODULE_MTP
        #ifdef TBT_MODULE_APP_MTP
 
-               //HW-SW Feature summary
+               //MTP
                {
                        .name = "MTP",
                        .parent = "MTP",
@@ -1460,18 +1460,51 @@ static tbt_info tbtapps[] =
 #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
index b5393dd2544dc90d408b04ed3d8b0a0558ce5da6..aa5c7d07f8c8d230d762551f42c41f8306b49ba1 100644 (file)
@@ -82,6 +82,7 @@
 #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"
 
@@ -948,9 +949,18 @@ static void _gl_item_selected_cb(void *data, Evas_Object *obj EINA_UNUSED, void
                #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
index 0c6a5cafefb68e744a2cf0c141ad6750f72bc9e8..450447b3900f5602b4f79ac483d2e2dd5fac9723 100644 (file)
@@ -139,7 +139,8 @@ static void mtp_functions(mtp_view *this)
        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);
@@ -175,8 +176,8 @@ static void mtp_functions(mtp_view *this)
                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);
@@ -223,7 +224,8 @@ static void mtp_functions(mtp_view *this)
                        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);
@@ -256,7 +258,8 @@ static void mtp_functions(mtp_view *this)
                                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));
 
@@ -322,7 +325,8 @@ static void _app_destroy_cb(void* this)
        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]);
        }
index ebd5555dd87a68af00117fa486fd737cf1d1ce1d..fbb0989d138838e4de3bb2ec3bd3d914168a8507 100644 (file)
@@ -44,8 +44,15 @@ struct _nsd_dnssd_view
        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;
 };
 
 
@@ -54,8 +61,9 @@ static char* get_dns_sd_error(dnssd_error_e error);
 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);
 
 
 /**
@@ -76,7 +84,7 @@ nsd_dnssd_view *nsd_dnssd_view_add(Evas_Object *navi, tbt_info *tbt_info, Elm_Ob
     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);
 
@@ -93,8 +101,16 @@ nsd_dnssd_view *nsd_dnssd_view_add(Evas_Object *navi, tbt_info *tbt_info, Elm_Ob
        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);
@@ -118,31 +134,36 @@ static void dns_sd_api(void* data)
        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;
@@ -151,26 +172,182 @@ static void _dnssd_found_cb(dnssd_service_state_e service_state, dnssd_service_h
        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");
@@ -178,30 +355,16 @@ static void _on_browse_btn_clickded_cb(void *data, Evas_Object *obj, void *event
        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);
 }
 
 
@@ -216,8 +379,34 @@ static void _app_destroy_cb(void* this)
 {
        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);
@@ -271,5 +460,48 @@ static char* get_dns_sd_error(dnssd_error_e error)
        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
diff --git a/tbtcoreapp/src/view/tbt-nsd-ssdp-view.c b/tbtcoreapp/src/view/tbt-nsd-ssdp-view.c
new file mode 100644 (file)
index 0000000..5c1cfa7
--- /dev/null
@@ -0,0 +1,369 @@
+/*******************************************************************************
+ * 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
index 877ad3fa7779c76cb3f10e7994b66d016c9a5056..7f9f502c5f0b98b7d9f9e331c014a91d0bfdb670 100644 (file)
 #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
 
@@ -261,7 +266,7 @@ static void start_google_oauth_code(void* data)
        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);
diff --git a/tbtcoreapp/tbt32_mobile.conf b/tbtcoreapp/tbt32_mobile.conf
new file mode 100755 (executable)
index 0000000..4809ccf
--- /dev/null
@@ -0,0 +1,30 @@
+[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==