Sophie

Sophie

distrib > Mageia > 5 > i586 > media > core-release > by-pkgid > 7281b619e6b612f5388cfad6b0e56530 > files > 44

sdl2-docs-2.0.3-4.mga5.noarch.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.8"/>
<title>My Project: SDL_haptic.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">My Project
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.8 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>File&#160;Members</span></a></li>
    </ul>
  </div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">SDL_haptic.h File Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>The SDL Haptic subsystem allows you to control haptic (force feedback) devices.  
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;<a class="el" href="SDL__stdinc_8h_source.html">SDL_stdinc.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="SDL__error_8h_source.html">SDL_error.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="SDL__joystick_8h_source.html">SDL_joystick.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="begin__code_8h_source.html">begin_code.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="close__code_8h_source.html">close_code.h</a>&quot;</code><br />
</div>
<p><a href="SDL__haptic_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structSDL__HapticDirection.html">SDL_HapticDirection</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Structure that represents a haptic direction.  <a href="structSDL__HapticDirection.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structSDL__HapticConstant.html">SDL_HapticConstant</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A structure containing a template for a Constant effect.  <a href="structSDL__HapticConstant.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structSDL__HapticPeriodic.html">SDL_HapticPeriodic</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A structure containing a template for a Periodic effect.  <a href="structSDL__HapticPeriodic.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structSDL__HapticCondition.html">SDL_HapticCondition</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A structure containing a template for a Condition effect.  <a href="structSDL__HapticCondition.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structSDL__HapticRamp.html">SDL_HapticRamp</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A structure containing a template for a Ramp effect.  <a href="structSDL__HapticRamp.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structSDL__HapticLeftRight.html">SDL_HapticLeftRight</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A structure containing a template for a Left/Right effect.  <a href="structSDL__HapticLeftRight.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structSDL__HapticCustom.html">SDL_HapticCustom</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A structure containing a template for the <a class="el" href="SDL__haptic_8h.html#a8a18c4de1076ac9bebd718329d16db29" title="Custom effect is supported. ">SDL_HAPTIC_CUSTOM</a> effect.  <a href="structSDL__HapticCustom.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">union &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="unionSDL__HapticEffect.html">SDL_HapticEffect</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The generic template for any haptic effect.  <a href="unionSDL__HapticEffect.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:a3afe54582bd5c184109f3f61b6c84c6c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__haptic_8h.html#a3afe54582bd5c184109f3f61b6c84c6c">SDL_HAPTIC_GAIN</a>&#160;&#160;&#160;(1&lt;&lt;12)</td></tr>
<tr class="memdesc:a3afe54582bd5c184109f3f61b6c84c6c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Device can set global gain.  <a href="#a3afe54582bd5c184109f3f61b6c84c6c">More...</a><br /></td></tr>
<tr class="separator:a3afe54582bd5c184109f3f61b6c84c6c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a28aa71e231fbf5b88bce7906bf2f4e70"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__haptic_8h.html#a28aa71e231fbf5b88bce7906bf2f4e70">SDL_HAPTIC_AUTOCENTER</a>&#160;&#160;&#160;(1&lt;&lt;13)</td></tr>
<tr class="memdesc:a28aa71e231fbf5b88bce7906bf2f4e70"><td class="mdescLeft">&#160;</td><td class="mdescRight">Device can set autocenter.  <a href="#a28aa71e231fbf5b88bce7906bf2f4e70">More...</a><br /></td></tr>
<tr class="separator:a28aa71e231fbf5b88bce7906bf2f4e70"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abfbc9fa0d65f4b5632788945080cc71b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__haptic_8h.html#abfbc9fa0d65f4b5632788945080cc71b">SDL_HAPTIC_STATUS</a>&#160;&#160;&#160;(1&lt;&lt;14)</td></tr>
<tr class="memdesc:abfbc9fa0d65f4b5632788945080cc71b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Device can be queried for effect status.  <a href="#abfbc9fa0d65f4b5632788945080cc71b">More...</a><br /></td></tr>
<tr class="separator:abfbc9fa0d65f4b5632788945080cc71b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6baee8978ccc97add8457388801d7782"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__haptic_8h.html#a6baee8978ccc97add8457388801d7782">SDL_HAPTIC_PAUSE</a>&#160;&#160;&#160;(1&lt;&lt;15)</td></tr>
<tr class="memdesc:a6baee8978ccc97add8457388801d7782"><td class="mdescLeft">&#160;</td><td class="mdescRight">Device can be paused.  <a href="#a6baee8978ccc97add8457388801d7782">More...</a><br /></td></tr>
<tr class="separator:a6baee8978ccc97add8457388801d7782"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a648896e9e14cb27fa8a4b6632d3f3882"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__haptic_8h.html#a648896e9e14cb27fa8a4b6632d3f3882">SDL_HAPTIC_INFINITY</a>&#160;&#160;&#160;4294967295U</td></tr>
<tr class="memdesc:a648896e9e14cb27fa8a4b6632d3f3882"><td class="mdescLeft">&#160;</td><td class="mdescRight">Used to play a device an infinite number of times.  <a href="#a648896e9e14cb27fa8a4b6632d3f3882">More...</a><br /></td></tr>
<tr class="separator:a648896e9e14cb27fa8a4b6632d3f3882"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Haptic effects</div></td></tr>
<tr class="memitem:a955fb9f680dcf9cc72a3d5263e85b80a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__haptic_8h.html#a955fb9f680dcf9cc72a3d5263e85b80a">SDL_HAPTIC_CONSTANT</a>&#160;&#160;&#160;(1&lt;&lt;0)</td></tr>
<tr class="memdesc:a955fb9f680dcf9cc72a3d5263e85b80a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constant effect supported.  <a href="#a955fb9f680dcf9cc72a3d5263e85b80a">More...</a><br /></td></tr>
<tr class="separator:a955fb9f680dcf9cc72a3d5263e85b80a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa6d75adbfcdda5075078e7a2849da5c0"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__haptic_8h.html#aa6d75adbfcdda5075078e7a2849da5c0">SDL_HAPTIC_SINE</a>&#160;&#160;&#160;(1&lt;&lt;1)</td></tr>
<tr class="memdesc:aa6d75adbfcdda5075078e7a2849da5c0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sine wave effect supported.  <a href="#aa6d75adbfcdda5075078e7a2849da5c0">More...</a><br /></td></tr>
<tr class="separator:aa6d75adbfcdda5075078e7a2849da5c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae047624d8458ff6400887c37a36f86d3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__haptic_8h.html#ae047624d8458ff6400887c37a36f86d3">SDL_HAPTIC_LEFTRIGHT</a>&#160;&#160;&#160;(1&lt;&lt;2)</td></tr>
<tr class="memdesc:ae047624d8458ff6400887c37a36f86d3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Left/Right effect supported.  <a href="#ae047624d8458ff6400887c37a36f86d3">More...</a><br /></td></tr>
<tr class="separator:ae047624d8458ff6400887c37a36f86d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae8123eaa51511507375ba6ef9220fa46"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__haptic_8h.html#ae8123eaa51511507375ba6ef9220fa46">SDL_HAPTIC_TRIANGLE</a>&#160;&#160;&#160;(1&lt;&lt;3)</td></tr>
<tr class="memdesc:ae8123eaa51511507375ba6ef9220fa46"><td class="mdescLeft">&#160;</td><td class="mdescRight">Triangle wave effect supported.  <a href="#ae8123eaa51511507375ba6ef9220fa46">More...</a><br /></td></tr>
<tr class="separator:ae8123eaa51511507375ba6ef9220fa46"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab8e3f40f3c2bcee8905d13b634363c3f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__haptic_8h.html#ab8e3f40f3c2bcee8905d13b634363c3f">SDL_HAPTIC_SAWTOOTHUP</a>&#160;&#160;&#160;(1&lt;&lt;4)</td></tr>
<tr class="memdesc:ab8e3f40f3c2bcee8905d13b634363c3f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sawtoothup wave effect supported.  <a href="#ab8e3f40f3c2bcee8905d13b634363c3f">More...</a><br /></td></tr>
<tr class="separator:ab8e3f40f3c2bcee8905d13b634363c3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afd64aa747034a7ccf4b55f6246525701"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__haptic_8h.html#afd64aa747034a7ccf4b55f6246525701">SDL_HAPTIC_SAWTOOTHDOWN</a>&#160;&#160;&#160;(1&lt;&lt;5)</td></tr>
<tr class="memdesc:afd64aa747034a7ccf4b55f6246525701"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sawtoothdown wave effect supported.  <a href="#afd64aa747034a7ccf4b55f6246525701">More...</a><br /></td></tr>
<tr class="separator:afd64aa747034a7ccf4b55f6246525701"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af10eb937a64a8f602e9c46682ac0d868"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__haptic_8h.html#af10eb937a64a8f602e9c46682ac0d868">SDL_HAPTIC_RAMP</a>&#160;&#160;&#160;(1&lt;&lt;6)</td></tr>
<tr class="memdesc:af10eb937a64a8f602e9c46682ac0d868"><td class="mdescLeft">&#160;</td><td class="mdescRight">Ramp effect supported.  <a href="#af10eb937a64a8f602e9c46682ac0d868">More...</a><br /></td></tr>
<tr class="separator:af10eb937a64a8f602e9c46682ac0d868"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3b52d4700380085e2b5d87bb20320fb1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__haptic_8h.html#a3b52d4700380085e2b5d87bb20320fb1">SDL_HAPTIC_SPRING</a>&#160;&#160;&#160;(1&lt;&lt;7)</td></tr>
<tr class="memdesc:a3b52d4700380085e2b5d87bb20320fb1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Spring effect supported - uses axes position.  <a href="#a3b52d4700380085e2b5d87bb20320fb1">More...</a><br /></td></tr>
<tr class="separator:a3b52d4700380085e2b5d87bb20320fb1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a69522f261973e3ea4273486141320a87"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__haptic_8h.html#a69522f261973e3ea4273486141320a87">SDL_HAPTIC_DAMPER</a>&#160;&#160;&#160;(1&lt;&lt;8)</td></tr>
<tr class="memdesc:a69522f261973e3ea4273486141320a87"><td class="mdescLeft">&#160;</td><td class="mdescRight">Damper effect supported - uses axes velocity.  <a href="#a69522f261973e3ea4273486141320a87">More...</a><br /></td></tr>
<tr class="separator:a69522f261973e3ea4273486141320a87"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a14b807471589120395aec28293cf6642"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__haptic_8h.html#a14b807471589120395aec28293cf6642">SDL_HAPTIC_INERTIA</a>&#160;&#160;&#160;(1&lt;&lt;9)</td></tr>
<tr class="memdesc:a14b807471589120395aec28293cf6642"><td class="mdescLeft">&#160;</td><td class="mdescRight">Inertia effect supported - uses axes acceleration.  <a href="#a14b807471589120395aec28293cf6642">More...</a><br /></td></tr>
<tr class="separator:a14b807471589120395aec28293cf6642"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a98a5011311168d63921aaac21403a4d8"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__haptic_8h.html#a98a5011311168d63921aaac21403a4d8">SDL_HAPTIC_FRICTION</a>&#160;&#160;&#160;(1&lt;&lt;10)</td></tr>
<tr class="memdesc:a98a5011311168d63921aaac21403a4d8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Friction effect supported - uses axes movement.  <a href="#a98a5011311168d63921aaac21403a4d8">More...</a><br /></td></tr>
<tr class="separator:a98a5011311168d63921aaac21403a4d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8a18c4de1076ac9bebd718329d16db29"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__haptic_8h.html#a8a18c4de1076ac9bebd718329d16db29">SDL_HAPTIC_CUSTOM</a>&#160;&#160;&#160;(1&lt;&lt;11)</td></tr>
<tr class="memdesc:a8a18c4de1076ac9bebd718329d16db29"><td class="mdescLeft">&#160;</td><td class="mdescRight">Custom effect is supported.  <a href="#a8a18c4de1076ac9bebd718329d16db29">More...</a><br /></td></tr>
<tr class="separator:a8a18c4de1076ac9bebd718329d16db29"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Direction encodings</div></td></tr>
<tr class="memitem:acdc35e97e5525472054a67b76e518f3b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__haptic_8h.html#acdc35e97e5525472054a67b76e518f3b">SDL_HAPTIC_POLAR</a>&#160;&#160;&#160;0</td></tr>
<tr class="memdesc:acdc35e97e5525472054a67b76e518f3b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Uses polar coordinates for the direction.  <a href="#acdc35e97e5525472054a67b76e518f3b">More...</a><br /></td></tr>
<tr class="separator:acdc35e97e5525472054a67b76e518f3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af8b2430a363a968de2a5b64c8f663d3b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__haptic_8h.html#af8b2430a363a968de2a5b64c8f663d3b">SDL_HAPTIC_CARTESIAN</a>&#160;&#160;&#160;1</td></tr>
<tr class="memdesc:af8b2430a363a968de2a5b64c8f663d3b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Uses cartesian coordinates for the direction.  <a href="#af8b2430a363a968de2a5b64c8f663d3b">More...</a><br /></td></tr>
<tr class="separator:af8b2430a363a968de2a5b64c8f663d3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1fcf7cb0eaf3c39b16ba266054e25aff"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__haptic_8h.html#a1fcf7cb0eaf3c39b16ba266054e25aff">SDL_HAPTIC_SPHERICAL</a>&#160;&#160;&#160;2</td></tr>
<tr class="memdesc:a1fcf7cb0eaf3c39b16ba266054e25aff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Uses spherical coordinates for the direction.  <a href="#a1fcf7cb0eaf3c39b16ba266054e25aff">More...</a><br /></td></tr>
<tr class="separator:a1fcf7cb0eaf3c39b16ba266054e25aff"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:a79db098a0e8cb102db6c2339a2422e29"><td class="memItemLeft" align="right" valign="top">typedef struct _SDL_Haptic&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__haptic_8h.html#a79db098a0e8cb102db6c2339a2422e29">SDL_Haptic</a></td></tr>
<tr class="memdesc:a79db098a0e8cb102db6c2339a2422e29"><td class="mdescLeft">&#160;</td><td class="mdescRight">The haptic structure used to identify an SDL haptic.  <a href="#a79db098a0e8cb102db6c2339a2422e29">More...</a><br /></td></tr>
<tr class="separator:a79db098a0e8cb102db6c2339a2422e29"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4395df8f6028b3d4c72dc4a4101cf1fa"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structSDL__HapticDirection.html">SDL_HapticDirection</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__haptic_8h.html#a4395df8f6028b3d4c72dc4a4101cf1fa">SDL_HapticDirection</a></td></tr>
<tr class="memdesc:a4395df8f6028b3d4c72dc4a4101cf1fa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Structure that represents a haptic direction.  <a href="#a4395df8f6028b3d4c72dc4a4101cf1fa">More...</a><br /></td></tr>
<tr class="separator:a4395df8f6028b3d4c72dc4a4101cf1fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6b80688fe63b575df4a694a935a2c64b"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structSDL__HapticConstant.html">SDL_HapticConstant</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__haptic_8h.html#a6b80688fe63b575df4a694a935a2c64b">SDL_HapticConstant</a></td></tr>
<tr class="memdesc:a6b80688fe63b575df4a694a935a2c64b"><td class="mdescLeft">&#160;</td><td class="mdescRight">A structure containing a template for a Constant effect.  <a href="#a6b80688fe63b575df4a694a935a2c64b">More...</a><br /></td></tr>
<tr class="separator:a6b80688fe63b575df4a694a935a2c64b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af865c02eaf3f49a0e0d79d2ac922a6b1"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structSDL__HapticPeriodic.html">SDL_HapticPeriodic</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__haptic_8h.html#af865c02eaf3f49a0e0d79d2ac922a6b1">SDL_HapticPeriodic</a></td></tr>
<tr class="memdesc:af865c02eaf3f49a0e0d79d2ac922a6b1"><td class="mdescLeft">&#160;</td><td class="mdescRight">A structure containing a template for a Periodic effect.  <a href="#af865c02eaf3f49a0e0d79d2ac922a6b1">More...</a><br /></td></tr>
<tr class="separator:af865c02eaf3f49a0e0d79d2ac922a6b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8432ee45df16281a91b04cfd06ec5235"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structSDL__HapticCondition.html">SDL_HapticCondition</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__haptic_8h.html#a8432ee45df16281a91b04cfd06ec5235">SDL_HapticCondition</a></td></tr>
<tr class="memdesc:a8432ee45df16281a91b04cfd06ec5235"><td class="mdescLeft">&#160;</td><td class="mdescRight">A structure containing a template for a Condition effect.  <a href="#a8432ee45df16281a91b04cfd06ec5235">More...</a><br /></td></tr>
<tr class="separator:a8432ee45df16281a91b04cfd06ec5235"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae17963b20b75e2557e50f273350cf4ad"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structSDL__HapticRamp.html">SDL_HapticRamp</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__haptic_8h.html#ae17963b20b75e2557e50f273350cf4ad">SDL_HapticRamp</a></td></tr>
<tr class="memdesc:ae17963b20b75e2557e50f273350cf4ad"><td class="mdescLeft">&#160;</td><td class="mdescRight">A structure containing a template for a Ramp effect.  <a href="#ae17963b20b75e2557e50f273350cf4ad">More...</a><br /></td></tr>
<tr class="separator:ae17963b20b75e2557e50f273350cf4ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af064ca15edd5c1575892ce378a09d250"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structSDL__HapticLeftRight.html">SDL_HapticLeftRight</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__haptic_8h.html#af064ca15edd5c1575892ce378a09d250">SDL_HapticLeftRight</a></td></tr>
<tr class="memdesc:af064ca15edd5c1575892ce378a09d250"><td class="mdescLeft">&#160;</td><td class="mdescRight">A structure containing a template for a Left/Right effect.  <a href="#af064ca15edd5c1575892ce378a09d250">More...</a><br /></td></tr>
<tr class="separator:af064ca15edd5c1575892ce378a09d250"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a202703bcce0c73569b8fb11395a5dbb4"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structSDL__HapticCustom.html">SDL_HapticCustom</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__haptic_8h.html#a202703bcce0c73569b8fb11395a5dbb4">SDL_HapticCustom</a></td></tr>
<tr class="memdesc:a202703bcce0c73569b8fb11395a5dbb4"><td class="mdescLeft">&#160;</td><td class="mdescRight">A structure containing a template for the <a class="el" href="SDL__haptic_8h.html#a8a18c4de1076ac9bebd718329d16db29" title="Custom effect is supported. ">SDL_HAPTIC_CUSTOM</a> effect.  <a href="#a202703bcce0c73569b8fb11395a5dbb4">More...</a><br /></td></tr>
<tr class="separator:a202703bcce0c73569b8fb11395a5dbb4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa65c457445c1fdfe1b81dd8fe9d0945e"><td class="memItemLeft" align="right" valign="top">typedef union <a class="el" href="unionSDL__HapticEffect.html">SDL_HapticEffect</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__haptic_8h.html#aa65c457445c1fdfe1b81dd8fe9d0945e">SDL_HapticEffect</a></td></tr>
<tr class="memdesc:aa65c457445c1fdfe1b81dd8fe9d0945e"><td class="mdescLeft">&#160;</td><td class="mdescRight">The generic template for any haptic effect.  <a href="#aa65c457445c1fdfe1b81dd8fe9d0945e">More...</a><br /></td></tr>
<tr class="separator:aa65c457445c1fdfe1b81dd8fe9d0945e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a6f538063a9f1d790882c0d3a81c302cd"><td class="memItemLeft" align="right" valign="top">DECLSPEC <a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> SDLCALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__haptic_8h.html#a6f538063a9f1d790882c0d3a81c302cd">SDL_NumHaptics</a> (<a class="el" href="SDL__audio_8h.html#a52835ae37c4bb905b903cbaf5d04b05f">void</a>)</td></tr>
<tr class="memdesc:a6f538063a9f1d790882c0d3a81c302cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Count the number of haptic devices attached to the system.  <a href="#a6f538063a9f1d790882c0d3a81c302cd">More...</a><br /></td></tr>
<tr class="separator:a6f538063a9f1d790882c0d3a81c302cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a88cd1f2fc53714cbd1056c0e6dcbaf1f"><td class="memItemLeft" align="right" valign="top">DECLSPEC const char *SDLCALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__haptic_8h.html#a88cd1f2fc53714cbd1056c0e6dcbaf1f">SDL_HapticName</a> (<a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> device_index)</td></tr>
<tr class="memdesc:a88cd1f2fc53714cbd1056c0e6dcbaf1f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the implementation dependent name of a Haptic device.  <a href="#a88cd1f2fc53714cbd1056c0e6dcbaf1f">More...</a><br /></td></tr>
<tr class="separator:a88cd1f2fc53714cbd1056c0e6dcbaf1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adf7e0c6027c1e72c93ba9720e2180d70"><td class="memItemLeft" align="right" valign="top">DECLSPEC <a class="el" href="SDL__haptic_8h.html#a79db098a0e8cb102db6c2339a2422e29">SDL_Haptic</a> *SDLCALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__haptic_8h.html#adf7e0c6027c1e72c93ba9720e2180d70">SDL_HapticOpen</a> (<a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> device_index)</td></tr>
<tr class="memdesc:adf7e0c6027c1e72c93ba9720e2180d70"><td class="mdescLeft">&#160;</td><td class="mdescRight">Opens a Haptic device for usage.  <a href="#adf7e0c6027c1e72c93ba9720e2180d70">More...</a><br /></td></tr>
<tr class="separator:adf7e0c6027c1e72c93ba9720e2180d70"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a24d8f221d4b2eae5c3c663752fc0d66a"><td class="memItemLeft" align="right" valign="top">DECLSPEC <a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> SDLCALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__haptic_8h.html#a24d8f221d4b2eae5c3c663752fc0d66a">SDL_HapticOpened</a> (<a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> device_index)</td></tr>
<tr class="memdesc:a24d8f221d4b2eae5c3c663752fc0d66a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks if the haptic device at index has been opened.  <a href="#a24d8f221d4b2eae5c3c663752fc0d66a">More...</a><br /></td></tr>
<tr class="separator:a24d8f221d4b2eae5c3c663752fc0d66a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aacee621c474cda53e56f4a2233c65407"><td class="memItemLeft" align="right" valign="top">DECLSPEC <a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> SDLCALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__haptic_8h.html#aacee621c474cda53e56f4a2233c65407">SDL_HapticIndex</a> (<a class="el" href="SDL__haptic_8h.html#a79db098a0e8cb102db6c2339a2422e29">SDL_Haptic</a> *haptic)</td></tr>
<tr class="memdesc:aacee621c474cda53e56f4a2233c65407"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the index of a haptic device.  <a href="#aacee621c474cda53e56f4a2233c65407">More...</a><br /></td></tr>
<tr class="separator:aacee621c474cda53e56f4a2233c65407"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8fcc0fb333baed629004bd8c0c66bd76"><td class="memItemLeft" align="right" valign="top">DECLSPEC <a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> SDLCALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__haptic_8h.html#a8fcc0fb333baed629004bd8c0c66bd76">SDL_MouseIsHaptic</a> (<a class="el" href="SDL__audio_8h.html#a52835ae37c4bb905b903cbaf5d04b05f">void</a>)</td></tr>
<tr class="memdesc:a8fcc0fb333baed629004bd8c0c66bd76"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets whether or not the current mouse has haptic capabilities.  <a href="#a8fcc0fb333baed629004bd8c0c66bd76">More...</a><br /></td></tr>
<tr class="separator:a8fcc0fb333baed629004bd8c0c66bd76"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aacc5469f46707fbd48166603b3b1bd8b"><td class="memItemLeft" align="right" valign="top">DECLSPEC <a class="el" href="SDL__haptic_8h.html#a79db098a0e8cb102db6c2339a2422e29">SDL_Haptic</a> *SDLCALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__haptic_8h.html#aacc5469f46707fbd48166603b3b1bd8b">SDL_HapticOpenFromMouse</a> (<a class="el" href="SDL__audio_8h.html#a52835ae37c4bb905b903cbaf5d04b05f">void</a>)</td></tr>
<tr class="memdesc:aacc5469f46707fbd48166603b3b1bd8b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tries to open a haptic device from the current mouse.  <a href="#aacc5469f46707fbd48166603b3b1bd8b">More...</a><br /></td></tr>
<tr class="separator:aacc5469f46707fbd48166603b3b1bd8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8a2966d363cba55ffdfeff42e4204ef1"><td class="memItemLeft" align="right" valign="top">DECLSPEC <a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> SDLCALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__haptic_8h.html#a8a2966d363cba55ffdfeff42e4204ef1">SDL_JoystickIsHaptic</a> (SDL_Joystick *joystick)</td></tr>
<tr class="memdesc:a8a2966d363cba55ffdfeff42e4204ef1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks to see if a joystick has haptic features.  <a href="#a8a2966d363cba55ffdfeff42e4204ef1">More...</a><br /></td></tr>
<tr class="separator:a8a2966d363cba55ffdfeff42e4204ef1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8303134205b4ab63b1a2fb5281c26702"><td class="memItemLeft" align="right" valign="top">DECLSPEC <a class="el" href="SDL__haptic_8h.html#a79db098a0e8cb102db6c2339a2422e29">SDL_Haptic</a> *SDLCALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__haptic_8h.html#a8303134205b4ab63b1a2fb5281c26702">SDL_HapticOpenFromJoystick</a> (SDL_Joystick *joystick)</td></tr>
<tr class="memdesc:a8303134205b4ab63b1a2fb5281c26702"><td class="mdescLeft">&#160;</td><td class="mdescRight">Opens a Haptic device for usage from a Joystick device.  <a href="#a8303134205b4ab63b1a2fb5281c26702">More...</a><br /></td></tr>
<tr class="separator:a8303134205b4ab63b1a2fb5281c26702"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a671599fd69f5a08cdd2ba7e3f1ae456a"><td class="memItemLeft" align="right" valign="top">DECLSPEC <a class="el" href="SDL__audio_8h.html#a52835ae37c4bb905b903cbaf5d04b05f">void</a> SDLCALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__haptic_8h.html#a671599fd69f5a08cdd2ba7e3f1ae456a">SDL_HapticClose</a> (<a class="el" href="SDL__haptic_8h.html#a79db098a0e8cb102db6c2339a2422e29">SDL_Haptic</a> *haptic)</td></tr>
<tr class="memdesc:a671599fd69f5a08cdd2ba7e3f1ae456a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Closes a Haptic device previously opened with <a class="el" href="SDL__haptic_8h.html#adf7e0c6027c1e72c93ba9720e2180d70" title="Opens a Haptic device for usage. ">SDL_HapticOpen()</a>.  <a href="#a671599fd69f5a08cdd2ba7e3f1ae456a">More...</a><br /></td></tr>
<tr class="separator:a671599fd69f5a08cdd2ba7e3f1ae456a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afc6e5a5701fe80004d529d762132ad6b"><td class="memItemLeft" align="right" valign="top">DECLSPEC <a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> SDLCALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__haptic_8h.html#afc6e5a5701fe80004d529d762132ad6b">SDL_HapticNumEffects</a> (<a class="el" href="SDL__haptic_8h.html#a79db098a0e8cb102db6c2339a2422e29">SDL_Haptic</a> *haptic)</td></tr>
<tr class="memdesc:afc6e5a5701fe80004d529d762132ad6b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of effects a haptic device can store.  <a href="#afc6e5a5701fe80004d529d762132ad6b">More...</a><br /></td></tr>
<tr class="separator:afc6e5a5701fe80004d529d762132ad6b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a255e1e6fc27489080bcbbd3c7fadc6db"><td class="memItemLeft" align="right" valign="top">DECLSPEC <a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> SDLCALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__haptic_8h.html#a255e1e6fc27489080bcbbd3c7fadc6db">SDL_HapticNumEffectsPlaying</a> (<a class="el" href="SDL__haptic_8h.html#a79db098a0e8cb102db6c2339a2422e29">SDL_Haptic</a> *haptic)</td></tr>
<tr class="memdesc:a255e1e6fc27489080bcbbd3c7fadc6db"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of effects a haptic device can play at the same time.  <a href="#a255e1e6fc27489080bcbbd3c7fadc6db">More...</a><br /></td></tr>
<tr class="separator:a255e1e6fc27489080bcbbd3c7fadc6db"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8192e1220a834e708959539fa1c3f490"><td class="memItemLeft" align="right" valign="top">DECLSPEC unsigned <a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> SDLCALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__haptic_8h.html#a8192e1220a834e708959539fa1c3f490">SDL_HapticQuery</a> (<a class="el" href="SDL__haptic_8h.html#a79db098a0e8cb102db6c2339a2422e29">SDL_Haptic</a> *haptic)</td></tr>
<tr class="memdesc:a8192e1220a834e708959539fa1c3f490"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the haptic devices supported features in bitwise matter.  <a href="#a8192e1220a834e708959539fa1c3f490">More...</a><br /></td></tr>
<tr class="separator:a8192e1220a834e708959539fa1c3f490"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad6705645197f6df4eeeea32392462483"><td class="memItemLeft" align="right" valign="top">DECLSPEC <a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> SDLCALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__haptic_8h.html#ad6705645197f6df4eeeea32392462483">SDL_HapticNumAxes</a> (<a class="el" href="SDL__haptic_8h.html#a79db098a0e8cb102db6c2339a2422e29">SDL_Haptic</a> *haptic)</td></tr>
<tr class="memdesc:ad6705645197f6df4eeeea32392462483"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the number of haptic axes the device has.  <a href="#ad6705645197f6df4eeeea32392462483">More...</a><br /></td></tr>
<tr class="separator:ad6705645197f6df4eeeea32392462483"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae333ef77753ba700875fa20858b9021d"><td class="memItemLeft" align="right" valign="top">DECLSPEC <a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> SDLCALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__haptic_8h.html#ae333ef77753ba700875fa20858b9021d">SDL_HapticEffectSupported</a> (<a class="el" href="SDL__haptic_8h.html#a79db098a0e8cb102db6c2339a2422e29">SDL_Haptic</a> *haptic, <a class="el" href="unionSDL__HapticEffect.html">SDL_HapticEffect</a> *effect)</td></tr>
<tr class="memdesc:ae333ef77753ba700875fa20858b9021d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks to see if effect is supported by haptic.  <a href="#ae333ef77753ba700875fa20858b9021d">More...</a><br /></td></tr>
<tr class="separator:ae333ef77753ba700875fa20858b9021d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a176c52ff4b77b63cb94ea83f8f4183ad"><td class="memItemLeft" align="right" valign="top">DECLSPEC <a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> SDLCALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__haptic_8h.html#a176c52ff4b77b63cb94ea83f8f4183ad">SDL_HapticNewEffect</a> (<a class="el" href="SDL__haptic_8h.html#a79db098a0e8cb102db6c2339a2422e29">SDL_Haptic</a> *haptic, <a class="el" href="unionSDL__HapticEffect.html">SDL_HapticEffect</a> *effect)</td></tr>
<tr class="memdesc:a176c52ff4b77b63cb94ea83f8f4183ad"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a new haptic effect on the device.  <a href="#a176c52ff4b77b63cb94ea83f8f4183ad">More...</a><br /></td></tr>
<tr class="separator:a176c52ff4b77b63cb94ea83f8f4183ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4c212cbdb3487dd8d72882d355a19472"><td class="memItemLeft" align="right" valign="top">DECLSPEC <a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> SDLCALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__haptic_8h.html#a4c212cbdb3487dd8d72882d355a19472">SDL_HapticUpdateEffect</a> (<a class="el" href="SDL__haptic_8h.html#a79db098a0e8cb102db6c2339a2422e29">SDL_Haptic</a> *haptic, <a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> effect, <a class="el" href="unionSDL__HapticEffect.html">SDL_HapticEffect</a> *data)</td></tr>
<tr class="memdesc:a4c212cbdb3487dd8d72882d355a19472"><td class="mdescLeft">&#160;</td><td class="mdescRight">Updates the properties of an effect.  <a href="#a4c212cbdb3487dd8d72882d355a19472">More...</a><br /></td></tr>
<tr class="separator:a4c212cbdb3487dd8d72882d355a19472"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1cd1294768bb00f35b77f67031a8a9cb"><td class="memItemLeft" align="right" valign="top">DECLSPEC <a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> SDLCALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__haptic_8h.html#a1cd1294768bb00f35b77f67031a8a9cb">SDL_HapticRunEffect</a> (<a class="el" href="SDL__haptic_8h.html#a79db098a0e8cb102db6c2339a2422e29">SDL_Haptic</a> *haptic, <a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> effect, <a class="el" href="SDL__stdinc_8h.html#add440eff171ea5f55cb00c4a9ab8672d">Uint32</a> iterations)</td></tr>
<tr class="memdesc:a1cd1294768bb00f35b77f67031a8a9cb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Runs the haptic effect on its associated haptic device.  <a href="#a1cd1294768bb00f35b77f67031a8a9cb">More...</a><br /></td></tr>
<tr class="separator:a1cd1294768bb00f35b77f67031a8a9cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a27b35e361aaafa830561e98328c98c8e"><td class="memItemLeft" align="right" valign="top">DECLSPEC <a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> SDLCALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__haptic_8h.html#a27b35e361aaafa830561e98328c98c8e">SDL_HapticStopEffect</a> (<a class="el" href="SDL__haptic_8h.html#a79db098a0e8cb102db6c2339a2422e29">SDL_Haptic</a> *haptic, <a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> effect)</td></tr>
<tr class="memdesc:a27b35e361aaafa830561e98328c98c8e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stops the haptic effect on its associated haptic device.  <a href="#a27b35e361aaafa830561e98328c98c8e">More...</a><br /></td></tr>
<tr class="separator:a27b35e361aaafa830561e98328c98c8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0bb35fea7c4c08c9bcb80e0bcfa1799f"><td class="memItemLeft" align="right" valign="top">DECLSPEC <a class="el" href="SDL__audio_8h.html#a52835ae37c4bb905b903cbaf5d04b05f">void</a> SDLCALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__haptic_8h.html#a0bb35fea7c4c08c9bcb80e0bcfa1799f">SDL_HapticDestroyEffect</a> (<a class="el" href="SDL__haptic_8h.html#a79db098a0e8cb102db6c2339a2422e29">SDL_Haptic</a> *haptic, <a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> effect)</td></tr>
<tr class="memdesc:a0bb35fea7c4c08c9bcb80e0bcfa1799f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroys a haptic effect on the device.  <a href="#a0bb35fea7c4c08c9bcb80e0bcfa1799f">More...</a><br /></td></tr>
<tr class="separator:a0bb35fea7c4c08c9bcb80e0bcfa1799f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae2185c0814f107dd5851dd743e9ea71c"><td class="memItemLeft" align="right" valign="top">DECLSPEC <a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> SDLCALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__haptic_8h.html#ae2185c0814f107dd5851dd743e9ea71c">SDL_HapticGetEffectStatus</a> (<a class="el" href="SDL__haptic_8h.html#a79db098a0e8cb102db6c2339a2422e29">SDL_Haptic</a> *haptic, <a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> effect)</td></tr>
<tr class="memdesc:ae2185c0814f107dd5851dd743e9ea71c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the status of the current effect on the haptic device.  <a href="#ae2185c0814f107dd5851dd743e9ea71c">More...</a><br /></td></tr>
<tr class="separator:ae2185c0814f107dd5851dd743e9ea71c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2a90e7cefab3fdecf37e2f1b956a9e73"><td class="memItemLeft" align="right" valign="top">DECLSPEC <a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> SDLCALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__haptic_8h.html#a2a90e7cefab3fdecf37e2f1b956a9e73">SDL_HapticSetGain</a> (<a class="el" href="SDL__haptic_8h.html#a79db098a0e8cb102db6c2339a2422e29">SDL_Haptic</a> *haptic, <a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> gain)</td></tr>
<tr class="memdesc:a2a90e7cefab3fdecf37e2f1b956a9e73"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the global gain of the device.  <a href="#a2a90e7cefab3fdecf37e2f1b956a9e73">More...</a><br /></td></tr>
<tr class="separator:a2a90e7cefab3fdecf37e2f1b956a9e73"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0b0d63aa4513fc1b12939500cb3f8a76"><td class="memItemLeft" align="right" valign="top">DECLSPEC <a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> SDLCALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__haptic_8h.html#a0b0d63aa4513fc1b12939500cb3f8a76">SDL_HapticSetAutocenter</a> (<a class="el" href="SDL__haptic_8h.html#a79db098a0e8cb102db6c2339a2422e29">SDL_Haptic</a> *haptic, <a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> autocenter)</td></tr>
<tr class="memdesc:a0b0d63aa4513fc1b12939500cb3f8a76"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the global autocenter of the device.  <a href="#a0b0d63aa4513fc1b12939500cb3f8a76">More...</a><br /></td></tr>
<tr class="separator:a0b0d63aa4513fc1b12939500cb3f8a76"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af0181e59ecd14c6aecd1fd3c5099330a"><td class="memItemLeft" align="right" valign="top">DECLSPEC <a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> SDLCALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__haptic_8h.html#af0181e59ecd14c6aecd1fd3c5099330a">SDL_HapticPause</a> (<a class="el" href="SDL__haptic_8h.html#a79db098a0e8cb102db6c2339a2422e29">SDL_Haptic</a> *haptic)</td></tr>
<tr class="memdesc:af0181e59ecd14c6aecd1fd3c5099330a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pauses a haptic device.  <a href="#af0181e59ecd14c6aecd1fd3c5099330a">More...</a><br /></td></tr>
<tr class="separator:af0181e59ecd14c6aecd1fd3c5099330a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3593eed87aee3b9caa1c25927002c5ae"><td class="memItemLeft" align="right" valign="top">DECLSPEC <a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> SDLCALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__haptic_8h.html#a3593eed87aee3b9caa1c25927002c5ae">SDL_HapticUnpause</a> (<a class="el" href="SDL__haptic_8h.html#a79db098a0e8cb102db6c2339a2422e29">SDL_Haptic</a> *haptic)</td></tr>
<tr class="memdesc:a3593eed87aee3b9caa1c25927002c5ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unpauses a haptic device.  <a href="#a3593eed87aee3b9caa1c25927002c5ae">More...</a><br /></td></tr>
<tr class="separator:a3593eed87aee3b9caa1c25927002c5ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aad427170295d6b88a5a94cd6a491797a"><td class="memItemLeft" align="right" valign="top">DECLSPEC <a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> SDLCALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__haptic_8h.html#aad427170295d6b88a5a94cd6a491797a">SDL_HapticStopAll</a> (<a class="el" href="SDL__haptic_8h.html#a79db098a0e8cb102db6c2339a2422e29">SDL_Haptic</a> *haptic)</td></tr>
<tr class="memdesc:aad427170295d6b88a5a94cd6a491797a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stops all the currently playing effects on a haptic device.  <a href="#aad427170295d6b88a5a94cd6a491797a">More...</a><br /></td></tr>
<tr class="separator:aad427170295d6b88a5a94cd6a491797a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa0754b11e2aed38bc955750c7a6a6c73"><td class="memItemLeft" align="right" valign="top">DECLSPEC <a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> SDLCALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__haptic_8h.html#aa0754b11e2aed38bc955750c7a6a6c73">SDL_HapticRumbleSupported</a> (<a class="el" href="SDL__haptic_8h.html#a79db098a0e8cb102db6c2339a2422e29">SDL_Haptic</a> *haptic)</td></tr>
<tr class="memdesc:aa0754b11e2aed38bc955750c7a6a6c73"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks to see if rumble is supported on a haptic device.  <a href="#aa0754b11e2aed38bc955750c7a6a6c73">More...</a><br /></td></tr>
<tr class="separator:aa0754b11e2aed38bc955750c7a6a6c73"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af44cbecefe14da5a7476013ce06f38b9"><td class="memItemLeft" align="right" valign="top">DECLSPEC <a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> SDLCALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__haptic_8h.html#af44cbecefe14da5a7476013ce06f38b9">SDL_HapticRumbleInit</a> (<a class="el" href="SDL__haptic_8h.html#a79db098a0e8cb102db6c2339a2422e29">SDL_Haptic</a> *haptic)</td></tr>
<tr class="memdesc:af44cbecefe14da5a7476013ce06f38b9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the haptic device for simple rumble playback.  <a href="#af44cbecefe14da5a7476013ce06f38b9">More...</a><br /></td></tr>
<tr class="separator:af44cbecefe14da5a7476013ce06f38b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a971b5651414202f89a8c6eed640e990d"><td class="memItemLeft" align="right" valign="top">DECLSPEC <a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> SDLCALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__haptic_8h.html#a971b5651414202f89a8c6eed640e990d">SDL_HapticRumblePlay</a> (<a class="el" href="SDL__haptic_8h.html#a79db098a0e8cb102db6c2339a2422e29">SDL_Haptic</a> *haptic, float strength, <a class="el" href="SDL__stdinc_8h.html#add440eff171ea5f55cb00c4a9ab8672d">Uint32</a> length)</td></tr>
<tr class="memdesc:a971b5651414202f89a8c6eed640e990d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Runs simple rumble on a haptic device.  <a href="#a971b5651414202f89a8c6eed640e990d">More...</a><br /></td></tr>
<tr class="separator:a971b5651414202f89a8c6eed640e990d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9e11ff3ae40f59c04be3bae98d8d05ba"><td class="memItemLeft" align="right" valign="top">DECLSPEC <a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> SDLCALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__haptic_8h.html#a9e11ff3ae40f59c04be3bae98d8d05ba">SDL_HapticRumbleStop</a> (<a class="el" href="SDL__haptic_8h.html#a79db098a0e8cb102db6c2339a2422e29">SDL_Haptic</a> *haptic)</td></tr>
<tr class="memdesc:a9e11ff3ae40f59c04be3bae98d8d05ba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stops the simple rumble on a haptic device.  <a href="#a9e11ff3ae40f59c04be3bae98d8d05ba">More...</a><br /></td></tr>
<tr class="separator:a9e11ff3ae40f59c04be3bae98d8d05ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>The SDL Haptic subsystem allows you to control haptic (force feedback) devices. </p>
<p>The basic usage is as follows:</p><ul>
<li>Initialize the Subsystem (::SDL_INIT_HAPTIC).</li>
<li>Open a Haptic Device.<ul>
<li><a class="el" href="SDL__haptic_8h.html#adf7e0c6027c1e72c93ba9720e2180d70" title="Opens a Haptic device for usage. ">SDL_HapticOpen()</a> to open from index.</li>
<li><a class="el" href="SDL__haptic_8h.html#a8303134205b4ab63b1a2fb5281c26702" title="Opens a Haptic device for usage from a Joystick device. ">SDL_HapticOpenFromJoystick()</a> to open from an existing joystick.</li>
</ul>
</li>
<li>Create an effect (<a class="el" href="unionSDL__HapticEffect.html" title="The generic template for any haptic effect. ">SDL_HapticEffect</a>).</li>
<li>Upload the effect with <a class="el" href="SDL__haptic_8h.html#a176c52ff4b77b63cb94ea83f8f4183ad" title="Creates a new haptic effect on the device. ">SDL_HapticNewEffect()</a>.</li>
<li>Run the effect with <a class="el" href="SDL__haptic_8h.html#a1cd1294768bb00f35b77f67031a8a9cb" title="Runs the haptic effect on its associated haptic device. ">SDL_HapticRunEffect()</a>.</li>
<li>(optional) Free the effect with <a class="el" href="SDL__haptic_8h.html#a0bb35fea7c4c08c9bcb80e0bcfa1799f" title="Destroys a haptic effect on the device. ">SDL_HapticDestroyEffect()</a>.</li>
<li>Close the haptic device with <a class="el" href="SDL__haptic_8h.html#a671599fd69f5a08cdd2ba7e3f1ae456a" title="Closes a Haptic device previously opened with SDL_HapticOpen(). ">SDL_HapticClose()</a>.</li>
</ul>
<dl class="section user"><dt>Simple rumble example:</dt><dd><div class="fragment"><div class="line"><a class="code" href="SDL__haptic_8h.html#a79db098a0e8cb102db6c2339a2422e29">SDL_Haptic</a> *haptic;</div>
<div class="line"></div>
<div class="line"><span class="comment">// Open the device</span></div>
<div class="line">haptic = <a class="code" href="SDL__haptic_8h.html#adf7e0c6027c1e72c93ba9720e2180d70">SDL_HapticOpen</a>( 0 );</div>
<div class="line"><span class="keywordflow">if</span> (haptic == NULL)</div>
<div class="line">   <span class="keywordflow">return</span> -1;</div>
<div class="line"></div>
<div class="line"><span class="comment">// Initialize simple rumble</span></div>
<div class="line"><span class="keywordflow">if</span> (<a class="code" href="SDL__haptic_8h.html#af44cbecefe14da5a7476013ce06f38b9">SDL_HapticRumbleInit</a>( haptic ) != 0)</div>
<div class="line">   <span class="keywordflow">return</span> -1;</div>
<div class="line"></div>
<div class="line"><span class="comment">// Play effect at 50% strength for 2 seconds</span></div>
<div class="line"><span class="keywordflow">if</span> (<a class="code" href="SDL__haptic_8h.html#a971b5651414202f89a8c6eed640e990d">SDL_HapticRumblePlay</a>( haptic, 0.5, 2000 ) != 0)</div>
<div class="line">   <span class="keywordflow">return</span> -1;</div>
<div class="line"><a class="code" href="SDL__timer_8h.html#ae8050b95373b95249064467592ab4e21">SDL_Delay</a>( 2000 );</div>
<div class="line"></div>
<div class="line"><span class="comment">// Clean up</span></div>
<div class="line"><a class="code" href="SDL__haptic_8h.html#a671599fd69f5a08cdd2ba7e3f1ae456a">SDL_HapticClose</a>( haptic );</div>
</div><!-- fragment --></dd></dl>
<dl class="section user"><dt>Complete example:</dt><dd><div class="fragment"><div class="line"><span class="keywordtype">int</span> test_haptic( SDL_Joystick * joystick ) {</div>
<div class="line">   <a class="code" href="SDL__haptic_8h.html#a79db098a0e8cb102db6c2339a2422e29">SDL_Haptic</a> *haptic;</div>
<div class="line">   <a class="code" href="unionSDL__HapticEffect.html">SDL_HapticEffect</a> effect;</div>
<div class="line">   <span class="keywordtype">int</span> effect_id;</div>
<div class="line"></div>
<div class="line">   <span class="comment">// Open the device</span></div>
<div class="line">   haptic = <a class="code" href="SDL__haptic_8h.html#a8303134205b4ab63b1a2fb5281c26702">SDL_HapticOpenFromJoystick</a>( joystick );</div>
<div class="line">   <span class="keywordflow">if</span> (haptic == NULL) <span class="keywordflow">return</span> -1; <span class="comment">// Most likely joystick isn&#39;t haptic</span></div>
<div class="line"></div>
<div class="line">   <span class="comment">// See if it can do sine waves</span></div>
<div class="line">   <span class="keywordflow">if</span> ((<a class="code" href="SDL__haptic_8h.html#a8192e1220a834e708959539fa1c3f490">SDL_HapticQuery</a>(haptic) &amp; <a class="code" href="SDL__haptic_8h.html#aa6d75adbfcdda5075078e7a2849da5c0">SDL_HAPTIC_SINE</a>)==0) {</div>
<div class="line">      <a class="code" href="SDL__haptic_8h.html#a671599fd69f5a08cdd2ba7e3f1ae456a">SDL_HapticClose</a>(haptic); <span class="comment">// No sine effect</span></div>
<div class="line">      <span class="keywordflow">return</span> -1;</div>
<div class="line">   }</div>
<div class="line"></div>
<div class="line">   <span class="comment">// Create the effect</span></div>
<div class="line">   memset( &amp;effect, 0, <span class="keyword">sizeof</span>(<a class="code" href="unionSDL__HapticEffect.html">SDL_HapticEffect</a>) ); <span class="comment">// 0 is safe default</span></div>
<div class="line">   effect.<a class="code" href="unionSDL__HapticEffect.html#a5ff6cfd8da91537091e9a6c2108cb179">type</a> = <a class="code" href="SDL__haptic_8h.html#aa6d75adbfcdda5075078e7a2849da5c0">SDL_HAPTIC_SINE</a>;</div>
<div class="line">   effect.<a class="code" href="unionSDL__HapticEffect.html#a8320ec4db6ec1dc1d30feb62ee2a2f04">periodic</a>.<a class="code" href="structSDL__HapticPeriodic.html#a2c4f27d4583187a7a994e79ad49083d3">direction</a>.<a class="code" href="structSDL__HapticDirection.html#acd6830ad68c4ba2af16057fa418087cc">type</a> = <a class="code" href="SDL__haptic_8h.html#acdc35e97e5525472054a67b76e518f3b">SDL_HAPTIC_POLAR</a>; <span class="comment">// Polar coordinates</span></div>
<div class="line">   effect.<a class="code" href="unionSDL__HapticEffect.html#a8320ec4db6ec1dc1d30feb62ee2a2f04">periodic</a>.<a class="code" href="structSDL__HapticPeriodic.html#a2c4f27d4583187a7a994e79ad49083d3">direction</a>.<a class="code" href="structSDL__HapticDirection.html#a6cebd8118a3e61e36bd0c503ae020362">dir</a>[0] = 18000; <span class="comment">// Force comes from south</span></div>
<div class="line">   effect.<a class="code" href="unionSDL__HapticEffect.html#a8320ec4db6ec1dc1d30feb62ee2a2f04">periodic</a>.<a class="code" href="structSDL__HapticPeriodic.html#a0e7e105b96308129b248d52b56a2a839">period</a> = 1000; <span class="comment">// 1000 ms</span></div>
<div class="line">   effect.<a class="code" href="unionSDL__HapticEffect.html#a8320ec4db6ec1dc1d30feb62ee2a2f04">periodic</a>.<a class="code" href="structSDL__HapticPeriodic.html#aad0ad2b00c7e6959da627663d91f7b94">magnitude</a> = 20000; <span class="comment">// 20000/32767 strength</span></div>
<div class="line">   effect.<a class="code" href="unionSDL__HapticEffect.html#a8320ec4db6ec1dc1d30feb62ee2a2f04">periodic</a>.<a class="code" href="structSDL__HapticPeriodic.html#a0ef0b17c54aaa5c99886c2a618444026">length</a> = 5000; <span class="comment">// 5 seconds long</span></div>
<div class="line">   effect.<a class="code" href="unionSDL__HapticEffect.html#a8320ec4db6ec1dc1d30feb62ee2a2f04">periodic</a>.<a class="code" href="structSDL__HapticPeriodic.html#ab35eedce7107edc75640586159fe75bb">attack_length</a> = 1000; <span class="comment">// Takes 1 second to get max strength</span></div>
<div class="line">   effect.<a class="code" href="unionSDL__HapticEffect.html#a8320ec4db6ec1dc1d30feb62ee2a2f04">periodic</a>.<a class="code" href="structSDL__HapticPeriodic.html#ae1c186d02304eae142a62dca72f50fa8">fade_length</a> = 1000; <span class="comment">// Takes 1 second to fade away</span></div>
<div class="line"></div>
<div class="line">   <span class="comment">// Upload the effect</span></div>
<div class="line">   effect_id = <a class="code" href="SDL__haptic_8h.html#a176c52ff4b77b63cb94ea83f8f4183ad">SDL_HapticNewEffect</a>( haptic, &amp;effect );</div>
<div class="line"></div>
<div class="line">   <span class="comment">// Test the effect</span></div>
<div class="line">   <a class="code" href="SDL__haptic_8h.html#a1cd1294768bb00f35b77f67031a8a9cb">SDL_HapticRunEffect</a>( haptic, effect_id, 1 );</div>
<div class="line">   <a class="code" href="SDL__timer_8h.html#ae8050b95373b95249064467592ab4e21">SDL_Delay</a>( 5000); <span class="comment">// Wait for the effect to finish</span></div>
<div class="line"></div>
<div class="line">   <span class="comment">// We destroy the effect, although closing the device also does this</span></div>
<div class="line">   <a class="code" href="SDL__haptic_8h.html#a0bb35fea7c4c08c9bcb80e0bcfa1799f">SDL_HapticDestroyEffect</a>( haptic, effect_id );</div>
<div class="line"></div>
<div class="line">   <span class="comment">// Close the device</span></div>
<div class="line">   <a class="code" href="SDL__haptic_8h.html#a671599fd69f5a08cdd2ba7e3f1ae456a">SDL_HapticClose</a>(haptic);</div>
<div class="line"></div>
<div class="line">   <span class="keywordflow">return</span> 0; <span class="comment">// Success</span></div>
<div class="line">}</div>
</div><!-- fragment --></dd></dl>
<p>You can also find out more information on my blog: <a href="http://bobbens.dyndns.org/journal/2010/sdl_haptic/">http://bobbens.dyndns.org/journal/2010/sdl_haptic/</a></p>
<dl class="section author"><dt>Author</dt><dd>Edgar Simo Serra </dd></dl>
</div><h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="a28aa71e231fbf5b88bce7906bf2f4e70"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define SDL_HAPTIC_AUTOCENTER&#160;&#160;&#160;(1&lt;&lt;13)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Device can set autocenter. </p>
<p>Device supports setting autocenter.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="SDL__haptic_8h.html#a0b0d63aa4513fc1b12939500cb3f8a76" title="Sets the global autocenter of the device. ">SDL_HapticSetAutocenter</a> </dd></dl>

