Revert "[Tizen] feedback-plugin enabled for Unified profile" 44/134844/1
authorHeeyong Song <heeyong.song@samsung.com>
Tue, 20 Jun 2017 06:57:58 +0000 (15:57 +0900)
committerHeeyong Song <heeyong.song@samsung.com>
Tue, 20 Jun 2017 06:58:01 +0000 (15:58 +0900)
This reverts commit 694aa6879854276ed5b2184fdd0827c16df25260.

Change-Id: Ic9a27a3f4ad61e4d106b2663791a12fb92f1f642

build/tizen/plugins/Makefile.am
build/tizen/plugins/configure.ac
packaging/dali-adaptor.spec
plugins/dali-feedback.cpp
plugins/dali-feedback.h

index 5944acd..2fb8f35 100644 (file)
@@ -56,7 +56,6 @@ libdali_feedback_plugin_la_CXXFLAGS = -DDALI_COMPILATION \
                       -I../../../adaptors/public-api \
                       -I../../../adaptors/integration-api \
                       -I../../../adaptors/public-api/adaptor-framework \
-                      -I../../../adaptors/devel-api/adaptor-framework \
                       -Werror -Wall
 
 libdali_feedback_plugin_la_LIBADD = \
@@ -66,6 +65,30 @@ libdali_feedback_plugin_la_LIBADD = \
 libdali_feedback_plugin_la_LDFLAGS = \
                       -rdynamic
 
+if MOBILE_PROFILE
+libdali_feedback_plugin_la_CXXFLAGS += \
+                      $(DEVICED_CFLAGS)
+
+libdali_feedback_plugin_la_LIBADD += \
+                      $(DEVICED_LIBS)
+endif
+
+if TV_PROFILE
+libdali_feedback_plugin_la_CXXFLAGS += \
+                      $(HAPTIC_CFLAGS)
+
+libdali_feedback_plugin_la_LIBADD += \
+                      $(HAPTIC_LIBS)
+endif
+
+if COMMON_PROFILE
+libdali_feedback_plugin_la_CXXFLAGS += \
+                      $(HAPTIC_CFLAGS)
+
+libdali_feedback_plugin_la_LIBADD += \
+                      $(HAPTIC_LIBS)
+endif
+
 libdali_feedback_plugin_la_LIBADD += \
                       $(FEEDBACK_LIBS)
 
index 3bd8eb9..b8088b2 100644 (file)
@@ -35,12 +35,18 @@ fi # enable_videoplayer
 fi # enable_wayland
 
 if test "x$enable_feedback" = "xyes"; then
-if test "x$enable_profile" != "xUBUNTU"; then
+
+if test "x$enable_profile" = "xCOMMON" || test "x$enable_profile" = "xTV"; then
+PKG_CHECK_MODULES(HAPTIC, haptic)
+fi
+
+if test "x$enable_profile" = "xMOBILE"; then
+PKG_CHECK_MODULES(DEVICED, deviced)
+fi
 
 PKG_CHECK_MODULES(FEEDBACK, feedback)
 PKG_CHECK_MODULES(MMFSOUND, mm-sound)
 
-fi # check UNBUNTU
 fi # enable_feedback
 
 AC_CONFIG_FILES(Makefile)
index bf9115f..2b93941 100644 (file)
@@ -118,7 +118,8 @@ BuildRequires:  pkgconfig(capi-system-system-settings)
 
 # for feedback plugin
 BuildRequires:  pkgconfig(mm-sound)
-BuildRequires:  pkgconfig(feedback)
+BuildRequires:  pkgconfig(deviced)
+BuildRequires:  libfeedback-devel
 
 # for videoplayer Plugin
 BuildRequires:  pkgconfig(capi-media-player)
@@ -140,6 +141,7 @@ platform abstraction and application shell
 # if mobile || "undefined"
 %if "%{?profile}" != "wearable" && "%{?profile}" != "tv" && "%{?profile}" != "ivi" && "%{?profile}" != "common"
 %package profile_mobile
