Symbian3/SDK/Source/GUID-581A8E4B-12BE-41C0-A20E-3087A80FEECF.dita
changeset 13 48780e181b38
parent 11 5072524fcc79
equal deleted inserted replaced
12:80ef3a206772 13:48780e181b38
     1 <?xml version="1.0" encoding="UTF-8"?>
     1 <?xml version="1.0" encoding="utf-8"?>
     2 <!--Arbortext, Inc., 1988-2008, v.4002-->
     2 <!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. -->
     3 <!DOCTYPE concept PUBLIC "-//OASIS//DTD DITA Concept//EN"
     3 <!-- This component and the accompanying materials are made available under the terms of the License 
     4  "concept.dtd">
     4 "Eclipse Public License v1.0" which accompanies this distribution, 
     5 <concept id="GUID-581A8E4B-12BE-41C0-A20E-3087A80FEECF" xml:lang="en"><?Pub
     5 and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
     6 Caret1?>
     6 <!-- Initial Contributors:
     7 <title>Tactile feedback</title>
     7     Nokia Corporation - initial contribution.
     8 <prolog>
     8 Contributors: 
     9 <metadata><keywords></keywords></metadata>
     9 -->
    10 </prolog>
    10 <!DOCTYPE concept
    11 <conbody>
    11   PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
       
    12 <concept id="GUID-581A8E4B-12BE-41C0-A20E-3087A80FEECF" xml:lang="en"><title>Tactile feedback</title><prolog><metadata><keywords/></metadata></prolog><conbody>
    12 <p>There are two cases where vibration or audio of the device is used
    13 <p>There are two cases where vibration or audio of the device is used
    13 as an output method:</p>
    14 as an output method:</p>
    14 <ul>
    15 <ul>
    15 <li><p>As a <i>tacticon</i> to inform users through physical feedback,
    16 <li><p>As a <i>tacticon</i> to inform users through physical feedback,
    16 that an important event is occurring in the device. For example, when
    17 that an important event is occurring in the device. For example, when
    27 application. However, this is acceptable only if tactile feedback
    28 application. However, this is acceptable only if tactile feedback
    28 causes interference with other device functions.</p>
    29 causes interference with other device functions.</p>
    29 <p>The user can choose the level of tactile feedback and turn tacticons
    30 <p>The user can choose the level of tactile feedback and turn tacticons
    30 ON and OFF.</p>
    31 ON and OFF.</p>
    31 <p>The following table lists the tactile feedback effects:</p>
    32 <p>The following table lists the tactile feedback effects:</p>
    32 <p><table id="GUID-4969AEA7-3BE4-4644-8232-1FA26D49010B">
    33 <p><table id="GUID-4969AEA7-3BE4-4644-8232-1FA26D49010B"><title>Tactile
    33 <title>Tactile feedback effects</title>
    34 feedback effects</title>
    34 <tgroup cols="2"><colspec colname="col1" colwidth="0.40*"/><colspec
    35 <tgroup cols="2"><colspec colname="col1" colwidth="0.40*"/><colspec colname="col2" colwidth="1.60*"/>
    35 colname="col2" colwidth="1.60*"/>
       
    36 <thead>
    36 <thead>
    37 <row>
    37 <row>
    38 <entry valign="top"><p>Effects</p></entry>
    38 <entry valign="top"><p>Effects</p></entry>
    39 <entry valign="top"><p>Description</p></entry>
    39 <entry valign="top"><p>Description</p></entry>
    40 </row>
    40 </row>
    51 also possible with other similar components.</p></entry>
    51 also possible with other similar components.</p></entry>
    52 </row>
    52 </row>
    53 <row>
    53 <row>
    54 <entry><p><b>Sensitive list</b></p></entry>
    54 <entry><p><b>Sensitive list</b></p></entry>
    55 <entry><p>Provides single pulse effect to lists and grids. Effect
    55 <entry><p>Provides single pulse effect to lists and grids. Effect
    56 is used with move (drag and flick) when new item appears on the screen.</p
    56 is used with move (drag and flick) when new item appears on the screen.</p></entry>
    57 ></entry>
       
    58 </row>
    57 </row>
    59 <row>
    58 <row>
    60 <entry><p><b>Basic list</b></p></entry>
    59 <entry><p><b>Basic list</b></p></entry>
    61 <entry><p>Provides stronger single pulse effect to lists and grids.
    60 <entry><p>Provides stronger single pulse effect to lists and grids.
    62 Effect is used with touch down and release when tap makes an action. </p
    61 Effect is used with touch down and release when tap makes an action. </p><p>In hierarchical list, collapsing/expanding item provides basic
    63 ><p>In hierarchical list, collapsing/expanding item provides basic
       
    64 list effect with touch down and release.</p></entry>
    62 list effect with touch down and release.</p></entry>
    65 </row>
    63 </row>
    66 <row>
    64 <row>
    67 <entry><p><b>Bounce effect</b></p></entry>
    65 <entry><p><b>Bounce effect</b></p></entry>
    68 <entry><p>Provides pulse effect when list returns to its normal state
    66 <entry><p>Provides pulse effect when list returns to its normal state
    90 <row>
    88 <row>
    91 <entry><p><b>Pop-up</b></p></entry>
    89 <entry><p><b>Pop-up</b></p></entry>
    92 <entry><p>Provides sensitive pulse effect when pop-up is opened or
    90 <entry><p>Provides sensitive pulse effect when pop-up is opened or
    93 closed. If the theme animations are ON, then pop-up effect is used
    91 closed. If the theme animations are ON, then pop-up effect is used
    94 with opening event after increasing long touch effect. In this scenario,
    92 with opening event after increasing long touch effect. In this scenario,
    95 there is no pop-up effect . <note> All pop-ups do not have theme animation.</note
    93 there is no pop-up effect . <note> All pop-ups do not have theme animation.</note></p></entry>
    96 ></p></entry>
       
    97 </row>
    94 </row>
    98 <row>
    95 <row>
    99 <entry><p><b>Pop-up close</b></p></entry>
    96 <entry><p><b>Pop-up close</b></p></entry>
   100 <entry><p>Provides decreasing smooth feedback  a pop-up and when theme
    97 <entry><p>Provides decreasing smooth feedback  a pop-up and when theme
   101 animations are ON.</p></entry>
    98 animations are ON.</p></entry>
   146 <entry><p>Provides pulse effect when painting an empty line. By default,
   143 <entry><p>Provides pulse effect when painting an empty line. By default,
   147 it is none.</p></entry>
   144 it is none.</p></entry>
   148 </row>
   145 </row>
   149 <row>
   146 <row>
   150 <entry><p><b>Check box</b></p></entry>
   147 <entry><p><b>Check box</b></p></entry>
   151 <entry><p>Provides pulse effect when marking/unmarking a check box.</p
   148 <entry><p>Provides pulse effect when marking/unmarking a check box.</p></entry>
   152 ></entry>
   149 </row>
   153 </row>
   150 <row>
   154 <row>
   151 <entry><p><b>Multiple Touch recognition</b></p></entry>
   155 <entry><p><b>Multiple touch recognition</b></p></entry>
       
   156 <entry><p>Provides double pulse (sensitive + sensitive) effect when
   152 <entry><p>Provides double pulse (sensitive + sensitive) effect when
   157 multiple touch is recognized (generally, when second finger is touched
   153 multiple touch is recognized (generally, when second finger is touched
   158 down).</p></entry>
   154 down).</p></entry>
   159 </row>
   155 </row>
   160 <row>
   156 <row>
   179 through the sense of touch, we have to stimulate some of the cutaneous
   175 through the sense of touch, we have to stimulate some of the cutaneous
   180 senses or the movement sense. The stimulation of the cutaneous senses
   176 senses or the movement sense. The stimulation of the cutaneous senses
   181 or one of them by a product is called tactile stimulation. Respectively,
   177 or one of them by a product is called tactile stimulation. Respectively,
   182 the stimulation of the movement sense by a product is called haptic
   178 the stimulation of the movement sense by a product is called haptic
   183 stimulation or just haptics. Haptics is also used as general term
   179 stimulation or just haptics. Haptics is also used as general term
   184 for all issues related to sense of touch, both human and machine.</p
   180 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
   185 ><p>Haptic feedback, often referred to as "Haptics", is the use of
       
   186 the sense of touch in a user interface design to provide information
   181 the sense of touch in a user interface design to provide information
   187 to an end user. In mobile phones, this generally means the use of
   182 to an end user. In mobile phones, this generally means the use of
   188 vibrations from the device's vibration alarm to denote that a touch
   183 vibrations from the device's vibration alarm to denote that a touch
   189 screen button has been pressed. In this particular example, the phone
   184 screen button has been pressed. In this particular example, the phone
   190 would vibrate slightly in response to the user's activation of an
   185 would vibrate slightly in response to the user's activation of an
   191 on-screen control, making up for the lack of a normal tactile response
   186 on-screen control, making up for the lack of a normal tactile response
   192 that the user would experience when pressing a physical button.</p
   187 that the user would experience when pressing a physical button.</p></section>
   193 ></section>
       
   194 <section id="GUID-B9A35CA3-B830-4D97-9B0A-E22DC4A3CDA1"><title>Characteristics
   188 <section id="GUID-B9A35CA3-B830-4D97-9B0A-E22DC4A3CDA1"><title>Characteristics
   195 of haptics related  APIs</title><p>You can use the following APIs
   189 of haptics related  APIs</title><p>You can use the following APIs
   196 to create haptic effects:</p><ul>
   190 to create haptic effects:</p><ul>
   197 <li><p><xref href="GUID-8661A7E0-F19A-41F8-9062-FBFAE70CF658.dita"
   191 <li><p><xref href="GUID-8661A7E0-F19A-41F8-9062-FBFAE70CF658.dita">Tactile
   198 >Tactile Feedback Client API</xref></p><ul>
   192 Feedback Client API</xref></p><ul>
   199 <li><p>Available from S60 5th Edition onwards.</p></li>
   193 <li><p>Available from S60 5th Edition onwards.</p></li>
   200 <li><p>It can be used on all S60 5th Edition or later mobile devices.
   194 <li><p>It can be used on all S60 5th Edition or later mobile devices.
   201 However, the feedback is played only on touch enabled layouts.</p
   195 However, the feedback is played only on touch enabled layouts.</p></li>
   202 ></li>
       
   203 <li><p>Provides simple functions for triggering various predefined
   196 <li><p>Provides simple functions for triggering various predefined
   204 tactile feedback (vibration or audio) effects.</p></li>
   197 tactile feedback (vibration or audio) effects.</p></li>
   205 <li><p>Enables a consistent user experience in all applications of
   198 <li><p>Enables a consistent user experience in all applications of
   206 the mobile device (an application gives a logical feedback type as
   199 the mobile device (an application gives a logical feedback type as
   207 an input and the actual physical effect depends on the mobile device
   200 an input and the actual physical effect depends on the mobile device
   208 configuration and end user settings).</p></li>
   201 configuration and end user settings).</p></li>
   209 <li><p>When the area feedback is used, latency is low for the feedback
   202 <li><p>When the area feedback is used, latency is low for the feedback
   210 triggering (a tactile feedback can already be triggered at the window
   203 triggering (a tactile feedback can already be triggered at the window
   211 server level prior to the corresponding pointer event being delivered
   204 server level prior to the corresponding pointer event being delivered
   212 to the visible application).</p></li>
   205 to the visible application).</p></li>
   213 <li><p>Direct feedback can be easily integrated into <xref
   206 <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>
   214 href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-5CF90E7A-4A91-36FF-BB3F-CF7CF687DED2"
       
   215 ><apiname>CCoeControl::HandlePointerEventL()</apiname></xref>. </p
       
   216 ></li>
       
   217 <li><p>An application can select the logical tactile feedback from
   207 <li><p>An application can select the logical tactile feedback from
   218 certain types. The produced effect may be different on various mobile
   208 certain types. The produced effect may be different on various mobile
   219 devices.</p></li>
   209 devices.</p></li>
   220 </ul></li>
   210 </ul></li>
   221 <li><p><xref format="application/java-archive"
   211 <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>
   222 href="jar:GUID-558A5A9B-811E-4A87-B3DD-AE734C9AA966.jar!/public_specs/GuidesA/Haptics_API_Specification/Haptics_API_Specification.html"
       
   223 >Haptics API</xref></p><ul>
       
   224 <li><p>Available from S60 5th Edition, FP2 onwards.</p></li>
   212 <li><p>Available from S60 5th Edition, FP2 onwards.</p></li>
   225 <li><p>It can be used in touch and hybrid mobile devices.</p></li>
   213 <li><p>It can be used in touch and hybrid mobile devices.</p></li>
   226 <li><p>Provides an interface for accessing Haptics player that can
   214 <li><p>Provides an interface for accessing Haptics player that can
   227 control different actuator types.</p></li>
   215 control different actuator types.</p></li>
   228 <li><p>Enables producing of complex vibrator effects, such as an explosion
   216 <li><p>Enables producing of complex vibrator effects, such as an explosion
   231 <li><p>Enables simultaneous playing of different kinds of basis effects
   219 <li><p>Enables simultaneous playing of different kinds of basis effects
   232 and modifying them when played. </p></li>
   220 and modifying them when played. </p></li>
   233 <li><p>Allows the design of complex effects (using a separate PC application)
   221 <li><p>Allows the design of complex effects (using a separate PC application)
   234 that can be loaded on Haptics player for playing.</p></li>
   222 that can be loaded on Haptics player for playing.</p></li>
   235 <li><p>It may require a special license key  for third-party applications
   223 <li><p>It may require a special license key  for third-party applications
   236 (to be set at runtime) to enable the Haptics player functionality.</p
   224 (to be set at runtime) to enable the Haptics player functionality.</p></li>
   237 ></li>
       
   238 </ul></li>
   225 </ul></li>
   239 <li><p><xref href="GUID-D53A00E4-CF37-5F11-8D15-C5ECCCE64597.dita"
   226 <li><p><xref href="GUID-D53A00E4-CF37-5F11-8D15-C5ECCCE64597.dita">Vibra
   240 >Vibra API</xref></p><ul>
   227 API</xref></p><ul>
   241 <li><p>Available from S60 3.0 onwards.</p></li>
   228 <li><p>Available from S60 3.0 onwards.</p></li>
   242 <li><p>It can be used for running device vibrator with given intensity
   229 <li><p>It can be used for running device vibrator with given intensity
   243 for a given period of time.</p></li>
   230 for a given period of time.</p></li>
   244 <li><p>It can be used by a privileged client application to play pulse
   231 <li><p>It can be used by a privileged client application to play pulse
   245 effects, which have a very short duration (as the ones used for tactile
   232 effects, which have a very short duration (as the ones used for tactile
   246 feedback).</p></li>
   233 feedback).</p></li>
   247 </ul></li>
   234 </ul></li>
   248 </ul></section>
   235 </ul></section>
   249 <section id="GUID-428F693C-1CA8-4588-9A7D-C4265D2AED91"><title>When
   236 <section id="GUID-428F693C-1CA8-4588-9A7D-C4265D2AED91"><title>When
   250 to use Tactile Feedback Client API, Haptics API, and Vibra API</title
   237 to use Tactile Feedback Client API, Haptics API, and Vibra API</title><p><ul>
   251 ><p><ul>
       
   252 <li><p>Tactile Feedback Client API for providing tactile feedback
   238 <li><p>Tactile Feedback Client API for providing tactile feedback
   253 in custom controls (grids, lists, and so on), which will comply with
   239 in custom controls (grids, lists, and so on), which will comply with
   254 the style of Core UI components to ensure a uniform user experience
   240 the style of Core UI components to ensure a uniform user experience
   255 among applications.</p></li>
   241 among applications.</p></li>
   256 <li><p>Haptics API on touch and hybrid mobile devices for producing
   242 <li><p>Haptics API on touch and hybrid mobile devices for producing
   258 Framework (games, simulations, demos, and so on).</p></li>
   244 Framework (games, simulations, demos, and so on).</p></li>
   259 <li><p>Vibra API for producing haptic effects such as ringing tone
   245 <li><p>Vibra API for producing haptic effects such as ringing tone
   260 vibration in those mobile devices where Haptics API is not available
   246 vibration in those mobile devices where Haptics API is not available
   261 or functional.</p></li>
   247 or functional.</p></li>
   262 </ul></p></section>
   248 </ul></p></section>
   263 <section id="GUID-8334E102-8F04-4726-9CD2-1D8004A417E1"><title>Using
   249 <section id="GUID-8334E102-8F04-4726-9CD2-1D8004A417E1"><title>Using tactile feedback
   264 tactile feedback in applications</title><p>The API to use for tactile
   250 in applications</title><p>The API to use for tactile feedback is the <xref href="GUID-8661A7E0-F19A-41F8-9062-FBFAE70CF658.dita">Tactile feedback
   265 feedback is the <xref
       
   266 href="GUID-8661A7E0-F19A-41F8-9062-FBFAE70CF658.dita">Tactile feedback
       
   267 client API</xref>.</p><p>The Symbian platform includes a tactile feedback
   251 client API</xref>.</p><p>The Symbian platform includes a tactile feedback
   268 interface to add, modify and remove feedback areas in the registry.
   252 interface to add, modify and remove feedback areas in the registry.
   269 There is also an option to trigger direct feedback and bypass the
   253 There is also an option to trigger direct feedback and bypass the
   270 registry. <xref
   254 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
   271 href="GUID-766333D1-8D66-3B81-9B5D-8C4245F78298.dita#GUID-766333D1-8D66-3B81-9B5D-8C4245F78298/GUID-962B6543-9A59-3E72-893D-F775FEC54ACB"
       
   272 ><apiname>MTouchFeedback::Instance()</apiname></xref> is used for
       
   273 acquiring a pointer to a touch feedback instance. When touch feedback
   255 acquiring a pointer to a touch feedback instance. When touch feedback
   274 is activated, the mobile device users get a slight vibration when
   256 is activated, the mobile device users get a slight vibration when
   275 the control with the feedback interface is touched. </p><note><p>Tactile
   257 the control with the feedback interface is touched. </p><note><p>Tactile
   276 feedback can be set and disabled in a client application or a mobile
   258 feedback can be set and disabled in a client application or a mobile
   277 device in some scenarios, for example, during phone calls.</p></note
   259 device in some scenarios, for example, during phone calls.</p></note><p>Client applications cannot determine the actual physical feedback
   278 ><p>Client applications cannot determine the actual physical feedback
       
   279 that is generated. It depends on device configuration and current
   260 that is generated. It depends on device configuration and current
   280 settings. In current devices, the user changeable settings include
   261 settings. In current devices, the user changeable settings include
   281 vibration and audio feedback intensity level.</p><p>For more information,
   262 vibration and audio feedback intensity level.</p><p>For more information,
   282 see <xref href="GUID-21DAC50D-7737-42B6-BBDA-E12E8779741B.dita">Feedback</xref
   263 see <xref href="GUID-21DAC50D-7737-42B6-BBDA-E12E8779741B.dita">Feedback</xref>.</p></section>
   283 >.</p></section>
   264 </conbody></concept>
   284 </conbody>
       
   285 </concept>
       
   286 <?Pub *0000013047?>