</div>
</div>
<a class="anchor" id="af8b2430a363a968de2a5b64c8f663d3b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define SDL_HAPTIC_CARTESIAN&#160;&#160;&#160;1</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Uses cartesian coordinates for the direction. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="structSDL__HapticDirection.html" title="Structure that represents a haptic direction. ">SDL_HapticDirection</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a955fb9f680dcf9cc72a3d5263e85b80a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define SDL_HAPTIC_CONSTANT&#160;&#160;&#160;(1&lt;&lt;0)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Constant effect supported. </p>
<p>Constant haptic effect.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="structSDL__HapticCondition.html" title="A structure containing a template for a Condition effect. ">SDL_HapticCondition</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a8a18c4de1076ac9bebd718329d16db29"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define SDL_HAPTIC_CUSTOM&#160;&#160;&#160;(1&lt;&lt;11)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Custom effect is supported. </p>
<p>User defined custom haptic effect. </p>

</div>
</div>
<a class="anchor" id="a69522f261973e3ea4273486141320a87"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define SDL_HAPTIC_DAMPER&#160;&#160;&#160;(1&lt;&lt;8)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Damper effect supported - uses axes velocity. </p>
<p>Condition haptic effect that simulates dampening. Effect is based on the axes velocity.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="structSDL__HapticCondition.html" title="A structure containing a template for a Condition effect. ">SDL_HapticCondition</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a98a5011311168d63921aaac21403a4d8"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define SDL_HAPTIC_FRICTION&#160;&#160;&#160;(1&lt;&lt;10)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Friction effect supported - uses axes movement. </p>
<p>Condition haptic effect that simulates friction. Effect is based on the axes movement.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="structSDL__HapticCondition.html" title="A structure containing a template for a Condition effect. ">SDL_HapticCondition</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a3afe54582bd5c184109f3f61b6c84c6c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define SDL_HAPTIC_GAIN&#160;&#160;&#160;(1&lt;&lt;12)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Device can set global gain. </p>
<p>Device supports setting the global gain.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="SDL__haptic_8h.html#a2a90e7cefab3fdecf37e2f1b956a9e73" title="Sets the global gain of the device. ">SDL_HapticSetGain</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a14b807471589120395aec28293cf6642"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define SDL_HAPTIC_INERTIA&#160;&#160;&#160;(1&lt;&lt;9)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Inertia effect supported - uses axes acceleration. </p>
<p>Condition haptic effect that simulates inertia. Effect is based on the axes acceleration.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="structSDL__HapticCondition.html" title="A structure containing a template for a Condition effect. ">SDL_HapticCondition</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a648896e9e14cb27fa8a4b6632d3f3882"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define SDL_HAPTIC_INFINITY&#160;&#160;&#160;4294967295U</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Used to play a device an infinite number of times. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="SDL__haptic_8h.html#a1cd1294768bb00f35b77f67031a8a9cb" title="Runs the haptic effect on its associated haptic device. ">SDL_HapticRunEffect</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ae047624d8458ff6400887c37a36f86d3"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define SDL_HAPTIC_LEFTRIGHT&#160;&#160;&#160;(1&lt;&lt;2)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Left/Right effect supported. </p>
<p>Haptic effect for direct control over high/low frequency motors.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="structSDL__HapticLeftRight.html" title="A structure containing a template for a Left/Right effect. ">SDL_HapticLeftRight</a> </dd></dl>
<dl class="section warning"><dt>Warning</dt><dd>this value was SDL_HAPTIC_SQUARE right before 2.0.0 shipped. Sorry, we ran out of bits, and this is important for XInput devices. </dd></dl>