+%define dali_feedback_plugin_mobile 0
 Summary:       The DALi Tizen Adaptor for mobile
 Provides:      %{name}-compat = %{version}-%{release}
 Conflicts:     %{name}-profile_tv
@@ -154,6 +156,7 @@ The DALi Tizen Adaptor for mobile.
 # if tv ||"undefined"
 %if "%{?profile}" != "wearable" && "%{?profile}" != "common" && "%{?profile}" != "ivi" && "%{?profile}" != "mobile"
 %package profile_tv
+%define dali_feedback_plugin_tv 0
 Summary:       The DALi Tizen Adaptor for tv
 Provides:      %{name}-compat = %{version}-%{release}
 Conflicts:     %{name}-profile_mobile
@@ -168,6 +171,7 @@ The DALi Tizen Adaptor for tv.
 # if wearable || "undefined"
 %if "%{?profile}" != "mobile" && "%{?profile}" != "tv" && "%{?profile}" != "ivi" && "%{?profile}" != "common"
 %package profile_wearable
+%define dali_feedback_plugin_wearable 0
 Summary:       The DALi Tizen Adaptor for wearable
 Provides:      %{name}-compat = %{version}-%{release}
 Conflicts:     %{name}-profile_mobile
@@ -182,6 +186,7 @@ The DALi Tizen Adaptor for wearable.
 # if ivi ||"undefined"
 %if "%{?profile}" != "wearable" && "%{?profile}" != "tv" && "%{?profile}" != "common" && "%{?profile}" != "mobile"
 %package profile_ivi
+%define dali_feedback_plugin_ivi 0
 Summary:       The DALi Tizen Adaptor for ivi
 Provides:      %{name}-compat = %{version}-%{release}
 Conflicts:     %{name}-profile_mobile
@@ -197,6 +202,7 @@ The DALi Tizen Adaptor for ivi.
 %if "%{?profile}" != "wearable" && "%{?profile}" != "tv" && "%{?profile}" != "ivi" && "%{?profile}" != "mobile"
 # Currently Tizen Common we use does not have wayland extensions like xdg-shell
 %package profile_common
+%define dali_feedback_plugin_common 0
 %define tizen_2_2_compatibility 0
 Summary:  The DALi Tizen Adaptor for common
 Provides:      %{name}-compat = %{version}-%{release}
@@ -239,9 +245,96 @@ Integration development package for the Adaptor - headers for integrating with a
 Summary:    Plugin to play haptic and audio feedback for Dali
 Group:      System/Libraries
 Requires:   %{name} = %{version}-%{release}
