Symbian3/SDK/Source/GUID-581A8E4B-12BE-41C0-A20E-3087A80FEECF.dita
changeset 8 ae94777fff8f
parent 7 51a74ef9ed63
child 11 5072524fcc79
--- a/Symbian3/SDK/Source/GUID-581A8E4B-12BE-41C0-A20E-3087A80FEECF.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-581A8E4B-12BE-41C0-A20E-3087A80FEECF.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,298 +1,253 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. -->
-<!-- This component and the accompanying materials are made available under the terms of the License 
-"Eclipse Public License v1.0" which accompanies this distribution, 
-and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
-<!-- Initial Contributors:
-    Nokia Corporation - initial contribution.
-Contributors: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-581A8E4B-12BE-41C0-A20E-3087A80FEECF" xml:lang="en"><title>Tactile
-feedback</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>There are two methods where vibration or audio of the device is used as
-an output method (when mobile device users interact with the device touch
-screen):</p>
-<ul>
-<li><p>As a <i>tacticon</i> to inform users through physical feedback, that
-an important event is occurring in the device. For example, when a new message
-arrives or a warning note is displayed.</p></li>
-<li><p>As <i>tactile feedback</i> to indicate to the user that an interaction
-event has been successful. For example, users receive tactile feedback when
-they press a button on the touch screen.</p></li>
-</ul>
-<p>As with sounds, tactile feedback must be used carefully so as not to desensitize
-the user to the vibration; the attention grabbing quality remains and functions
-so long as the feedback is not too frequent.</p>
-<p>Tactile feedback is enabled for all the Symbian platform UI components.
-Tactile feedback can be disabled for the common UI components in an application.
-However, this is acceptable only if tactile feedback causes interference with
-other device functions.</p>
-<p>The user can choose the level of tactile feedback and turn tacticons ON
-and OFF.</p>
-<p>The following table lists the tactile feedback effects:</p>
-<p><table id="GUID-4969AEA7-3BE4-4644-8232-1FA26D49010B"><title>Tactile feedback
-effects</title>
-<tgroup cols="2"><colspec colname="col1" colwidth="0.40*"/><colspec colname="col2" colwidth="1.60*"/>
-<thead>
-<row>
-<entry valign="top"><p>Effects</p></entry>
-<entry valign="top"><p>Description</p></entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p><b>Sensitive button</b></p></entry>
-<entry><p>It provides single pulse effect on repeated key presses with buttons.
-It is also possible with other similar components.</p></entry>
-</row>
-<row>
-<entry><p><b>Basic button</b></p></entry>
-<entry><p>It provides stronger single pulse effect to buttons. It is also
-possible with other similar components.</p></entry>
-</row>
-<row>
-<entry><p><b>Sensitive list</b></p></entry>
-<entry><p>It provides single pulse effect to lists and grids. Effect is used
-with move (drag and flick) when new item appears on the screen.</p></entry>
-</row>
-<row>
-<entry><p><b>Basic list</b></p></entry>
-<entry><p>It provides stronger single pulse effect to lists and grids. Effect
-is used with touch down and release when tap makes an action. </p><p>In hierarchical
-list, collapsing/expanding item provides basic list effect with touch down
-and release.</p></entry>
-</row>
-<row>
-<entry><p><b>Bounce effect</b></p></entry>
-<entry><p>It provides pulse effect when list returns to its normal state after
-boundary effect.</p></entry>
-</row>
-<row>
-<entry><p><b>Sensitive slider</b></p></entry>
-<entry><p>It provides pulse effect with scrollbar and slider thumbs. Effect
-is provided with touch down and release in thumb area.</p></entry>
-</row>
-<row>
-<entry><p><b>Smooth slider</b></p></entry>
-<entry><p>It provides continuous smooth feedback when dragging scrollbar or
-slider thumb. This can also be increasing or decreasing depending of the slider
-type.</p></entry>
-</row>
-<row>
-<entry><p><b>Hold slider</b></p></entry>
-<entry><p>It provides sensitive pulse effect when touch down and hold on the
-slider or scrollbar area. Slider thumb starts moving step by step towards
-the touch point. Every step gives one sensitive pulse. If slider thumb moves
-directly to the touch point, then basic slider effect is provided.</p></entry>
-</row>
-<row>
-<entry><p><b>Pop-up</b></p></entry>
-<entry><p>It provides sensitive pulse effect when pop-up is opened or closed.
-If the theme animations are ON, then pop-up effect is used with opening event
-after increasing long touch effect. In this scenario, there is no pop-up effect
-while closing. <note> All pop-ups does not have theme animation.</note></p></entry>
-</row>
-<row>
-<entry><p><b>Pop-up close</b></p></entry>
-<entry><p>It provides decreasing smooth feedback while closing pop-up and
-when theme animations are ON.</p></entry>
-</row>
-<row>
-<entry><p><b>Increasing long touch</b></p></entry>
-<entry><p>It provides increasing smooth feedback. This can be used with either
-long tap animation or pop-up opening theme effects. If the theme effects are
-ON and long tap opens a pop-up, then feedback is provided only with long tap.
-This is followed by pop-up.</p></entry>
-</row>
-<row>
-<entry><p><b>Basic tab</b></p></entry>
-<entry><p>It provides strong pulse effect with touch down event in tab area.</p></entry>
-</row>
-<row>
-<entry><p><b>Smooth flick</b></p></entry>
-<entry><p>It provides smooth feedback with drag when horizontal movement is
-possible.</p></entry>
-</row>
-<row>
-<entry><p><b>Sensitive flick</b></p></entry>
-<entry><p>It provides sensitive pulse effect with touch release when horizontal
-movement is possible.</p></entry>
-</row>
-<row>
-<entry><p><b>Sensitive edit</b></p></entry>
-<entry><p>It provides sensitive pulse effect in editors with touch down and
-release.</p></entry>
-</row>
-<row>
-<entry><p><b>Text edit</b></p></entry>
-<entry><p>It provides pulse effect when painting the text. Effect is provided
-with every character while painting the text.</p></entry>
-</row>
-<row>
-<entry><p><b>Blank edit</b></p></entry>
-<entry><p>It provides pulse effect when painting blank character. By default,
-it is none.</p></entry>
-</row>
-<row>
-<entry><p><b>Line edit</b></p></entry>
-<entry><p>It provides pulse effect when painting a line.</p></entry>
-</row>
-<row>
-<entry><p><b>Empty line</b></p></entry>
-<entry><p>It provides pulse effect when painting an empty line. By default,
-it is none.</p></entry>
-</row>
-<row>
-<entry><p><b>Check box</b></p></entry>
-<entry><p>It provides pulse effect when marking/unmarking a check box.</p></entry>
-</row>
-<row>
-<entry><p><b>Multi-touch recognition</b></p></entry>
-<entry><p>It provides double pulse (sensitive + sensitive) effect when multi-touch
-is recognized (generally, when second finger is touched down).</p></entry>
-</row>
-<row>
-<entry><p><b>Smooth pinch</b></p></entry>
-<entry><p>It provides smooth continuous feedback while moving fingers in multi-touch
-pinch situation.</p></entry>
-</row>
-<row>
-<entry><p><b>Smooth rotate</b></p></entry>
-<entry><p>It provides smooth continuous feedback  while moving fingers in
-multi-touch rotate situation.</p></entry>
-</row>
-</tbody>
-</tgroup>
-</table></p>
-<section id="GUID-B9A35CA3-B830-4D97-9B0A-E22DC4A3CDA1"><title>Characteristics
-of haptics related  APIs</title><p>You can use the following APIs to create
-haptic effects:</p><ul>
-<li><p><xref href="GUID-8661A7E0-F19A-41F8-9062-FBFAE70CF658.dita">Tactile Feedback
-Client API</xref></p><ul>
-<li><p>It is available from S60 5th Edition onwards</p></li>
-<li><p>It can be used on all S60 5th Edition or later mobile devices. However,
-the feedback is played only on touch enabled layouts.</p></li>
-<li><p>It provides simple functions for triggering various predefined tactile
-feedback (vibration or audio) effects.</p></li>
-<li><p>It enables a consistent user experience in all applications of the
-mobile device (an application gives a logical feedback type as an input and
-the actual physical effect depends on the mobile device configuration and
-end user settings).</p></li>
-<li><p>When the area feedback is used, latency is low for the feedback triggering
-(a tactile feedback can already be triggered at the window server level prior
-to the corresponding pointer event being delivered to the visible application).</p></li>
-<li><p>Direct feedback can be easily integrated into <codeph>CCoeControl::HandlePointerEventL()</codeph> . </p></li>
-<li><p>An application can select the logical tactile feedback from certain
-types. The produced effect may be different on various mobile devices.</p></li>
-</ul></li>
-<li><p><xref href="jar:GUID-558A5A9B-811E-4A87-B3DD-AE734C9AA966.jar!/public_specs/GuidesA/Haptics_API_Specification/Haptics_API_Specification.html" format="application/java-archive">Haptics
-API</xref></p><ul>
-<li><p>It is available from S60 5.2 Edition onwards.</p></li>
-<li><p>It can be used in touch and hybrid mobile devices.</p></li>
-<li><p>It provides an interface for accessing Haptics player that can control
-different actuator types.</p></li>
-<li><p>It enables producing of complex vibrator effects, such as an explosion
-or machine gun effect in a game, bass boost for a music player, advanced ringing
-tone vibration, and so on.</p></li>
-<li><p>It enables simultaneous playing of different kinds of basis effects
-and modifying them when played. </p></li>
-<li><p>It allows for designing complex effects (using a separate PC application)
-that can be loaded on Haptics player for playing.</p></li>
-<li><p>It may require a special license key  for third-party applications
-(to be set at runtime) to enable the Haptics player functionality.</p></li>
-</ul></li>
-<li><p><xref href="GUID-D53A00E4-CF37-5F11-8D15-C5ECCCE64597.dita">Vibra API</xref></p><ul>
-<li><p>It available from S60 3.0 onwards</p></li>
-<li><p>It can be used for running device vibrator with given intensity for
-a given period of time</p></li>
-<li><p>It can be used by a privileged client application to play pulse effects,
-which have a very short duration (as the ones used for tactile feedback)</p></li>
-</ul></li>
-</ul></section>
-<section id="GUID-428F693C-1CA8-4588-9A7D-C4265D2AED91"><title>When to use
-Tactile Feedback Client API, Haptics API, and Vibra API</title><p>You must
-use<ul>
-<li><p>Tactile Feedback Client API for providing tactile feedback in custom
-controls (grids, lists, and so on) which will comply with the style of Core
-UI components to ensure a uniform user experience among applications</p></li>
-<li><p>Haptics API on touch and hybrid mobile devices for producing complex
-vibration feedback which cannot be achieved with Tactile Framework (games,
-simulations, demos, and so on.)</p></li>
-<li><p>Vibra API for producing haptic effects such as ringing tone vibration
-in those mobile devices where Haptics API is not available or functional</p></li>
-</ul></p></section>
-<section id="GUID-8334E102-8F04-4726-9CD2-1D8004A417E1"><title>Using
-tactile feedback in C++ applications</title><p>The API to use for tactile
-feedback is the <xref href="GUID-8661A7E0-F19A-41F8-9062-FBFAE70CF658.dita">Tactile
-feedback client API</xref>.</p><p>The Symbian platform includes a tactile
-feedback interface to add, modify and remove feedback areas in the registry.
-There is also an option to trigger direct feedback and bypass the registry.
- <parmname>MTouchFeedback::Instance()</parmname> is used for acquiring a pointer
-to a touch feedback instance. When touch feedback is activated, the mobile
-device users get a slight vibration when the control with the feedback interface
-is touched. </p><note><p>Tactile feedback can be set and disabled in a client
-application or a mobile device in some scenarios, for example, during phone
-calls.</p></note><p>Client applications cannot determine the actual physical
-feedback that is generated. It depends on device configuration and current
-settings. In current devices, the user changeable settings include vibration
-and audio feedback intensity level.</p><p>In your application, you can use
-the following feedback types, defined in <codeph>TTouchLogicalFeedback</codeph>:</p><table id="GUID-6FF24F72-C352-4027-AA5D-2D34EBFA00F4">
-<tgroup cols="2"><colspec colname="col1"/><colspec colname="col2"/>
-<tbody>
-<row>
-<entry><p><codeph>ETouchFeedbackNone</codeph></p></entry>
-<entry><p>It is used for disabling feedback in some areas of the application
-window while using the area registry.</p></entry>
-</row>
-<row>
-<entry><p><codeph>ETouchFeedbackBasic</codeph></p></entry>
-<entry><p>It is used as a default feedback for stylus touch down events. For
-example, when the mobile device user taps a button or tab.</p></entry>
-</row>
-<row>
-<entry><p><codeph>ETouchFeedbackSensitive</codeph></p></entry>
-<entry><p>It provides sensitive feedback in situations when:<ul>
-<li><p>the triggering action is not very important (for example, change of
-focus in a list)</p></li>
-<li><p>there can be a large number of feedback instances within a short time
-(for example, text selection which gives feedback on every new selected character).</p></li>
-</ul> It is also used for scrolling and dragging.</p></entry>
-</row>
-</tbody>
-</tgroup>
-</table><p>To use vibration or audio feedback in your application:</p><ol>
-<li id="GUID-791E80D6-6935-4202-81E0-BA7392A9E1B3"><p>Include <codeph>touchfeedback.lib</codeph> in
-your <codeph>.mmp</codeph> file.</p></li>
-<li id="GUID-A185188F-F37B-440B-8213-214D77CF3B8B"><p>Include <parmname>touchfeedback.h</parmname>.</p></li>
-<li id="GUID-6455F4C1-AEA6-4C30-8E9B-DF9950558E17"><itemgroup><p>To enable
-tactile feedback for your application, add the following code.</p><codeblock xml:space="preserve">MTouchFeedback* feedback = MTouchFeedback::Instance();
-feedback-&gt;SetFeedbackEnabledForThisApp(ETrue); // enabling feedback is optional  </codeblock><p>Do
-not delete the pointer in the controller destructor.</p></itemgroup></li>
-<li id="GUID-FC1B810B-99F4-44E5-82DC-46686D6D4198"><itemgroup><p>To use tactile
-feedback when a mobile device user points at a control, add the following
-code.</p><codeblock xml:space="preserve">void CMyContainerControl::HandlePointerEventL(const TPointerEvent&amp; aPointerEvent)
-    {
-    // Feedback is always played at pointer down event
-    if(aPointerEvent.iType == TPointerEvent::EButton1Down)
-        {
-        MTouchFeedback* feedback = MTouchFeedback::Instance();  
-        if (feedback) 
-             { 
-             feedback-&gt;InstantFeedback(ETouchFeedbackBasic);  
-             }  
-        }
-   
-    // Your other pointer event handling code here
-</codeblock></itemgroup></li>
-<li id="GUID-A26D8717-1839-4132-98C4-5C09086BB361"><itemgroup><p>To enable
-automatic feedback triggering in a specific area of a UI component, add</p><codeblock xml:space="preserve">feedback-&gt;SetFeedbackArea( this, 
-                           1, // area Id
-                           TRect( 0,0,20,20 ), 
-                           ETouchFeedbackBasic, 
-                           ETouchEventStylusDown );
-</codeblock></itemgroup></li>
-</ol><note><p>To use tactile feedback in an application, additional platform
-security capabilities are not required.</p></note></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. -->
+<!-- This component and the accompanying materials are made available under the terms of the License 
+"Eclipse Public License v1.0" which accompanies this distribution, 
+and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
+<!-- Initial Contributors:
+    Nokia Corporation - initial contribution.
+Contributors: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-581A8E4B-12BE-41C0-A20E-3087A80FEECF" xml:lang="en"><title>Tactile
+feedback</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>There are two cases where vibration or audio of the device is used as an
+output method:</p>
+<ul>
+<li><p>As a <i>tacticon</i> to inform users through physical feedback, that
+an important event is occurring in the device. For example, when a new message
+arrives or a warning note is displayed.</p></li>
+<li><p>As <i>tactile feedback</i> to indicate to the user that an interaction
+event has been made. For example, users receive tactile feedback when they
+press a button on the touch screen.</p></li>
+</ul>
+<p>As with sounds, tactile feedback must be used carefully so as not to desensitize
+the user to the vibration; the attention grabbing quality remains and functions
+so long as the feedback is not too frequent.</p>
+<p>Tactile feedback is enabled for all the Symbian platform UI components.
+Tactile feedback can be disabled for the common UI components in an application.
+However, this is acceptable only if tactile feedback causes interference with
+other device functions.</p>
+<p>The user can choose the level of tactile feedback and turn tacticons ON
+and OFF.</p>
+<p>The following table lists the tactile feedback effects:</p>
+<p><table id="GUID-4969AEA7-3BE4-4644-8232-1FA26D49010B"><title>Tactile feedback
+effects</title>
+<tgroup cols="2"><colspec colname="col1" colwidth="0.40*"/><colspec colname="col2" colwidth="1.60*"/>
+<thead>
+<row>
+<entry valign="top"><p>Effects</p></entry>
+<entry valign="top"><p>Description</p></entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p><b>Sensitive button</b></p></entry>
+<entry><p>Provides single pulse effect on repeated key presses with buttons.
+It is also possible with other similar components.</p></entry>
+</row>
+<row>
+<entry><p><b>Basic button</b></p></entry>
+<entry><p>Provides stronger single pulse effect to buttons. It is also possible
+with other similar components.</p></entry>
+</row>
+<row>
+<entry><p><b>Sensitive list</b></p></entry>
+<entry><p>Provides single pulse effect to lists and grids. Effect is used
+with move (drag and flick) when new item appears on the screen.</p></entry>
+</row>
+<row>
+<entry><p><b>Basic list</b></p></entry>
+<entry><p>Provides stronger single pulse effect to lists and grids. Effect
+is used with touch down and release when tap makes an action. </p><p>In hierarchical
+list, collapsing/expanding item provides basic list effect with touch down
+and release.</p></entry>
+</row>
+<row>
+<entry><p><b>Bounce effect</b></p></entry>
+<entry><p>Provides pulse effect when list returns to its normal state after
+boundary effect.</p></entry>
+</row>
+<row>
+<entry><p><b>Sensitive slider</b></p></entry>
+<entry><p>Provides pulse effect with scrollbar and slider thumbs. Effect is
+provided with touch down and release in thumb area.</p></entry>
+</row>
+<row>
+<entry><p><b>Smooth slider</b></p></entry>
+<entry><p>Provides continuous smooth feedback when dragging scrollbar or slider
+thumb. This can also be increasing or decreasing depending of the slider type.</p></entry>
+</row>
+<row>
+<entry><p><b>Hold slider</b></p></entry>
+<entry><p>Provides sensitive pulse effect when touch down and hold on the
+slider or scrollbar area. Slider thumb starts moving step by step towards
+the touch point. Every step gives one sensitive pulse. If slider thumb moves
+directly to the touch point, then basic slider effect is provided.</p></entry>
+</row>
+<row>
+<entry><p><b>Pop-up</b></p></entry>
+<entry><p>Provides sensitive pulse effect when pop-up is opened or closed.
+If the theme animations are ON, then pop-up effect is used with opening event
+after increasing long touch effect. In this scenario, there is no pop-up effect
+. <note> All pop-ups do not have theme animation.</note></p></entry>
+</row>
+<row>
+<entry><p><b>Pop-up close</b></p></entry>
+<entry><p>Provides decreasing smooth feedback  a pop-up and when theme animations
+are ON.</p></entry>
+</row>
+<row>
+<entry><p><b>Increasing long touch</b></p></entry>
+<entry><p>Provides increasing smooth feedback. This can be used with either
+long tap animation or pop-up opening theme effects. If the theme effects are
+ON and long tap opens a pop-up, then feedback is provided only with long tap.
+This is followed by pop-up.</p></entry>
+</row>
+<row>
+<entry><p><b>Basic tab</b></p></entry>
+<entry><p>Provides strong pulse effect with touch down event in tab area.</p></entry>
+</row>
+<row>
+<entry><p><b>Smooth flick</b></p></entry>
+<entry><p>Provides smooth feedback with drag when horizontal movement is possible.</p></entry>
+</row>
+<row>
+<entry><p><b>Sensitive flick</b></p></entry>
+<entry><p>Provides sensitive pulse effect with touch release when horizontal
+movement is possible.</p></entry>
+</row>
+<row>
+<entry><p><b>Sensitive edit</b></p></entry>
+<entry><p>Provides sensitive pulse effect in editors with touch down and release.</p></entry>
+</row>
+<row>
+<entry><p><b>Text edit</b></p></entry>
+<entry><p>Provides pulse effect when painting the text. Effect is provided
+with every character while painting the text.</p></entry>
+</row>
+<row>
+<entry><p><b>Blank edit</b></p></entry>
+<entry><p>Provides pulse effect when painting blank character. By default,
+it is none.</p></entry>
+</row>
+<row>
+<entry><p><b>Line edit</b></p></entry>
+<entry><p>Provides pulse effect when painting a line.</p></entry>
+</row>
+<row>
+<entry><p><b>Empty line</b></p></entry>
+<entry><p>Provides pulse effect when painting an empty line. By default, it
+is none.</p></entry>
+</row>
+<row>
+<entry><p><b>Check box</b></p></entry>
+<entry><p>Provides pulse effect when marking/unmarking a check box.</p></entry>
+</row>
+<row>
+<entry><p><b>Multi-touch recognition</b></p></entry>
+<entry><p>Provides double pulse (sensitive + sensitive) effect when multi-touch
+is recognized (generally, when second finger is touched down).</p></entry>
+</row>
+<row>
+<entry><p><b>Smooth pinch</b></p></entry>
+<entry><p>Provides smooth continuous feedback while moving fingers in multi-touch
+pinch situation.</p></entry>
+</row>
+<row>
+<entry><p><b>Smooth rotate</b></p></entry>
+<entry><p>Provides smooth continuous feedback  while moving fingers in multi-touch
+rotate situation.</p></entry>
+</row>
+</tbody>
+</tgroup>
+</table></p>
+<section id="GUID-1EB54408-100B-4E4F-8D56-E13C26CA3B96"><title>Haptics concept</title><p>The different senses associated
+to the skin are called cutaneous senses. These senses are temperature, pressure
+(touch itself), pain, tickle, itch and vibration senses. We can characterize
+touch as passive or active. Passive touch means the sense of touch itself,
+whereas active touch means the touch action.</p><p>To communicate through
+the sense of touch, we have to stimulate some of the cutaneous senses or the
+movement sense. The stimulation of the cutaneous senses or one of them by
+a product is called tactile stimulation. Respectively, the stimulation of
+the movement sense by a product is called haptic stimulation or just haptics.
+Haptics is also used as general term for all issues related to sense of touch,
+both human and machine.</p><p>Haptic feedback, often referred to as "Haptics",
+is the use of the sense of touch in a user interface design to provide information
+to an end user. In mobile phones, this generally means the use of vibrations
+from the device's vibration alarm to denote that a touch screen button has
+been pressed. In this particular example, the phone would vibrate slightly
+in response to the user's activation of an on-screen control, making up for
+the lack of a normal tactile response that the user would experience when
+pressing a physical button.</p></section>
+<section id="GUID-B9A35CA3-B830-4D97-9B0A-E22DC4A3CDA1"><title>Characteristics
+of haptics related  APIs</title><p>You can use the following APIs to create
+haptic effects:</p><ul>
+<li><p><xref href="GUID-8661A7E0-F19A-41F8-9062-FBFAE70CF658.dita">Tactile Feedback
+Client API</xref></p><ul>
+<li><p>Available from S60 5th Edition onwards.</p></li>
+<li><p>It can be used on all S60 5th Edition or later mobile devices. However,
+the feedback is played only on touch enabled layouts.</p></li>
+<li><p>Provides simple functions for triggering various predefined tactile
+feedback (vibration or audio) effects.</p></li>
+<li><p>Enables a consistent user experience in all applications of the mobile
+device (an application gives a logical feedback type as an input and the actual
+physical effect depends on the mobile device configuration and end user settings).</p></li>
+<li><p>When the area feedback is used, latency is low for the feedback triggering
+(a tactile feedback can already be triggered at the window server level prior
+to the corresponding pointer event being delivered to the visible application).</p></li>
+<li><p>Direct feedback can be easily integrated into <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-5CF90E7A-4A91-36FF-BB3F-CF7CF687DED2"><apiname>CCoeControl::HandlePointerEventL()</apiname></xref>. </p></li>
+<li><p>An application can select the logical tactile feedback from certain
+types. The produced effect may be different on various mobile devices.</p></li>
+</ul></li>
+<li><p><xref href="jar:GUID-558A5A9B-811E-4A87-B3DD-AE734C9AA966.jar!/public_specs/GuidesA/Haptics_API_Specification/Haptics_API_Specification.html" format="application/java-archive">Haptics
+API</xref></p><ul>
+<li><p>Available from S60 5th Edition, FP2 onwards.</p></li>
+<li><p>It can be used in touch and hybrid mobile devices.</p></li>
+<li><p>Provides an interface for accessing Haptics player that can control
+different actuator types.</p></li>
+<li><p>Enables producing of complex vibrator effects, such as an explosion
+or machine gun effect in a game, bass boost for a music player, advanced ringing
+tone vibration, and so on.</p></li>
+<li><p>Enables simultaneous playing of different kinds of basis effects and
+modifying them when played. </p></li>
+<li><p>Allows the design of complex effects (using a separate PC application)
+that can be loaded on Haptics player for playing.</p></li>
+<li><p>It may require a special license key  for third-party applications
+(to be set at runtime) to enable the Haptics player functionality.</p></li>
+</ul></li>
+<li><p><xref href="GUID-D53A00E4-CF37-5F11-8D15-C5ECCCE64597.dita">Vibra API</xref></p><ul>
+<li><p>Available from S60 3.0 onwards.</p></li>
+<li><p>It can be used for running device vibrator with given intensity for
+a given period of time.</p></li>
+<li><p>It can be used by a privileged client application to play pulse effects,
+which have a very short duration (as the ones used for tactile feedback).</p></li>
+</ul></li>
+</ul></section>
+<section id="GUID-428F693C-1CA8-4588-9A7D-C4265D2AED91"><title>When to use
+Tactile Feedback Client API, Haptics API, and Vibra API</title><p><ul>
+<li><p>Tactile Feedback Client API for providing tactile feedback in custom
+controls (grids, lists, and so on), which will comply with the style of Core
+UI components to ensure a uniform user experience among applications.</p></li>
+<li><p>Haptics API on touch and hybrid mobile devices for producing complex
+vibration feedback, which cannot be achieved with Tactile Framework (games,
+simulations, demos, and so on).</p></li>
+<li><p>Vibra API for producing haptic effects such as ringing tone vibration
+in those mobile devices where Haptics API is not available or functional.</p></li>
+</ul></p></section>
+<section id="GUID-8334E102-8F04-4726-9CD2-1D8004A417E1"><title>Using
+tactile feedback in applications</title><p>The API to use for tactile feedback
+is the <xref href="GUID-8661A7E0-F19A-41F8-9062-FBFAE70CF658.dita">Tactile feedback
+client API</xref>.</p><p>The Symbian platform includes a tactile feedback
+interface to add, modify and remove feedback areas in the registry. There
+is also an option to trigger direct feedback and bypass the registry. <xref href="GUID-766333D1-8D66-3B81-9B5D-8C4245F78298.dita#GUID-766333D1-8D66-3B81-9B5D-8C4245F78298/GUID-962B6543-9A59-3E72-893D-F775FEC54ACB"><apiname>MTouchFeedback::Instance()</apiname></xref> is
+used for acquiring a pointer to a touch feedback instance. When touch feedback
+is activated, the mobile device users get a slight vibration when the control
+with the feedback interface is touched. </p><note><p>Tactile feedback can
+be set and disabled in a client application or a mobile device in some scenarios,
+for example, during phone calls.</p></note><p>Client applications cannot determine
+the actual physical feedback that is generated. It depends on device configuration
+and current settings. In current devices, the user changeable settings include
+vibration and audio feedback intensity level.</p><p>For more information,
+see <xref href="GUID-21DAC50D-7737-42B6-BBDA-E12E8779741B.dita">Feedback</xref>.</p></section>
 </conbody></concept>
\ No newline at end of file