</div>
</div>
<a class="anchor" id="a6baee8978ccc97add8457388801d7782"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define SDL_HAPTIC_PAUSE&#160;&#160;&#160;(1&lt;&lt;15)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Device can be paused. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="SDL__haptic_8h.html#af0181e59ecd14c6aecd1fd3c5099330a" title="Pauses a haptic device. ">SDL_HapticPause</a> </dd>
<dd>
<a class="el" href="SDL__haptic_8h.html#a3593eed87aee3b9caa1c25927002c5ae" title="Unpauses a haptic device. ">SDL_HapticUnpause</a> </dd></dl>

</div>
</div>
<a class="anchor" id="acdc35e97e5525472054a67b76e518f3b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define SDL_HAPTIC_POLAR&#160;&#160;&#160;0</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Uses polar coordinates for the direction. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="structSDL__HapticDirection.html" title="Structure that represents a haptic direction. ">SDL_HapticDirection</a> </dd></dl>

</div>
</div>
<a class="anchor" id="af10eb937a64a8f602e9c46682ac0d868"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define SDL_HAPTIC_RAMP&#160;&#160;&#160;(1&lt;&lt;6)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Ramp effect supported. </p>
<p>Ramp haptic effect.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="structSDL__HapticRamp.html" title="A structure containing a template for a Ramp effect. ">SDL_HapticRamp</a> </dd></dl>