+Requires:   %{name}-dali-feedback-plugin-compat = %{version}-%{release}
+Recommends: %{name}-dali-feedback-plugin-profile_common = %{version}-%{release}
 %description dali-feedback-plugin
 eedback plugin to play haptic and audio feedback for Dali
 
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if mobile || "undefined"
+%if "%{?profile}" != "wearable" && "%{?profile}" != "tv" && "%{?profile}" != "ivi" && "%{?profile}" != "common"
+%package dali-feedback-plugin-profile_mobile
+Summary:    Plugin to play haptic and audio feedback for Dali profile mobile.
+Group:      System/Libraries
+%if 0%{?dali_feedback_plugin_mobile}
+Provides:      %{name}-dali-feedback-plugin-compat = %{version}-%{release}
+Conflicts:     %{name}-dali-feedback-plugin-profile_ivi
+Conflicts:     %{name}-dali-feedback-plugin-profile_wearable
+Conflicts:     %{name}-dali-feedback-plugin-profile_tv
+Conflicts:     %{name}-dali-feedback-plugin-profile_common
+%endif
+%description dali-feedback-plugin-profile_mobile
+Feedback plugin to play haptic and audio feedback for Dali profile mobile.
+%endif
+
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if tv ||"undefined"
+%if "%{?profile}" != "wearable" && "%{?profile}" != "common" && "%{?profile}" != "ivi" && "%{?profile}" != "mobile"
+%package dali-feedback-plugin-profile_tv
+Summary:    Plugin to play haptic and audio feedback for Dali profile tv.
+Group:      System/Libraries
+%if 0%{?dali_feedback_plugin_tv}
+Provides:      %{name}-dali-feedback-plugin-compat = %{version}-%{release}
+Conflicts:     %{name}-dali-feedback-plugin-profile_ivi
+Conflicts:     %{name}-dali-feedback-plugin-profile_wearable
+Conflicts:     %{name}-dali-feedback-plugin-profile_mobile
+Conflicts:     %{name}-dali-feedback-plugin-profile_common
+%endif
+%description dali-feedback-plugin-profile_tv
+Feedback plugin to play haptic and audio feedback for Dali profile tv.
+%endif
+
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if wearable || "undefined"
+%if "%{?profile}" != "mobile" && "%{?profile}" != "tv" && "%{?profile}" != "ivi" && "%{?profile}" != "common"
+%package dali-feedback-plugin-profile_wearable
+Summary:    Plugin to play haptic and audio feedback for Dali profile wearable.
+Group:      System/Libraries
+%if 0%{?dali_feedback_plugin_wearable}
+Provides:      %{name}-dali-feedback-plugin-compat = %{version}-%{release}
+Conflicts:     %{name}-dali-feedback-plugin-profile_ivi
+Conflicts:     %{name}-dali-feedback-plugin-profile_tv
+Conflicts:     %{name}-dali-feedback-plugin-profile_mobile
+Conflicts:     %{name}-dali-feedback-plugin-profile_common
+%endif
+%description dali-feedback-plugin-profile_wearable
+Feedback plugin to play haptic and audio feedback for Dali profile wearable.
+%endif
+
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if ivi ||"undefined"
+%if "%{?profile}" != "wearable" && "%{?profile}" != "tv" && "%{?profile}" != "common" && "%{?profile}" != "mobile"
+%package dali-feedback-plugin-profile_ivi
+Summary:    Plugin to play haptic and audio feedback for Dali profile ivi.
+Group:      System/Libraries
+%if 0%{?dali_feedback_plugin_ivi}
+Provides:      %{name}-dali-feedback-plugin-compat = %{version}-%{release}
+Conflicts:     %{name}-dali-feedback-plugin-profile_wearable
+Conflicts:     %{name}-dali-feedback-plugin-profile_tv
+Conflicts:     %{name}-dali-feedback-plugin-profile_mobile
+Conflicts:     %{name}-dali-feedback-plugin-profile_common
+%endif
+%description dali-feedback-plugin-profile_ivi
+Feedback plugin to play haptic and audio feedback for Dali profile ivi.
+%endif
+
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if common ||"undefined"
+%if "%{?profile}" != "wearable" && "%{?profile}" != "tv" && "%{?profile}" != "ivi" && "%{?profile}" != "mobile"
+%package dali-feedback-plugin-profile_common
+Summary:    Plugin to play haptic and audio feedback for Dali profile common.
+Group:      System/Libraries
+%if 0%{?dali_feedback_plugin_common}
+Provides:      %{name}-dali-feedback-plugin-compat = %{version}-%{release}
+Conflicts:     %{name}-dali-feedback-plugin-profile_wearable
+Conflicts:     %{name}-dali-feedback-plugin-profile_tv
+Conflicts:     %{name}-dali-feedback-plugin-profile_mobile
+Conflicts:     %{name}-dali-feedback-plugin-profile_ivi
+%endif
+%description dali-feedback-plugin-profile_common
+Feedback plugin to play haptic and audio feedback for Dali profile common.
+%endif
+
 ##############################
 # Dali VideoPlayer Plugin
 ##############################
@@ -279,7 +372,7 @@ VideoPlayer plugin to play a video file for Dali
 %endif
 
 %define user_shader_cache_dir    %{dali_data_ro_dir}/core/shaderbin/
-%define dali_plugin_sound_files  /plugins/sounds/
+%define dali_plugin_sound_files  %{dali_data_ro_dir}/plugins/sounds/
 %define dev_include_path %{_includedir}
 
 ##############################