</div>
</div>
<a class="anchor" id="afd64aa747034a7ccf4b55f6246525701"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define SDL_HAPTIC_SAWTOOTHDOWN&#160;&#160;&#160;(1&lt;&lt;5)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sawtoothdown wave effect supported. </p>
<p>Periodic haptic effect that simulates saw tooth down waves.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="structSDL__HapticPeriodic.html" title="A structure containing a template for a Periodic effect. ">SDL_HapticPeriodic</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ab8e3f40f3c2bcee8905d13b634363c3f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define SDL_HAPTIC_SAWTOOTHUP&#160;&#160;&#160;(1&lt;&lt;4)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sawtoothup wave effect supported. </p>
<p>Periodic haptic effect that simulates saw tooth up waves.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="structSDL__HapticPeriodic.html" title="A structure containing a template for a Periodic effect. ">SDL_HapticPeriodic</a> </dd></dl>

</div>
</div>
<a class="anchor" id="aa6d75adbfcdda5075078e7a2849da5c0"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define SDL_HAPTIC_SINE&#160;&#160;&#160;(1&lt;&lt;1)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sine wave effect supported. </p>
<p>Periodic haptic effect that simulates sine waves.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="structSDL__HapticPeriodic.html" title="A structure containing a template for a Periodic effect. ">SDL_HapticPeriodic</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a1fcf7cb0eaf3c39b16ba266054e25aff"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define SDL_HAPTIC_SPHERICAL&#160;&#160;&#160;2</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Uses spherical coordinates for the direction. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="structSDL__HapticDirection.html" title="Structure that represents a haptic direction. ">SDL_HapticDirection</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a3b52d4700380085e2b5d87bb20320fb1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define SDL_HAPTIC_SPRING&#160;&#160;&#160;(1&lt;&lt;7)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Spring effect supported - uses axes position. </p>
<p>Condition haptic effect that simulates a spring. Effect is based on the axes position.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="structSDL__HapticCondition.html" title="A structure containing a template for a Condition effect. ">SDL_HapticCondition</a> </dd></dl>