@@ -333,11 +426,13 @@ TIZEN_PLATFORM_CONFIG_SUPPORTED="%{tizen_platform_config_supported}" ; export TI
 %if "%{?profile}" != "wearable" && "%{?profile}" != "tv" && "%{?profile}" != "ivi" && "%{?profile}" != "common"
 %configure --prefix=$PREFIX --with-jpeg-turbo --enable-gles=%{target_gles_version} \
            --enable-shaderbincache=DISABLE --enable-profile=MOBILE \
+%if 0%{?dali_feedback_plugin_mobile}
            --enable-feedback \
-           --enable-videoplayer \
+%endif
 %if 0%{?tizen_2_2_compatibility}
            --with-tizen-2-2-compatibility \
 %endif
+           --enable-videoplayer \
 %if %{with wayland}
            --enable-efl=no \
 %else
@@ -359,6 +454,9 @@ popd
 
 pushd %{buildroot}%{_libdir}
 for FILE in libdali-adap*.so*; do mv "$FILE" "%{_builddir}/%{name}-%{version}/build/tizen/$FILE.mobile"; done
+%if 0%{?dali_feedback_plugin_mobile}
+for FILE in libdali-feedback-plugin.so*; do mv "$FILE" "%{_builddir}/%{name}-%{version}/build/tizen/$FILE.mobile"; done
+%endif
 popd
 
 %endif
@@ -369,11 +467,13 @@ popd
 %if "%{?profile}" != "wearable" && "%{?profile}" != "common" && "%{?profile}" != "ivi" && "%{?profile}" != "mobile"
 %configure --prefix=$PREFIX --with-jpeg-turbo --enable-gles=%{target_gles_version} \
            --enable-shaderbincache=DISABLE --enable-profile=TV \
+%if 0%{?dali_feedback_plugin_tv}
            --enable-feedback \
-           --enable-videoplayer \
+%endif
 %if 0%{?tizen_2_2_compatibility}
            --with-tizen-2-2-compatibility \
 %endif
+           --enable-videoplayer \
 %if %{with wayland}
            --enable-efl=no \
 %else
@@ -395,6 +495,9 @@ popd
 
 pushd %{buildroot}%{_libdir}
 for FILE in libdali-adap*.so*; do mv "$FILE" "%{_builddir}/%{name}-%{version}/build/tizen/$FILE.tv"; done
+%if 0%{?dali_feedback_plugin_tv}
+for FILE in libdali-feedback-plugin.so*; do mv "$FILE" "%{_builddir}/%{name}-%{version}/build/tizen/$FILE.tv"; done
+%endif
 popd
 
 %endif
@@ -405,7 +508,9 @@ popd
 %if "%{?profile}" != "mobile" && "%{?profile}" != "tv" && "%{?profile}" != "ivi" && "%{?profile}" != "common"
 %configure --prefix=$PREFIX --with-jpeg-turbo --enable-gles=%{target_gles_version} \
            --enable-shaderbincache=DISABLE --enable-profile=WEARABLE \
+%if 0%{?dali_feedback_plugin_wearable}
            --enable-feedback \
+%endif
            --enable-videoplayer \
 %if 0%{?tizen_2_2_compatibility}
            --with-tizen-2-2-compatibility \
@@ -431,6 +536,9 @@ popd
 
 pushd %{buildroot}%{_libdir}
 for FILE in libdali-adap*.so*; do mv "$FILE" "%{_builddir}/%{name}-%{version}/build/tizen/$FILE.wearable"; done
+%if 0%{?dali_feedback_plugin_wearable}
+for FILE in libdali-feedback-plugin.so*; do mv "$FILE" "%{_builddir}/%{name}-%{version}/build/tizen/$FILE.wearable"; done
+%endif
 popd
 
 %endif
@@ -441,11 +549,13 @@ popd
 %if "%{?profile}" != "wearable" && "%{?profile}" != "tv" && "%{?profile}" != "common" && "%{?profile}" != "mobile"
 %configure --prefix=$PREFIX --with-jpeg-turbo --enable-gles=%{target_gles_version} \
            --enable-shaderbincache=DISABLE --enable-profile=IVI \
+%if 0%{?dali_feedback_plugin_ivi}
            --enable-feedback \
-           --enable-videoplayer \
+%endif
 %if 0%{?tizen_2_2_compatibility}
            --with-tizen-2-2-compatibility \
 %endif
+           --enable-videoplayer \
 %if %{with wayland}
            --enable-efl=no \
 %else
@@ -467,6 +577,9 @@ popd
 
 pushd %{buildroot}%{_libdir}
 for FILE in libdali-adap*.so*; do mv "$FILE" "%{_builddir}/%{name}-%{version}/build/tizen/$FILE.ivi"; done
+%if 0%{?dali_feedback_plugin_ivi}
+for FILE in libdali-feedback-plugin.so*; do mv "$FILE" "%{_builddir}/%{name}-%{version}/build/tizen/$FILE.ivi"; done
+%endif
 popd
 
 %endif
@@ -478,7 +591,9 @@ popd
 %if "%{?profile}" != "wearable" && "%{?profile}" != "tv" && "%{?profile}" != "ivi" && "%{?profile}" != "mobile"
 %configure --prefix=$PREFIX --with-jpeg-turbo --enable-gles=%{target_gles_version} \
            --enable-shaderbincache=DISABLE --enable-profile=COMMON \
+%if 0%{?dali_feedback_plugin_common}
            --enable-feedback \
+%endif
            --enable-videoplayer \
 %if 0%{?tizen_2_2_compatibility}
            --with-tizen-2-2-compatibility \
@@ -513,6 +628,7 @@ pushd %{_builddir}/%{name}-%{version}/build/tizen
 # !unified && (wearable || tv || ivi || mobile)
 %if "%{?profile}" == "wearable" || "%{?profile}" == "tv" || "%{?profile}" == "ivi" || "%{?profile}" == "mobile"
 rm -rf %{buildroot}%{_libdir}/libdali-adap*.so*
+rm -rf %{buildroot}%{_libdir}/libdali-feedback-plugin.so*
 %endif
 
 # This is for backward-compatibility. This does not deteriorate 4.0 Configurability
@@ -579,6 +695,21 @@ exit 0
 %postun profile_mobile
 /sbin/ldconfig
 exit 0
+
+%if 0%{?dali_feedback_plugin_mobile}
+%post dali-feedback-plugin-profile_mobile
+pushd %{_libdir}
+for FILE in libdali-feedback-plugin.so*.mobile; do ln -sf "$FILE" "${FILE%.mobile}"; done
+popd
+/sbin/ldconfig
+exit 0
+%endif
+
+%if 0%{?dali_feedback_plugin_mobile}
+%postun dali-feedback-plugin-profile_mobile
+/sbin/ldconfig
+exit 0
+%endif
 %endif
 
 ##############################
@@ -596,6 +727,21 @@ exit 0
 %postun profile_tv
 /sbin/ldconfig
 exit 0
+
+%if 0%{?dali_feedback_plugin_tv}
+%post dali-feedback-plugin-profile_tv
+pushd %{_libdir}
+for FILE in libdali-feedback-plugin.so*.tv; do ln -sf "$FILE" "${FILE%.tv}"; done
+popd
+/sbin/ldconfig
+exit 0
+%endif
+
+%if 0%{?dali_feedback_plugin_tv}
+%postun dali-feedback-plugin-profile_tv
+/sbin/ldconfig
+exit 0
+%endif
 %endif
 
 ##############################
@@ -613,6 +759,21 @@ exit 0
 %postun profile_wearable
 /sbin/ldconfig
 exit 0
+
+%if 0%{?dali_feedback_plugin_wearable}
+%post dali-feedback-plugin-profile_wearable
+pushd %{_libdir}
+for FILE in libdali-feedback-plugin.so*.wearable; do ln -sf "$FILE" "${FILE%.wearable}"; done
+popd
+/sbin/ldconfig
+exit 0
+%endif
+
+%if 0%{?dali_feedback_plugin_wearable}
+%postun dali-feedback-plugin-profile_wearable
+/sbin/ldconfig
+exit 0
+%endif
 %endif
 
 ##############################