</div>
</div>
<a class="anchor" id="abfbc9fa0d65f4b5632788945080cc71b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define SDL_HAPTIC_STATUS&#160;&#160;&#160;(1&lt;&lt;14)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Device can be queried for effect status. </p>
<p>Device can be queried for effect status.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="SDL__haptic_8h.html#ae2185c0814f107dd5851dd743e9ea71c" title="Gets the status of the current effect on the haptic device. ">SDL_HapticGetEffectStatus</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ae8123eaa51511507375ba6ef9220fa46"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define SDL_HAPTIC_TRIANGLE&#160;&#160;&#160;(1&lt;&lt;3)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Triangle wave effect supported. </p>
<p>Periodic haptic effect that simulates triangular waves.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="structSDL__HapticPeriodic.html" title="A structure containing a template for a Periodic effect. ">SDL_HapticPeriodic</a> </dd></dl>

</div>
</div>
<h2 class="groupheader">Typedef Documentation</h2>
<a class="anchor" id="a79db098a0e8cb102db6c2339a2422e29"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="SDL__haptic_8h.html#a79db098a0e8cb102db6c2339a2422e29">SDL_Haptic</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>The haptic structure used to identify an SDL haptic. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="SDL__haptic_8h.html#adf7e0c6027c1e72c93ba9720e2180d70" title="Opens a Haptic device for usage. ">SDL_HapticOpen</a> </dd>
<dd>
<a class="el" href="SDL__haptic_8h.html#a8303134205b4ab63b1a2fb5281c26702" title="Opens a Haptic device for usage from a Joystick device. ">SDL_HapticOpenFromJoystick</a> </dd>
<dd>
<a class="el" href="SDL__haptic_8h.html#a671599fd69f5a08cdd2ba7e3f1ae456a" title="Closes a Haptic device previously opened with SDL_HapticOpen(). ">SDL_HapticClose</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a8432ee45df16281a91b04cfd06ec5235"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structSDL__HapticCondition.html">SDL_HapticCondition</a>  <a class="el" href="structSDL__HapticCondition.html">SDL_HapticCondition</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>A structure containing a template for a Condition effect. </p>
<p>The struct handles the following effects:</p><ul>
<li><a class="el" href="SDL__haptic_8h.html#a3b52d4700380085e2b5d87bb20320fb1" title="Spring effect supported - uses axes position. ">SDL_HAPTIC_SPRING</a>: Effect based on axes position.</li>
<li><a class="el" href="SDL__haptic_8h.html#a69522f261973e3ea4273486141320a87" title="Damper effect supported - uses axes velocity. ">SDL_HAPTIC_DAMPER</a>: Effect based on axes velocity.</li>
<li><a class="el" href="SDL__haptic_8h.html#a14b807471589120395aec28293cf6642" title="Inertia effect supported - uses axes acceleration. ">SDL_HAPTIC_INERTIA</a>: Effect based on axes acceleration.</li>
<li><a class="el" href="SDL__haptic_8h.html#a98a5011311168d63921aaac21403a4d8" title="Friction effect supported - uses axes movement. ">SDL_HAPTIC_FRICTION</a>: Effect based on axes movement.</li>
</ul>
<p>Direction is handled by condition internals instead of a direction member. The condition effect specific members have three parameters. The first refers to the X axis, the second refers to the Y axis and the third refers to the Z axis. The right terms refer to the positive side of the axis and the left terms refer to the negative side of the axis. Please refer to the <a class="el" href="structSDL__HapticDirection.html" title="Structure that represents a haptic direction. ">SDL_HapticDirection</a> diagram for which side is positive and which is negative.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="structSDL__HapticDirection.html" title="Structure that represents a haptic direction. ">SDL_HapticDirection</a> </dd>
<dd>
<a class="el" href="SDL__haptic_8h.html#a3b52d4700380085e2b5d87bb20320fb1" title="Spring effect supported - uses axes position. ">SDL_HAPTIC_SPRING</a> </dd>
<dd>
<a class="el" href="SDL__haptic_8h.html#a69522f261973e3ea4273486141320a87" title="Damper effect supported - uses axes velocity. ">SDL_HAPTIC_DAMPER</a> </dd>
<dd>
<a class="el" href="SDL__haptic_8h.html#a14b807471589120395aec28293cf6642" title="Inertia effect supported - uses axes acceleration. ">SDL_HAPTIC_INERTIA</a> </dd>
<dd>
<a class="el" href="SDL__haptic_8h.html#a98a5011311168d63921aaac21403a4d8" title="Friction effect supported - uses axes movement. ">SDL_HAPTIC_FRICTION</a> </dd>
<dd>
<a class="el" href="unionSDL__HapticEffect.html" title="The generic template for any haptic effect. ">SDL_HapticEffect</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a6b80688fe63b575df4a694a935a2c64b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structSDL__HapticConstant.html">SDL_HapticConstant</a>  <a class="el" href="structSDL__HapticConstant.html">SDL_HapticConstant</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>A structure containing a template for a Constant effect. </p>
<p>The struct is exclusive to the <a class="el" href="SDL__haptic_8h.html#a955fb9f680dcf9cc72a3d5263e85b80a" title="Constant effect supported. ">SDL_HAPTIC_CONSTANT</a> effect.</p>
<p>A constant effect applies a constant force in the specified direction to the joystick.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="SDL__haptic_8h.html#a955fb9f680dcf9cc72a3d5263e85b80a" title="Constant effect supported. ">SDL_HAPTIC_CONSTANT</a> </dd>
<dd>
<a class="el" href="unionSDL__HapticEffect.html" title="The generic template for any haptic effect. ">SDL_HapticEffect</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a202703bcce0c73569b8fb11395a5dbb4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structSDL__HapticCustom.html">SDL_HapticCustom</a>  <a class="el" href="structSDL__HapticCustom.html">SDL_HapticCustom</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>A structure containing a template for the <a class="el" href="SDL__haptic_8h.html#a8a18c4de1076ac9bebd718329d16db29" title="Custom effect is supported. ">SDL_HAPTIC_CUSTOM</a> effect. </p>
<p>A custom force feedback effect is much like a periodic effect, where the application can define its exact shape. You will have to allocate the data yourself. Data should consist of channels * samples Uint16 samples.</p>
<p>If channels is one, the effect is rotated using the defined direction. Otherwise it uses the samples in data for the different axes.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="SDL__haptic_8h.html#a8a18c4de1076ac9bebd718329d16db29" title="Custom effect is supported. ">SDL_HAPTIC_CUSTOM</a> </dd>
<dd>
<a class="el" href="unionSDL__HapticEffect.html" title="The generic template for any haptic effect. ">SDL_HapticEffect</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a4395df8f6028b3d4c72dc4a4101cf1fa"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structSDL__HapticDirection.html">SDL_HapticDirection</a>  <a class="el" href="structSDL__HapticDirection.html">SDL_HapticDirection</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Structure that represents a haptic direction. </p>
<p>Directions can be specified by:</p><ul>
<li><a class="el" href="SDL__haptic_8h.html#acdc35e97e5525472054a67b76e518f3b" title="Uses polar coordinates for the direction. ">SDL_HAPTIC_POLAR</a> : Specified by polar coordinates.</li>
<li><a class="el" href="SDL__haptic_8h.html#af8b2430a363a968de2a5b64c8f663d3b" title="Uses cartesian coordinates for the direction. ">SDL_HAPTIC_CARTESIAN</a> : Specified by cartesian coordinates.</li>
<li><a class="el" href="SDL__haptic_8h.html#a1fcf7cb0eaf3c39b16ba266054e25aff" title="Uses spherical coordinates for the direction. ">SDL_HAPTIC_SPHERICAL</a> : Specified by spherical coordinates.</li>
</ul>
<p>Cardinal directions of the haptic device are relative to the positioning of the device. North is considered to be away from the user.</p>
<p>The following diagram represents the cardinal directions: </p><pre class="fragment">             .--.
             |__| .-------.
             |=.| |.-----.|
             |--| ||     ||
             |  | |'-----'|
             |__|~')_____('
               [ COMPUTER ]


                 North (0,-1)
                     ^
                     |
                     |
(1,0)  West &lt;----[ HAPTIC ]----&gt; East (-1,0)
                     |
                     |
                     v
                  South (0,1)


                  [ USER ]
                    \|||/
                    (o o)
              ---ooO-(_)-Ooo---
</pre><p>If type is <a class="el" href="SDL__haptic_8h.html#acdc35e97e5525472054a67b76e518f3b" title="Uses polar coordinates for the direction. ">SDL_HAPTIC_POLAR</a>, direction is encoded by hundredths of a degree starting north and turning clockwise. <a class="el" href="SDL__haptic_8h.html#acdc35e97e5525472054a67b76e518f3b" title="Uses polar coordinates for the direction. ">SDL_HAPTIC_POLAR</a> only uses the first <code>dir</code> parameter. The cardinal directions would be:</p><ul>
<li>North: 0 (0 degrees)</li>
<li>East: 9000 (90 degrees)</li>
<li>South: 18000 (180 degrees)</li>
<li>West: 27000 (270 degrees)</li>
</ul>
<p>If type is <a class="el" href="SDL__haptic_8h.html#af8b2430a363a968de2a5b64c8f663d3b" title="Uses cartesian coordinates for the direction. ">SDL_HAPTIC_CARTESIAN</a>, direction is encoded by three positions (X axis, Y axis and Z axis (with 3 axes)). <a class="el" href="SDL__haptic_8h.html#af8b2430a363a968de2a5b64c8f663d3b" title="Uses cartesian coordinates for the direction. ">SDL_HAPTIC_CARTESIAN</a> uses the first three <code>dir</code> parameters. The cardinal directions would be:</p><ul>
<li>North: 0,-1, 0</li>
<li>East: -1, 0, 0</li>
<li>South: 0, 1, 0</li>
<li>West: 1, 0, 0</li>
</ul>
<p>The Z axis represents the height of the effect if supported, otherwise it's unused. In cartesian encoding (1, 2) would be the same as (2, 4), you can use any multiple you want, only the direction matters.</p>
<p>If type is <a class="el" href="SDL__haptic_8h.html#a1fcf7cb0eaf3c39b16ba266054e25aff" title="Uses spherical coordinates for the direction. ">SDL_HAPTIC_SPHERICAL</a>, direction is encoded by two rotations. The first two <code>dir</code> parameters are used. The <code>dir</code> parameters are as follows (all values are in hundredths of degrees):</p><ul>
<li>Degrees from (1, 0) rotated towards (0, 1).</li>
<li>Degrees towards (0, 0, 1) (device needs at least 3 axes).</li>
</ul>
<p>Example of force coming from the south with all encodings (force coming from the south means the user will have to pull the stick to counteract): </p><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;SDL_HapticDirection direction;</div>
<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;</div>
<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;// Cartesian directions</div>
<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;direction.type = SDL_HAPTIC_CARTESIAN; // Using cartesian direction encoding.</div>
<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;direction.dir[0] = 0; // X position</div>
<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;direction.dir[1] = 1; // Y position</div>
<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;// Assuming the device has 2 axes, we don&#39;t need to specify third parameter.</div>
<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;</div>
<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;// Polar directions</div>
<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;direction.type = SDL_HAPTIC_POLAR; // We&#39;ll be using polar direction encoding.</div>
<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;direction.dir[0] = 18000; // Polar only uses first parameter</div>
<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;</div>
<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;// Spherical coordinates</div>
<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;direction.type = SDL_HAPTIC_SPHERICAL; // Spherical encoding</div>
<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;direction.dir[0] = 9000; // Since we only have two axes we don&#39;t need more parameters.</div>
</div><!-- fragment --><dl class="section see"><dt>See also</dt><dd><a class="el" href="SDL__haptic_8h.html#acdc35e97e5525472054a67b76e518f3b" title="Uses polar coordinates for the direction. ">SDL_HAPTIC_POLAR</a> </dd>
<dd>
<a class="el" href="SDL__haptic_8h.html#af8b2430a363a968de2a5b64c8f663d3b" title="Uses cartesian coordinates for the direction. ">SDL_HAPTIC_CARTESIAN</a> </dd>
<dd>
<a class="el" href="SDL__haptic_8h.html#a1fcf7cb0eaf3c39b16ba266054e25aff" title="Uses spherical coordinates for the direction. ">SDL_HAPTIC_SPHERICAL</a> </dd>
<dd>
<a class="el" href="unionSDL__HapticEffect.html" title="The generic template for any haptic effect. ">SDL_HapticEffect</a> </dd>
<dd>
<a class="el" href="SDL__haptic_8h.html#ad6705645197f6df4eeeea32392462483" title="Gets the number of haptic axes the device has. ">SDL_HapticNumAxes</a> </dd></dl>

</div>
</div>
<a class="anchor" id="aa65c457445c1fdfe1b81dd8fe9d0945e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef union <a class="el" href="unionSDL__HapticEffect.html">SDL_HapticEffect</a>  <a class="el" href="unionSDL__HapticEffect.html">SDL_HapticEffect</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>The generic template for any haptic effect. </p>
<p>All values max at 32767 (0x7FFF). Signed values also can be negative. Time values unless specified otherwise are in milliseconds.</p>
<p>You can also pass <a class="el" href="SDL__haptic_8h.html#a648896e9e14cb27fa8a4b6632d3f3882" title="Used to play a device an infinite number of times. ">SDL_HAPTIC_INFINITY</a> to length instead of a 0-32767 value. Neither delay, interval, attack_length nor fade_length support <a class="el" href="SDL__haptic_8h.html#a648896e9e14cb27fa8a4b6632d3f3882" title="Used to play a device an infinite number of times. ">SDL_HAPTIC_INFINITY</a>. Fade will also not be used since effect never ends.</p>
<p>Additionally, the <a class="el" href="SDL__haptic_8h.html#af10eb937a64a8f602e9c46682ac0d868" title="Ramp effect supported. ">SDL_HAPTIC_RAMP</a> effect does not support a duration of <a class="el" href="SDL__haptic_8h.html#a648896e9e14cb27fa8a4b6632d3f3882" title="Used to play a device an infinite number of times. ">SDL_HAPTIC_INFINITY</a>.</p>
<p>Button triggers may not be supported on all devices, it is advised to not use them if possible. Buttons start at index 1 instead of index 0 like the joystick.</p>
<p>If both attack_length and fade_level are 0, the envelope is not used, otherwise both values are used.</p>
<p>Common parts: </p><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;// Replay - All effects have this</div>
<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;Uint32 length;        // Duration of effect (ms).</div>
<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;Uint16 delay;         // Delay before starting effect.</div>
<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;</div>
<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;// Trigger - All effects have this</div>
<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;Uint16 button;        // Button that triggers effect.</div>
<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;Uint16 interval;      // How soon before effect can be triggered again.</div>
<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;</div>
<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;// Envelope - All effects except condition effects have this</div>
<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;Uint16 attack_length; // Duration of the attack (ms).</div>
<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;Uint16 attack_level;  // Level at the start of the attack.</div>
<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;Uint16 fade_length;   // Duration of the fade out (ms).</div>
<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;Uint16 fade_level;    // Level at the end of the fade.</div>
</div><!-- fragment --><p>Here we have an example of a constant effect evolution in time: </p><pre class="fragment">Strength
^
|
|    effect level --&gt;  _________________
|                     /                 \
|                    /                   \
|                   /                     \
|                  /                       \
| attack_level --&gt; |                        \
|                  |                        |  &lt;---  fade_level
|
+--------------------------------------------------&gt; Time
                   [--]                 [---]
                   attack_length        fade_length

[------------------][-----------------------]
delay               length
</pre><p>Note either the attack_level or the fade_level may be above the actual effect level.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="structSDL__HapticConstant.html" title="A structure containing a template for a Constant effect. ">SDL_HapticConstant</a> </dd>
<dd>
<a class="el" href="structSDL__HapticPeriodic.html" title="A structure containing a template for a Periodic effect. ">SDL_HapticPeriodic</a> </dd>
<dd>
<a class="el" href="structSDL__HapticCondition.html" title="A structure containing a template for a Condition effect. ">SDL_HapticCondition</a> </dd>
<dd>
<a class="el" href="structSDL__HapticRamp.html" title="A structure containing a template for a Ramp effect. ">SDL_HapticRamp</a> </dd>
<dd>
<a class="el" href="structSDL__HapticLeftRight.html" title="A structure containing a template for a Left/Right effect. ">SDL_HapticLeftRight</a> </dd>
<dd>
<a class="el" href="structSDL__HapticCustom.html" title="A structure containing a template for the SDL_HAPTIC_CUSTOM effect. ">SDL_HapticCustom</a> </dd></dl>

</div>
</div>
<a class="anchor" id="af064ca15edd5c1575892ce378a09d250"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structSDL__HapticLeftRight.html">SDL_HapticLeftRight</a>  <a class="el" href="structSDL__HapticLeftRight.html">SDL_HapticLeftRight</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>A structure containing a template for a Left/Right effect. </p>
<p>This struct is exclusively for the <a class="el" href="SDL__haptic_8h.html#ae047624d8458ff6400887c37a36f86d3" title="Left/Right effect supported. ">SDL_HAPTIC_LEFTRIGHT</a> effect.</p>
<p>The Left/Right effect is used to explicitly control the large and small motors, commonly found in modern game controllers. One motor is high frequency, the other is low frequency.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="SDL__haptic_8h.html#ae047624d8458ff6400887c37a36f86d3" title="Left/Right effect supported. ">SDL_HAPTIC_LEFTRIGHT</a> </dd>
<dd>
<a class="el" href="unionSDL__HapticEffect.html" title="The generic template for any haptic effect. ">SDL_HapticEffect</a> </dd></dl>

</div>
</div>
<a class="anchor" id="af865c02eaf3f49a0e0d79d2ac922a6b1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structSDL__HapticPeriodic.html">SDL_HapticPeriodic</a>  <a class="el" href="structSDL__HapticPeriodic.html">SDL_HapticPeriodic</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>A structure containing a template for a Periodic effect. </p>
<p>The struct handles the following effects:</p><ul>
<li><a class="el" href="SDL__haptic_8h.html#aa6d75adbfcdda5075078e7a2849da5c0" title="Sine wave effect supported. ">SDL_HAPTIC_SINE</a></li>
<li><a class="el" href="SDL__haptic_8h.html#ae047624d8458ff6400887c37a36f86d3" title="Left/Right effect supported. ">SDL_HAPTIC_LEFTRIGHT</a></li>
<li><a class="el" href="SDL__haptic_8h.html#ae8123eaa51511507375ba6ef9220fa46" title="Triangle wave effect supported. ">SDL_HAPTIC_TRIANGLE</a></li>
<li><a class="el" href="SDL__haptic_8h.html#ab8e3f40f3c2bcee8905d13b634363c3f" title="Sawtoothup wave effect supported. ">SDL_HAPTIC_SAWTOOTHUP</a></li>
<li><a class="el" href="SDL__haptic_8h.html#afd64aa747034a7ccf4b55f6246525701" title="Sawtoothdown wave effect supported. ">SDL_HAPTIC_SAWTOOTHDOWN</a></li>
</ul>
<p>A periodic effect consists in a wave-shaped effect that repeats itself over time. The type determines the shape of the wave and the parameters determine the dimensions of the wave.</p>
<p>Phase is given by hundredth of a cycle meaning that giving the phase a value of 9000 will displace it 25% of its period. Here are sample values:</p><ul>
<li>0: No phase displacement.</li>
<li>9000: Displaced 25% of its period.</li>
<li>18000: Displaced 50% of its period.</li>
<li>27000: Displaced 75% of its period.</li>
<li>36000: Displaced 100% of its period, same as 0, but 0 is preferred.</li>
</ul>
<p>Examples: </p><pre class="fragment">SDL_HAPTIC_SINE
  __      __      __      __
 /  \    /  \    /  \    /
/    \__/    \__/    \__/

SDL_HAPTIC_SQUARE
 __    __    __    __    __
|  |  |  |  |  |  |  |  |  |
|  |__|  |__|  |__|  |__|  |

SDL_HAPTIC_TRIANGLE
  /\    /\    /\    /\    /\
 /  \  /  \  /  \  /  \  /
/    \/    \/    \/    \/

SDL_HAPTIC_SAWTOOTHUP
  /|  /|  /|  /|  /|  /|  /|
 / | / | / | / | / | / | / |
/  |/  |/  |/  |/  |/  |/  |

SDL_HAPTIC_SAWTOOTHDOWN
\  |\  |\  |\  |\  |\  |\  |
 \ | \ | \ | \ | \ | \ | \ |
  \|  \|  \|  \|  \|  \|  \|
</pre><dl class="section see"><dt>See also</dt><dd><a class="el" href="SDL__haptic_8h.html#aa6d75adbfcdda5075078e7a2849da5c0" title="Sine wave effect supported. ">SDL_HAPTIC_SINE</a> </dd>
<dd>
<a class="el" href="SDL__haptic_8h.html#ae047624d8458ff6400887c37a36f86d3" title="Left/Right effect supported. ">SDL_HAPTIC_LEFTRIGHT</a> </dd>
<dd>
<a class="el" href="SDL__haptic_8h.html#ae8123eaa51511507375ba6ef9220fa46" title="Triangle wave effect supported. ">SDL_HAPTIC_TRIANGLE</a> </dd>
<dd>
<a class="el" href="SDL__haptic_8h.html#ab8e3f40f3c2bcee8905d13b634363c3f" title="Sawtoothup wave effect supported. ">SDL_HAPTIC_SAWTOOTHUP</a> </dd>
<dd>
<a class="el" href="SDL__haptic_8h.html#afd64aa747034a7ccf4b55f6246525701" title="Sawtoothdown wave effect supported. ">SDL_HAPTIC_SAWTOOTHDOWN</a> </dd>
<dd>
<a class="el" href="unionSDL__HapticEffect.html" title="The generic template for any haptic effect. ">SDL_HapticEffect</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ae17963b20b75e2557e50f273350cf4ad"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structSDL__HapticRamp.html">SDL_HapticRamp</a>  <a class="el" href="structSDL__HapticRamp.html">SDL_HapticRamp</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>A structure containing a template for a Ramp effect. </p>
<p>This struct is exclusively for the <a class="el" href="SDL__haptic_8h.html#af10eb937a64a8f602e9c46682ac0d868" title="Ramp effect supported. ">SDL_HAPTIC_RAMP</a> effect.</p>
<p>The ramp effect starts at start strength and ends at end strength. It augments in linear fashion. If you use attack and fade with a ramp the effects get added to the ramp effect making the effect become quadratic instead of linear.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="SDL__haptic_8h.html#af10eb937a64a8f602e9c46682ac0d868" title="Ramp effect supported. ">SDL_HAPTIC_RAMP</a> </dd>
<dd>
<a class="el" href="unionSDL__HapticEffect.html" title="The generic template for any haptic effect. ">SDL_HapticEffect</a> </dd></dl>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="a671599fd69f5a08cdd2ba7e3f1ae456a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DECLSPEC <a class="el" href="SDL__audio_8h.html#a52835ae37c4bb905b903cbaf5d04b05f">void</a> SDLCALL SDL_HapticClose </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="SDL__haptic_8h.html#a79db098a0e8cb102db6c2339a2422e29">SDL_Haptic</a> *&#160;</td>
          <td class="paramname"><em>haptic</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Closes a Haptic device previously opened with <a class="el" href="SDL__haptic_8h.html#adf7e0c6027c1e72c93ba9720e2180d70" title="Opens a Haptic device for usage. ">SDL_HapticOpen()</a>. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">haptic</td><td>Haptic device to close. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a0bb35fea7c4c08c9bcb80e0bcfa1799f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DECLSPEC <a class="el" href="SDL__audio_8h.html#a52835ae37c4bb905b903cbaf5d04b05f">void</a> SDLCALL SDL_HapticDestroyEffect </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="SDL__haptic_8h.html#a79db098a0e8cb102db6c2339a2422e29">SDL_Haptic</a> *&#160;</td>
          <td class="paramname"><em>haptic</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a>&#160;</td>
          <td class="paramname"><em>effect</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Destroys a haptic effect on the device. </p>
<p>This will stop the effect if it's running. Effects are automatically destroyed when the device is closed.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">haptic</td><td>Device to destroy the effect on. </td></tr>
    <tr><td class="paramname">effect</td><td>Identifier of the effect to destroy.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="SDL__haptic_8h.html#a176c52ff4b77b63cb94ea83f8f4183ad" title="Creates a new haptic effect on the device. ">SDL_HapticNewEffect</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ae333ef77753ba700875fa20858b9021d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DECLSPEC <a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> SDLCALL SDL_HapticEffectSupported </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="SDL__haptic_8h.html#a79db098a0e8cb102db6c2339a2422e29">SDL_Haptic</a> *&#160;</td>
          <td class="paramname"><em>haptic</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="unionSDL__HapticEffect.html">SDL_HapticEffect</a> *&#160;</td>
          <td class="paramname"><em>effect</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Checks to see if effect is supported by haptic. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">haptic</td><td>Haptic device to check on. </td></tr>
    <tr><td class="paramname">effect</td><td>Effect to check to see if it is supported. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>SDL_TRUE if effect is supported, SDL_FALSE if it isn't or -1 on error.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="SDL__haptic_8h.html#a8192e1220a834e708959539fa1c3f490" title="Gets the haptic devices supported features in bitwise matter. ">SDL_HapticQuery</a> </dd>
<dd>
<a class="el" href="SDL__haptic_8h.html#a176c52ff4b77b63cb94ea83f8f4183ad" title="Creates a new haptic effect on the device. ">SDL_HapticNewEffect</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ae2185c0814f107dd5851dd743e9ea71c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DECLSPEC <a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> SDLCALL SDL_HapticGetEffectStatus </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="SDL__haptic_8h.html#a79db098a0e8cb102db6c2339a2422e29">SDL_Haptic</a> *&#160;</td>
          <td class="paramname"><em>haptic</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a>&#160;</td>
          <td class="paramname"><em>effect</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Gets the status of the current effect on the haptic device. </p>
<p>Device must support the <a class="el" href="SDL__haptic_8h.html#abfbc9fa0d65f4b5632788945080cc71b" title="Device can be queried for effect status. ">SDL_HAPTIC_STATUS</a> feature.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">haptic</td><td>Haptic device to query the effect status on. </td></tr>
    <tr><td class="paramname">effect</td><td>Identifier of the effect to query its status. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 if it isn't playing, 1 if it is playing or -1 on error.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="SDL__haptic_8h.html#a1cd1294768bb00f35b77f67031a8a9cb" title="Runs the haptic effect on its associated haptic device. ">SDL_HapticRunEffect</a> </dd>