@@ -630,6 +791,21 @@ exit 0
 %postun profile_ivi
 /sbin/ldconfig
 exit 0
+
+%if 0%{?dali_feedback_plugin_ivi}
+%post dali-feedback-plugin-profile_ivi
+pushd %{_libdir}
+for FILE in libdali-feedback-plugin.so*.ivi; do ln -sf "$FILE" "${FILE%.ivi}"; done
+popd
+/sbin/ldconfig
+exit 0
+%endif
+
+%if 0%{?dali_feedback_plugin_ivi}
+%postun dali-feedback-plugin-profile_ivi
+/sbin/ldconfig
+exit 0
+%endif
 %endif
 
 
@@ -663,16 +839,33 @@ exit 0
 %endif
 
 %files dali-feedback-plugin
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if common ||"undefined"
+%if "%{?profile}" != "wearable" && "%{?profile}" != "tv" && "%{?profile}" != "ivi" && "%{?profile}" != "mobile"
+%if 0%{?dali_feedback_plugin_common}
 %manifest dali-adaptor.manifest
 %defattr(-,root,root,-)
 %{_libdir}/libdali-feedback-plugin.so*
-%{dali_plugin_sound_files}/*
+%exclude %{_libdir}/libdali-feedback-plugin.so*.mobile
+%exclude %{_libdir}/libdali-feedback-plugin.so*.wearable
+%exclude %{_libdir}/libdali-feedback-plugin.so*.tv
+%exclude %{_libdir}/libdali-feedback-plugin.so*.ivi
+%endif
+%endif
 
 # This is for backward-compatibility. This does not deteriorate 4.0 Configurability
 # if common ||"undefined"
 %if "%{?profile}" != "wearable" && "%{?profile}" != "tv" && "%{?profile}" != "ivi" && "%{?profile}" != "mobile"
 %files profile_common
 # default .so files are housed in the main pkg.
+
+%if 0%{?dali_feedback_plugin_common}
+%files dali-feedback-plugin-profile_common
+# default .so files are housed in the main pkg.
+%manifest dali-adaptor.manifest
+%defattr(-,root,root,-)
+%{dali_plugin_sound_files}/*
+%endif
 %endif
 
 # This is for backward-compatibility. This does not deteriorate 4.0 Configurability
@@ -682,6 +875,14 @@ exit 0
 %manifest dali-adaptor.manifest
 %defattr(-,root,root,-)
 %{_libdir}/libdali-adap*.so*.mobile
+
+%if 0%{?dali_feedback_plugin_mobile}
+%files dali-feedback-plugin-profile_mobile
+%manifest dali-adaptor.manifest
+%defattr(-,root,root,-)
+%{_libdir}/libdali-feedback-plugin.so*.mobile
+%{dali_plugin_sound_files}/*
+%endif
 %endif
 
 # This is for backward-compatibility. This does not deteriorate 4.0 Configurability
@@ -691,6 +892,14 @@ exit 0
 %manifest dali-adaptor.manifest
 %defattr(-,root,root,-)
 %{_libdir}/libdali-adap*.so*.tv
+
+%if 0%{?dali_feedback_plugin_tv}
+%files dali-feedback-plugin-profile_tv
+%manifest dali-adaptor.manifest
+%defattr(-,root,root,-)
+%{_libdir}/libdali-feedback-plugin.so*.tv
+%{dali_plugin_sound_files}/*
+%endif
 %endif
 
 # This is for backward-compatibility. This does not deteriorate 4.0 Configurability
@@ -700,6 +909,14 @@ exit 0
 %manifest dali-adaptor.manifest
 %defattr(-,root,root,-)
 %{_libdir}/libdali-adap*.so*.wearable
+
+%if 0%{?dali_feedback_plugin_wearable}
+%files dali-feedback-plugin-profile_wearable
+%manifest dali-adaptor.manifest
+%defattr(-,root,root,-)
+%{_libdir}/libdali-feedback-plugin.so*.wearable
+%{dali_plugin_sound_files}/*
+%endif
 %endif
 
 # This is for backward-compatibility. This does not deteriorate 4.0 Configurability
@@ -709,6 +926,14 @@ exit 0
 %manifest dali-adaptor.manifest
 %defattr(-,root,root,-)
 %{_libdir}/libdali-adap*.so*.ivi
+
+%if 0%{?dali_feedback_plugin_ivi}
+%files dali-feedback-plugin-profile_ivi
+%manifest dali-adaptor.manifest
+%defattr(-,root,root,-)
+%{_libdir}/libdali-feedback-plugin.so*.ivi
+%{dali_plugin_sound_files}/*
+%endif
 %endif
 
 
index 99fb1be..14ae644 100644 (file)
@@ -47,25 +47,86 @@ namespace Plugin
 {
 
 DaliFeedback::DaliFeedback()
+: mHapticInitialized( false )
 {
   feedback_initialize();
+
+  if( 0 == haptic_open( HAPTIC_DEVICE_0, &mDeviceHandle ) )
+  {
+    mHapticInitialized = true;
+  }
+  else
+  {
+    DEBUG_PRINTF( "Haptic feedback controller failed to initialize\n" );
+  }
 }
 
 DaliFeedback::~DaliFeedback()
 {
+  if( mHapticInitialized )
+  {
+    int errorCode = haptic_close( mDeviceHandle );
+    if( errorCode < 0 )
+    {
+      DEBUG_PRINTF( "device_haptic_close() failed with error code: %d\n", errorCode );
+    }
+  }
+
   feedback_deinitialize();
 }
 
 void DaliFeedback::PlayHaptic( const std::string& filePath )
 {
+  if( mHapticInitialized )
+  {
+    if ( filePath.size() == 0 )
+    {
+      DEBUG_PRINTF( "File Path can't be NULL!\n" );
+      return;
+    }
+
+    int errorCode = haptic_vibrate_file_with_detail( mDeviceHandle, filePath.c_str(), HAPTIC_ITERATION_ONCE, HAPTIC_FEEDBACK_AUTO, HAPTIC_PRIORITY_MIN, NULL );
+    if( errorCode != 0 )
+    {
+      DEBUG_PRINTF( "PlayHaptic() failed with error code: %d\n", errorCode );
+    }
+  }
+  else
+  {
+    DEBUG_PRINTF( "HapticPlayer is not Initialized\n" );
+  }
 }
 
 void DaliFeedback::PlayHapticMonotone( unsigned int duration )
 {
+  if( mHapticInitialized )
+  {
+    int errorCode = haptic_vibrate_monotone_with_detail( mDeviceHandle, duration, HAPTIC_FEEDBACK_AUTO, HAPTIC_PRIORITY_MIN, NULL );
+    if( errorCode != 0 )
+    {
+      DEBUG_PRINTF( "PlayHapticMonotone() failed with error code: %d\n", errorCode );
+    }
+  }
+  else
+  {
+    DEBUG_PRINTF( "HapticPlayer is not Initialized\n" );
+  }
 }
 
 void DaliFeedback::StopHaptic()
 {
+  if( mHapticInitialized )
+  {
+    int errorCode = haptic_stop_all_effects( mDeviceHandle );
+    if( errorCode != 0 )
+    {
+      DEBUG_PRINTF( "StopHaptic() failed with error code: %d\n", errorCode );
+    }
+  }
+  else
+  {
+    DEBUG_PRINTF( "HapticPlayer is not Initialized\n" );
+  }
 }
 
 int DaliFeedback::PlaySound( const std::string& fileName )
index a432c59..c9967ec 100644 (file)
  *
  */
 
+// EXTERNAL INCLUDES
+#if defined(DALI_PROFILE_MOBILE)
+#include <dd-haptic.h>
+#else
+#include <haptic.h>
+#endif
+
 // INTERNAL INCLUDES
 #include <feedback-plugin.h>
 
@@ -77,6 +84,11 @@ public: // FeedbackPlugin overrides
    */
   void PlayFeedbackPattern( int type, int pattern );
 
+private:
+
+  haptic_device_h mDeviceHandle;
+
+  bool mHapticInitialized;
 };
 
 }  // namespace Plugin