<dd>
<a class="el" href="SDL__haptic_8h.html#a27b35e361aaafa830561e98328c98c8e" title="Stops the haptic effect on its associated haptic device. ">SDL_HapticStopEffect</a> </dd></dl>

</div>
</div>
<a class="anchor" id="aacee621c474cda53e56f4a2233c65407"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DECLSPEC <a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> SDLCALL SDL_HapticIndex </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="SDL__haptic_8h.html#a79db098a0e8cb102db6c2339a2422e29">SDL_Haptic</a> *&#160;</td>
          <td class="paramname"><em>haptic</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Gets the index of a haptic device. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">haptic</td><td>Haptic device to get the index of. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The index of the haptic device or -1 on error.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="SDL__haptic_8h.html#adf7e0c6027c1e72c93ba9720e2180d70" title="Opens a Haptic device for usage. ">SDL_HapticOpen</a> </dd>
<dd>
<a class="el" href="SDL__haptic_8h.html#a24d8f221d4b2eae5c3c663752fc0d66a" title="Checks if the haptic device at index has been opened. ">SDL_HapticOpened</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a88cd1f2fc53714cbd1056c0e6dcbaf1f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DECLSPEC const char* SDLCALL SDL_HapticName </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a>&#160;</td>
          <td class="paramname"><em>device_index</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the implementation dependent name of a Haptic device. </p>
<p>This can be called before any joysticks are opened. If no name can be found, this function returns NULL.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">device_index</td><td>Index of the device to get its name. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Name of the device or NULL on error.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="SDL__haptic_8h.html#a6f538063a9f1d790882c0d3a81c302cd" title="Count the number of haptic devices attached to the system. ">SDL_NumHaptics</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a176c52ff4b77b63cb94ea83f8f4183ad"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DECLSPEC <a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> SDLCALL SDL_HapticNewEffect </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="SDL__haptic_8h.html#a79db098a0e8cb102db6c2339a2422e29">SDL_Haptic</a> *&#160;</td>
          <td class="paramname"><em>haptic</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="unionSDL__HapticEffect.html">SDL_HapticEffect</a> *&#160;</td>
          <td class="paramname"><em>effect</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Creates a new haptic effect on the device. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">haptic</td><td>Haptic device to create the effect on. </td></tr>
    <tr><td class="paramname">effect</td><td>Properties of the effect to create. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The id of the effect on success or -1 on error.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="SDL__haptic_8h.html#a4c212cbdb3487dd8d72882d355a19472" title="Updates the properties of an effect. ">SDL_HapticUpdateEffect</a> </dd>
<dd>
<a class="el" href="SDL__haptic_8h.html#a1cd1294768bb00f35b77f67031a8a9cb" title="Runs the haptic effect on its associated haptic device. ">SDL_HapticRunEffect</a> </dd>
<dd>
<a class="el" href="SDL__haptic_8h.html#a0bb35fea7c4c08c9bcb80e0bcfa1799f" title="Destroys a haptic effect on the device. ">SDL_HapticDestroyEffect</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ad6705645197f6df4eeeea32392462483"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DECLSPEC <a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> SDLCALL SDL_HapticNumAxes </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="SDL__haptic_8h.html#a79db098a0e8cb102db6c2339a2422e29">SDL_Haptic</a> *&#160;</td>
          <td class="paramname"><em>haptic</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Gets the number of haptic axes the device has. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="structSDL__HapticDirection.html" title="Structure that represents a haptic direction. ">SDL_HapticDirection</a> </dd></dl>

</div>
</div>
<a class="anchor" id="afc6e5a5701fe80004d529d762132ad6b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DECLSPEC <a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> SDLCALL SDL_HapticNumEffects </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="SDL__haptic_8h.html#a79db098a0e8cb102db6c2339a2422e29">SDL_Haptic</a> *&#160;</td>
          <td class="paramname"><em>haptic</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns the number of effects a haptic device can store. </p>
<p>On some platforms this isn't fully supported, and therefore is an approximation. Always check to see if your created effect was actually created and do not rely solely on <a class="el" href="SDL__haptic_8h.html#afc6e5a5701fe80004d529d762132ad6b" title="Returns the number of effects a haptic device can store. ">SDL_HapticNumEffects()</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">haptic</td><td>The haptic device to query effect max. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The number of effects the haptic device can store or -1 on error.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="SDL__haptic_8h.html#a255e1e6fc27489080bcbbd3c7fadc6db" title="Returns the number of effects a haptic device can play at the same time. ">SDL_HapticNumEffectsPlaying</a> </dd>
<dd>
<a class="el" href="SDL__haptic_8h.html#a8192e1220a834e708959539fa1c3f490" title="Gets the haptic devices supported features in bitwise matter. ">SDL_HapticQuery</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a255e1e6fc27489080bcbbd3c7fadc6db"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DECLSPEC <a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> SDLCALL SDL_HapticNumEffectsPlaying </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="SDL__haptic_8h.html#a79db098a0e8cb102db6c2339a2422e29">SDL_Haptic</a> *&#160;</td>
          <td class="paramname"><em>haptic</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns the number of effects a haptic device can play at the same time. </p>
<p>This is not supported on all platforms, but will always return a value. Added here for the sake of completeness.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">haptic</td><td>The haptic device to query maximum playing effects. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The number of effects the haptic device can play at the same time or -1 on error.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="SDL__haptic_8h.html#afc6e5a5701fe80004d529d762132ad6b" title="Returns the number of effects a haptic device can store. ">SDL_HapticNumEffects</a> </dd>
<dd>
<a class="el" href="SDL__haptic_8h.html#a8192e1220a834e708959539fa1c3f490" title="Gets the haptic devices supported features in bitwise matter. ">SDL_HapticQuery</a> </dd></dl>

</div>
</div>
<a class="anchor" id="adf7e0c6027c1e72c93ba9720e2180d70"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DECLSPEC <a class="el" href="SDL__haptic_8h.html#a79db098a0e8cb102db6c2339a2422e29">SDL_Haptic</a>* SDLCALL SDL_HapticOpen </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a>&#160;</td>
          <td class="paramname"><em>device_index</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Opens a Haptic device for usage. </p>
<p>The index passed as an argument refers to the N'th Haptic device on this system.</p>
<p>When opening a haptic device, its gain will be set to maximum and autocenter will be disabled. To modify these values use <a class="el" href="SDL__haptic_8h.html#a2a90e7cefab3fdecf37e2f1b956a9e73" title="Sets the global gain of the device. ">SDL_HapticSetGain()</a> and <a class="el" href="SDL__haptic_8h.html#a0b0d63aa4513fc1b12939500cb3f8a76" title="Sets the global autocenter of the device. ">SDL_HapticSetAutocenter()</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">device_index</td><td>Index of the device to open. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Device identifier or NULL on error.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="SDL__haptic_8h.html#aacee621c474cda53e56f4a2233c65407" title="Gets the index of a haptic device. ">SDL_HapticIndex</a> </dd>
<dd>
<a class="el" href="SDL__haptic_8h.html#aacc5469f46707fbd48166603b3b1bd8b" title="Tries to open a haptic device from the current mouse. ">SDL_HapticOpenFromMouse</a> </dd>
<dd>
<a class="el" href="SDL__haptic_8h.html#a8303134205b4ab63b1a2fb5281c26702" title="Opens a Haptic device for usage from a Joystick device. ">SDL_HapticOpenFromJoystick</a> </dd>
<dd>
<a class="el" href="SDL__haptic_8h.html#a671599fd69f5a08cdd2ba7e3f1ae456a" title="Closes a Haptic device previously opened with SDL_HapticOpen(). ">SDL_HapticClose</a> </dd>
<dd>
<a class="el" href="SDL__haptic_8h.html#a2a90e7cefab3fdecf37e2f1b956a9e73" title="Sets the global gain of the device. ">SDL_HapticSetGain</a> </dd>
<dd>
<a class="el" href="SDL__haptic_8h.html#a0b0d63aa4513fc1b12939500cb3f8a76" title="Sets the global autocenter of the device. ">SDL_HapticSetAutocenter</a> </dd>
<dd>
<a class="el" href="SDL__haptic_8h.html#af0181e59ecd14c6aecd1fd3c5099330a" title="Pauses a haptic device. ">SDL_HapticPause</a> </dd>
<dd>
<a class="el" href="SDL__haptic_8h.html#aad427170295d6b88a5a94cd6a491797a" title="Stops all the currently playing effects on a haptic device. ">SDL_HapticStopAll</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a24d8f221d4b2eae5c3c663752fc0d66a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DECLSPEC <a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> SDLCALL SDL_HapticOpened </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a>&#160;</td>
          <td class="paramname"><em>device_index</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Checks if the haptic device at index has been opened. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">device_index</td><td>Index to check to see if it has been opened. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>1 if it has been opened or 0 if it hasn't.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="SDL__haptic_8h.html#adf7e0c6027c1e72c93ba9720e2180d70" title="Opens a Haptic device for usage. ">SDL_HapticOpen</a> </dd>
<dd>
<a class="el" href="SDL__haptic_8h.html#aacee621c474cda53e56f4a2233c65407" title="Gets the index of a haptic device. ">SDL_HapticIndex</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a8303134205b4ab63b1a2fb5281c26702"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DECLSPEC <a class="el" href="SDL__haptic_8h.html#a79db098a0e8cb102db6c2339a2422e29">SDL_Haptic</a>* SDLCALL SDL_HapticOpenFromJoystick </td>
          <td>(</td>
          <td class="paramtype">SDL_Joystick *&#160;</td>
          <td class="paramname"><em>joystick</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Opens a Haptic device for usage from a Joystick device. </p>
<p>You must still close the haptic device seperately. It will not be closed with the joystick.</p>
<p>When opening from a joystick you should first close the haptic device before closing the joystick device. If not, on some implementations the haptic device will also get unallocated and you'll be unable to use force feedback on that device.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">joystick</td><td>Joystick to create a haptic device from. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A valid haptic device identifier on success or NULL on error.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="SDL__haptic_8h.html#adf7e0c6027c1e72c93ba9720e2180d70" title="Opens a Haptic device for usage. ">SDL_HapticOpen</a> </dd>
<dd>
<a class="el" href="SDL__haptic_8h.html#a671599fd69f5a08cdd2ba7e3f1ae456a" title="Closes a Haptic device previously opened with SDL_HapticOpen(). ">SDL_HapticClose</a> </dd></dl>

</div>
</div>
<a class="anchor" id="aacc5469f46707fbd48166603b3b1bd8b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DECLSPEC <a class="el" href="SDL__haptic_8h.html#a79db098a0e8cb102db6c2339a2422e29">SDL_Haptic</a>* SDLCALL SDL_HapticOpenFromMouse </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="SDL__audio_8h.html#a52835ae37c4bb905b903cbaf5d04b05f">void</a>&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Tries to open a haptic device from the current mouse. </p>
<dl class="section return"><dt>Returns</dt><dd>The haptic device identifier or NULL on error.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="SDL__haptic_8h.html#a8fcc0fb333baed629004bd8c0c66bd76" title="Gets whether or not the current mouse has haptic capabilities. ">SDL_MouseIsHaptic</a> </dd>
<dd>
<a class="el" href="SDL__haptic_8h.html#adf7e0c6027c1e72c93ba9720e2180d70" title="Opens a Haptic device for usage. ">SDL_HapticOpen</a> </dd></dl>

</div>
</div>
<a class="anchor" id="af0181e59ecd14c6aecd1fd3c5099330a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DECLSPEC <a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> SDLCALL SDL_HapticPause </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="SDL__haptic_8h.html#a79db098a0e8cb102db6c2339a2422e29">SDL_Haptic</a> *&#160;</td>
          <td class="paramname"><em>haptic</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Pauses a haptic device. </p>
<p>Device must support the <a class="el" href="SDL__haptic_8h.html#a6baee8978ccc97add8457388801d7782" title="Device can be paused. ">SDL_HAPTIC_PAUSE</a> feature. Call <a class="el" href="SDL__haptic_8h.html#a3593eed87aee3b9caa1c25927002c5ae" title="Unpauses a haptic device. ">SDL_HapticUnpause()</a> to resume playback.</p>
<p>Do not modify the effects nor add new ones while the device is paused. That can cause all sorts of weird errors.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">haptic</td><td>Haptic device to pause. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 on success or -1 on error.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="SDL__haptic_8h.html#a3593eed87aee3b9caa1c25927002c5ae" title="Unpauses a haptic device. ">SDL_HapticUnpause</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a8192e1220a834e708959539fa1c3f490"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DECLSPEC unsigned <a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> SDLCALL SDL_HapticQuery </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="SDL__haptic_8h.html#a79db098a0e8cb102db6c2339a2422e29">SDL_Haptic</a> *&#160;</td>
          <td class="paramname"><em>haptic</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Gets the haptic devices supported features in bitwise matter. </p>
<p>Example: </p><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;if (SDL_HapticQuery(haptic) &amp; SDL_HAPTIC_CONSTANT) {</div>
<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;    printf(&quot;We have constant haptic effect!&quot;);</div>
<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;}</div>
</div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">haptic</td><td>The haptic device to query. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Haptic features in bitwise manner (OR'd).</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="SDL__haptic_8h.html#afc6e5a5701fe80004d529d762132ad6b" title="Returns the number of effects a haptic device can store. ">SDL_HapticNumEffects</a> </dd>
<dd>
<a class="el" href="SDL__haptic_8h.html#ae333ef77753ba700875fa20858b9021d" title="Checks to see if effect is supported by haptic. ">SDL_HapticEffectSupported</a> </dd></dl>

</div>
</div>
<a class="anchor" id="af44cbecefe14da5a7476013ce06f38b9"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DECLSPEC <a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> SDLCALL SDL_HapticRumbleInit </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="SDL__haptic_8h.html#a79db098a0e8cb102db6c2339a2422e29">SDL_Haptic</a> *&#160;</td>
          <td class="paramname"><em>haptic</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Initializes the haptic device for simple rumble playback. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">haptic</td><td>Haptic device to initialize for simple rumble playback. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 on success or -1 on error.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="SDL__haptic_8h.html#adf7e0c6027c1e72c93ba9720e2180d70" title="Opens a Haptic device for usage. ">SDL_HapticOpen</a> </dd>
<dd>
<a class="el" href="SDL__haptic_8h.html#aa0754b11e2aed38bc955750c7a6a6c73" title="Checks to see if rumble is supported on a haptic device. ">SDL_HapticRumbleSupported</a> </dd>
<dd>
<a class="el" href="SDL__haptic_8h.html#a971b5651414202f89a8c6eed640e990d" title="Runs simple rumble on a haptic device. ">SDL_HapticRumblePlay</a> </dd>
<dd>
<a class="el" href="SDL__haptic_8h.html#a9e11ff3ae40f59c04be3bae98d8d05ba" title="Stops the simple rumble on a haptic device. ">SDL_HapticRumbleStop</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a971b5651414202f89a8c6eed640e990d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DECLSPEC <a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> SDLCALL SDL_HapticRumblePlay </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="SDL__haptic_8h.html#a79db098a0e8cb102db6c2339a2422e29">SDL_Haptic</a> *&#160;</td>
          <td class="paramname"><em>haptic</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>strength</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="SDL__stdinc_8h.html#add440eff171ea5f55cb00c4a9ab8672d">Uint32</a>&#160;</td>
          <td class="paramname"><em>length</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Runs simple rumble on a haptic device. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">haptic</td><td>Haptic device to play rumble effect on. </td></tr>
    <tr><td class="paramname">strength</td><td>Strength of the rumble to play as a 0-1 float value. </td></tr>
    <tr><td class="paramname">length</td><td>Length of the rumble to play in milliseconds. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 on success or -1 on error.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="SDL__haptic_8h.html#aa0754b11e2aed38bc955750c7a6a6c73" title="Checks to see if rumble is supported on a haptic device. ">SDL_HapticRumbleSupported</a> </dd>
<dd>
<a class="el" href="SDL__haptic_8h.html#af44cbecefe14da5a7476013ce06f38b9" title="Initializes the haptic device for simple rumble playback. ">SDL_HapticRumbleInit</a> </dd>
<dd>
<a class="el" href="SDL__haptic_8h.html#a9e11ff3ae40f59c04be3bae98d8d05ba" title="Stops the simple rumble on a haptic device. ">SDL_HapticRumbleStop</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a9e11ff3ae40f59c04be3bae98d8d05ba"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DECLSPEC <a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> SDLCALL SDL_HapticRumbleStop </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="SDL__haptic_8h.html#a79db098a0e8cb102db6c2339a2422e29">SDL_Haptic</a> *&#160;</td>
          <td class="paramname"><em>haptic</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Stops the simple rumble on a haptic device. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">haptic</td><td>Haptic to stop the rumble on. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 on success or -1 on error.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="SDL__haptic_8h.html#aa0754b11e2aed38bc955750c7a6a6c73" title="Checks to see if rumble is supported on a haptic device. ">SDL_HapticRumbleSupported</a> </dd>
<dd>
<a class="el" href="SDL__haptic_8h.html#af44cbecefe14da5a7476013ce06f38b9" title="Initializes the haptic device for simple rumble playback. ">SDL_HapticRumbleInit</a> </dd>
<dd>
<a class="el" href="SDL__haptic_8h.html#a971b5651414202f89a8c6eed640e990d" title="Runs simple rumble on a haptic device. ">SDL_HapticRumblePlay</a> </dd></dl>

</div>
</div>
<a class="anchor" id="aa0754b11e2aed38bc955750c7a6a6c73"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DECLSPEC <a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> SDLCALL SDL_HapticRumbleSupported </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="SDL__haptic_8h.html#a79db098a0e8cb102db6c2339a2422e29">SDL_Haptic</a> *&#160;</td>
          <td class="paramname"><em>haptic</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Checks to see if rumble is supported on a haptic device. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">haptic</td><td>Haptic device to check to see if it supports rumble. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>SDL_TRUE if effect is supported, SDL_FALSE if it isn't or -1 on error.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="SDL__haptic_8h.html#af44cbecefe14da5a7476013ce06f38b9" title="Initializes the haptic device for simple rumble playback. ">SDL_HapticRumbleInit</a> </dd>
<dd>
<a class="el" href="SDL__haptic_8h.html#a971b5651414202f89a8c6eed640e990d" title="Runs simple rumble on a haptic device. ">SDL_HapticRumblePlay</a> </dd>
<dd>
<a class="el" href="SDL__haptic_8h.html#a9e11ff3ae40f59c04be3bae98d8d05ba" title="Stops the simple rumble on a haptic device. ">SDL_HapticRumbleStop</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a1cd1294768bb00f35b77f67031a8a9cb"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DECLSPEC <a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> SDLCALL SDL_HapticRunEffect </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="SDL__haptic_8h.html#a79db098a0e8cb102db6c2339a2422e29">SDL_Haptic</a> *&#160;</td>
          <td class="paramname"><em>haptic</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a>&#160;</td>
          <td class="paramname"><em>effect</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="SDL__stdinc_8h.html#add440eff171ea5f55cb00c4a9ab8672d">Uint32</a>&#160;</td>
          <td class="paramname"><em>iterations</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Runs the haptic effect on its associated haptic device. </p>
<p>If iterations are <a class="el" href="SDL__haptic_8h.html#a648896e9e14cb27fa8a4b6632d3f3882" title="Used to play a device an infinite number of times. ">SDL_HAPTIC_INFINITY</a>, it'll run the effect over and over repeating the envelope (attack and fade) every time. If you only want the effect to last forever, set <a class="el" href="SDL__haptic_8h.html#a648896e9e14cb27fa8a4b6632d3f3882" title="Used to play a device an infinite number of times. ">SDL_HAPTIC_INFINITY</a> in the effect's length parameter.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">haptic</td><td>Haptic device to run the effect on. </td></tr>
    <tr><td class="paramname">effect</td><td>Identifier of the haptic effect to run. </td></tr>
    <tr><td class="paramname">iterations</td><td>Number of iterations to run the effect. Use <a class="el" href="SDL__haptic_8h.html#a648896e9e14cb27fa8a4b6632d3f3882" title="Used to play a device an infinite number of times. ">SDL_HAPTIC_INFINITY</a> for infinity. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 on success or -1 on error.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="SDL__haptic_8h.html#a27b35e361aaafa830561e98328c98c8e" title="Stops the haptic effect on its associated haptic device. ">SDL_HapticStopEffect</a> </dd>
<dd>
<a class="el" href="SDL__haptic_8h.html#a0bb35fea7c4c08c9bcb80e0bcfa1799f" title="Destroys a haptic effect on the device. ">SDL_HapticDestroyEffect</a> </dd>
<dd>
<a class="el" href="SDL__haptic_8h.html#ae2185c0814f107dd5851dd743e9ea71c" title="Gets the status of the current effect on the haptic device. ">SDL_HapticGetEffectStatus</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a0b0d63aa4513fc1b12939500cb3f8a76"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DECLSPEC <a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> SDLCALL SDL_HapticSetAutocenter </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="SDL__haptic_8h.html#a79db098a0e8cb102db6c2339a2422e29">SDL_Haptic</a> *&#160;</td>
          <td class="paramname"><em>haptic</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a>&#160;</td>
          <td class="paramname"><em>autocenter</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sets the global autocenter of the device. </p>
<p>Autocenter should be between 0 and 100. Setting it to 0 will disable autocentering.</p>
<p>Device must support the <a class="el" href="SDL__haptic_8h.html#a28aa71e231fbf5b88bce7906bf2f4e70" title="Device can set autocenter. ">SDL_HAPTIC_AUTOCENTER</a> feature.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">haptic</td><td>Haptic device to set autocentering on. </td></tr>
    <tr><td class="paramname">autocenter</td><td>Value to set autocenter to, 0 disables autocentering. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 on success or -1 on error.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="SDL__haptic_8h.html#a8192e1220a834e708959539fa1c3f490" title="Gets the haptic devices supported features in bitwise matter. ">SDL_HapticQuery</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a2a90e7cefab3fdecf37e2f1b956a9e73"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DECLSPEC <a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> SDLCALL SDL_HapticSetGain </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="SDL__haptic_8h.html#a79db098a0e8cb102db6c2339a2422e29">SDL_Haptic</a> *&#160;</td>
          <td class="paramname"><em>haptic</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a>&#160;</td>
          <td class="paramname"><em>gain</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sets the global gain of the device. </p>
<p>Device must support the <a class="el" href="SDL__haptic_8h.html#a3afe54582bd5c184109f3f61b6c84c6c" title="Device can set global gain. ">SDL_HAPTIC_GAIN</a> feature.</p>
<p>The user may specify the maximum gain by setting the environment variable SDL_HAPTIC_GAIN_MAX which should be between 0 and 100. All calls to <a class="el" href="SDL__haptic_8h.html#a2a90e7cefab3fdecf37e2f1b956a9e73" title="Sets the global gain of the device. ">SDL_HapticSetGain()</a> will scale linearly using SDL_HAPTIC_GAIN_MAX as the maximum.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">haptic</td><td>Haptic device to set the gain on. </td></tr>
    <tr><td class="paramname">gain</td><td>Value to set the gain to, should be between 0 and 100. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 on success or -1 on error.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="SDL__haptic_8h.html#a8192e1220a834e708959539fa1c3f490" title="Gets the haptic devices supported features in bitwise matter. ">SDL_HapticQuery</a> </dd></dl>

</div>
</div>
<a class="anchor" id="aad427170295d6b88a5a94cd6a491797a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DECLSPEC <a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> SDLCALL SDL_HapticStopAll </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="SDL__haptic_8h.html#a79db098a0e8cb102db6c2339a2422e29">SDL_Haptic</a> *&#160;</td>
          <td class="paramname"><em>haptic</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Stops all the currently playing effects on a haptic device. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">haptic</td><td>Haptic device to stop. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 on success or -1 on error. </dd></dl>

</div>
</div>
<a class="anchor" id="a27b35e361aaafa830561e98328c98c8e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DECLSPEC <a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> SDLCALL SDL_HapticStopEffect </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="SDL__haptic_8h.html#a79db098a0e8cb102db6c2339a2422e29">SDL_Haptic</a> *&#160;</td>
          <td class="paramname"><em>haptic</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a>&#160;</td>
          <td class="paramname"><em>effect</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Stops the haptic effect on its associated haptic device. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">haptic</td><td>Haptic device to stop the effect on. </td></tr>
    <tr><td class="paramname">effect</td><td>Identifier of the effect to stop. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 on success or -1 on error.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="SDL__haptic_8h.html#a1cd1294768bb00f35b77f67031a8a9cb" title="Runs the haptic effect on its associated haptic device. ">SDL_HapticRunEffect</a> </dd>
<dd>
<a class="el" href="SDL__haptic_8h.html#a0bb35fea7c4c08c9bcb80e0bcfa1799f" title="Destroys a haptic effect on the device. ">SDL_HapticDestroyEffect</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a3593eed87aee3b9caa1c25927002c5ae"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DECLSPEC <a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> SDLCALL SDL_HapticUnpause </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="SDL__haptic_8h.html#a79db098a0e8cb102db6c2339a2422e29">SDL_Haptic</a> *&#160;</td>
          <td class="paramname"><em>haptic</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Unpauses a haptic device. </p>
<p>Call to unpause after <a class="el" href="SDL__haptic_8h.html#af0181e59ecd14c6aecd1fd3c5099330a" title="Pauses a haptic device. ">SDL_HapticPause()</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">haptic</td><td>Haptic device to pause. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 on success or -1 on error.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="SDL__haptic_8h.html#af0181e59ecd14c6aecd1fd3c5099330a" title="Pauses a haptic device. ">SDL_HapticPause</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a4c212cbdb3487dd8d72882d355a19472"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DECLSPEC <a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> SDLCALL SDL_HapticUpdateEffect </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="SDL__haptic_8h.html#a79db098a0e8cb102db6c2339a2422e29">SDL_Haptic</a> *&#160;</td>
          <td class="paramname"><em>haptic</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a>&#160;</td>
          <td class="paramname"><em>effect</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="unionSDL__HapticEffect.html">SDL_HapticEffect</a> *&#160;</td>
          <td class="paramname"><em>data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Updates the properties of an effect. </p>
<p>Can be used dynamically, although behaviour when dynamically changing direction may be strange. Specifically the effect may reupload itself and start playing from the start. You cannot change the type either when running <a class="el" href="SDL__haptic_8h.html#a4c212cbdb3487dd8d72882d355a19472" title="Updates the properties of an effect. ">SDL_HapticUpdateEffect()</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">haptic</td><td>Haptic device that has the effect. </td></tr>
    <tr><td class="paramname">effect</td><td>Effect to update. </td></tr>
    <tr><td class="paramname">data</td><td>New effect properties to use. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 on success or -1 on error.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="SDL__haptic_8h.html#a176c52ff4b77b63cb94ea83f8f4183ad" title="Creates a new haptic effect on the device. ">SDL_HapticNewEffect</a> </dd>
<dd>
<a class="el" href="SDL__haptic_8h.html#a1cd1294768bb00f35b77f67031a8a9cb" title="Runs the haptic effect on its associated haptic device. ">SDL_HapticRunEffect</a> </dd>
<dd>
<a class="el" href="SDL__haptic_8h.html#a0bb35fea7c4c08c9bcb80e0bcfa1799f" title="Destroys a haptic effect on the device. ">SDL_HapticDestroyEffect</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a8a2966d363cba55ffdfeff42e4204ef1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DECLSPEC <a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> SDLCALL SDL_JoystickIsHaptic </td>
          <td>(</td>
          <td class="paramtype">SDL_Joystick *&#160;</td>
          <td class="paramname"><em>joystick</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Checks to see if a joystick has haptic features. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">joystick</td><td>Joystick to test for haptic capabilities. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>1 if the joystick is haptic, 0 if it isn't or -1 if an error ocurred.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="SDL__haptic_8h.html#a8303134205b4ab63b1a2fb5281c26702" title="Opens a Haptic device for usage from a Joystick device. ">SDL_HapticOpenFromJoystick</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a8fcc0fb333baed629004bd8c0c66bd76"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DECLSPEC <a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> SDLCALL SDL_MouseIsHaptic </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="SDL__audio_8h.html#a52835ae37c4bb905b903cbaf5d04b05f">void</a>&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Gets whether or not the current mouse has haptic capabilities. </p>
<dl class="section return"><dt>Returns</dt><dd>SDL_TRUE if the mouse is haptic, SDL_FALSE if it isn't.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="SDL__haptic_8h.html#aacc5469f46707fbd48166603b3b1bd8b" title="Tries to open a haptic device from the current mouse. ">SDL_HapticOpenFromMouse</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a6f538063a9f1d790882c0d3a81c302cd"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DECLSPEC <a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> SDLCALL SDL_NumHaptics </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="SDL__audio_8h.html#a52835ae37c4bb905b903cbaf5d04b05f">void</a>&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Count the number of haptic devices attached to the system. </p>
<dl class="section return"><dt>Returns</dt><dd>Number of haptic devices detected on the system. </dd></dl>

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Thu Oct 16 2014 16:33:09 for My Project by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.8
</small></address>
</body>
</html>